diff --git a/apps/server/src/mcp/McpHttpServer.ts b/apps/server/src/mcp/McpHttpServer.ts index 72a2c32e37ef..f9f1a076c85e 100644 --- a/apps/server/src/mcp/McpHttpServer.ts +++ b/apps/server/src/mcp/McpHttpServer.ts @@ -606,7 +606,7 @@ export const PreviewToolkitRegistrationLive = Layer.mergeAll( PreviewSnapshotRegistrationLive, ); -export const ThreadsToolkitRegistrationLive = McpServer.toolkit(ThreadsToolkit).pipe( +const ThreadsToolkitRegistrationLive = McpServer.toolkit(ThreadsToolkit).pipe( Layer.provide(ThreadsToolkitHandlersLive), ); diff --git a/apps/server/src/mcp/toolkits/threads/tools.ts b/apps/server/src/mcp/toolkits/threads/tools.ts index 46fc1a16e244..6076d4c9eeea 100644 --- a/apps/server/src/mcp/toolkits/threads/tools.ts +++ b/apps/server/src/mcp/toolkits/threads/tools.ts @@ -28,7 +28,7 @@ const dependencies = [ GitWorkflowService.GitWorkflowService, ]; -export const SpawnThreadTool = Tool.make("spawn_thread", { +const SpawnThreadTool = Tool.make("spawn_thread", { description: `Spawn a subagent as a new thread in the current project and start it on the given prompt. The subagent runs independently with its own context; use await_thread to collect its result. Children default to an isolated git worktree (envMode "worktree"); pass envMode "local" for read-only tasks that can share the current checkout. Provider, model, and runtime mode default to this thread's. Limits: subagents may spawn their own subagents up to ${SUBAGENT_MAX_DEPTH} levels deep, and at most ${SUBAGENT_MAX_RUNNING_PER_TREE} subagents may run at once across a tree.`, parameters: SpawnThreadInput, success: SpawnThreadResult, @@ -39,7 +39,7 @@ export const SpawnThreadTool = Tool.make("spawn_thread", { .annotate(Tool.Destructive, false) .annotate(Tool.OpenWorld, false); -export const AwaitThreadTool = Tool.make("await_thread", { +const AwaitThreadTool = Tool.make("await_thread", { description: `Wait for a spawned subagent thread to finish its current turn and return its final message. Only threads spawned by this thread can be awaited. Waits up to timeoutSeconds (default ${SUBAGENT_AWAIT_DEFAULT_TIMEOUT_SECONDS}); on timeout the subagent keeps running and can be awaited again.`, parameters: AwaitThreadInput, success: AwaitThreadResult, diff --git a/apps/server/src/persistence/ForkMigrations.ts b/apps/server/src/persistence/ForkMigrations.ts index d0e02473762c..ca9b80a542d4 100644 --- a/apps/server/src/persistence/ForkMigrations.ts +++ b/apps/server/src/persistence/ForkMigrations.ts @@ -1,5 +1,5 @@ /** - * ForkMigrationsLive - fork-only migration runner with its own ledger + * Fork-only migration runner with its own ledger * * Fork-only schema (TrogonStack additions that do not exist upstream) lives * in this second migration chain, tracked in its own migrations table @@ -18,7 +18,6 @@ */ import * as Migrator from "effect/unstable/sql/Migrator"; -import * as Layer from "effect/Layer"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; import * as SqlClient from "effect/unstable/sql/SqlClient"; @@ -26,11 +25,11 @@ import * as SqlClient from "effect/unstable/sql/SqlClient"; import { migrationManifest } from "./Migrations.ts"; import Migration0001 from "./Migrations/fork/001_ProjectionThreadParent.ts"; -export const FORK_MIGRATIONS_TABLE = "trogonstack_fork_migrations"; +const FORK_MIGRATIONS_TABLE = "trogonstack_fork_migrations"; export const forkMigrationEntries = [[1, "ProjectionThreadParent", Migration0001]] as const; -export const makeForkMigrationLoader = (throughId?: number) => +const makeForkMigrationLoader = (throughId?: number) => Migrator.fromRecord( Object.fromEntries( forkMigrationEntries @@ -195,8 +194,3 @@ export const realignSharedMigrationLedger = Effect.fn("realignSharedMigrationLed yield* Effect.log("Realigned shared migration ledger to upstream numbering"); }); - -/** - * Layer that runs fork migrations when the layer is built. - */ -export const ForkMigrationsLive = Layer.effectDiscard(runForkMigrations()); diff --git a/apps/server/src/provider/Layers/ClaudeProvider.ts b/apps/server/src/provider/Layers/ClaudeProvider.ts index a554ec28f209..37b2ad8004cf 100644 --- a/apps/server/src/provider/Layers/ClaudeProvider.ts +++ b/apps/server/src/provider/Layers/ClaudeProvider.ts @@ -183,7 +183,7 @@ function apiProviderAuthMetadata( * `apiKeySource` is only ever set when a key was actually found, so it has no * "no key" sentinel to confuse with one. */ -export function claudeAuthStatus( +function claudeAuthStatus( capabilities: Pick< ClaudeCapabilitiesProbe, "email" | "subscriptionType" | "tokenSource" | "apiKeySource" | "apiProvider" diff --git a/apps/server/src/provider/ProviderSecretReference.ts b/apps/server/src/provider/ProviderSecretReference.ts index 4b45e843517e..f9d69301a858 100644 --- a/apps/server/src/provider/ProviderSecretReference.ts +++ b/apps/server/src/provider/ProviderSecretReference.ts @@ -16,7 +16,7 @@ import type { ProviderInstanceEnvironment } from "@t3tools/contracts"; /** URI scheme 1Password uses for secret references; `op read` consumes these. */ -export const PROVIDER_SECRET_REFERENCE_PREFIX = "op://"; +const PROVIDER_SECRET_REFERENCE_PREFIX = "op://"; /** * The secret reference an environment value names, or `undefined` when the diff --git a/apps/server/src/provider/Services/ProviderSecretResolver.ts b/apps/server/src/provider/Services/ProviderSecretResolver.ts index 2e045769c749..75ddd2956a98 100644 --- a/apps/server/src/provider/Services/ProviderSecretResolver.ts +++ b/apps/server/src/provider/Services/ProviderSecretResolver.ts @@ -71,7 +71,7 @@ export class ProviderSecretResolver extends Context.Service< * they are testing resolution itself: an `op://` value stays an `op://` * value, and the provider reports whatever the CLI makes of it. */ -export const passthroughProviderSecretResolver: ProviderSecretResolverShape = { +const passthroughProviderSecretResolver: ProviderSecretResolverShape = { resolve: (environment) => Effect.succeed({ variables: environment, unresolved: [] }), prime: () => Effect.void, invalidate: Effect.void, diff --git a/apps/server/src/server.ts b/apps/server/src/server.ts index 400ad9d982b8..b1c7e720bedf 100644 --- a/apps/server/src/server.ts +++ b/apps/server/src/server.ts @@ -647,7 +647,7 @@ const _assertMcpToolkitDependenciesExposed: [McpToolkitDependency] extends [ ? true : never = true; -export const makeRoutesLayer = makeRoutesLayerWith(McpToolkitDependenciesLive); +const makeRoutesLayer = makeRoutesLayerWith(McpToolkitDependenciesLive); const makeServerLayer = Layer.unwrap( Effect.gen(function* () { diff --git a/apps/web/src/components/ChatView.logic.ts b/apps/web/src/components/ChatView.logic.ts index 156fca2f55fa..837b300c8498 100644 --- a/apps/web/src/components/ChatView.logic.ts +++ b/apps/web/src/components/ChatView.logic.ts @@ -554,7 +554,7 @@ export function buildThreadTurnInterruptInput(thread: Pick, limit = BACKGROUND_WORK_LABEL_LIMIT, ): string | null { diff --git a/apps/web/src/observability/clientTracing.ts b/apps/web/src/observability/clientTracing.ts index 02d58aee881f..cd3d87cb1732 100644 --- a/apps/web/src/observability/clientTracing.ts +++ b/apps/web/src/observability/clientTracing.ts @@ -121,17 +121,3 @@ async function disposeTracerRuntime( await settleAsyncResult(() => runtime.runPromiseExit(Scope.close(scope, Exit.void))); runtime.dispose(); } - -export async function __resetClientTracingForTests() { - configurationGeneration++; - activeConfigKey = null; - setClientTracerDelegate(null); - pendingConfiguration = Promise.resolve(); - - const runtime = activeRuntime; - const scope = activeScope; - activeRuntime = null; - activeScope = null; - - await disposeTracerRuntime(runtime, scope); -}