310 lines · 9.2 KB · TypeScript
RawDownload
import { assert, it } from "@effect/vitest";import {  CommandId,  type OrchestrationV2ProviderCapabilities,  ProviderInstanceId,  ThreadId,} from "@t3tools/contracts";import * as Effect from "effect/Effect"; import { CodexProviderCapabilitiesV2 } from "./Adapters/CodexAdapterV2.ts";import { CursorProviderCapabilitiesV2 } from "./Adapters/CursorAdapterV2.ts";import { GrokProviderCapabilitiesV2 } from "./Adapters/GrokAdapterV2.ts";import {  CommandPolicyCapabilityUnsupportedError,  CommandPolicyV2,  layer as commandPolicyLayer,} from "./CommandPolicy.ts"; const commandId = CommandId.make("command-policy-test");const threadId = ThreadId.make("command-policy-thread"); const baseCapabilities: OrchestrationV2ProviderCapabilities = CodexProviderCapabilitiesV2; function capabilities(  override: (current: OrchestrationV2ProviderCapabilities) => OrchestrationV2ProviderCapabilities,): OrchestrationV2ProviderCapabilities {  return override(baseCapabilities);} const layer = it.layer(commandPolicyLayer); layer("CommandPolicyV2", (it) => {  it.effect("prefers direct active steering when the provider supports it", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideSteeringExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("codex"),        capabilities: baseCapabilities,      });       assert.equal(result, "active_steering");    }),  );   it.effect("uses interrupt-and-restart steering when direct steering is unavailable", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideSteeringExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("codex"),        capabilities: capabilities((current) => ({          ...current,          turns: {            ...current.turns,            supportsActiveSteering: false,            supportsInterrupt: true,            supportsSteeringByInterruptRestart: true,          },        })),      });       assert.equal(result, "interrupt_restart");    }),  );   it.effect("uses interrupt-and-restart steering for Grok ACP", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideSteeringExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("grok"),        capabilities: GrokProviderCapabilitiesV2,      });       assert.equal(result, "interrupt_restart");    }),  );   it.effect("honors an explicit interrupt-and-restart request", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideSteeringExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("codex"),        capabilities: CodexProviderCapabilitiesV2,        forceRestart: true,      });       assert.equal(result, "interrupt_restart");    }),  );   it.effect("returns typed capability errors for unsupported active steering", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const error = yield* policy        .decideSteeringExecution({          commandId,          threadId,          providerInstanceId: ProviderInstanceId.make("codex"),          capabilities: capabilities((current) => ({            ...current,            turns: {              ...current.turns,              supportsActiveSteering: false,              supportsInterrupt: false,              supportsSteeringByInterruptRestart: false,            },          })),        })        .pipe(Effect.flip);       assert.instanceOf(error, CommandPolicyCapabilityUnsupportedError);      assert.equal(error.capability, "active_steering");    }),  );   it.effect("guards native fork behind fork and identity capabilities", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const error = yield* policy        .ensureNativeFork({          commandId,          threadId,          providerInstanceId: ProviderInstanceId.make("codex"),          fromSpecificTurn: true,          capabilities: capabilities((current) => ({            ...current,            identity: {              ...current.identity,              nativeThreadIds: "weak",            },          })),        })        .pipe(Effect.flip);       assert.instanceOf(error, CommandPolicyCapabilityUnsupportedError);      assert.equal(error.capability, "native_fork");    }),  );   it.effect("uses a native fork when the provider supports the requested source point", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideForkExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("codex"),        capabilities: CodexProviderCapabilitiesV2,        sameProvider: true,        hasStrongNativeSource: true,        fromSpecificTurn: true,      });       assert.equal(result, "native_fork");    }),  );   it.effect("falls back to portable context when Cursor cannot fork natively", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideForkExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("cursor"),        capabilities: CursorProviderCapabilitiesV2,        sameProvider: true,        hasStrongNativeSource: true,        fromSpecificTurn: true,      });       assert.equal(result, "portable_context");    }),  );   it.effect("falls back to portable context when Grok ACP cannot fork natively", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const result = yield* policy.decideForkExecution({        commandId,        threadId,        providerInstanceId: ProviderInstanceId.make("grok"),        capabilities: GrokProviderCapabilitiesV2,        sameProvider: true,        hasStrongNativeSource: true,        fromSpecificTurn: true,      });       assert.equal(result, "portable_context");    }),  );   it.effect("returns a typed error when neither native nor portable fork is available", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const error = yield* policy        .decideForkExecution({          commandId,          threadId,          providerInstanceId: ProviderInstanceId.make("cursor"),          capabilities: capabilities((current) => ({            ...current,            threads: {              ...current.threads,              canForkThread: false,            },            context: {              ...current.context,              canConsumeHandoffSummaries: false,            },          })),          sameProvider: true,          hasStrongNativeSource: true,          fromSpecificTurn: true,        })        .pipe(Effect.flip);       assert.instanceOf(error, CommandPolicyCapabilityUnsupportedError);      assert.equal(error.capability, "context_handoff");    }),  );   it.effect("guards rollback behind provider rollback snapshot support", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const error = yield* policy        .ensureRollback({          commandId,          threadId,          providerInstanceId: ProviderInstanceId.make("codex"),          capabilities: capabilities((current) => ({            ...current,            checkpointing: {              ...current.checkpointing,              providerRollbackReturnsSnapshot: false,            },          })),        })        .pipe(Effect.flip);       assert.instanceOf(error, CommandPolicyCapabilityUnsupportedError);      assert.equal(error.capability, "rollback_snapshot");    }),  );   it.effect("guards fork-delta handoff behind context handoff capabilities", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const error = yield* policy        .ensureContextHandoff({          commandId,          threadId,          providerInstanceId: ProviderInstanceId.make("codex"),          strategy: "fork_delta_context",          capabilities: capabilities((current) => ({            ...current,            context: {              ...current.context,              supportsDeltaHandoff: false,            },          })),        })        .pipe(Effect.flip);       assert.instanceOf(error, CommandPolicyCapabilityUnsupportedError);      assert.equal(error.capability, "context_handoff");    }),  );   it.effect("guards queued turns behind queued-message support", () =>    Effect.gen(function* () {      const policy = yield* CommandPolicyV2;       const error = yield* policy        .ensureQueuedMessages({          commandId,          threadId,          providerInstanceId: ProviderInstanceId.make("codex"),          capabilities: capabilities((current) => ({            ...current,            turns: {              ...current.turns,              supportsQueuedMessages: false,            },          })),        })        .pipe(Effect.flip);       assert.instanceOf(error, CommandPolicyCapabilityUnsupportedError);      assert.equal(error.capability, "queued_messages");    }),  );});