diff --git a/.gitignore b/.gitignore index 09d1844..6a00e2f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ packages/workflow-template-develop/develop.esm.js .claude tmp.worktrees/ .worktrees/ +false/ diff --git a/biome.json b/biome.json index 4cc600d..4ea0a56 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.14/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json", "files": { "includes": [ "**", @@ -9,7 +9,9 @@ "!**/legacy-packages", "!scripts", "!packages/workflow/workflow", - "!xiaoju/scripts/bundle.ts" + "!xiaoju/scripts/bundle.ts", + "!false", + "!.pnpm-approved-builds.json" ] }, "assist": { "actions": { "source": { "organizeImports": "on" } } }, diff --git a/package.json b/package.json index 4f99192..13c6fb1 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,11 @@ "scripts": { "uwf": "pnpm tsx packages/cli/src/cli.ts", "prepublishOnly": "echo 'Use pnpm run release instead' && exit 1", - "build": "npx tsc --build", - "check": "npx tsc --build && biome check . && bash scripts/lint-log-tags.sh", + "build": "proman build", + "check": "proman check", "typecheck": "npx tsc --build", - "format": "biome format --write .", - "test": "pnpm -r run test", + "format": "proman format", + "test": "proman test", "test:ci": "pnpm -r run test:ci", "changeset": "npx changeset", "version": "npx changeset version", @@ -21,6 +21,7 @@ "@agentclientprotocol/sdk": "^0.22.1", "@biomejs/biome": "^2.4.14", "@changesets/cli": "^2.31.0", + "@shazhou/proman": "^0.5.1", "@types/node": "^25.7.0", "@types/xxhashjs": "^0.2.4", "@united-workforce/agent-hermes": "workspace:*", diff --git a/packages/agent-builtin/__tests__/llm-parse.test.ts b/packages/agent-builtin/__tests__/llm-parse.test.ts index b391136..5b5e2f1 100644 --- a/packages/agent-builtin/__tests__/llm-parse.test.ts +++ b/packages/agent-builtin/__tests__/llm-parse.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; import type { LlmToolCall } from "../src/llm/types.js"; /** Mirror OpenAI response shape for parser coverage via chatCompletionWithTools integration later. */ diff --git a/packages/agent-builtin/__tests__/loop.test.ts b/packages/agent-builtin/__tests__/loop.test.ts index 09b20ce..3b571c8 100644 --- a/packages/agent-builtin/__tests__/loop.test.ts +++ b/packages/agent-builtin/__tests__/loop.test.ts @@ -1,12 +1,15 @@ -import { beforeEach, describe, expect, test, vi } from 'vitest'; -const { mockChatCompletionWithTools, mockAppendSessionTurn, mockExecuteBuiltinTool } = vi.hoisted(() => ({ - mockChatCompletionWithTools: vi.fn(async () => ({ - content: "---\nstatus: done\n---", - toolCalls: [], - })), - mockAppendSessionTurn: vi.fn(async () => {}), - mockExecuteBuiltinTool: vi.fn(async () => "tool-result"), -})); +import { beforeEach, describe, expect, test, vi } from "vitest"; + +const { mockChatCompletionWithTools, mockAppendSessionTurn, mockExecuteBuiltinTool } = vi.hoisted( + () => ({ + mockChatCompletionWithTools: vi.fn(async () => ({ + content: "---\nstatus: done\n---", + toolCalls: [], + })), + mockAppendSessionTurn: vi.fn(async () => {}), + mockExecuteBuiltinTool: vi.fn(async () => "tool-result"), + }), +); vi.mock("../src/llm/index.js", () => ({ chatCompletionWithTools: mockChatCompletionWithTools, diff --git a/packages/agent-builtin/__tests__/path.test.ts b/packages/agent-builtin/__tests__/path.test.ts index dd14ee5..b1c133d 100644 --- a/packages/agent-builtin/__tests__/path.test.ts +++ b/packages/agent-builtin/__tests__/path.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import { resolve } from "node:path"; +import { describe, expect, test } from "vitest"; import { resolvePath } from "../src/tools/path.js"; describe("resolvePath", () => { diff --git a/packages/agent-builtin/__tests__/prompt.test.ts b/packages/agent-builtin/__tests__/prompt.test.ts index 2adffce..01d228a 100644 --- a/packages/agent-builtin/__tests__/prompt.test.ts +++ b/packages/agent-builtin/__tests__/prompt.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import type { AgentContext } from "@united-workforce/util-agent"; +import { describe, expect, test } from "vitest"; import { buildBuiltinMessages } from "../src/prompt.js"; diff --git a/packages/agent-claude-code/__tests__/claude-code.test.ts b/packages/agent-claude-code/__tests__/claude-code.test.ts index 1efd2bb..6243255 100644 --- a/packages/agent-claude-code/__tests__/claude-code.test.ts +++ b/packages/agent-claude-code/__tests__/claude-code.test.ts @@ -1,6 +1,6 @@ -import { describe, expect, test } from 'vitest'; import type { ThreadId } from "@united-workforce/protocol"; import type { AgentContext } from "@united-workforce/util-agent"; +import { describe, expect, test } from "vitest"; import { buildClaudeCodePrompt } from "../src/claude-code.js"; function makeCtx(overrides: Partial = {}): AgentContext { diff --git a/packages/agent-claude-code/__tests__/session-detail.test.ts b/packages/agent-claude-code/__tests__/session-detail.test.ts index 4806321..abfbeed 100644 --- a/packages/agent-claude-code/__tests__/session-detail.test.ts +++ b/packages/agent-claude-code/__tests__/session-detail.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import { createMemoryStore, walk } from "@ocas/core"; +import { describe, expect, test } from "vitest"; import { parseClaudeCodeJsonOutput, parseClaudeCodeStreamOutput, diff --git a/packages/agent-hermes/__tests__/acp-client.test.ts b/packages/agent-hermes/__tests__/acp-client.test.ts index 5667d3b..b62a9ab 100644 --- a/packages/agent-hermes/__tests__/acp-client.test.ts +++ b/packages/agent-hermes/__tests__/acp-client.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { HermesAcpClient } from "../src/acp-client.js"; describe("handleSessionUpdate — text extraction", () => { diff --git a/packages/agent-hermes/__tests__/hermes-prompt.test.ts b/packages/agent-hermes/__tests__/hermes-prompt.test.ts index c52bab7..979eee7 100644 --- a/packages/agent-hermes/__tests__/hermes-prompt.test.ts +++ b/packages/agent-hermes/__tests__/hermes-prompt.test.ts @@ -1,6 +1,6 @@ -import { describe, expect, test } from 'vitest'; import type { ThreadId } from "@united-workforce/protocol"; import type { AgentContext } from "@united-workforce/util-agent"; +import { describe, expect, test } from "vitest"; import { buildHermesPrompt } from "../src/hermes.js"; function makeCtx(overrides: Partial = {}): AgentContext { diff --git a/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts b/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts index 825be29..e8b8786 100644 --- a/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts +++ b/packages/agent-hermes/__tests__/integration/acp-client.integration.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { HermesAcpClient } from "../../src/acp-client.js"; const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; diff --git a/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts b/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts index b11e3e6..583572a 100644 --- a/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts +++ b/packages/agent-hermes/__tests__/integration/resume-e2e.integration.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, it } from 'vitest'; +import { afterEach, describe, expect, it } from "vitest"; import { HermesAcpClient } from "../../src/acp-client.js"; /** diff --git a/packages/agent-hermes/__tests__/issue-551.test.ts b/packages/agent-hermes/__tests__/issue-551.test.ts index 761b656..c5395e2 100644 --- a/packages/agent-hermes/__tests__/issue-551.test.ts +++ b/packages/agent-hermes/__tests__/issue-551.test.ts @@ -1,8 +1,7 @@ -import { describe, expect, test } from 'vitest'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; import { readFileSync } from "node:fs"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { describe, expect, test } from "vitest"; const PKG_ROOT = join(dirname(fileURLToPath(import.meta.url)), ".."); diff --git a/packages/agent-hermes/__tests__/session-detail.test.ts b/packages/agent-hermes/__tests__/session-detail.test.ts index 73633bd..45ef717 100644 --- a/packages/agent-hermes/__tests__/session-detail.test.ts +++ b/packages/agent-hermes/__tests__/session-detail.test.ts @@ -1,9 +1,9 @@ -import { describe, expect, test } from 'vitest'; import { mkdtemp, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { DatabaseSync } from "node:sqlite"; import { createMemoryStore, refs, validate, walk } from "@ocas/core"; +import { describe, expect, test } from "vitest"; import { computeDurationMs, diff --git a/packages/cli/src/__tests__/adapter-json-roundtrip.test.ts b/packages/cli/src/__tests__/adapter-json-roundtrip.test.ts index 43557a5..5dbcfe7 100644 --- a/packages/cli/src/__tests__/adapter-json-roundtrip.test.ts +++ b/packages/cli/src/__tests__/adapter-json-roundtrip.test.ts @@ -1,13 +1,12 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; import { execFileSync } from "node:child_process"; import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; import { putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef, StepNodePayload, ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { registerUwfSchemas } from "../schemas.js"; import { seedThreads } from "./thread-test-helpers.js"; diff --git a/packages/cli/src/__tests__/config.test.ts b/packages/cli/src/__tests__/config.test.ts index 00d7edc..6303aeb 100644 --- a/packages/cli/src/__tests__/config.test.ts +++ b/packages/cli/src/__tests__/config.test.ts @@ -1,7 +1,7 @@ -import { describe, expect, test } from 'vitest'; import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { describe, expect, test } from "vitest"; import { cmdConfigGet, cmdConfigList, diff --git a/packages/cli/src/__tests__/current-role.test.ts b/packages/cli/src/__tests__/current-role.test.ts index 29a3dde..8b69816 100644 --- a/packages/cli/src/__tests__/current-role.test.ts +++ b/packages/cli/src/__tests__/current-role.test.ts @@ -1,9 +1,9 @@ -import { describe, expect, test } from 'vitest'; import { mkdir, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { putSchema } from "@ocas/core"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { createMarker, deleteMarker } from "../background/index.js"; import { cmdThreadList, cmdThreadShow, cmdThreadStart } from "../commands/thread.js"; import { diff --git a/packages/cli/src/__tests__/include-tag.test.ts b/packages/cli/src/__tests__/include-tag.test.ts index 512ba11..a061c06 100644 --- a/packages/cli/src/__tests__/include-tag.test.ts +++ b/packages/cli/src/__tests__/include-tag.test.ts @@ -1,7 +1,7 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { parse } from "yaml"; import { createIncludeTag } from "../include.js"; diff --git a/packages/cli/src/__tests__/log.test.ts b/packages/cli/src/__tests__/log.test.ts index b79a889..48dbbe5 100644 --- a/packages/cli/src/__tests__/log.test.ts +++ b/packages/cli/src/__tests__/log.test.ts @@ -1,7 +1,7 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, readdir, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdLogClean, cmdLogList, cmdLogShow } from "../commands/log.js"; let storageRoot: string; diff --git a/packages/cli/src/__tests__/moderator-evaluate.test.ts b/packages/cli/src/__tests__/moderator-evaluate.test.ts index 120c75e..4499075 100644 --- a/packages/cli/src/__tests__/moderator-evaluate.test.ts +++ b/packages/cli/src/__tests__/moderator-evaluate.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import type { Target, WorkflowPayload } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { evaluate } from "../moderator/evaluate.js"; diff --git a/packages/cli/src/__tests__/prompt.test.ts b/packages/cli/src/__tests__/prompt.test.ts index fc4b4c4..5c90503 100644 --- a/packages/cli/src/__tests__/prompt.test.ts +++ b/packages/cli/src/__tests__/prompt.test.ts @@ -1,7 +1,7 @@ -import { describe, expect, test } from 'vitest'; import { execFileSync } from "node:child_process"; import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; +import { describe, expect, test } from "vitest"; const __dirname = dirname(fileURLToPath(import.meta.url)); diff --git a/packages/cli/src/__tests__/resolve-head-hash.test.ts b/packages/cli/src/__tests__/resolve-head-hash.test.ts index 44a8f4a..b5f68f1 100644 --- a/packages/cli/src/__tests__/resolve-head-hash.test.ts +++ b/packages/cli/src/__tests__/resolve-head-hash.test.ts @@ -1,8 +1,8 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { type CasRef, createThreadIndexEntry, type ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { resolveHeadHash } from "../commands/shared.js"; import { addHistoryEntry, createUwfStore, setThread } from "../store.js"; diff --git a/packages/cli/src/__tests__/setup-agent-discovery.test.ts b/packages/cli/src/__tests__/setup-agent-discovery.test.ts index bb41d9a..bb74a3d 100644 --- a/packages/cli/src/__tests__/setup-agent-discovery.test.ts +++ b/packages/cli/src/__tests__/setup-agent-discovery.test.ts @@ -1,8 +1,8 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'; import { readFileSync } from "node:fs"; import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { parse } from "yaml"; import { _agentNameFromBinary, _printAgentMenu, cmdSetup } from "../commands/setup.js"; @@ -80,7 +80,9 @@ describe("cmdSetup agent configuration", () => { }); test("defaults to hermes agent when no agent specified", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); const result = await cmdSetup(baseArgs()); @@ -91,7 +93,9 @@ describe("cmdSetup agent configuration", () => { }); test("writes specified agent as default", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); const result = await cmdSetup({ ...baseArgs(), agent: "claude-code" }); @@ -102,7 +106,9 @@ describe("cmdSetup agent configuration", () => { }); test("preserves existing agents when adding new one", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); // First setup with hermes await cmdSetup(baseArgs()); @@ -116,7 +122,9 @@ describe("cmdSetup agent configuration", () => { }); test("updates defaultAgent on re-run with different agent", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); await cmdSetup(baseArgs()); const config1 = parse(readFileSync(join(storageRoot, "config.yaml"), "utf8")); @@ -128,7 +136,9 @@ describe("cmdSetup agent configuration", () => { }); test("normalizes agent name with uwf- prefix to bare name", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); const result = await cmdSetup({ ...baseArgs(), agent: "uwf-hermes" }); @@ -141,7 +151,9 @@ describe("cmdSetup agent configuration", () => { }); test("normalizes uwf-claude-code to claude-code", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); const result = await cmdSetup({ ...baseArgs(), agent: "uwf-claude-code" }); diff --git a/packages/cli/src/__tests__/setup-complexity.test.ts b/packages/cli/src/__tests__/setup-complexity.test.ts index 26cd4d7..06f111d 100644 --- a/packages/cli/src/__tests__/setup-complexity.test.ts +++ b/packages/cli/src/__tests__/setup-complexity.test.ts @@ -1,7 +1,7 @@ -import { afterEach, describe, expect, test, vi } from 'vitest'; import { mkdirSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { afterEach, describe, expect, test, vi } from "vitest"; import { _discoverAgents, _isBackspace, diff --git a/packages/cli/src/__tests__/setup-validate.test.ts b/packages/cli/src/__tests__/setup-validate.test.ts index 46e1b1e..0271a4a 100644 --- a/packages/cli/src/__tests__/setup-validate.test.ts +++ b/packages/cli/src/__tests__/setup-validate.test.ts @@ -1,7 +1,7 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'; import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { cmdSetup, validateModel } from "../commands/setup.js"; describe("validateModel", () => { @@ -14,9 +14,9 @@ describe("validateModel", () => { }); test("success path — returns ok on 200", async () => { - const mockFetch = vi.spyOn(globalThis, "fetch").mockResolvedValue( - new Response(JSON.stringify({}), { status: 200 }), - ); + const mockFetch = vi + .spyOn(globalThis, "fetch") + .mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); const result = await validateModel(BASE_URL, API_KEY, MODEL); @@ -86,9 +86,9 @@ describe("validateModel", () => { }); test("request body correctness", async () => { - const mockFetch = vi.spyOn(globalThis, "fetch").mockResolvedValue( - new Response(JSON.stringify({}), { status: 200 }), - ); + const mockFetch = vi + .spyOn(globalThis, "fetch") + .mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); await validateModel(BASE_URL, API_KEY, "my-special-model"); @@ -122,7 +122,9 @@ describe("cmdSetup with validation", () => { }); test("includes validation result on success", async () => { - vi.spyOn(globalThis, "fetch").mockResolvedValue(new Response(JSON.stringify({}), { status: 200 })); + vi.spyOn(globalThis, "fetch").mockResolvedValue( + new Response(JSON.stringify({}), { status: 200 }), + ); const result = await cmdSetup(setupArgs()); diff --git a/packages/cli/src/__tests__/solve-issue-tea-worktree.test.ts b/packages/cli/src/__tests__/solve-issue-tea-worktree.test.ts index 2a33051..4161de8 100644 --- a/packages/cli/src/__tests__/solve-issue-tea-worktree.test.ts +++ b/packages/cli/src/__tests__/solve-issue-tea-worktree.test.ts @@ -1,9 +1,8 @@ -import { describe, expect, test } from 'vitest'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; import { readFile } from "node:fs/promises"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; import type { WorkflowPayload } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { parse } from "yaml"; /** diff --git a/packages/cli/src/__tests__/spawn-agent-json.test.ts b/packages/cli/src/__tests__/spawn-agent-json.test.ts index 0eff30f..1a0c261 100644 --- a/packages/cli/src/__tests__/spawn-agent-json.test.ts +++ b/packages/cli/src/__tests__/spawn-agent-json.test.ts @@ -1,4 +1,5 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; + /** * B-group tests: validate JSON parsing logic used by spawnAgent. * diff --git a/packages/cli/src/__tests__/step-read.test.ts b/packages/cli/src/__tests__/step-read.test.ts index 1326cd7..323f771 100644 --- a/packages/cli/src/__tests__/step-read.test.ts +++ b/packages/cli/src/__tests__/step-read.test.ts @@ -1,10 +1,10 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { bootstrap, putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdStepRead } from "../commands/step.js"; import { registerUwfSchemas } from "../schemas.js"; diff --git a/packages/cli/src/__tests__/step-show-json.test.ts b/packages/cli/src/__tests__/step-show-json.test.ts index 44a00f7..63e4a35 100644 --- a/packages/cli/src/__tests__/step-show-json.test.ts +++ b/packages/cli/src/__tests__/step-show-json.test.ts @@ -1,10 +1,10 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { bootstrap, type Hash, type JSONSchema, putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef, StepNodePayload } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdStepShow } from "../commands/step.js"; import { formatOutput } from "../format.js"; import { registerUwfSchemas } from "../schemas.js"; diff --git a/packages/cli/src/__tests__/step-timing.test.ts b/packages/cli/src/__tests__/step-timing.test.ts index a0b9d98..e2a5cc7 100644 --- a/packages/cli/src/__tests__/step-timing.test.ts +++ b/packages/cli/src/__tests__/step-timing.test.ts @@ -1,4 +1,3 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; @@ -6,6 +5,7 @@ import { bootstrap, putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; import { STEP_NODE_SCHEMA } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdStepList } from "../commands/step.js"; import { cmdThreadRead } from "../commands/thread.js"; import { registerUwfSchemas } from "../schemas.js"; diff --git a/packages/cli/src/__tests__/store-global-cas.test.ts b/packages/cli/src/__tests__/store-global-cas.test.ts index 9188782..5e2a727 100644 --- a/packages/cli/src/__tests__/store-global-cas.test.ts +++ b/packages/cli/src/__tests__/store-global-cas.test.ts @@ -1,8 +1,8 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { createThreadIndexEntry, type ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { createUwfStore, getCasDir, diff --git a/packages/cli/src/__tests__/store-storage-root.test.ts b/packages/cli/src/__tests__/store-storage-root.test.ts index 0842d17..5e2dbae 100644 --- a/packages/cli/src/__tests__/store-storage-root.test.ts +++ b/packages/cli/src/__tests__/store-storage-root.test.ts @@ -1,6 +1,6 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { homedir } from "node:os"; import { join } from "node:path"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { getDefaultStorageRoot, getGlobalCasDir, resolveStorageRoot } from "../store.js"; describe("Storage root resolution", () => { diff --git a/packages/cli/src/__tests__/thread-cancel-status.test.ts b/packages/cli/src/__tests__/thread-cancel-status.test.ts index ee19b5b..5da810b 100644 --- a/packages/cli/src/__tests__/thread-cancel-status.test.ts +++ b/packages/cli/src/__tests__/thread-cancel-status.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, test } from 'vitest'; import { mkdir, mkdtemp } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { addHistoryEntry, createUwfStore, loadAllHistory } from "../store.js"; async function makeUwfStore(storageRoot: string) { diff --git a/packages/cli/src/__tests__/thread-list-filters.test.ts b/packages/cli/src/__tests__/thread-list-filters.test.ts index bfe0372..f7cf581 100644 --- a/packages/cli/src/__tests__/thread-list-filters.test.ts +++ b/packages/cli/src/__tests__/thread-list-filters.test.ts @@ -1,10 +1,10 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; import { createThreadIndexEntry } from "@united-workforce/protocol"; import { extractUlidTimestamp, generateUlid } from "@united-workforce/util"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { createMarker, deleteMarker } from "../background/index.js"; import { cmdThreadList } from "../commands/thread.js"; import { parseTimeInput } from "../commands/thread-time-parser.js"; diff --git a/packages/cli/src/__tests__/thread-location.test.ts b/packages/cli/src/__tests__/thread-location.test.ts index c9d80c1..17c9b1e 100644 --- a/packages/cli/src/__tests__/thread-location.test.ts +++ b/packages/cli/src/__tests__/thread-location.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, test } from 'vitest'; import { mkdir, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import type { CasRef, StartNodePayload, ThreadId } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { cmdThreadStart } from "../commands/thread.js"; import { createUwfStore, getThread } from "../store.js"; diff --git a/packages/cli/src/__tests__/thread-read-quota.test.ts b/packages/cli/src/__tests__/thread-read-quota.test.ts index bd3dfe0..07a9fcf 100644 --- a/packages/cli/src/__tests__/thread-read-quota.test.ts +++ b/packages/cli/src/__tests__/thread-read-quota.test.ts @@ -1,10 +1,10 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { bootstrap, putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdThreadRead } from "../commands/thread.js"; import { registerUwfSchemas } from "../schemas.js"; import { seedThreads } from "./thread-test-helpers.js"; diff --git a/packages/cli/src/__tests__/thread-read-xml-tags.test.ts b/packages/cli/src/__tests__/thread-read-xml-tags.test.ts index 9edb226..c357078 100644 --- a/packages/cli/src/__tests__/thread-read-xml-tags.test.ts +++ b/packages/cli/src/__tests__/thread-read-xml-tags.test.ts @@ -1,9 +1,9 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { bootstrap, putSchema, type Store } from "@ocas/core"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdThreadRead, THREAD_READ_DEFAULT_QUOTA } from "../commands/thread.js"; import type { UwfStore } from "../store.js"; import { createUwfStore } from "../store.js"; diff --git a/packages/cli/src/__tests__/thread-resume.test.ts b/packages/cli/src/__tests__/thread-resume.test.ts index 099729e..85884bd 100644 --- a/packages/cli/src/__tests__/thread-resume.test.ts +++ b/packages/cli/src/__tests__/thread-resume.test.ts @@ -1,13 +1,12 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; import { execFileSync } from "node:child_process"; import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; import { putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef, StepNodePayload, ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdThreadShow } from "../commands/thread.js"; import { registerUwfSchemas } from "../schemas.js"; import { seedThreads } from "./thread-test-helpers.js"; diff --git a/packages/cli/src/__tests__/thread-show-status.test.ts b/packages/cli/src/__tests__/thread-show-status.test.ts index dc42300..8c4d0af 100644 --- a/packages/cli/src/__tests__/thread-show-status.test.ts +++ b/packages/cli/src/__tests__/thread-show-status.test.ts @@ -1,9 +1,9 @@ -import { describe, expect, test } from 'vitest'; import { mkdir, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { putSchema } from "@ocas/core"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { createMarker, deleteMarker } from "../background/index.js"; import { cmdThreadShow, cmdThreadStart } from "../commands/thread.js"; import { diff --git a/packages/cli/src/__tests__/thread-start-cwd-cli.test.ts b/packages/cli/src/__tests__/thread-start-cwd-cli.test.ts index ed515bf..195088f 100644 --- a/packages/cli/src/__tests__/thread-start-cwd-cli.test.ts +++ b/packages/cli/src/__tests__/thread-start-cwd-cli.test.ts @@ -1,9 +1,10 @@ -import { describe, expect, test } from 'vitest'; import { execFileSync } from "node:child_process"; import { mkdir, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; import type { CasRef, StartNodePayload, ThreadId } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { cmdThreadStart } from "../commands/thread.js"; import { createUwfStore, getThread } from "../store.js"; @@ -133,7 +134,8 @@ graph: const workflowPath = await createTestWorkflow(); const testCwd = "/test/cli/path"; - const uwfBin = join(process.cwd(), "dist", "cli.js"); + const pkgRoot = dirname(dirname(dirname(fileURLToPath(import.meta.url)))); + const uwfBin = join(pkgRoot, "dist", "cli.js"); // Register the workflow execFileSync(process.execPath, [uwfBin, "workflow", "add", workflowPath], { diff --git a/packages/cli/src/__tests__/thread-step-count.test.ts b/packages/cli/src/__tests__/thread-step-count.test.ts index 7cadb4b..c5c4aa2 100644 --- a/packages/cli/src/__tests__/thread-step-count.test.ts +++ b/packages/cli/src/__tests__/thread-step-count.test.ts @@ -1,8 +1,7 @@ -import { describe, expect, test } from 'vitest'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; import { execFileSync } from "node:child_process"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; +import { describe, expect, test } from "vitest"; const CLI_PATH = join(dirname(fileURLToPath(import.meta.url)), "..", "cli.js"); diff --git a/packages/cli/src/__tests__/thread-suspend-step.test.ts b/packages/cli/src/__tests__/thread-suspend-step.test.ts index b9dc729..77f200f 100644 --- a/packages/cli/src/__tests__/thread-suspend-step.test.ts +++ b/packages/cli/src/__tests__/thread-suspend-step.test.ts @@ -1,13 +1,12 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; -import { dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; import { execFileSync } from "node:child_process"; import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; -import { join } from "node:path"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; import { putSchema } from "@ocas/core"; import { openStore } from "@ocas/fs"; import type { CasRef, StepNodePayload, ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdThreadShow } from "../commands/thread.js"; import { registerUwfSchemas } from "../schemas.js"; import { seedThreads } from "./thread-test-helpers.js"; diff --git a/packages/cli/src/__tests__/thread-suspended-display.test.ts b/packages/cli/src/__tests__/thread-suspended-display.test.ts index 48659c6..cc5d38f 100644 --- a/packages/cli/src/__tests__/thread-suspended-display.test.ts +++ b/packages/cli/src/__tests__/thread-suspended-display.test.ts @@ -1,10 +1,10 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { putSchema } from "@ocas/core"; import type { ThreadId } from "@united-workforce/protocol"; import { createThreadIndexEntry, markThreadSuspended } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdThreadList, cmdThreadShow } from "../commands/thread.js"; import { createUwfStore } from "../store.js"; import { seedThreads } from "./thread-test-helpers.js"; diff --git a/packages/cli/src/__tests__/thread.test.ts b/packages/cli/src/__tests__/thread.test.ts index 2374fd4..ff97665 100644 --- a/packages/cli/src/__tests__/thread.test.ts +++ b/packages/cli/src/__tests__/thread.test.ts @@ -1,9 +1,9 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { bootstrap, putSchema, type Store } from "@ocas/core"; import type { CasRef, ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { cmdStepList, cmdStepShow } from "../commands/step.js"; import { cmdThreadRead, diff --git a/packages/cli/src/__tests__/validate-semantic.test.ts b/packages/cli/src/__tests__/validate-semantic.test.ts index 28efabb..5cc2541 100644 --- a/packages/cli/src/__tests__/validate-semantic.test.ts +++ b/packages/cli/src/__tests__/validate-semantic.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import type { WorkflowPayload } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { validateWorkflow } from "../validate-semantic.js"; /** Build a valid two-role workflow that passes all checks. */ diff --git a/packages/cli/src/__tests__/workflow-resolution.test.ts b/packages/cli/src/__tests__/workflow-resolution.test.ts index e65df27..ee0ab38 100644 --- a/packages/cli/src/__tests__/workflow-resolution.test.ts +++ b/packages/cli/src/__tests__/workflow-resolution.test.ts @@ -1,8 +1,8 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import type { CasRef, WorkflowPayload } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { stringify } from "yaml"; import { cmdThreadStart } from "../commands/thread.js"; import type { UwfStore } from "../store.js"; diff --git a/packages/cli/src/moderator/__tests__/evaluate.test.ts b/packages/cli/src/moderator/__tests__/evaluate.test.ts index a60617b..8290bbb 100644 --- a/packages/cli/src/moderator/__tests__/evaluate.test.ts +++ b/packages/cli/src/moderator/__tests__/evaluate.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; import { evaluate } from "../evaluate.js"; import { isSuspendResult } from "../types.js"; diff --git a/packages/cli/src/store.ts b/packages/cli/src/store.ts index 1850d89..9bc0ddb 100644 --- a/packages/cli/src/store.ts +++ b/packages/cli/src/store.ts @@ -330,11 +330,7 @@ export function getThread(varStore: VarStore, threadId: ThreadId): ThreadIndexEn } /** Set or update a single active thread entry. */ -export function setThread( - varStore: VarStore, - threadId: ThreadId, - entry: ThreadIndexEntry, -): void { +export function setThread(varStore: VarStore, threadId: ThreadId, entry: ThreadIndexEntry): void { const name = threadVarName(threadId); // Head CAS nodes may use different schemas (StartNode vs StepNode) — clear all variants first. varStore.remove(name); @@ -423,10 +419,7 @@ export function loadAllHistory(varStore: VarStore): ThreadHistoryLine[] { })); } -export function findHistoryEntry( - varStore: VarStore, - threadId: ThreadId, -): ThreadHistoryLine | null { +export function findHistoryEntry(varStore: VarStore, threadId: ThreadId): ThreadHistoryLine | null { const vars = varStore.list({ namePrefix: `${HISTORY_VAR_PREFIX}${threadId}` }); const v = vars.find((entry) => entry.name === `${HISTORY_VAR_PREFIX}${threadId}`); if (v === undefined) { diff --git a/packages/dashboard/src/editor/layout/__tests__/layout.test.ts b/packages/dashboard/src/editor/layout/__tests__/layout.test.ts index 3a6dbe3..9c6e610 100644 --- a/packages/dashboard/src/editor/layout/__tests__/layout.test.ts +++ b/packages/dashboard/src/editor/layout/__tests__/layout.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, it } from 'vitest'; import type { Edge, Node } from "@xyflow/react"; +import { describe, expect, it } from "vitest"; import { LayoutLR } from "../index.js"; function makeNode(id: string): Node { diff --git a/packages/dashboard/src/editor/trans/__tests__/trans-in.test.ts b/packages/dashboard/src/editor/trans/__tests__/trans-in.test.ts index 0471456..4e73cac 100644 --- a/packages/dashboard/src/editor/trans/__tests__/trans-in.test.ts +++ b/packages/dashboard/src/editor/trans/__tests__/trans-in.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from "vitest"; import { transIn } from "../trans-in.js"; import type { WorkFlowStep } from "../type.js"; diff --git a/packages/dashboard/src/editor/trans/__tests__/validate.test.ts b/packages/dashboard/src/editor/trans/__tests__/validate.test.ts index 560be8c..0ba0511 100644 --- a/packages/dashboard/src/editor/trans/__tests__/validate.test.ts +++ b/packages/dashboard/src/editor/trans/__tests__/validate.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from "vitest"; import type { AnyWorkEdge, AnyWorkNode } from "../../type.js"; import { validate } from "../validate.js"; diff --git a/packages/protocol/src/__tests__/thread-index.test.ts b/packages/protocol/src/__tests__/thread-index.test.ts index 044aa79..2d58e7e 100644 --- a/packages/protocol/src/__tests__/thread-index.test.ts +++ b/packages/protocol/src/__tests__/thread-index.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; import { createThreadIndexEntry, markThreadSuspended, diff --git a/packages/protocol/src/__tests__/types.test.ts b/packages/protocol/src/__tests__/types.test.ts index ed3e8e3..ed8a1bc 100644 --- a/packages/protocol/src/__tests__/types.test.ts +++ b/packages/protocol/src/__tests__/types.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; import type { StartNodePayload, StepRecord, Target } from "../types.js"; describe("Protocol types for thread/edge location", () => { diff --git a/packages/util-agent/__tests__/adapter-retry.test.ts b/packages/util-agent/__tests__/adapter-retry.test.ts index 3e855d3..f482a57 100644 --- a/packages/util-agent/__tests__/adapter-retry.test.ts +++ b/packages/util-agent/__tests__/adapter-retry.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; -import { createMemoryStore, putSchema, bootstrap } from "@ocas/core"; +import { bootstrap, createMemoryStore, putSchema } from "@ocas/core"; +import { describe, expect, test } from "vitest"; import { tryFrontmatterFastPath } from "../src/frontmatter.js"; diff --git a/packages/util-agent/__tests__/adapter-stdout.test.ts b/packages/util-agent/__tests__/adapter-stdout.test.ts index dad9e7e..b2ed0fd 100644 --- a/packages/util-agent/__tests__/adapter-stdout.test.ts +++ b/packages/util-agent/__tests__/adapter-stdout.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; -import { createMemoryStore, putSchema, bootstrap } from "@ocas/core"; +import { bootstrap, createMemoryStore, putSchema } from "@ocas/core"; +import { describe, expect, test } from "vitest"; import { tryFrontmatterFastPath } from "../src/frontmatter.js"; diff --git a/packages/util-agent/__tests__/build-continuation-prompt.test.ts b/packages/util-agent/__tests__/build-continuation-prompt.test.ts index e2d4521..0b52d29 100644 --- a/packages/util-agent/__tests__/build-continuation-prompt.test.ts +++ b/packages/util-agent/__tests__/build-continuation-prompt.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import type { StepContext } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { buildContinuationPrompt } from "../src/build-continuation-prompt.js"; const reviewerStep: StepContext = { diff --git a/packages/util-agent/__tests__/build-output-format-instruction.test.ts b/packages/util-agent/__tests__/build-output-format-instruction.test.ts index 70e5515..57fbadf 100644 --- a/packages/util-agent/__tests__/build-output-format-instruction.test.ts +++ b/packages/util-agent/__tests__/build-output-format-instruction.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; import { buildOutputFormatInstruction } from "../src/build-output-format-instruction.js"; const PLANNER_SCHEMA = { diff --git a/packages/util-agent/__tests__/build-role-prompt.test.ts b/packages/util-agent/__tests__/build-role-prompt.test.ts index 61ccd9d..947840a 100644 --- a/packages/util-agent/__tests__/build-role-prompt.test.ts +++ b/packages/util-agent/__tests__/build-role-prompt.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import type { RoleDefinition } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { buildRolePrompt } from "../src/build-role-prompt.js"; describe("buildRolePrompt", () => { diff --git a/packages/util-agent/__tests__/context.test.ts b/packages/util-agent/__tests__/context.test.ts index 6cb6276..6079678 100644 --- a/packages/util-agent/__tests__/context.test.ts +++ b/packages/util-agent/__tests__/context.test.ts @@ -1,4 +1,5 @@ -import { describe, expect, test } from 'vitest'; +import { describe, expect, test } from "vitest"; + // We need to test buildHistory indirectly through buildContext // since buildHistory is not exported. For now, we'll test the integration // through the public API in a separate integration test. diff --git a/packages/util-agent/__tests__/frontmatter-fast-path.test.ts b/packages/util-agent/__tests__/frontmatter-fast-path.test.ts index bfca445..e8e2eda 100644 --- a/packages/util-agent/__tests__/frontmatter-fast-path.test.ts +++ b/packages/util-agent/__tests__/frontmatter-fast-path.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; -import { createMemoryStore, putSchema, bootstrap } from "@ocas/core"; +import { bootstrap, createMemoryStore, putSchema } from "@ocas/core"; +import { describe, expect, test } from "vitest"; import { tryFrontmatterFastPath } from "../src/frontmatter.js"; diff --git a/packages/util-agent/__tests__/resolve-extract-model.test.ts b/packages/util-agent/__tests__/resolve-extract-model.test.ts index 6117cb2..f52ec55 100644 --- a/packages/util-agent/__tests__/resolve-extract-model.test.ts +++ b/packages/util-agent/__tests__/resolve-extract-model.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, test } from 'vitest'; import type { WorkflowConfig } from "@united-workforce/protocol"; +import { describe, expect, test } from "vitest"; import { resolveExtractModelAlias } from "../src/extract.js"; function baseConfig(overrides: Partial = {}): WorkflowConfig { diff --git a/packages/util-agent/__tests__/session-cache.test.ts b/packages/util-agent/__tests__/session-cache.test.ts index 8f6cc62..2802177 100644 --- a/packages/util-agent/__tests__/session-cache.test.ts +++ b/packages/util-agent/__tests__/session-cache.test.ts @@ -1,7 +1,7 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; import { mkdir, readdir, readFile, rm, stat, writeFile } from "node:fs/promises"; import { dirname, join } from "node:path"; import type { ThreadId } from "@united-workforce/protocol"; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { getCachedSessionId, getCachePath, setCachedSessionId } from "../src/session-cache.js"; import { resolveStorageRoot } from "../src/storage.js"; diff --git a/packages/util-agent/src/__tests__/parseArgv.test.ts b/packages/util-agent/src/__tests__/parseArgv.test.ts index f09700b..903a11f 100644 --- a/packages/util-agent/src/__tests__/parseArgv.test.ts +++ b/packages/util-agent/src/__tests__/parseArgv.test.ts @@ -1,4 +1,5 @@ -import { afterEach, beforeEach, describe, expect, test } from 'vitest'; +import { afterEach, beforeEach, describe, expect, test } from "vitest"; + describe("parseArgv empty prompt error message", () => { let stderrOutput: string; let _exitCode: number | null; diff --git a/packages/util/__tests__/env.test.ts b/packages/util/__tests__/env.test.ts index 101aac1..ca98607 100644 --- a/packages/util/__tests__/env.test.ts +++ b/packages/util/__tests__/env.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from "vitest"; import { env } from "../src/env.js"; describe("env", () => { diff --git a/packages/util/__tests__/frontmatter-markdown.test.ts b/packages/util/__tests__/frontmatter-markdown.test.ts index b94d21e..b12a4e1 100644 --- a/packages/util/__tests__/frontmatter-markdown.test.ts +++ b/packages/util/__tests__/frontmatter-markdown.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from "vitest"; import type { AgentFrontmatter } from "../src/index.js"; import { parseFrontmatterMarkdown, validateFrontmatter } from "../src/index.js"; diff --git a/packages/util/__tests__/process-logger.test.ts b/packages/util/__tests__/process-logger.test.ts index 1d26246..099ae1c 100644 --- a/packages/util/__tests__/process-logger.test.ts +++ b/packages/util/__tests__/process-logger.test.ts @@ -1,7 +1,7 @@ -import { afterEach, describe, expect, test } from 'vitest'; import { mkdirSync, mkdtempSync, readFileSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; +import { afterEach, describe, expect, test } from "vitest"; import { createProcessLogger } from "../src/process-logger/index.js"; diff --git a/packages/util/src/__tests__/ulid-timestamp.test.ts b/packages/util/src/__tests__/ulid-timestamp.test.ts index 751b273..742d2bb 100644 --- a/packages/util/src/__tests__/ulid-timestamp.test.ts +++ b/packages/util/src/__tests__/ulid-timestamp.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from 'vitest'; +import { describe, expect, it } from "vitest"; import { extractUlidTimestamp, generateUlid } from "../ulid.js"; describe("extractUlidTimestamp", () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f125e60..c4ca89e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@changesets/cli': specifier: ^2.31.0 version: 2.31.0(@types/node@25.9.1) + '@shazhou/proman': + specifier: ^0.5.1 + version: 0.5.1(@biomejs/biome@2.4.16)(typescript@5.9.3)(vite@7.3.5(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))(vitest@3.2.6(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(yaml@2.9.0)) '@types/node': specifier: ^25.7.0 version: 25.9.1 @@ -1092,6 +1095,21 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@shazhou/proman@0.5.1': + resolution: {integrity: sha512-GmFUvd8SAOUW/eaDIEh31pVKSE3XhbgHOZ5vSpX4xS+F8Zl6lAfhgVCjcjRK8w5d43tsH47CVorwyxQcRaJFfA==} + hasBin: true + peerDependencies: + '@biomejs/biome': ^2.0.0 + typescript: ^5.0.0 + vite: ^6.0.0 + vitest: ^4.0.0 + wrangler: ^3.0.0 + peerDependenciesMeta: + vite: + optional: true + wrangler: + optional: true + '@sinclair/typebox@0.34.49': resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} @@ -3911,6 +3929,15 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} + '@shazhou/proman@0.5.1(@biomejs/biome@2.4.16)(typescript@5.9.3)(vite@7.3.5(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))(vitest@3.2.6(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(yaml@2.9.0))': + dependencies: + '@biomejs/biome': 2.4.16 + typescript: 5.9.3 + vitest: 3.2.6(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(msw@2.14.6(@types/node@25.9.1)(typescript@5.9.3))(yaml@2.9.0) + yaml: 2.9.0 + optionalDependencies: + vite: 7.3.5(@types/node@25.9.1)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0) + '@sinclair/typebox@0.34.49': {} '@sindresorhus/merge-streams@4.0.0': {} diff --git a/proman.yaml b/proman.yaml new file mode 100644 index 0000000..551f753 --- /dev/null +++ b/proman.yaml @@ -0,0 +1,38 @@ +packages: + - name: "@united-workforce/protocol" + path: packages/protocol + type: lib + + - name: "@united-workforce/util" + path: packages/util + type: lib + + - name: "@united-workforce/util-agent" + path: packages/util-agent + type: lib + + - name: "@united-workforce/agent-hermes" + path: packages/agent-hermes + type: cli + + - name: "@united-workforce/agent-claude-code" + path: packages/agent-claude-code + type: cli + + - name: "@united-workforce/agent-builtin" + path: packages/agent-builtin + type: cli + + - name: "@united-workforce/cli" + path: packages/cli + type: cli + + - name: "@united-workforce/dashboard" + path: packages/dashboard + type: webui + private: true + +release: + registry: https://registry.npmjs.org + access: public + gitTagPrefix: v