Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/server/scripts/record-grok-acp-replay-fixture.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import * as Schema from "effect/Schema";
import { ChildProcessSpawner } from "effect/process";
import type * as EffectAcpProtocol from "effect-acp/protocol";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import {
GROK_DEFAULT_INSTANCE_ID,
GROK_PROVIDER,
Expand Down Expand Up @@ -490,7 +490,7 @@ const recordScenario = Effect.fn("recordGrokScenario")(function* (fixtureName: s
).pipe(
Layer.provide(
Layer.mergeAll(
layerTestProviderHost().pipe(Layer.provide(NodeServices.layer)),
TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer)),
NodeServices.layer,
IdAllocator.layer,
),
Expand Down
4 changes: 2 additions & 2 deletions apps/server/src/assets/AssetAccess.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
import { parseAttachmentFileExtension, resolveAttachmentPathById } from "../attachmentStore.ts";
import * as ServerConfig from "../config.ts";
import * as Orchestrator from "../orchestration-v2/Orchestrator.ts";
import { expandHomePathWith } from "@t3tools/provider-core/server/pathExpansion";
import { expandHomePath } from "@t3tools/provider-core/server/pathExpansion";
import * as ProjectFaviconResolver from "../project/ProjectFaviconResolver.ts";
import * as WorkspacePaths from "../workspace/WorkspacePaths.ts";
import * as NativeAppIconResolver from "./NativeAppIconResolver.ts";
Expand Down Expand Up @@ -469,7 +469,7 @@ export const issueAssetUrl = Effect.fn("AssetAccess.issueAssetUrl")(function* (i

switch (input.resource._tag) {
case "media-file": {
let requestedPath = expandHomePathWith(input.resource.path, path);
let requestedPath = expandHomePath(input.resource.path);
if (!path.isAbsolute(requestedPath)) {
if (!input.workspaceRoot) {
return yield* new AssetWorkspaceContextNotFoundError({ resource: input.resource });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ import * as EffectAcpErrors from "effect-acp/errors";
import type * as EffectAcpProtocol from "effect-acp/protocol";
import type * as EffectAcpSchema from "effect-acp/compat";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions";
import * as AcpSessionRuntime from "@t3tools/provider-acp/server/AcpSessionRuntime";
import {
Expand Down Expand Up @@ -94,7 +94,7 @@ import {

const DEFAULT_GROK_SETTINGS = Schema.decodeSync(GrokSettings)({});

const layerHost = layerTestProviderHost().pipe(Layer.provide(NodeServices.layer));
const layerHost = TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer));

const layerTest = Layer.mergeAll(
NodeServices.layer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import * as EffectAcpErrors from "effect-acp/errors";

import * as ProviderHost from "@t3tools/provider-core/server/ProviderHost";
import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions";
import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as ServerSettings from "../../serverSettings.ts";
import type {
AcpRegistryAvailableCommands,
Expand Down Expand Up @@ -44,7 +44,7 @@ const decodeAcpRegistryAdapterSettings = Schema.decodeUnknownEffect(
AcpRegistryAdapterV2Driver.configSchema,
);

const layerHost = layerTestProviderHost().pipe(Layer.provide(NodeServices.layer));
const layerHost = TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer));

const layerRegistry = Layer.succeed(
HttpClient.HttpClient,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as Path from "effect/Path";
import * as Schema from "effect/Schema";
import { ChildProcessSpawner } from "effect/process";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
import * as ProviderAdapterRegistry from "../ProviderAdapterRegistry.ts";
import type { ProviderReplayGate } from "@t3tools/provider-testing/replayGate";
Expand All @@ -35,7 +35,7 @@ function layerAcpRegistryProviderAdapterRegistryReplay(
transcript: AcpReplayTranscript,
options: { readonly replayGate?: ProviderReplayGate } = {},
) {
const layerHost = layerTestProviderHost().pipe(Layer.provide(NodeServices.layer));
const layerHost = TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer));

return ProviderAdapterRegistry.layerFromAdaptersEffect(
Effect.gen(function* () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import type * as EffectAcpSchema from "effect-acp/compat";

import * as ProviderHost from "@t3tools/provider-core/server/ProviderHost";
import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions";
import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import type * as AcpSessionRuntime from "@t3tools/provider-acp/server/AcpSessionRuntime";
import { makeAntigravityAcpRuntime } from "../../provider/acp/AntigravityAcpSupport.ts";
import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
Expand Down Expand Up @@ -131,7 +131,7 @@ const layerSession = Layer.mergeAll(
NodeServices.layer,
IdAllocator.layer,
McpProviderSessions.layer,
layerTestProviderHost().pipe(Layer.provide(NodeServices.layer)),
TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer)),
);

describe("AntigravityAdapterV2 client file system", () => {
Expand Down
4 changes: 2 additions & 2 deletions apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ import {
claudeRateLimitEventToUpdate,
type ClaudeScopedLimitNames,
} from "../../provider/claudeUsageLimits.ts";
import type { ServerProviderShape } from "@t3tools/provider-core/server/snapshot";
import type { ManagedServerProvider } from "@t3tools/provider-core/server/snapshot";
import { mergeProviderInstanceEnvironment } from "@t3tools/provider-core/server/instanceEnvironment";
import { T3_CODE_ORCHESTRATION_INSTRUCTIONS } from "@t3tools/provider-core/server/orchestrationInstructions";
import { buildRuntimeInstructions } from "@t3tools/provider-core/server/runtimeInstructions";
Expand Down Expand Up @@ -3018,7 +3018,7 @@ export interface ClaudeAdapterV2Options {
readonly idAllocator: IdAllocator.IdAllocatorV2["Service"];
readonly queryRunner: ClaudeAgentSdkQueryRunnerShape;
readonly scopedLimitNames?: Ref.Ref<ClaudeScopedLimitNames>;
readonly onUsageLimits?: ServerProviderShape["applyUsageLimits"];
readonly onUsageLimits?: ManagedServerProvider["applyUsageLimits"];
/** Sink for wake-turn continuation requests; defaults to dropping them. */
readonly continuationRequests?: {
readonly offer: (
Expand Down
4 changes: 2 additions & 2 deletions apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
completeCodexTurnTokenUsage,
type CodexTurnTokenUsageState,
} from "../../provider/CodexTurnTokenUsage.ts";
import type { ServerProviderShape } from "@t3tools/provider-core/server/snapshot";
import type { ManagedServerProvider } from "@t3tools/provider-core/server/snapshot";
import type { CodexEffectiveRuntime } from "../../provider/CodexManagedRuntime.ts";
import { buildCodexInitializeParams } from "../../provider/CodexProvider.ts";
import {
Expand Down Expand Up @@ -1646,7 +1646,7 @@ export interface CodexAdapterV2Options {
readonly settings: CodexSettings;
readonly environment: NodeJS.ProcessEnv;
readonly clientFactory: CodexAppServerClientFactoryShape;
readonly onUsageLimits?: ServerProviderShape["applyUsageLimits"];
readonly onUsageLimits?: ManagedServerProvider["applyUsageLimits"];
/**
* Resolves launch settings when each session opens, replacing `settings` and
* `environment`. Managed ChatGPT sign-in uses it to launch the T3-installed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import * as FileSystem from "effect/FileSystem";
import * as Layer from "effect/Layer";
import * as Schema from "effect/Schema";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
import { ProviderAdapterDriverCreateError } from "@t3tools/provider-core/server/adapterDriver";
import * as ProviderAdapterRegistry from "../ProviderAdapterRegistry.ts";
Expand Down Expand Up @@ -537,7 +537,7 @@ export function layer(
Layer.provide(
Layer.mergeAll(
layerCursorAgentSdkReplay(transcript, options),
layerTestProviderHost().pipe(Layer.provide(NodeServices.layer)),
TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer)),
layerHostEnvironment,
NodeServices.layer,
IdAllocator.layer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import * as Schema from "effect/Schema";
import { ChildProcessSpawner } from "effect/process";
import type * as EffectAcpSchema from "effect-acp/compat";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as ProjectStore from "../ProjectStore.ts";
import { buildInitialGrokProviderSnapshot } from "@t3tools/provider-grok/testing";
import type { ProviderInstance } from "@t3tools/provider-core/server/driver";
Expand Down Expand Up @@ -309,7 +309,7 @@ describe("Grok permission prompts", () => {
});

describe("Grok launch permission mode", () => {
const layerHost = layerTestProviderHost().pipe(Layer.provide(NodeServices.layer));
const layerHost = TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer));
const layerTest = Layer.mergeAll(
NodeServices.layer,
IdAllocator.layer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { ChildProcessSpawner } from "effect/process";
import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
import { resolveSelfInvocation } from "@t3tools/shared/nodeRuntime";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import { GROK_ACP_CANCEL_META, GROK_ACP_INITIALIZE_META } from "@t3tools/provider-grok/testing";
import { makeXAiPromptCompletionRuntime } from "@t3tools/provider-grok/testing";
import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
Expand All @@ -36,7 +36,7 @@ function layerGrokProviderAdapterRegistryReplay(
transcript: AcpReplayTranscript,
options: { readonly replayGate?: ProviderReplayGate } = {},
) {
const layerHost = layerTestProviderHost().pipe(Layer.provide(NodeServices.layer));
const layerHost = TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer));

return ProviderAdapterRegistry.layerFromAdaptersEffect(
Effect.gen(function* () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as Schema from "effect/Schema";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import {
museInitializeParams,
museServeArgs,
Expand Down Expand Up @@ -460,7 +460,7 @@ export function layer(input: {
).pipe(
Layer.provide(
Layer.mergeAll(
layerTestProviderHost().pipe(Layer.provide(NodeServices.layer)),
TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer)),
NodeServices.layer,
IdAllocator.layer,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
import * as ProviderAdapterRegistry from "../ProviderAdapterRegistry.ts";
import type { ProviderReplayGate } from "@t3tools/provider-testing/replayGate";
import type { OrchestratorV2ProviderReplayHarness } from "../testkit/ProviderReplayHarness.ts";
import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import { OPENCODE_PROVIDER } from "@t3tools/provider-opencode/testing";
import {
OpenCodeReplayController,
Expand Down Expand Up @@ -267,7 +267,7 @@ const makeReplayAdapter = (
);
});

const layerReplayHost = layerTestProviderHost().pipe(Layer.provide(NodeServices.layer));
const layerReplayHost = TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer));

function layerRegistry(
transcript: OpenCode2ReplayTranscript,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as Schema from "effect/Schema";

import { OpenCodeAdapterV2Driver } from "@t3tools/provider-opencode/server";
import * as OpenCodeRuntime from "@t3tools/provider-opencode/server/OpenCodeRuntime";
import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as ProviderEventLoggers from "@t3tools/provider-core/server/ProviderEventLoggers";
import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
import { ProviderAdapterDriverCreateError } from "@t3tools/provider-core/server/adapterDriver";
Expand Down Expand Up @@ -448,7 +448,7 @@ function layerOpenCodeReplayRuntime(transcript: OpenCodeSdkReplayTranscript) {
detail: "OpenCode replay does not load skills.",
}),
),
} satisfies OpenCodeRuntime.OpenCodeRuntimeShape);
} satisfies OpenCodeRuntime.OpenCodeRuntime["Service"]);
}),
);
}
Expand All @@ -466,7 +466,7 @@ function layerOpenCodeProviderAdapterRegistryReplay(transcript: OpenCodeSdkRepla
Layer.provide(
Layer.mergeAll(
layerOpenCodeReplayRuntime(transcript),
layerTestProviderHost().pipe(Layer.provide(NodeServices.layer)),
TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer)),
NodeServices.layer,
IdAllocator.layer,
Layer.succeed(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import * as Sink from "effect/Sink";
import * as Stream from "effect/Stream";
import { ChildProcess, ChildProcessSpawner } from "effect/process";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as IdAllocator from "@t3tools/provider-core/server/IdAllocator";
import { ProviderAdapterDriverCreateError } from "@t3tools/provider-core/server/adapterDriver";
import * as ProviderAdapterRegistry from "../ProviderAdapterRegistry.ts";
Expand Down Expand Up @@ -425,7 +425,7 @@ export function layer<E, R>(input: {
Layer.provide(input.spawner),
Layer.provide(
Layer.mergeAll(
layerTestProviderHost().pipe(Layer.provide(NodeServices.layer)),
TestProviderHost.layer().pipe(Layer.provide(NodeServices.layer)),
NodeServices.layer,
IdAllocator.layer,
),
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/provider/CodexProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -716,7 +716,7 @@ export const checkCodexProviderStatus = Effect.fn("checkCodexProviderStatus")(fu
// NOTE: the singleton `CodexProviderLive` Layer has been removed as part of
// the per-instance-driver refactor. `CodexDriver.create()` builds a managed
// snapshot per instance (each with its own `CodexSettings`) and hands the
// resulting `ServerProviderShape` back as `ProviderInstance.snapshot`.
// resulting `ManagedServerProvider` back as `ProviderInstance.snapshot`.
//
// The `makePendingCodexProvider` and `checkCodexProviderStatus` helpers are
// re-exported for use by `CodexDriver`.
Expand Down
2 changes: 1 addition & 1 deletion apps/server/src/provider/Drivers/CodexDriver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* A driver is a plain value (not a Context.Service) whose `create()` returns
* one `ProviderInstance` bundling:
* - `snapshot` — the live `ServerProviderShape` for this instance;
* - `snapshot` — the live `ManagedServerProvider` for this instance;
* - `adapter` — the Codex session/turn/approval runtime;
* - `textGeneration` — commit/PR/branch/title generation via `codex exec`.
*
Expand Down
4 changes: 2 additions & 2 deletions apps/server/src/provider/ProviderRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
*
* Historically this Layer composed four per-kind Live Layers
* (`CodexProviderLive`, `ClaudeProviderLive`, …) that each exposed a
* `ServerProviderShape`. Those Lives were deleted during the driver /
* instance refactor — every driver now carries its `snapshot: ServerProviderShape`
* `ManagedServerProvider`. Those Lives were deleted during the driver /
* instance refactor — every driver now carries its `snapshot: ManagedServerProvider`
* bundled onto the `ProviderInstance` the registry produces.
*
* Each configured instance (including multi-instance setups like
Expand Down
6 changes: 3 additions & 3 deletions apps/server/src/provider/builtInProviderCatalog.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { ProviderDriverKind, ProviderInstanceId, ServerProvider } from "@t3tools/contracts";
import type * as Stream from "effect/Stream";
import type { ServerProviderShape } from "@t3tools/provider-core/server/snapshot";
import type { ManagedServerProvider } from "@t3tools/provider-core/server/snapshot";

export type ProviderSnapshotSource = {
/**
Expand All @@ -11,7 +11,7 @@ export type ProviderSnapshotSource = {
readonly instanceId: ProviderInstanceId;
/** Driver implementation kind. */
readonly driverKind: ProviderDriverKind;
readonly getSnapshot: ServerProviderShape["getSnapshot"];
readonly refresh: ServerProviderShape["refresh"];
readonly getSnapshot: ManagedServerProvider["getSnapshot"];
readonly refresh: ManagedServerProvider["refresh"];
readonly streamChanges: Stream.Stream<ServerProvider>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import {
} from "@t3tools/contracts";

import * as ServerConfig from "../config.ts";
import { expandHomePathWith } from "@t3tools/provider-core/server/pathExpansion";
import { expandHomePath } from "@t3tools/provider-core/server/pathExpansion";
import {
parseGitCloneProgressLine,
type GitCloneProgressLine,
Expand Down Expand Up @@ -213,7 +213,7 @@ export const make = Effect.gen(function* () {
});
}

return path.resolve(expandHomePathWith(trimmed, path));
return path.resolve(expandHomePath(trimmed));
},
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import { ProviderInstanceId } from "@t3tools/contracts";
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";

import { layerTestProviderHost } from "@t3tools/provider-testing/host";
import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost";
import * as OpenCode2AdapterV2Testkit from "../orchestration-v2/Adapters/OpenCode2AdapterV2.testkit.ts";
import * as OpenCode2Server from "@t3tools/provider-opencode/server/v2/OpenCode2Server";
import * as OpenCode2TextGeneration from "@t3tools/provider-opencode/server/v2/textGeneration";
import { OPENCODE2_TITLE_GENERATION } from "./OpenCode2TextGeneration.fixture.ts";

const layer = layerTestProviderHost().pipe(Layer.provideMerge(NodeServices.layer));
const layer = TestProviderHost.layer().pipe(Layer.provideMerge(NodeServices.layer));

it.layer(layer)("OpenCode2TextGeneration", (it) => {
it.effect("generates a title in a temporary session on the free tier and removes it", () =>
Expand Down
6 changes: 3 additions & 3 deletions apps/server/src/workspace/WorkspaceEntries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
import { isExplicitRelativePath, isWindowsAbsolutePath } from "@t3tools/shared/path";
import { normalizeSearchQuery } from "@t3tools/shared/searchRanking";

import { expandHomePathWith } from "@t3tools/provider-core/server/pathExpansion";
import { expandHomePath } from "@t3tools/provider-core/server/pathExpansion";
import * as VcsProcess from "../vcs/VcsProcess.ts";
import * as WorkspacePaths from "./WorkspacePaths.ts";
import * as WorkspaceSearchIndex from "./WorkspaceSearchIndex.ts";
Expand Down Expand Up @@ -120,15 +120,15 @@ const resolveBrowseTarget = Effect.fn("WorkspaceEntries.resolveBrowseTarget")(fu
}

if (!isExplicitRelativePath(input.partialPath)) {
return path.resolve(expandHomePathWith(input.partialPath, path));
return path.resolve(expandHomePath(input.partialPath));
}

if (!input.cwd) {
return yield* new WorkspaceEntriesCurrentProjectRequiredError({
partialPath: input.partialPath,
});
}
return path.resolve(expandHomePathWith(input.cwd, path), input.partialPath);
return path.resolve(expandHomePath(input.cwd), input.partialPath);
});

/** @public Service construction is part of the canonical Effect module API. */
Expand Down
Loading
Loading