From 3d7239851112dfc6c88647185589d2a7cc0234da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E5=B1=B1=E8=B2=B4=E8=87=B3?= Date: Wed, 27 May 2026 16:25:51 +0900 Subject: [PATCH 1/2] build: silence TypeScript 6 baseUrl deprecation TypeScript 6.0 demotes `baseUrl` to a deprecation that fails the build by default (TS5101). Even though this workspace does not set `baseUrl` explicitly in any tsconfig, tsup's dts generator hits the deprecation through its internal compilation, breaking the @basou/sdk build immediately after PR #9 landed TS 6.0.3. Setting `ignoreDeprecations: "6.0"` at the workspace base level is the minimal surface area that unblocks the build without changing any module-resolution semantics. The flag is scoped to the TS 6.x deprecation set, so once we plan the TS 7 upgrade the followup is narrow: drop this option and confirm no real `baseUrl` usage has crept in. Co-Authored-By: Claude Opus 4.7 (1M context) --- tsconfig.base.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tsconfig.base.json b/tsconfig.base.json index 79a27230..66bcd4e9 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -21,7 +21,8 @@ "declarationMap": true, "sourceMap": true, "incremental": true, - "types": ["node"] + "types": ["node"], + "ignoreDeprecations": "6.0" }, "exclude": ["**/node_modules", "**/dist"] } From 48930f19f5422a149d681ae124db41aa7e035c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E5=B1=B1=E8=B2=B4=E8=87=B3?= Date: Wed, 27 May 2026 17:00:59 +0900 Subject: [PATCH 2/2] build: migrate biome config and reformat for Biome 2.4.15 PR #8 landed @biomejs/biome 2.4.15, which rejects the 1.x config schema (unknown keys: files.ignore, organizeImports, overrides[].include) and applies different default formatting rules. Running `biome migrate --write` converts biome.json to the 2.x schema: - files.ignore -> files.includes with negative globs - organizeImports -> assist.actions.source.organizeImports - overrides[].include -> overrides[].includes Then `biome check --write` reformats 43 files to the 2.x defaults (no behavior change - JSON array wrapping, etc.). 4 unsafe suggestions remain as warnings and do not fail the lint step. Together with the TS 6 deprecation silence, this should bring main back to green and unblock the release.yml dry-run. Co-Authored-By: Claude Opus 4.7 (1M context) --- biome.json | 15 +- packages/basou/package.json | 4 +- packages/cli/package.json | 15 +- packages/cli/src/commands/approval.test.ts | 2 +- packages/cli/src/commands/approval.ts | 4 +- packages/cli/src/commands/decision.test.ts | 2 +- packages/cli/src/commands/decision.ts | 6 +- packages/cli/src/commands/decisions.test.ts | 4 +- packages/cli/src/commands/exec.test.ts | 8 +- packages/cli/src/commands/exec.ts | 12 +- packages/cli/src/commands/handoff.test.ts | 4 +- packages/cli/src/commands/run.test.ts | 8 +- packages/cli/src/commands/run.ts | 16 +- packages/cli/src/commands/session.test.ts | 2 +- packages/cli/src/commands/session.ts | 16 +- packages/cli/src/commands/status.test.ts | 2 +- packages/cli/src/commands/status.ts | 4 +- packages/cli/src/commands/task.test.ts | 2 +- packages/cli/src/commands/task.ts | 24 +- packages/core/package.json | 14 +- .../core/src/adapters/claude-code/index.ts | 2 +- .../core/src/approval/approval-store.test.ts | 3 +- packages/core/src/approval/index.ts | 2 +- .../core/src/decisions/decisions-renderer.ts | 2 +- packages/core/src/decisions/index.ts | 2 +- packages/core/src/events/index.ts | 4 +- packages/core/src/handoff/handoff-renderer.ts | 4 +- packages/core/src/handoff/index.ts | 2 +- packages/core/src/index.test.ts | 8 +- packages/core/src/index.ts | 267 +++++++++--------- packages/core/src/schemas/index.ts | 108 ++++--- packages/core/src/schemas/shared.schema.ts | 2 +- .../core/src/storage/ad-hoc-session.test.ts | 2 +- packages/core/src/storage/atomic.test.ts | 2 +- packages/core/src/storage/index.ts | 124 ++++---- packages/core/src/storage/lockfile.test.ts | 2 +- .../core/src/storage/markdown-store.test.ts | 2 +- .../core/src/storage/session-import.test.ts | 2 +- packages/core/src/storage/session-import.ts | 2 +- packages/core/src/storage/sessions.test.ts | 2 +- packages/core/src/storage/status.test.ts | 2 +- packages/core/src/storage/tasks.test.ts | 4 +- packages/core/src/storage/tasks.ts | 6 +- packages/sdk/package.json | 12 +- 44 files changed, 374 insertions(+), 358 deletions(-) diff --git a/biome.json b/biome.json index ad7af414..cb3e3a29 100644 --- a/biome.json +++ b/biome.json @@ -1,14 +1,21 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json", "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, "files": { - "ignore": ["**/dist", "**/node_modules", "**/coverage", "**/*.tsbuildinfo", "pnpm-lock.yaml"] + "includes": [ + "**", + "!**/dist", + "!**/node_modules", + "!**/coverage", + "!**/*.tsbuildinfo", + "!**/pnpm-lock.yaml" + ] }, - "organizeImports": { "enabled": true }, + "assist": { "actions": { "source": { "organizeImports": "on" } } }, "formatter": { "enabled": true, "indentStyle": "space", @@ -43,7 +50,7 @@ }, "overrides": [ { - "include": ["**/tsup.config.ts", "**/vite.config.ts", "**/vitest.config.ts"], + "includes": ["**/tsup.config.ts", "**/vite.config.ts", "**/vitest.config.ts"], "linter": { "rules": { "style": { "noDefaultExport": "off" } diff --git a/packages/basou/package.json b/packages/basou/package.json index d8e0952d..f210a61c 100644 --- a/packages/basou/package.json +++ b/packages/basou/package.json @@ -32,7 +32,9 @@ "bin": { "basou": "./bin.mjs" }, - "files": ["bin.mjs"], + "files": [ + "bin.mjs" + ], "engines": { "node": ">=20.10.0" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 6ca871cd..af4942b0 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -5,7 +5,16 @@ "license": "Apache-2.0", "description": "basou command-line tool", "author": "Takashi Matsuyama", - "keywords": ["ai", "agent", "cli", "session", "audit", "provenance", "git", "claude-code"], + "keywords": [ + "ai", + "agent", + "cli", + "session", + "audit", + "provenance", + "git", + "claude-code" + ], "repository": { "type": "git", "url": "git+https://github.com/basou-dev/basou.git", @@ -31,7 +40,9 @@ "bin": { "basou": "./dist/index.js" }, - "files": ["dist"], + "files": [ + "dist" + ], "engines": { "node": ">=20.10.0" }, diff --git a/packages/cli/src/commands/approval.test.ts b/packages/cli/src/commands/approval.test.ts index c9a90b2e..aed08e58 100644 --- a/packages/cli/src/commands/approval.test.ts +++ b/packages/cli/src/commands/approval.test.ts @@ -1,5 +1,5 @@ import { execFile } from "node:child_process"; -import { mkdir, mkdtemp, readFile, readdir, realpath, rm, writeFile } from "node:fs/promises"; +import { mkdir, mkdtemp, readdir, readFile, realpath, rm, writeFile } from "node:fs/promises"; import { devNull, tmpdir } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; diff --git a/packages/cli/src/commands/approval.ts b/packages/cli/src/commands/approval.ts index d99136e9..01cf15e2 100644 --- a/packages/cli/src/commands/approval.ts +++ b/packages/cli/src/commands/approval.ts @@ -6,11 +6,11 @@ import { ApprovalSchema, type ApprovalStatus, ApprovalStatusSchema, - type BasouPaths, - type Event, appendEvent, assertBasouRootSafe, + type BasouPaths, basouPaths, + type Event, enumerateApprovals, findErrorCode, isLazyExpired, diff --git a/packages/cli/src/commands/decision.test.ts b/packages/cli/src/commands/decision.test.ts index 45ae9ce0..05268895 100644 --- a/packages/cli/src/commands/decision.test.ts +++ b/packages/cli/src/commands/decision.test.ts @@ -1,5 +1,5 @@ import { execFile } from "node:child_process"; -import { mkdir, mkdtemp, readFile, readdir, realpath, rm, writeFile } from "node:fs/promises"; +import { mkdir, mkdtemp, readdir, readFile, realpath, rm, writeFile } from "node:fs/promises"; import { devNull, tmpdir } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; diff --git a/packages/cli/src/commands/decision.ts b/packages/cli/src/commands/decision.ts index 96a920a8..0e7c2c38 100644 --- a/packages/cli/src/commands/decision.ts +++ b/packages/cli/src/commands/decision.ts @@ -1,17 +1,17 @@ import { - type Event, - type PrefixedId, - type SessionStatus, acquireLock, appendEventToExistingSession, assertBasouRootSafe, basouPaths, createAdHocSessionWithEvent, + type Event, findErrorCode, + type PrefixedId, prefixedUlid, readManifest, resolveRepositoryRoot, resolveSessionId, + type SessionStatus, } from "@basou/core"; import { type Command, InvalidArgumentError } from "commander"; import { diff --git a/packages/cli/src/commands/decisions.test.ts b/packages/cli/src/commands/decisions.test.ts index f2cb003c..d0948fb7 100644 --- a/packages/cli/src/commands/decisions.test.ts +++ b/packages/cli/src/commands/decisions.test.ts @@ -4,11 +4,11 @@ import { devNull, tmpdir } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; import { - GENERATED_END, - GENERATED_START, basouPaths, createManifest, ensureBasouDirectory, + GENERATED_END, + GENERATED_START, writeManifest, writeYamlFile, } from "@basou/core"; diff --git a/packages/cli/src/commands/exec.test.ts b/packages/cli/src/commands/exec.test.ts index a31d1fcb..8c66cccc 100644 --- a/packages/cli/src/commands/exec.test.ts +++ b/packages/cli/src/commands/exec.test.ts @@ -1,17 +1,17 @@ import type { ChildProcess } from "node:child_process"; import { execFile } from "node:child_process"; -import { access, mkdtemp, readFile, readdir, rm } from "node:fs/promises"; +import { access, mkdtemp, readdir, readFile, rm } from "node:fs/promises"; import { devNull, tmpdir } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; import { - type ProcessRunner, - type RunOptions, - type RunResult, appendEvent, basouPaths, createManifest, ensureBasouDirectory, + type ProcessRunner, + type RunOptions, + type RunResult, writeManifest, } from "@basou/core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/packages/cli/src/commands/exec.ts b/packages/cli/src/commands/exec.ts index bc50d169..c873f401 100644 --- a/packages/cli/src/commands/exec.ts +++ b/packages/cli/src/commands/exec.ts @@ -4,22 +4,22 @@ import { homedir } from "node:os"; import { join } from "node:path"; import { - ChildProcessRunner, - type PrefixedId, - type ProcessRunner, - type RunResult, - type Session, - SessionSchema, assertBasouRootSafe, basouPaths, + ChildProcessRunner, appendEvent as coreAppendEvent, getSnapshot, overwriteYamlFile, + type PrefixedId, + type ProcessRunner, parseDuration, prefixedUlid, + type RunResult, readManifest, readYamlFile, resolveRepositoryRoot, + type Session, + SessionSchema, sanitizeWorkingDirectory, writeYamlFile, } from "@basou/core"; diff --git a/packages/cli/src/commands/handoff.test.ts b/packages/cli/src/commands/handoff.test.ts index 95ad3edf..490a3fab 100644 --- a/packages/cli/src/commands/handoff.test.ts +++ b/packages/cli/src/commands/handoff.test.ts @@ -4,11 +4,11 @@ import { devNull, tmpdir } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; import { - GENERATED_END, - GENERATED_START, basouPaths, createManifest, ensureBasouDirectory, + GENERATED_END, + GENERATED_START, writeManifest, writeYamlFile, } from "@basou/core"; diff --git a/packages/cli/src/commands/run.test.ts b/packages/cli/src/commands/run.test.ts index ebbf32d4..1cbfb7f8 100644 --- a/packages/cli/src/commands/run.test.ts +++ b/packages/cli/src/commands/run.test.ts @@ -1,17 +1,17 @@ import type { ChildProcess } from "node:child_process"; import { execFile } from "node:child_process"; -import { access, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { access, mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises"; import { devNull, tmpdir } from "node:os"; import { join } from "node:path"; import { promisify } from "node:util"; import { - type RunOptions as CoreRunOptions, - type ProcessRunner, - type RunResult, appendEvent, basouPaths, + type RunOptions as CoreRunOptions, createManifest, ensureBasouDirectory, + type ProcessRunner, + type RunResult, writeManifest, } from "@basou/core"; import { Command } from "commander"; diff --git a/packages/cli/src/commands/run.ts b/packages/cli/src/commands/run.ts index 6e3214b0..09296ba0 100644 --- a/packages/cli/src/commands/run.ts +++ b/packages/cli/src/commands/run.ts @@ -4,26 +4,26 @@ import { homedir } from "node:os"; import { join } from "node:path"; import { - ChildProcessRunner, - type DiffResult, - type GitSnapshot, - type PrefixedId, - type ProcessRunner, - type RunResult, - type Session, - SessionSchema, assertBasouRootSafe, basouPaths, + ChildProcessRunner, claudeCodeAdapterMetadata, appendEvent as coreAppendEvent, + type DiffResult, + type GitSnapshot, getDiff, getSnapshot, overwriteYamlFile, + type PrefixedId, + type ProcessRunner, prefixedUlid, + type RunResult, readManifest, readYamlFile, resolveClaudeCodeCommand, resolveRepositoryRoot, + type Session, + SessionSchema, sanitizeRelatedFiles, sanitizeWorkingDirectory, writeYamlFile, diff --git a/packages/cli/src/commands/session.test.ts b/packages/cli/src/commands/session.test.ts index ad8c9ac4..cb8f3192 100644 --- a/packages/cli/src/commands/session.test.ts +++ b/packages/cli/src/commands/session.test.ts @@ -1,5 +1,5 @@ import { execFile } from "node:child_process"; -import { mkdir, mkdtemp, readFile, readdir, realpath, rm, writeFile } from "node:fs/promises"; +import { mkdir, mkdtemp, readdir, readFile, realpath, rm, writeFile } from "node:fs/promises"; import { devNull, tmpdir } from "node:os"; import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; diff --git a/packages/cli/src/commands/session.ts b/packages/cli/src/commands/session.ts index 4e8ddc62..abfcfabf 100644 --- a/packages/cli/src/commands/session.ts +++ b/packages/cli/src/commands/session.ts @@ -1,19 +1,14 @@ import { readFile } from "node:fs/promises"; import { basename, isAbsolute, join, relative } from "node:path"; import { - type Event, - type ImportSessionOptions, - type ImportSessionResult, - type Session, - SessionImportPayloadSchema, - SessionSchema, - type SessionStatus, - SessionStatusSchema, acquireLock, appendEventToExistingSession, assertBasouRootSafe, basouPaths, + type Event, findErrorCode, + type ImportSessionOptions, + type ImportSessionResult, importSessionFromJson, loadSessionEntries, readAllEvents, @@ -22,6 +17,11 @@ import { resolveRepositoryRoot, resolveSessionId, resolveTaskId, + type Session, + SessionImportPayloadSchema, + SessionSchema, + type SessionStatus, + SessionStatusSchema, } from "@basou/core"; import { type Command, InvalidArgumentError } from "commander"; import { diff --git a/packages/cli/src/commands/status.test.ts b/packages/cli/src/commands/status.test.ts index d6448b60..3b4a36af 100644 --- a/packages/cli/src/commands/status.test.ts +++ b/packages/cli/src/commands/status.test.ts @@ -5,10 +5,10 @@ import { join } from "node:path"; import { promisify } from "node:util"; import { type BasouPaths, - StatusSchema, basouPaths, createManifest, ensureBasouDirectory, + StatusSchema, writeManifest, } from "@basou/core"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/packages/cli/src/commands/status.ts b/packages/cli/src/commands/status.ts index b3dbc224..b78ccd18 100644 --- a/packages/cli/src/commands/status.ts +++ b/packages/cli/src/commands/status.ts @@ -1,12 +1,12 @@ import { - type Manifest, - type StatusSnapshot, assertBasouRootSafe, basouPaths, buildStatusSnapshot, findErrorCode, + type Manifest, readManifest, resolveRepositoryRoot, + type StatusSnapshot, writeStatus, } from "@basou/core"; import type { Command } from "commander"; diff --git a/packages/cli/src/commands/task.test.ts b/packages/cli/src/commands/task.test.ts index a6f6cb12..05873d10 100644 --- a/packages/cli/src/commands/task.test.ts +++ b/packages/cli/src/commands/task.test.ts @@ -3,8 +3,8 @@ import { chmod, mkdir, mkdtemp, - readFile, readdir, + readFile, realpath, rm, writeFile, diff --git a/packages/cli/src/commands/task.ts b/packages/cli/src/commands/task.ts index ea513cf9..4867fd72 100644 --- a/packages/cli/src/commands/task.ts +++ b/packages/cli/src/commands/task.ts @@ -1,29 +1,22 @@ import { readFile } from "node:fs/promises"; import { join } from "node:path"; import { - type Event, - type PrefixedId, - type ReconcileFailure, - type ReconcileResult, - type RefreshLinkageResult, - type SessionEntry, - type SessionStatus, - type TaskDocument, - type TaskReconciledEvent, - type TaskStatus, - TaskStatusSchema, - TaskWriteAfterEventError, archiveTask, assertBasouRootSafe, basouPaths, createTaskWithEvent, deleteTask, + type Event, editTask, enumerateArchivedTaskIds, findErrorCode, loadSessionEntries, loadTaskEntries, + type PrefixedId, prefixedUlid, + type ReconcileFailure, + type ReconcileResult, + type RefreshLinkageResult, readManifest, readTaskFile, readTaskFileWithArchiveFallback, @@ -34,6 +27,13 @@ import { resolveRepositoryRoot, resolveSessionId, resolveTaskId, + type SessionEntry, + type SessionStatus, + type TaskDocument, + type TaskReconciledEvent, + type TaskStatus, + TaskStatusSchema, + TaskWriteAfterEventError, updateTaskStatusWithEvent, } from "@basou/core"; import { type Command, InvalidArgumentError } from "commander"; diff --git a/packages/core/package.json b/packages/core/package.json index cf8bc753..b0604de9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,7 +5,15 @@ "license": "Apache-2.0", "description": "Core primitives for Basou: sessions, events, approvals, git capability", "author": "Takashi Matsuyama", - "keywords": ["ai", "agent", "session", "audit", "provenance", "git", "claude-code"], + "keywords": [ + "ai", + "agent", + "session", + "audit", + "provenance", + "git", + "claude-code" + ], "repository": { "type": "git", "url": "git+https://github.com/basou-dev/basou.git", @@ -29,7 +37,9 @@ "import": "./dist/index.js" } }, - "files": ["dist"], + "files": [ + "dist" + ], "engines": { "node": ">=20.10.0" }, diff --git a/packages/core/src/adapters/claude-code/index.ts b/packages/core/src/adapters/claude-code/index.ts index d8ed43ed..3729a5ca 100644 --- a/packages/core/src/adapters/claude-code/index.ts +++ b/packages/core/src/adapters/claude-code/index.ts @@ -1,6 +1,6 @@ +export type { CommandLookup } from "./claude-code-adapter.js"; export { claudeCodeAdapterMetadata, resolveClaudeCodeCommand, summarizeAdapterOutput, } from "./claude-code-adapter.js"; -export type { CommandLookup } from "./claude-code-adapter.js"; diff --git a/packages/core/src/approval/approval-store.test.ts b/packages/core/src/approval/approval-store.test.ts index 2d8c4cda..08511c44 100644 --- a/packages/core/src/approval/approval-store.test.ts +++ b/packages/core/src/approval/approval-store.test.ts @@ -3,8 +3,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import type { Approval } from "../schemas/approval.schema.js"; -import { type BasouPaths, basouPaths } from "../storage/basou-dir.js"; -import { ensureBasouDirectory } from "../storage/basou-dir.js"; +import { type BasouPaths, basouPaths, ensureBasouDirectory } from "../storage/basou-dir.js"; import { writeYamlFile } from "../storage/yaml-store.js"; import { enumerateApprovals, isLazyExpired, loadApproval } from "./approval-store.js"; diff --git a/packages/core/src/approval/index.ts b/packages/core/src/approval/index.ts index 169dfb01..52a3441a 100644 --- a/packages/core/src/approval/index.ts +++ b/packages/core/src/approval/index.ts @@ -1,6 +1,6 @@ +export type { ApprovalLocation, LoadedApproval } from "./approval-store.js"; export { enumerateApprovals, isLazyExpired, loadApproval, } from "./approval-store.js"; -export type { ApprovalLocation, LoadedApproval } from "./approval-store.js"; diff --git a/packages/core/src/decisions/decisions-renderer.ts b/packages/core/src/decisions/decisions-renderer.ts index 3b46fb7a..ad604f9a 100644 --- a/packages/core/src/decisions/decisions-renderer.ts +++ b/packages/core/src/decisions/decisions-renderer.ts @@ -2,7 +2,7 @@ import { lstat } from "node:fs/promises"; import { dirname, join, resolve } from "node:path"; import { type ReplayWarning, replayEvents } from "../events/event-replay.js"; import type { BasouPaths } from "../storage/basou-dir.js"; -import { type SessionSkipReason, loadSessionEntries } from "../storage/sessions.js"; +import { loadSessionEntries, type SessionSkipReason } from "../storage/sessions.js"; export type DecisionsRendererInput = { paths: BasouPaths; diff --git a/packages/core/src/decisions/index.ts b/packages/core/src/decisions/index.ts index 88d41f97..d1cfdc74 100644 --- a/packages/core/src/decisions/index.ts +++ b/packages/core/src/decisions/index.ts @@ -1,5 +1,5 @@ export { - renderDecisions, type DecisionsRendererInput, type DecisionsRendererResult, + renderDecisions, } from "./decisions-renderer.js"; diff --git a/packages/core/src/events/index.ts b/packages/core/src/events/index.ts index 2a45de27..e983d262 100644 --- a/packages/core/src/events/index.ts +++ b/packages/core/src/events/index.ts @@ -1,3 +1,3 @@ -export { appendEvent, writeEventsBulk } from "./event-writer.js"; -export { readAllEvents, replayEvents } from "./event-replay.js"; export type { ReplayOptions, ReplayWarning } from "./event-replay.js"; +export { readAllEvents, replayEvents } from "./event-replay.js"; +export { appendEvent, writeEventsBulk } from "./event-writer.js"; diff --git a/packages/core/src/handoff/handoff-renderer.ts b/packages/core/src/handoff/handoff-renderer.ts index be3c159e..e46f299e 100644 --- a/packages/core/src/handoff/handoff-renderer.ts +++ b/packages/core/src/handoff/handoff-renderer.ts @@ -3,12 +3,12 @@ import { enumerateApprovals } from "../approval/approval-store.js"; import { type ReplayWarning, replayEvents } from "../events/event-replay.js"; import type { BasouPaths } from "../storage/basou-dir.js"; import { + loadSessionEntries, type SessionEntry, type SessionSkipReason, type SuspectReason, - loadSessionEntries, } from "../storage/sessions.js"; -import { type TaskDocument, type TaskSkipReason, loadTaskEntries } from "../storage/tasks.js"; +import { loadTaskEntries, type TaskDocument, type TaskSkipReason } from "../storage/tasks.js"; /** Input contract for {@link renderHandoff}. */ export type HandoffRendererInput = { diff --git a/packages/core/src/handoff/index.ts b/packages/core/src/handoff/index.ts index b2b2c057..2089dd63 100644 --- a/packages/core/src/handoff/index.ts +++ b/packages/core/src/handoff/index.ts @@ -1,5 +1,5 @@ export { - renderHandoff, type HandoffRendererInput, type HandoffRendererResult, + renderHandoff, } from "./handoff-renderer.js"; diff --git a/packages/core/src/index.test.ts b/packages/core/src/index.test.ts index dbfd56f4..6c1872b6 100644 --- a/packages/core/src/index.test.ts +++ b/packages/core/src/index.test.ts @@ -1,21 +1,21 @@ import { describe, expect, it } from "vitest"; import { - BASOU_CORE_VERSION, - ChildProcessRunner, - type GitSnapshot, - StatusSchema, appendBasouGitignore, assertBasouRootSafe, + BASOU_CORE_VERSION, basouPaths, buildStatusSnapshot, + ChildProcessRunner, createManifest, ensureBasouDirectory, findErrorCode, + type GitSnapshot, getSnapshot, readManifest, readStatus, readYamlFile, resolveRepositoryRoot, + StatusSchema, tryRemoteUrl, writeManifest, writeStatus, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index c9e5aad0..b11bea49 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -4,119 +4,99 @@ */ export const BASOU_CORE_VERSION = "0.1.0"; -export { ulid, prefixedUlid, isValidPrefixedId, ID_PREFIXES } from "./ids/ulid.js"; +export type { CommandLookup } from "./adapters/claude-code/index.js"; +export { + claudeCodeAdapterMetadata, + resolveClaudeCodeCommand, + summarizeAdapterOutput, +} from "./adapters/claude-code/index.js"; +export type { ApprovalLocation, LoadedApproval } from "./approval/index.js"; +export { enumerateApprovals, isLazyExpired, loadApproval } from "./approval/index.js"; +export type { DecisionsRendererInput, DecisionsRendererResult } from "./decisions/index.js"; +export { renderDecisions } from "./decisions/index.js"; +export type { ReplayOptions, ReplayWarning } from "./events/index.js"; +export { appendEvent, readAllEvents, replayEvents, writeEventsBulk } from "./events/index.js"; +export type { DiffResult, FileChange, FileChangeStatus } from "./git/diff.js"; +export { getDiff } from "./git/diff.js"; +export type { GitSnapshot } from "./git/snapshot.js"; +export { getSnapshot, resolveRepositoryRoot, tryRemoteUrl } from "./git/snapshot.js"; +export type { HandoffRendererInput, HandoffRendererResult } from "./handoff/index.js"; +export { renderHandoff } from "./handoff/index.js"; export type { IdPrefix, PrefixedId } from "./ids/ulid.js"; - +export { ID_PREFIXES, isValidPrefixedId, prefixedUlid, ulid } from "./ids/ulid.js"; +export { parseDuration } from "./lib/duration.js"; +export { resolveSessionId, resolveTaskId } from "./lib/id-resolver.js"; +export type { SanitizePathOptions, SanitizeRelatedFilesResult } from "./lib/path-sanitizer.js"; export { - WorkspaceIdSchema, - TaskIdSchema, - SessionIdSchema, - EventIdSchema, - ApprovalIdSchema, - DecisionIdSchema, - IsoTimestampSchema, - SchemaVersionSchema, - RiskLevelSchema, - EventSourceSchema, - ManifestSchema, - SessionSchema, - SessionStatusSchema, - SessionSourceKindSchema, - TaskSchema, - TaskStatusSchema, - EventSchema, - StatusSchema, - ApprovalSchema, - ApprovalStatusSchema, - SessionImportPayloadSchema, - SessionInnerImportSchema, -} from "./schemas/index.js"; + sanitizePath, + sanitizeRelatedFiles, + sanitizeWorkingDirectory, +} from "./lib/path-sanitizer.js"; +export { ChildProcessRunner } from "./runtime/child-process-runner.js"; export type { - RiskLevel, + CaptureMode, + ProcessRunner, + RunOptions, + RunResult, +} from "./runtime/process-runner.js"; +export type { + AdapterOutputEvent, + Approval, + ApprovalApprovedEvent, + ApprovalExpiredEvent, + ApprovalRejectedEvent, + ApprovalRequestedEvent, + ApprovalStatus, + CommandExecutedEvent, + DecisionRecordedEvent, + Event, + FileChangedEvent, + GitSnapshotEvent, Manifest, + NoteAddedEvent, + RiskLevel, Session, - SessionStatus, - SessionSourceKind, - Task, - TaskStatus, + SessionEndedEvent, SessionImportPayload, SessionInnerImportInput, - Event, + SessionSourceKind, SessionStartedEvent, - SessionEndedEvent, + SessionStatus, SessionStatusChangedEvent, - ApprovalRequestedEvent, - ApprovalApprovedEvent, - ApprovalRejectedEvent, - ApprovalExpiredEvent, - CommandExecutedEvent, - GitSnapshotEvent, - FileChangedEvent, - DecisionRecordedEvent, + StatusSnapshot, + Task, + TaskArchivedEvent, TaskCreatedEvent, - TaskStatusChangedEvent, - TaskReconciledEvent, - TaskLinkageRefreshedEvent, TaskDeletedEvent, - TaskArchivedEvent, - NoteAddedEvent, - AdapterOutputEvent, - StatusSnapshot, - Approval, - ApprovalStatus, + TaskLinkageRefreshedEvent, + TaskReconciledEvent, + TaskStatus, + TaskStatusChangedEvent, } from "./schemas/index.js"; - -export { enumerateApprovals, isLazyExpired, loadApproval } from "./approval/index.js"; -export type { ApprovalLocation, LoadedApproval } from "./approval/index.js"; - export { - acquireLock, - appendBasouGitignore, - appendEventToExistingSession, - archiveTask, - assertBasouRootSafe, - basouPaths, - buildStatusSnapshot, - classifySuspect, - createAdHocSessionWithEvent, - createManifest, - createTaskWithEvent, - deleteTask, - editTask, - enumerateArchivedTaskIds, - enumerateSessionDirs, - enumerateTaskIds, - ensureBasouDirectory, - FailedToFinalizeError, - findErrorCode, - GENERATED_END, - GENERATED_START, - importSessionFromJson, - linkYamlFile, - loadSessionEntries, - loadTaskEntries, - overwriteYamlFile, - parseMarkers, - readManifest, - readMarkdownFile, - readSessionYaml, - readStatus, - readTaskFile, - readTaskFileWithArchiveFallback, - readYamlFile, - reconcileAllTasks, - reconcileTask, - refreshTaskLinkedSessions, - renderWithMarkers, - STUCK_THRESHOLD_MS, - TaskWriteAfterEventError, - updateTaskStatusWithEvent, - writeManifest, - writeMarkdownFile, - writeStatus, - writeTaskFile, - writeYamlFile, -} from "./storage/index.js"; + ApprovalIdSchema, + ApprovalSchema, + ApprovalStatusSchema, + DecisionIdSchema, + EventIdSchema, + EventSchema, + EventSourceSchema, + IsoTimestampSchema, + ManifestSchema, + RiskLevelSchema, + SchemaVersionSchema, + SessionIdSchema, + SessionImportPayloadSchema, + SessionInnerImportSchema, + SessionSchema, + SessionSourceKindSchema, + SessionStatusSchema, + StatusSchema, + TaskIdSchema, + TaskSchema, + TaskStatusSchema, + WorkspaceIdSchema, +} from "./schemas/index.js"; export type { AppendBasouGitignoreResult, AppendEventToExistingInput, @@ -163,44 +143,51 @@ export type { UpdateTaskStatusResult, WriteTaskFileMode, } from "./storage/index.js"; - -export { resolveSessionId, resolveTaskId } from "./lib/id-resolver.js"; - -export { - sanitizePath, - sanitizeRelatedFiles, - sanitizeWorkingDirectory, -} from "./lib/path-sanitizer.js"; -export type { SanitizePathOptions, SanitizeRelatedFilesResult } from "./lib/path-sanitizer.js"; - -export { renderHandoff } from "./handoff/index.js"; -export type { HandoffRendererInput, HandoffRendererResult } from "./handoff/index.js"; - -export { renderDecisions } from "./decisions/index.js"; -export type { DecisionsRendererInput, DecisionsRendererResult } from "./decisions/index.js"; - -export { ChildProcessRunner } from "./runtime/child-process-runner.js"; -export type { - CaptureMode, - ProcessRunner, - RunOptions, - RunResult, -} from "./runtime/process-runner.js"; - -export { getSnapshot, resolveRepositoryRoot, tryRemoteUrl } from "./git/snapshot.js"; -export type { GitSnapshot } from "./git/snapshot.js"; - -export { getDiff } from "./git/diff.js"; -export type { DiffResult, FileChange, FileChangeStatus } from "./git/diff.js"; - export { - claudeCodeAdapterMetadata, - resolveClaudeCodeCommand, - summarizeAdapterOutput, -} from "./adapters/claude-code/index.js"; -export type { CommandLookup } from "./adapters/claude-code/index.js"; - -export { appendEvent, readAllEvents, replayEvents, writeEventsBulk } from "./events/index.js"; -export type { ReplayOptions, ReplayWarning } from "./events/index.js"; - -export { parseDuration } from "./lib/duration.js"; + acquireLock, + appendBasouGitignore, + appendEventToExistingSession, + archiveTask, + assertBasouRootSafe, + basouPaths, + buildStatusSnapshot, + classifySuspect, + createAdHocSessionWithEvent, + createManifest, + createTaskWithEvent, + deleteTask, + editTask, + ensureBasouDirectory, + enumerateArchivedTaskIds, + enumerateSessionDirs, + enumerateTaskIds, + FailedToFinalizeError, + findErrorCode, + GENERATED_END, + GENERATED_START, + importSessionFromJson, + linkYamlFile, + loadSessionEntries, + loadTaskEntries, + overwriteYamlFile, + parseMarkers, + readManifest, + readMarkdownFile, + readSessionYaml, + readStatus, + readTaskFile, + readTaskFileWithArchiveFallback, + readYamlFile, + reconcileAllTasks, + reconcileTask, + refreshTaskLinkedSessions, + renderWithMarkers, + STUCK_THRESHOLD_MS, + TaskWriteAfterEventError, + updateTaskStatusWithEvent, + writeManifest, + writeMarkdownFile, + writeStatus, + writeTaskFile, + writeYamlFile, +} from "./storage/index.js"; diff --git a/packages/core/src/schemas/index.ts b/packages/core/src/schemas/index.ts index d081d818..077e2276 100644 --- a/packages/core/src/schemas/index.ts +++ b/packages/core/src/schemas/index.ts @@ -1,75 +1,67 @@ -export { - WorkspaceIdSchema, - TaskIdSchema, - SessionIdSchema, - EventIdSchema, - ApprovalIdSchema, - DecisionIdSchema, - IsoTimestampSchema, - SchemaVersionSchema, - RiskLevelSchema, - EventSourceSchema, -} from "./shared.schema.js"; -export type { RiskLevel } from "./shared.schema.js"; - -export { ManifestSchema } from "./manifest.schema.js"; -export type { Manifest } from "./manifest.schema.js"; - -export { StatusSchema } from "./status.schema.js"; -export type { StatusSnapshot } from "./status.schema.js"; - -export { - SessionSchema, - SessionStatusSchema, - SessionSourceKindSchema, -} from "./session.schema.js"; -export type { Session, SessionStatus, SessionSourceKind } from "./session.schema.js"; - -export { TaskSchema, TaskStatusSchema } from "./task.schema.js"; -export type { Task, TaskStatus } from "./task.schema.js"; - -export { - TASK_INDEX_SCHEMA_VERSION, - TaskIndexEntrySchema, - TaskIndexSchema, -} from "./task-index.schema.js"; -export type { TaskIndex, TaskIndexEntry } from "./task-index.schema.js"; - +export type { Approval, ApprovalStatus } from "./approval.schema.js"; export { ApprovalSchema, ApprovalStatusSchema, } from "./approval.schema.js"; -export type { Approval, ApprovalStatus } from "./approval.schema.js"; - -export { EventSchema } from "./event.schema.js"; export type { - Event, - SessionStartedEvent, - SessionEndedEvent, - SessionStatusChangedEvent, - ApprovalRequestedEvent, + AdapterOutputEvent, ApprovalApprovedEvent, - ApprovalRejectedEvent, ApprovalExpiredEvent, + ApprovalRejectedEvent, + ApprovalRequestedEvent, CommandExecutedEvent, - GitSnapshotEvent, - FileChangedEvent, DecisionRecordedEvent, + Event, + FileChangedEvent, + GitSnapshotEvent, + NoteAddedEvent, + SessionEndedEvent, + SessionStartedEvent, + SessionStatusChangedEvent, + TaskArchivedEvent, TaskCreatedEvent, - TaskStatusChangedEvent, - TaskReconciledEvent, - TaskLinkageRefreshedEvent, TaskDeletedEvent, - TaskArchivedEvent, - NoteAddedEvent, - AdapterOutputEvent, + TaskLinkageRefreshedEvent, + TaskReconciledEvent, + TaskStatusChangedEvent, } from "./event.schema.js"; - +export { EventSchema } from "./event.schema.js"; +export type { Manifest } from "./manifest.schema.js"; +export { ManifestSchema } from "./manifest.schema.js"; +export type { Session, SessionSourceKind, SessionStatus } from "./session.schema.js"; export { - SessionImportPayloadSchema, - SessionInnerImportSchema, -} from "./session-import.schema.js"; + SessionSchema, + SessionSourceKindSchema, + SessionStatusSchema, +} from "./session.schema.js"; export type { SessionImportPayload, SessionInnerImportInput, } from "./session-import.schema.js"; +export { + SessionImportPayloadSchema, + SessionInnerImportSchema, +} from "./session-import.schema.js"; +export type { RiskLevel } from "./shared.schema.js"; +export { + ApprovalIdSchema, + DecisionIdSchema, + EventIdSchema, + EventSourceSchema, + IsoTimestampSchema, + RiskLevelSchema, + SchemaVersionSchema, + SessionIdSchema, + TaskIdSchema, + WorkspaceIdSchema, +} from "./shared.schema.js"; +export type { StatusSnapshot } from "./status.schema.js"; +export { StatusSchema } from "./status.schema.js"; +export type { Task, TaskStatus } from "./task.schema.js"; +export { TaskSchema, TaskStatusSchema } from "./task.schema.js"; +export type { TaskIndex, TaskIndexEntry } from "./task-index.schema.js"; +export { + TASK_INDEX_SCHEMA_VERSION, + TaskIndexEntrySchema, + TaskIndexSchema, +} from "./task-index.schema.js"; diff --git a/packages/core/src/schemas/shared.schema.ts b/packages/core/src/schemas/shared.schema.ts index 15949e29..417d4371 100644 --- a/packages/core/src/schemas/shared.schema.ts +++ b/packages/core/src/schemas/shared.schema.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { type IdPrefix, type PrefixedId, isValidPrefixedId } from "../ids/ulid.js"; +import { type IdPrefix, isValidPrefixedId, type PrefixedId } from "../ids/ulid.js"; /** * Schema version literal pinned to "0.1.0" for Basou v0.1. diff --git a/packages/core/src/storage/ad-hoc-session.test.ts b/packages/core/src/storage/ad-hoc-session.test.ts index 2bbe7a5f..f90033e6 100644 --- a/packages/core/src/storage/ad-hoc-session.test.ts +++ b/packages/core/src/storage/ad-hoc-session.test.ts @@ -6,9 +6,9 @@ import { parse } from "yaml"; import type { Event } from "../schemas/event.schema.js"; import type { Manifest } from "../schemas/manifest.schema.js"; import { - FailedToFinalizeError, appendEventToExistingSession, createAdHocSessionWithEvent, + FailedToFinalizeError, } from "./ad-hoc-session.js"; import { type BasouPaths, ensureBasouDirectory } from "./basou-dir.js"; import { linkYamlFile, overwriteYamlFile } from "./yaml-store.js"; diff --git a/packages/core/src/storage/atomic.test.ts b/packages/core/src/storage/atomic.test.ts index 3a05dbfe..21a6290d 100644 --- a/packages/core/src/storage/atomic.test.ts +++ b/packages/core/src/storage/atomic.test.ts @@ -1,4 +1,4 @@ -import { lstat, mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { lstat, mkdir, mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; diff --git a/packages/core/src/storage/index.ts b/packages/core/src/storage/index.ts index 62799873..d6c1919a 100644 --- a/packages/core/src/storage/index.ts +++ b/packages/core/src/storage/index.ts @@ -1,39 +1,24 @@ -export { basouPaths, ensureBasouDirectory } from "./basou-dir.js"; +export type { + AppendEventToExistingInput, + AppendEventToExistingResult, + AttachableStatus, + CreateAdHocSessionInput, + CreateAdHocSessionResult, +} from "./ad-hoc-session.js"; +export { + appendEventToExistingSession, + createAdHocSessionWithEvent, + FailedToFinalizeError, +} from "./ad-hoc-session.js"; export type { BasouPaths } from "./basou-dir.js"; -export { linkYamlFile, overwriteYamlFile, readYamlFile, writeYamlFile } from "./yaml-store.js"; -export { createManifest, readManifest, writeManifest } from "./manifest.js"; -export type { CreateManifestInput } from "./manifest.js"; -export { appendBasouGitignore } from "./gitignore.js"; +export { basouPaths, ensureBasouDirectory } from "./basou-dir.js"; export type { AppendBasouGitignoreResult } from "./gitignore.js"; -export { acquireLock } from "./lockfile.js"; +export { appendBasouGitignore } from "./gitignore.js"; export type { LockHandle, LockScope } from "./lockfile.js"; -export { - rebuildTaskIndex, - readTaskIndex, - taskIndexPath, - updateTaskIndex, -} from "./task-index.js"; -export type { TaskIndexOp } from "./task-index.js"; -export { - assertBasouRootSafe, - buildStatusSnapshot, - findErrorCode, - readStatus, - writeStatus, -} from "./status.js"; -export { - classifySuspect, - enumerateSessionDirs, - loadSessionEntries, - readSessionYaml, - STUCK_THRESHOLD_MS, -} from "./sessions.js"; -export type { - LoadSessionEntriesOptions, - SessionEntry, - SessionSkipReason, - SuspectReason, -} from "./sessions.js"; +export { acquireLock } from "./lockfile.js"; +export type { CreateManifestInput } from "./manifest.js"; +export { createManifest, readManifest, writeManifest } from "./manifest.js"; +export type { MarkerSection } from "./markdown-store.js"; export { GENERATED_END, GENERATED_START, @@ -42,41 +27,38 @@ export { renderWithMarkers, writeMarkdownFile, } from "./markdown-store.js"; -export type { MarkerSection } from "./markdown-store.js"; -export { importSessionFromJson } from "./session-import.js"; export type { ImportSessionOptions, ImportSessionResult, } from "./session-import.js"; -export { - FailedToFinalizeError, - appendEventToExistingSession, - createAdHocSessionWithEvent, -} from "./ad-hoc-session.js"; +export { importSessionFromJson } from "./session-import.js"; export type { - AppendEventToExistingInput, - AppendEventToExistingResult, - AttachableStatus, - CreateAdHocSessionInput, - CreateAdHocSessionResult, -} from "./ad-hoc-session.js"; + LoadSessionEntriesOptions, + SessionEntry, + SessionSkipReason, + SuspectReason, +} from "./sessions.js"; export { - TaskWriteAfterEventError, - archiveTask, - createTaskWithEvent, - deleteTask, - editTask, - enumerateArchivedTaskIds, - enumerateTaskIds, - loadTaskEntries, - readTaskFile, - readTaskFileWithArchiveFallback, - reconcileAllTasks, - reconcileTask, - refreshTaskLinkedSessions, - updateTaskStatusWithEvent, - writeTaskFile, -} from "./tasks.js"; + classifySuspect, + enumerateSessionDirs, + loadSessionEntries, + readSessionYaml, + STUCK_THRESHOLD_MS, +} from "./sessions.js"; +export { + assertBasouRootSafe, + buildStatusSnapshot, + findErrorCode, + readStatus, + writeStatus, +} from "./status.js"; +export type { TaskIndexOp } from "./task-index.js"; +export { + readTaskIndex, + rebuildTaskIndex, + taskIndexPath, + updateTaskIndex, +} from "./task-index.js"; export type { ArchiveTaskInput, ArchiveTaskResult, @@ -106,3 +88,21 @@ export type { UpdateTaskStatusResult, WriteTaskFileMode, } from "./tasks.js"; +export { + archiveTask, + createTaskWithEvent, + deleteTask, + editTask, + enumerateArchivedTaskIds, + enumerateTaskIds, + loadTaskEntries, + readTaskFile, + readTaskFileWithArchiveFallback, + reconcileAllTasks, + reconcileTask, + refreshTaskLinkedSessions, + TaskWriteAfterEventError, + updateTaskStatusWithEvent, + writeTaskFile, +} from "./tasks.js"; +export { linkYamlFile, overwriteYamlFile, readYamlFile, writeYamlFile } from "./yaml-store.js"; diff --git a/packages/core/src/storage/lockfile.test.ts b/packages/core/src/storage/lockfile.test.ts index e04d7a25..e42adc35 100644 --- a/packages/core/src/storage/lockfile.test.ts +++ b/packages/core/src/storage/lockfile.test.ts @@ -1,4 +1,4 @@ -import { mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { mkdir, mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; diff --git a/packages/core/src/storage/markdown-store.test.ts b/packages/core/src/storage/markdown-store.test.ts index b8bbaf46..74cff4ca 100644 --- a/packages/core/src/storage/markdown-store.test.ts +++ b/packages/core/src/storage/markdown-store.test.ts @@ -1,4 +1,4 @@ -import { mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; diff --git a/packages/core/src/storage/session-import.test.ts b/packages/core/src/storage/session-import.test.ts index 0bb61036..eba8f4b4 100644 --- a/packages/core/src/storage/session-import.test.ts +++ b/packages/core/src/storage/session-import.test.ts @@ -1,4 +1,4 @@ -import { mkdtemp, readFile, readdir, rm, stat, writeFile } from "node:fs/promises"; +import { mkdtemp, readdir, readFile, rm, stat, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; diff --git a/packages/core/src/storage/session-import.ts b/packages/core/src/storage/session-import.ts index c8275316..d06597b5 100644 --- a/packages/core/src/storage/session-import.ts +++ b/packages/core/src/storage/session-import.ts @@ -7,11 +7,11 @@ import { findErrorCode } from "../lib/error-codes.js"; import { sanitizeRelatedFiles, sanitizeWorkingDirectory } from "../lib/path-sanitizer.js"; import type { Event } from "../schemas/event.schema.js"; import type { Manifest } from "../schemas/manifest.schema.js"; +import type { Session, SessionSourceKind, SessionStatus } from "../schemas/session.schema.js"; import type { SessionImportPayload, SessionInnerImportInput, } from "../schemas/session-import.schema.js"; -import type { Session, SessionSourceKind, SessionStatus } from "../schemas/session.schema.js"; import { TaskIdSchema } from "../schemas/shared.schema.js"; import type { BasouPaths } from "./basou-dir.js"; import { enumerateTaskIds } from "./tasks.js"; diff --git a/packages/core/src/storage/sessions.test.ts b/packages/core/src/storage/sessions.test.ts index cf191b99..0347de87 100644 --- a/packages/core/src/storage/sessions.test.ts +++ b/packages/core/src/storage/sessions.test.ts @@ -5,11 +5,11 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { stringify } from "yaml"; import { type BasouPaths, basouPaths, ensureBasouDirectory } from "./basou-dir.js"; import { - type SessionSkipReason, classifySuspect, enumerateSessionDirs, loadSessionEntries, readSessionYaml, + type SessionSkipReason, } from "./sessions.js"; const FIXED_WS_ID = "ws_01HXABCDEF1234567890ABCDEF" as const; diff --git a/packages/core/src/storage/status.test.ts b/packages/core/src/storage/status.test.ts index 65e2230c..f5003750 100644 --- a/packages/core/src/storage/status.test.ts +++ b/packages/core/src/storage/status.test.ts @@ -6,9 +6,9 @@ import { StatusSchema } from "../schemas/status.schema.js"; import { basouPaths, ensureBasouDirectory } from "./basou-dir.js"; import { createManifest } from "./manifest.js"; import { - DIRECTORY_CHECKS, assertBasouRootSafe, buildStatusSnapshot, + DIRECTORY_CHECKS, findErrorCode, readStatus, writeStatus, diff --git a/packages/core/src/storage/tasks.test.ts b/packages/core/src/storage/tasks.test.ts index e6494a46..b8b03e52 100644 --- a/packages/core/src/storage/tasks.test.ts +++ b/packages/core/src/storage/tasks.test.ts @@ -1,4 +1,4 @@ -import { chmod, mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { chmod, mkdir, mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; @@ -7,13 +7,13 @@ import type { PrefixedId } from "../ids/ulid.js"; import type { Manifest } from "../schemas/manifest.schema.js"; import { type BasouPaths, ensureBasouDirectory } from "./basou-dir.js"; import { - TaskWriteAfterEventError, createTaskWithEvent, enumerateTaskIds, loadTaskEntries, readTaskFile, reconcileAllTasks, reconcileTask, + TaskWriteAfterEventError, updateTaskStatusWithEvent, writeTaskFile, } from "./tasks.js"; diff --git a/packages/core/src/storage/tasks.ts b/packages/core/src/storage/tasks.ts index d6bb8d7b..81c0a1ac 100644 --- a/packages/core/src/storage/tasks.ts +++ b/packages/core/src/storage/tasks.ts @@ -1,5 +1,5 @@ import { createHash } from "node:crypto"; -import { mkdir, readFile, readdir, rename, stat, unlink } from "node:fs/promises"; +import { mkdir, readdir, readFile, rename, stat, unlink } from "node:fs/promises"; import { join } from "node:path"; import { parse as parseYaml, stringify as stringifyYaml } from "yaml"; import { z } from "zod"; @@ -9,18 +9,18 @@ import type { Event } from "../schemas/event.schema.js"; import type { Manifest } from "../schemas/manifest.schema.js"; import type { SessionStatus } from "../schemas/session.schema.js"; import { IsoTimestampSchema, SessionIdSchema, TaskIdSchema } from "../schemas/shared.schema.js"; -import type { TaskIndexEntry } from "../schemas/task-index.schema.js"; import { type Task, TaskSchema, type TaskStatus, TaskStatusSchema, } from "../schemas/task.schema.js"; +import type { TaskIndexEntry } from "../schemas/task-index.schema.js"; import { type AttachableStatus, - FailedToFinalizeError, appendEventToExistingSession, createAdHocSessionWithEvent, + FailedToFinalizeError, } from "./ad-hoc-session.js"; import { atomicCreate, atomicReplace } from "./atomic.js"; import type { BasouPaths } from "./basou-dir.js"; diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 210a43ad..34cb28e9 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -5,7 +5,13 @@ "license": "Apache-2.0", "description": "Type-only SDK for Basou adapter authors. v0.1: types only, no runtime.", "author": "Takashi Matsuyama", - "keywords": ["ai", "agent", "sdk", "adapter", "basou"], + "keywords": [ + "ai", + "agent", + "sdk", + "adapter", + "basou" + ], "repository": { "type": "git", "url": "git+https://github.com/basou-dev/basou.git", @@ -29,7 +35,9 @@ "import": "./dist/index.js" } }, - "files": ["dist"], + "files": [ + "dist" + ], "engines": { "node": ">=20.10.0" },