Skip to content

Commit 01bec4f

Browse files
committed
fix: resolve CI type errors for server-utils PR
- Define ServerProviderStatus/ServerProviderStatusState locally in Services/ProviderHealth instead of importing non-existent names from contracts - Fix Context.Service usage in ProviderHealth service definition - Add missing unref property to ChildProcessHandle mock in test - Add terminalThreads.ts from shared terminal utilities and register its subpath export in @t3tools/shared
1 parent 5fb0a44 commit 01bec4f

5 files changed

Lines changed: 527 additions & 7 deletions

File tree

apps/server/src/provider/Layers/ProviderHealth.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ function mockHandle(result: { stdout: string; stderr: string; code: number }) {
2929
all: Stream.empty,
3030
getInputFd: () => Sink.drain,
3131
getOutputFd: () => Stream.empty,
32+
unref: Effect.succeed({ [Symbol()]: true }) as any,
3233
});
3334
}
3435

apps/server/src/provider/Layers/ProviderHealth.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@
99
* @module ProviderHealthLive
1010
*/
1111
import * as OS from "node:os";
12-
import type {
13-
ServerProviderAuthStatus,
14-
ServerProviderStatus,
15-
ServerProviderStatusState,
16-
} from "@t3tools/contracts";
12+
import type { ServerProviderAuthStatus } from "@t3tools/contracts";
13+
14+
import type { ServerProviderStatus, ServerProviderStatusState } from "../Services/ProviderHealth";
1715
import { Array, Effect, Fiber, FileSystem, Layer, Option, Path, Result, Stream } from "effect";
1816
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
1917

apps/server/src/provider/Services/ProviderHealth.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,27 @@
66
*
77
* @module ProviderHealth
88
*/
9-
import type { ServerProviderStatus } from "@t3tools/contracts";
10-
import { ServiceMap } from "effect";
9+
import type { ServerProviderAuthStatus } from "@t3tools/contracts";
10+
import { Context } from "effect";
1111
import type { Effect } from "effect";
1212

13+
/**
14+
* Lightweight status snapshot returned by startup health probes.
15+
*
16+
* Intentionally decoupled from the full `ServerProvider` contract which
17+
* carries model lists, slash-commands, etc.
18+
*/
19+
export type ServerProviderStatusState = "ready" | "warning" | "error";
20+
21+
export interface ServerProviderStatus {
22+
readonly provider: string;
23+
readonly status: ServerProviderStatusState;
24+
readonly available: boolean;
25+
readonly authStatus: ServerProviderAuthStatus;
26+
readonly checkedAt: string;
27+
readonly message?: string;
28+
}
29+
1330
export interface ProviderHealthShape {
1431
/**
1532
* Read the latest provider health statuses.

packages/shared/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@
5656
"types": "./src/searchRanking.ts",
5757
"import": "./src/searchRanking.ts"
5858
},
59+
"./terminalThreads": {
60+
"types": "./src/terminalThreads.ts",
61+
"import": "./src/terminalThreads.ts"
62+
},
5963
"./qrCode": {
6064
"types": "./src/qrCode.ts",
6165
"import": "./src/qrCode.ts"

0 commit comments

Comments
 (0)