@martintrojer/mu 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -62,13 +62,13 @@ declare class SchemaTooOldError extends Error implements HasNextSteps {
62
62
  constructor(detectedVersion: number, requiredVersion: number);
63
63
  errorNextSteps(): NextStep[];
64
64
  }
65
- /** The schema version a fresh DB starts at. v7 drops the
66
- * `approvals` table on top of v6 (which added 5 archive_* tables
67
- * on top of v5's surrogate-PK substrate; docs/ARCHITECTURE.md §
68
- * Surrogate-PK + SDK-boundary discipline). The refusal floor is
69
- * v5 — pre-v5 DBs throw `SchemaTooOldError`; v5 v6 → v7 DBs
70
- * are forward-bumped in place by `applySchema`. */
71
- declare const CURRENT_SCHEMA_VERSION = 7;
65
+ /** The schema version a fresh DB starts at. v8 adds the
66
+ * machine_identity and workstream_sync sync substrate on top of v7
67
+ * (which dropped the approvals table), v6 (which added 5 archive_*
68
+ * tables), and v5's surrogate-PK substrate. The refusal floor is
69
+ * v5 — pre-v5 DBs throw `SchemaTooOldError`; v5+ DBs are
70
+ * forward-bumped in place by `applySchema`. */
71
+ declare const CURRENT_SCHEMA_VERSION = 8;
72
72
  /** Tables a healthy DB must contain. Single source of truth so
73
73
  * `mu doctor` and any other consumer don't drift. Adding a new table
74
74
  * = one new entry here AND a CREATE TABLE in CURRENT_SCHEMA. (Schema
@@ -1636,6 +1636,26 @@ interface SearchArchivesOptions {
1636
1636
  /** LIKE-search archived task titles AND archived note content. */
1637
1637
  declare function searchArchives(db: Db, opts: SearchArchivesOptions): ArchiveSearchHit[];
1638
1638
 
1639
+ declare class ArchiveSourceAmbiguousError extends Error implements HasNextSteps {
1640
+ readonly label: string;
1641
+ readonly sources: readonly string[];
1642
+ readonly name = "ArchiveSourceAmbiguousError";
1643
+ constructor(label: string, sources: readonly string[]);
1644
+ errorNextSteps(): NextStep[];
1645
+ }
1646
+ interface RestoreArchiveOptions {
1647
+ sourceWorkstream?: string;
1648
+ }
1649
+ interface RestoreArchiveResult {
1650
+ archiveLabel: string;
1651
+ sourceWorkstream: string;
1652
+ workstreamName: string;
1653
+ restoredTasks: number;
1654
+ restoredEdges: number;
1655
+ restoredNotes: number;
1656
+ }
1657
+ declare function restoreArchive(db: Db, label: string, asWorkstream: string, opts?: RestoreArchiveOptions): RestoreArchiveResult;
1658
+
1639
1659
  type TaskStatus = "OPEN" | "IN_PROGRESS" | "CLOSED" | "REJECTED" | "DEFERRED";
1640
1660
  /** Every legal task status, in canonical order (matches the schema
1641
1661
  * CHECK clause). Exported so CLI surfaces (`--status` validators,
@@ -2860,6 +2880,164 @@ declare function loadFullDag(db: Db, workstream: string, opts?: LoadFullDagOptio
2860
2880
  declare function renderForest(roots: readonly TaskRow[], edges: ReadonlyMap<string, readonly string[]>, statusFn: TaskStatusLabelFn, tasksByName?: ReadonlyMap<string, TaskRow>, opts?: RenderTreeOptions): string;
2861
2881
  declare function renderTaskTree(db: Db, workstream: string, root: TaskRow, direction: "blockers" | "dependents", statusFn: TaskStatusLabelFn, opts?: RenderTreeOptions): string;
2862
2882
 
2883
+ declare class DbReplayWorkstreamMissingError extends Error implements HasNextSteps {
2884
+ readonly workstream: string;
2885
+ readonly name = "DbReplayWorkstreamMissingError";
2886
+ constructor(workstream: string);
2887
+ errorNextSteps(): NextStep[];
2888
+ }
2889
+ interface DbReplayTaskConflict {
2890
+ localId: string;
2891
+ local: {
2892
+ title: string;
2893
+ status: string;
2894
+ };
2895
+ sidecar: {
2896
+ title: string;
2897
+ status: string;
2898
+ };
2899
+ }
2900
+ declare class DbReplayLocalIdConflictError extends Error implements HasNextSteps {
2901
+ readonly workstream: string;
2902
+ readonly conflicts: readonly DbReplayTaskConflict[];
2903
+ readonly name = "DbReplayLocalIdConflictError";
2904
+ constructor(workstream: string, conflicts: readonly DbReplayTaskConflict[]);
2905
+ errorNextSteps(): NextStep[];
2906
+ }
2907
+ interface ReplayDbOptions {
2908
+ apply?: boolean;
2909
+ tasks?: readonly string[];
2910
+ notes?: readonly string[];
2911
+ all?: boolean;
2912
+ }
2913
+ interface DbReplayTaskItem {
2914
+ localId: string;
2915
+ title: string;
2916
+ status: string;
2917
+ impact: number;
2918
+ effortDays: number;
2919
+ createdAt: string;
2920
+ updatedAt: string;
2921
+ }
2922
+ interface DbReplayNoteItem {
2923
+ taskLocalId: string;
2924
+ author: string | null;
2925
+ content: string;
2926
+ createdAt: string;
2927
+ hash: string;
2928
+ }
2929
+ interface DbReplayEdgeItem {
2930
+ fromLocalId: string;
2931
+ toLocalId: string;
2932
+ createdAt: string;
2933
+ }
2934
+ interface DbReplayPlan {
2935
+ sourceFile: string;
2936
+ workstream: string;
2937
+ tasks: DbReplayTaskItem[];
2938
+ notes: DbReplayNoteItem[];
2939
+ edges: DbReplayEdgeItem[];
2940
+ conflicts: DbReplayTaskConflict[];
2941
+ }
2942
+ interface DbReplayResult extends DbReplayPlan {
2943
+ dryRun: boolean;
2944
+ applied: boolean;
2945
+ snapshotId?: number;
2946
+ added: {
2947
+ tasks: number;
2948
+ notes: number;
2949
+ edges: number;
2950
+ };
2951
+ warnings: string[];
2952
+ }
2953
+ declare function replayDb(db: Db, file: string, opts?: ReplayDbOptions): DbReplayResult;
2954
+ declare function buildReplayPlan(localDb: Db, sidecarDb: Db, sourceFile: string): DbReplayPlan;
2955
+
2956
+ interface DbExportManifestWorkstream {
2957
+ name: string;
2958
+ tasks: number;
2959
+ edges: number;
2960
+ notes: number;
2961
+ latestSeq: number;
2962
+ }
2963
+ interface DbExportManifest {
2964
+ muVersion: string;
2965
+ schemaVersion: number;
2966
+ machineId: string;
2967
+ hostname: string | null;
2968
+ exportedAt: string;
2969
+ workstreams: DbExportManifestWorkstream[];
2970
+ }
2971
+ interface ExportDbOptions {
2972
+ force?: boolean;
2973
+ }
2974
+ interface ExportDbResult {
2975
+ file: string;
2976
+ manifestPath: string;
2977
+ manifest: DbExportManifest;
2978
+ overwritten: boolean;
2979
+ }
2980
+ declare class DbExportTargetExistsError extends Error implements HasNextSteps {
2981
+ readonly file: string;
2982
+ readonly name = "DbExportTargetExistsError";
2983
+ constructor(file: string);
2984
+ errorNextSteps(): NextStep[];
2985
+ }
2986
+ declare class DbImportManifestMissingError extends Error implements HasNextSteps {
2987
+ readonly manifestPath: string;
2988
+ readonly name = "DbImportManifestMissingError";
2989
+ constructor(manifestPath: string);
2990
+ errorNextSteps(): NextStep[];
2991
+ }
2992
+ declare class DbImportSchemaTooOldError extends Error implements HasNextSteps {
2993
+ readonly sourceVersion: number;
2994
+ readonly name = "DbImportSchemaTooOldError";
2995
+ constructor(sourceVersion: number);
2996
+ errorNextSteps(): NextStep[];
2997
+ }
2998
+ declare class DbImportSchemaTooNewError extends Error implements HasNextSteps {
2999
+ readonly sourceVersion: number;
3000
+ readonly name = "DbImportSchemaTooNewError";
3001
+ constructor(sourceVersion: number);
3002
+ errorNextSteps(): NextStep[];
3003
+ }
3004
+ declare class DbImportSourceStaleError extends Error implements HasNextSteps {
3005
+ readonly workstreams: readonly string[];
3006
+ readonly name = "DbImportSourceStaleError";
3007
+ constructor(workstreams: readonly string[]);
3008
+ errorNextSteps(): NextStep[];
3009
+ }
3010
+ declare class DbImportConflictError extends Error implements HasNextSteps {
3011
+ readonly workstreams: readonly string[];
3012
+ readonly name = "DbImportConflictError";
3013
+ constructor(workstreams: readonly string[]);
3014
+ errorNextSteps(): NextStep[];
3015
+ }
3016
+ type DbImportDecision = "IDENTICAL" | "FAST_FORWARD" | "LOCAL_AHEAD" | "CONFLICT" | "IMPORT" | "LEAVE_ALONE";
3017
+ interface DbImportSummaryItem {
3018
+ workstream: string;
3019
+ decision: DbImportDecision;
3020
+ delta: Record<string, unknown>;
3021
+ needs?: string;
3022
+ parkPath?: string;
3023
+ }
3024
+ interface ImportDbOptions {
3025
+ apply?: boolean;
3026
+ forceSource?: boolean;
3027
+ onlyWorkstreams?: readonly string[];
3028
+ }
3029
+ interface ImportDbResult {
3030
+ machineId: string;
3031
+ sourceFile: string;
3032
+ dryRun: boolean;
3033
+ applied: boolean;
3034
+ snapshotId?: number;
3035
+ summary: DbImportSummaryItem[];
3036
+ }
3037
+ declare function exportDb(db: Db, file: string, opts?: ExportDbOptions): ExportDbResult;
3038
+ declare function importDb(db: Db, file: string, opts?: ImportDbOptions): ImportDbResult;
3039
+ declare function buildImportPlan(localDb: Db, manifest: DbExportManifest, sourceFile: string, onlyWorkstreams?: readonly string[]): DbImportSummaryItem[];
3040
+
2863
3041
  interface Track {
2864
3042
  /** Goal tasks (no outgoing edges) belonging to this track. */
2865
3043
  roots: TaskRow[];
@@ -3011,6 +3189,12 @@ declare function exportArchive(db: Db, opts: ExportArchiveOptions): ExportArchiv
3011
3189
  declare function isValidWorkstreamName(name: string): boolean;
3012
3190
  /** Thrown by `ensureWorkstream` and `mu workstream init` when the name
3013
3191
  * doesn't match the rules. */
3192
+ declare class WorkstreamExistsError extends Error implements HasNextSteps {
3193
+ readonly workstream: string;
3194
+ readonly name: string;
3195
+ constructor(workstream: string);
3196
+ errorNextSteps(): NextStep[];
3197
+ }
3014
3198
  declare class WorkstreamNameInvalidError extends Error implements HasNextSteps {
3015
3199
  readonly attempted: string;
3016
3200
  readonly name = "WorkstreamNameInvalidError";
@@ -3168,82 +3352,6 @@ interface ExportResult {
3168
3352
  */
3169
3353
  declare function exportWorkstream(db: Db, opts: ExportWorkstreamOptions): ExportResult;
3170
3354
 
3171
- declare class ImportBucketInvalidError extends Error implements HasNextSteps {
3172
- readonly bucketDir: string;
3173
- readonly reason: string;
3174
- readonly name = "ImportBucketInvalidError";
3175
- constructor(bucketDir: string, reason: string);
3176
- errorNextSteps(): NextStep[];
3177
- }
3178
- declare class WorkstreamAlreadyExistsError extends Error implements HasNextSteps {
3179
- readonly workstream: string;
3180
- readonly name = "WorkstreamAlreadyExistsError";
3181
- constructor(workstream: string);
3182
- errorNextSteps(): NextStep[];
3183
- }
3184
- declare class ImportFrontmatterParseError extends Error implements HasNextSteps {
3185
- readonly path: string;
3186
- readonly line: number;
3187
- readonly raw: string;
3188
- readonly name = "ImportFrontmatterParseError";
3189
- constructor(path: string, line: number, raw: string);
3190
- errorNextSteps(): NextStep[];
3191
- }
3192
- declare class ImportEdgeRefMissingError extends Error implements HasNextSteps {
3193
- readonly fromTask: string;
3194
- readonly toTask: string;
3195
- readonly direction: "blocked_by" | "blocks";
3196
- readonly name = "ImportEdgeRefMissingError";
3197
- constructor(fromTask: string, toTask: string, direction: "blocked_by" | "blocks");
3198
- errorNextSteps(): NextStep[];
3199
- }
3200
- interface ImportBucketOptions {
3201
- bucketDir: string;
3202
- /** Rename the (single) source workstream on import. Only valid when
3203
- * the bucket has exactly one source-ws subdir (after applying any
3204
- * `sourceWs` filter); otherwise rejected with an
3205
- * ImportBucketInvalidError. */
3206
- workstreamOverride?: string;
3207
- /** Restrict the import to a subset of source-ws subdirs (by name).
3208
- * Each name must be a key in the bucket manifest's `sources` map;
3209
- * otherwise ImportSourceNotInBucketError is raised. Mutually
3210
- * exclusive with the per-source-ws-subdir invocation form (Form 1):
3211
- * passing this flag against a Form 1 path raises
3212
- * ImportBucketInvalidError. Empty array is treated as "no filter";
3213
- * the CLI rejects an explicitly-empty `--source-ws ,,`. */
3214
- sourceWs?: string[];
3215
- /** Walk + parse but write nothing to the DB. */
3216
- dryRun?: boolean;
3217
- }
3218
- interface ImportSourceResult {
3219
- workstreamName: string;
3220
- tasksImported: number;
3221
- edgesImported: number;
3222
- notesImported: number;
3223
- tombstonesSkipped: number;
3224
- /** Per-source-ws errors that did NOT roll back this source. Empty
3225
- * on success. (Sibling failures live in their own entry.) */
3226
- errors: string[];
3227
- }
3228
- interface ImportBucketResult {
3229
- bucketLabel: string | null;
3230
- bucketVersion: number;
3231
- sources: ImportSourceResult[];
3232
- }
3233
- /**
3234
- * Import a v0.3 bucket directory back into the DB. One source-ws
3235
- * subdirectory becomes one workstream + N tasks + M edges + K notes.
3236
- * Per source-ws transactional: a failure in source A rolls back A
3237
- * but leaves source B's import committed.
3238
- *
3239
- * Throws on unrecoverable bucket-level errors (no manifest,
3240
- * --workstream override against multi-source). Per-source
3241
- * errors (frontmatter parse, edge ref, target name collision) leave
3242
- * the failing source's `errors` array populated and that source's
3243
- * counts at zero; siblings still attempt their own import.
3244
- */
3245
- declare function importBucket(db: Db, opts: ImportBucketOptions): ImportBucketResult;
3246
-
3247
3355
  type LogKind = "message" | "event" | "broadcast" | string;
3248
3356
  interface LogRow {
3249
3357
  /** Monotonic AUTOINCREMENT id. Use as the cursor for `--since`. */
@@ -3300,7 +3408,7 @@ declare function listLogs(db: Db, opts?: ListLogsOptions): LogRow[];
3300
3408
  * by `mu log --tail` to start the cursor at "now" so the subscriber
3301
3409
  * only sees NEW entries unless they explicitly pass `--since 0`.
3302
3410
  */
3303
- declare function latestSeq(db: Db): number;
3411
+ declare function latestSeq(db: Db, workstreamId?: number): number;
3304
3412
  /**
3305
3413
  * One-line helper for state-changing SDK functions to auto-emit a
3306
3414
  * `kind='event'` log entry. Called AFTER the mutation succeeds, only
@@ -3619,4 +3727,4 @@ declare function deleteSnapshot(db: Db, snapshotId: number): DeleteSnapshotResul
3619
3727
 
3620
3728
  declare function restoreSnapshot(db: Db, snapshotId: number): RestoreSnapshotResult;
3621
3729
 
3622
- export { type AddNoteOptions, type AddTaskOptions, type AddToArchiveResult, type AdoptAgentOptions, type AdoptAgentResult, AgentDiedOnSpawnError, AgentExistsError, AgentNotFoundError, AgentNotInWorkstreamError, type AgentRow, AgentSpawnCliNotFoundError, AgentSpawnStartupError, type AgentStatus, type AppendLogOptions, type Archive, ArchiveAlreadyExistsError, ArchiveLabelInvalidError, ArchiveNotFoundError, type ArchiveSearchHit, type ArchiveSourceSummary, type ArchiveSummary, type ArchivedTaskRow, type BlockEdgeResult, CURRENT_SCHEMA_VERSION, type CaptureOptions, type CaptureSnapshotResult, type ClaimResult, type ClaimTaskOptions, ClaimerNotRegisteredError, type ClassifiedEvent, type CloseAgentOptions, type CloseAgentResult, type CommandResolutionResult, type CommandResolver, CrossWorkstreamEdgeError, CycleError, type Db, type DeleteSnapshotResult, type DeleteTaskResult, type DestroyResult, type DetectedStatus, type DoctorCheck, type DoctorStatus, type DoctorSummary, EVENT_VERB_PREFIXES, EXPECTED_TABLES, type EvidenceOption, type ExportArchiveOptions, type ExportArchiveResult, type ExportManifest, type ExportResult, type ExportSource, type ExportSourceManifest, type ExportTaskEntry, type ExportWorkstreamOptions, type FreeAgentResult, type FullDag, HomeDirAsProjectRootError, type IdFromTitleResult, ImportBucketInvalidError, type ImportBucketOptions, type ImportBucketResult, ImportEdgeRefMissingError, ImportFrontmatterParseError, type ImportSourceResult, type InsertAgentInput, type KickAgentOptions, type KickAgentResult, type KickProcessExecutor, type KickSignal, type ListArchivedTasksOptions, type ListLiveAgentsOptions, type ListLogsOptions, type ListNotesOptions, type ListReadyOptions, type ListSnapshotsOptions, type ListTasksOptions, type LiveAgentsView, type LoadFullDagOptions, type LoadWorkstreamSnapshotOptions, type LogKind, type LogRow, type NewSessionOptions, type NewWindowOptions, NoForegroundProcessError, type OpenDbOptions, type OwnedTasksSummary, PANE_ID_RE, PaneNotFoundError, type PruneMode, type PruneOptions, PruneOptionsInvalidError, type PruneResult, type ReconcileMode, type ReconcileOptions, type ReconcileReport, type RejectDeferOptions, type RejectDeferResult, type ReleaseResult, type ReleaseTaskOptions, type RemoveBlockEdgeResult, type RemoveFromArchiveResult, type RenderBucketInput, type RenderBucketResult, type ReparentTaskResult, type RestoreSnapshotResult, type RoiBucket, STATUSES_TERMINAL_OR_PARKED, STATUS_EMOJI, SchemaTooOldError, type SearchArchivesOptions, type SearchTasksOptions, type SendOptions, type SetStatusResult, type SlugifyResult, SnapshotFileMissingError, SnapshotNotFoundError, type SnapshotRow, SnapshotVersionMismatchError, type SpawnAgentOptions, type SplitWindowOptions, type StrandedWorkspaceOrphan, TASK_STATUSES, TASK_STATUS_LIST, TaskAlreadyOwnedError, type TaskEdgeWithStatus, type TaskEdges, type TaskEdgesWithStatus, TaskExistsError, TaskHasOpenDependentsError, TaskNotFoundError, TaskNotInWorkstreamError, type TaskNoteRow, type TaskRow, type TaskStatus, type TaskWaitOptions, type TaskWaitRef, type TaskWaitResult, type TaskWaitTaskState, TmuxError, type TmuxExecResult, type TmuxExecutor, type TmuxPane, type TmuxSession, type TmuxWindow, type Track, type UpdateTaskOptions, type UpdateTaskResult, type VcsBackend, type VcsBackendName, type CreateWorkspaceOptions$1 as VcsCreateWorkspaceOptions, type CreateWorkspaceResult as VcsCreateWorkspaceResult, type FreeWorkspaceOptions$1 as VcsFreeWorkspaceOptions, type FreeWorkspaceResult$1 as VcsFreeWorkspaceResult, WORKSPACE_STALE_THRESHOLD, type CreateWorkspaceOptions as WorkspaceCreateOptions, WorkspaceExistsError, type WorkspaceFailure, type FreeWorkspaceOptions as WorkspaceFreeOptions, type FreeWorkspaceResult as WorkspaceFreeResult, WorkspaceNotFoundError, type WorkspaceOrphan, WorkspacePathNotEmptyError, WorkspacePreservedError, type RecreateWorkspaceOptions as WorkspaceRecreateOptions, type RecreateWorkspaceResult as WorkspaceRecreateResult, type WorkspaceRow, type WorkspaceStaleness, WorkstreamAlreadyExistsError, WorkstreamNameInvalidError, type WorkstreamOptions, type WorkstreamSnapshot, type WorkstreamSnapshotSlowFields, type WorkstreamSummary, addBlockEdge, addNote, addTask, addToArchive, adoptAgent, agentStatusHistogram, appendLog, assertValidPaneId, backendByName, capturePane, captureSnapshot, checkCommandResolvable, claimTask, classifyEventVerb, closeAgent, closeTask, composeAgentTitle, countProblems, createArchive, createWorkspace, currentAgentName, currentPaneTitle, decorateWithDirty, decorateWithStaleness, defaultDbPath, defaultSendDelayMs, defaultSpawnLivenessMs, defaultStateDir, deferTask, deleteAgent, deleteArchive, deleteSnapshot, deleteTask, destroyWorkstream, detectBackend, detectPiStatus, emitEvent, ensureWorkstream, envVarNameForCli, exportArchive, exportSourceForWorkstream, exportSourcesForArchive, exportWorkstream, extractTail, foregroundPgid, freeAgent, freeWorkspace, gcMaxAgeDays, gcMaxCount, gcSnapshots, getAgent, getAgentByPane, getArchive, getParallelTracks, getPrerequisites, getTask, getTaskEdges, getTaskEdgesWithStatus, getWaitPollCount, getWorkspaceForAgent, getWorkspaceStaleness, gitBackend, idFromTitle, idFromTitleVerbose, importBucket, insertAgent, isKickSignal, isStaleVersion, isTaskStatus, isValidAgentName, isValidArchiveLabel, isValidPaneId, isValidTaskId, isValidWorkstreamName, isWorkspaceStale, jjBackend, kickAgent, killPane, killSession, latestSeq, listAgents, listAllOrphanWorkspaces, listArchivedTasks, listArchives, listBlocked, listGoals, listInProgress, listLiveAgents, listLogs, listNotes, listPanes, listPanesInSession, listReady, listRecentClosed, listSessions, listSnapshots, listTasks, listTasksByOwner, listWindows, listWorkspaceOrphans, listWorkspaces, listWorkstreams, loadDoctorChecks, loadDoctorSummary, loadFullDag, loadWorkstreamSnapshot, loadWorkstreamSnapshotFast, loadWorkstreamSnapshotSlow, mergeSnapshotFastSlow, newSession, newSessionWithPane, newWindow, noneBackend, openDb, openTask, paneExists, paneTTY, parseAgentNameFromTitle, parsePsTtyOutput, pruneSnapshots, readAgent, reconcile, recreateWorkspace, refreshAgentTitle, rejectTask, releaseTask, remediationParagraph, removeBlockEdge, removeFromArchive, renderForest, renderTaskTree, renderToBucket, reparentTask, resetCommandResolverForTests, resetKickProcessExecutor, resetSleep, resetTmuxExecutor, resetWaitPollCount, resolveActorIdentity, resolveCliCommand, resolveCliCommandWithSource, restoreSnapshot, roiBucket, searchArchives, searchTasks, selectLayout, sendToAgent, sendToPane, sessionExists, setCommandResolverForTests, setKickProcessExecutor, setPaneTitle, setSleepForTests, setTaskStatus, setTmuxExecutor, setWaitSleepForTests, setWaitStuckWarnForTests, slBackend, sleep, slugifyTitle, slugifyTitleVerbose, snapshotFileSize, snapshotsDir, spawnAgent, splitWindow, summarizeOwnedTasks, summarizeWorkstream, tmux$1 as tmux, updateAgentStatus, updateTask, waitForTasks, workspacePath, workspacesRoot, yankCommandForCheck };
3730
+ export { type AddNoteOptions, type AddTaskOptions, type AddToArchiveResult, type AdoptAgentOptions, type AdoptAgentResult, AgentDiedOnSpawnError, AgentExistsError, AgentNotFoundError, AgentNotInWorkstreamError, type AgentRow, AgentSpawnCliNotFoundError, AgentSpawnStartupError, type AgentStatus, type AppendLogOptions, type Archive, ArchiveAlreadyExistsError, ArchiveLabelInvalidError, ArchiveNotFoundError, type ArchiveSearchHit, ArchiveSourceAmbiguousError, type ArchiveSourceSummary, type ArchiveSummary, type ArchivedTaskRow, type BlockEdgeResult, CURRENT_SCHEMA_VERSION, type CaptureOptions, type CaptureSnapshotResult, type ClaimResult, type ClaimTaskOptions, ClaimerNotRegisteredError, type ClassifiedEvent, type CloseAgentOptions, type CloseAgentResult, type CommandResolutionResult, type CommandResolver, CrossWorkstreamEdgeError, CycleError, type Db, type DbExportManifest, type DbExportManifestWorkstream, DbExportTargetExistsError, DbImportConflictError, type DbImportDecision, DbImportManifestMissingError, DbImportSchemaTooNewError, DbImportSchemaTooOldError, DbImportSourceStaleError, type DbImportSummaryItem, type DbReplayEdgeItem, DbReplayLocalIdConflictError, type DbReplayNoteItem, type DbReplayPlan, type DbReplayResult, type DbReplayTaskConflict, type DbReplayTaskItem, DbReplayWorkstreamMissingError, type DeleteSnapshotResult, type DeleteTaskResult, type DestroyResult, type DetectedStatus, type DoctorCheck, type DoctorStatus, type DoctorSummary, EVENT_VERB_PREFIXES, EXPECTED_TABLES, type EvidenceOption, type ExportArchiveOptions, type ExportArchiveResult, type ExportDbOptions, type ExportDbResult, type ExportManifest, type ExportResult, type ExportSource, type ExportSourceManifest, type ExportTaskEntry, type ExportWorkstreamOptions, type FreeAgentResult, type FullDag, HomeDirAsProjectRootError, type IdFromTitleResult, type ImportDbOptions, type ImportDbResult, type InsertAgentInput, type KickAgentOptions, type KickAgentResult, type KickProcessExecutor, type KickSignal, type ListArchivedTasksOptions, type ListLiveAgentsOptions, type ListLogsOptions, type ListNotesOptions, type ListReadyOptions, type ListSnapshotsOptions, type ListTasksOptions, type LiveAgentsView, type LoadFullDagOptions, type LoadWorkstreamSnapshotOptions, type LogKind, type LogRow, type NewSessionOptions, type NewWindowOptions, NoForegroundProcessError, type OpenDbOptions, type OwnedTasksSummary, PANE_ID_RE, PaneNotFoundError, type PruneMode, type PruneOptions, PruneOptionsInvalidError, type PruneResult, type ReconcileMode, type ReconcileOptions, type ReconcileReport, type RejectDeferOptions, type RejectDeferResult, type ReleaseResult, type ReleaseTaskOptions, type RemoveBlockEdgeResult, type RemoveFromArchiveResult, type RenderBucketInput, type RenderBucketResult, type ReparentTaskResult, type ReplayDbOptions, type RestoreArchiveOptions, type RestoreArchiveResult, type RestoreSnapshotResult, type RoiBucket, STATUSES_TERMINAL_OR_PARKED, STATUS_EMOJI, SchemaTooOldError, type SearchArchivesOptions, type SearchTasksOptions, type SendOptions, type SetStatusResult, type SlugifyResult, SnapshotFileMissingError, SnapshotNotFoundError, type SnapshotRow, SnapshotVersionMismatchError, type SpawnAgentOptions, type SplitWindowOptions, type StrandedWorkspaceOrphan, TASK_STATUSES, TASK_STATUS_LIST, TaskAlreadyOwnedError, type TaskEdgeWithStatus, type TaskEdges, type TaskEdgesWithStatus, TaskExistsError, TaskHasOpenDependentsError, TaskNotFoundError, TaskNotInWorkstreamError, type TaskNoteRow, type TaskRow, type TaskStatus, type TaskWaitOptions, type TaskWaitRef, type TaskWaitResult, type TaskWaitTaskState, TmuxError, type TmuxExecResult, type TmuxExecutor, type TmuxPane, type TmuxSession, type TmuxWindow, type Track, type UpdateTaskOptions, type UpdateTaskResult, type VcsBackend, type VcsBackendName, type CreateWorkspaceOptions$1 as VcsCreateWorkspaceOptions, type CreateWorkspaceResult as VcsCreateWorkspaceResult, type FreeWorkspaceOptions$1 as VcsFreeWorkspaceOptions, type FreeWorkspaceResult$1 as VcsFreeWorkspaceResult, WORKSPACE_STALE_THRESHOLD, type CreateWorkspaceOptions as WorkspaceCreateOptions, WorkspaceExistsError, type WorkspaceFailure, type FreeWorkspaceOptions as WorkspaceFreeOptions, type FreeWorkspaceResult as WorkspaceFreeResult, WorkspaceNotFoundError, type WorkspaceOrphan, WorkspacePathNotEmptyError, WorkspacePreservedError, type RecreateWorkspaceOptions as WorkspaceRecreateOptions, type RecreateWorkspaceResult as WorkspaceRecreateResult, type WorkspaceRow, type WorkspaceStaleness, WorkstreamExistsError, WorkstreamNameInvalidError, type WorkstreamOptions, type WorkstreamSnapshot, type WorkstreamSnapshotSlowFields, type WorkstreamSummary, addBlockEdge, addNote, addTask, addToArchive, adoptAgent, agentStatusHistogram, appendLog, assertValidPaneId, backendByName, buildImportPlan, buildReplayPlan, capturePane, captureSnapshot, checkCommandResolvable, claimTask, classifyEventVerb, closeAgent, closeTask, composeAgentTitle, countProblems, createArchive, createWorkspace, currentAgentName, currentPaneTitle, decorateWithDirty, decorateWithStaleness, defaultDbPath, defaultSendDelayMs, defaultSpawnLivenessMs, defaultStateDir, deferTask, deleteAgent, deleteArchive, deleteSnapshot, deleteTask, destroyWorkstream, detectBackend, detectPiStatus, emitEvent, ensureWorkstream, envVarNameForCli, exportArchive, exportDb, exportSourceForWorkstream, exportSourcesForArchive, exportWorkstream, extractTail, foregroundPgid, freeAgent, freeWorkspace, gcMaxAgeDays, gcMaxCount, gcSnapshots, getAgent, getAgentByPane, getArchive, getParallelTracks, getPrerequisites, getTask, getTaskEdges, getTaskEdgesWithStatus, getWaitPollCount, getWorkspaceForAgent, getWorkspaceStaleness, gitBackend, idFromTitle, idFromTitleVerbose, importDb, insertAgent, isKickSignal, isStaleVersion, isTaskStatus, isValidAgentName, isValidArchiveLabel, isValidPaneId, isValidTaskId, isValidWorkstreamName, isWorkspaceStale, jjBackend, kickAgent, killPane, killSession, latestSeq, listAgents, listAllOrphanWorkspaces, listArchivedTasks, listArchives, listBlocked, listGoals, listInProgress, listLiveAgents, listLogs, listNotes, listPanes, listPanesInSession, listReady, listRecentClosed, listSessions, listSnapshots, listTasks, listTasksByOwner, listWindows, listWorkspaceOrphans, listWorkspaces, listWorkstreams, loadDoctorChecks, loadDoctorSummary, loadFullDag, loadWorkstreamSnapshot, loadWorkstreamSnapshotFast, loadWorkstreamSnapshotSlow, mergeSnapshotFastSlow, newSession, newSessionWithPane, newWindow, noneBackend, openDb, openTask, paneExists, paneTTY, parseAgentNameFromTitle, parsePsTtyOutput, pruneSnapshots, readAgent, reconcile, recreateWorkspace, refreshAgentTitle, rejectTask, releaseTask, remediationParagraph, removeBlockEdge, removeFromArchive, renderForest, renderTaskTree, renderToBucket, reparentTask, replayDb, resetCommandResolverForTests, resetKickProcessExecutor, resetSleep, resetTmuxExecutor, resetWaitPollCount, resolveActorIdentity, resolveCliCommand, resolveCliCommandWithSource, restoreArchive, restoreSnapshot, roiBucket, searchArchives, searchTasks, selectLayout, sendToAgent, sendToPane, sessionExists, setCommandResolverForTests, setKickProcessExecutor, setPaneTitle, setSleepForTests, setTaskStatus, setTmuxExecutor, setWaitSleepForTests, setWaitStuckWarnForTests, slBackend, sleep, slugifyTitle, slugifyTitleVerbose, snapshotFileSize, snapshotsDir, spawnAgent, splitWindow, summarizeOwnedTasks, summarizeWorkstream, tmux$1 as tmux, updateAgentStatus, updateTask, waitForTasks, workspacePath, workspacesRoot, yankCommandForCheck };