87 lines · 2.5 KB · TypeScript
RawDownload
import { describe, expect, it } from "@effect/vitest"; import type {  EnvironmentId,  OrchestrationV2ThreadShell,  Project,  ThreadId,} from "@t3tools/contracts";import { ProviderInstanceId, RuntimeRequestId } from "@t3tools/contracts";import * as DateTime from "effect/DateTime"; import { projectThreadAwarenessV2 } from "./agentAwareness.ts"; const NOW = "2026-05-22T12:00:00.000Z"; const project = {  title: "t3code",} satisfies Pick<Project, "title">; describe("projectThreadAwarenessV2", () => {  const updatedAt = DateTime.makeUnsafe(NOW);  const v2Thread = (    overrides: Partial<      Pick<OrchestrationV2ThreadShell, "activityRunStatus" | "status" | "pendingRuntimeRequest">    > = {},  ) => ({    id: "thread-2" as ThreadId,    title: "Integrate orchestration",    modelSelection: { instanceId: ProviderInstanceId.make("codex"), model: "gpt-5.4" },    status: "running" as const,    pendingRuntimeRequest: null,    updatedAt,    ...overrides,  });   it("projects V2 run state", () => {    expect(      projectThreadAwarenessV2({        environmentId: "env-1" as EnvironmentId,        project,        thread: v2Thread(),      }),    ).toMatchObject({ phase: "running", headline: "Agent is working" });  });   it("keeps an older activity run visible over a newer cancelled run", () => {    expect(      projectThreadAwarenessV2({        environmentId: "env-1" as EnvironmentId,        project,        thread: v2Thread({ status: "cancelled", activityRunStatus: "running" }),      }),    ).toMatchObject({ phase: "running", headline: "Agent is working" });  });   it("prioritizes V2 user-input requests", () => {    expect(      projectThreadAwarenessV2({        environmentId: "env-1" as EnvironmentId,        project,        thread: v2Thread({          pendingRuntimeRequest: {            id: RuntimeRequestId.make("request-1"),            kind: "user_input",            createdAt: updatedAt,          },        }),      }),    ).toMatchObject({ phase: "waiting_for_input", headline: "Waiting for input" });  });   it("does not present authentication refreshes as user approvals", () => {    expect(      projectThreadAwarenessV2({        environmentId: "env-1" as EnvironmentId,        project,        thread: v2Thread({          pendingRuntimeRequest: {            id: RuntimeRequestId.make("request-auth-refresh"),            kind: "auth_refresh",            createdAt: updatedAt,          },        }),      }),    ).toMatchObject({ phase: "running", headline: "Agent is working" });  });});