@basou/core 0.49.0 → 0.51.0

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
@@ -52,10 +52,17 @@ declare function summarizeAdapterOutput(_stream: "stdout" | "stderr", _raw: stri
52
52
  * merge/removal logic stays deterministic and unit-testable.
53
53
  *
54
54
  * settings.json holds many unrelated keys (permissions, model, other hooks);
55
- * these functions clone the input and touch ONLY the `hooks.Stop` entry that
56
- * basou owns, preserving everything else byte-for-byte through the round-trip.
55
+ * these functions clone the input and touch ONLY the `hooks.Stop` and
56
+ * `hooks.SessionStart` entries that basou owns, preserving everything else
57
+ * byte-for-byte through the round-trip.
58
+ *
59
+ * The SessionStart command, matcher and timeout are the Codex twin's
60
+ * (`../codex/hooks-json.ts`): both tools run the same `basou hook session-start`
61
+ * and apply the matcher to the same session sources (startup / resume / clear /
62
+ * compact), so one decision about when the position is worth its bytes serves
63
+ * both.
57
64
  */
58
- /** Seconds before Claude Code kills the hook process. Matches the documented orient (SessionStart) hook. */
65
+ /** Seconds before Claude Code kills the Stop hook process. */
59
66
  declare const STOP_HOOK_TIMEOUT_SECONDS = 20;
60
67
  declare function isBasouStopHookCommand(command: string): boolean;
61
68
  type BuildStopHookCommandOptions = {
@@ -105,6 +112,84 @@ declare function upsertStopHook(settings: unknown, command: string): StopHookUps
105
112
  declare function removeStopHook(settings: unknown): StopHookRemoval;
106
113
  /** Return the installed basou Stop hook command, or null if none is registered. */
107
114
  declare function findBasouStopHookCommand(settings: unknown): string | null;
115
+ /** Whether a command is basou's `hook session-start`, exactly as basou writes it. */
116
+ declare function isClaudeSessionStartHookCommand(command: string): boolean;
117
+ /**
118
+ * Whether a command is the documented hand-registered `basou orient` — basou's
119
+ * own reference told Claude Code users to register exactly this before
120
+ * `basou hook install` could, so an install that ignored it would put the
121
+ * position into every session twice. It counts as basou's ONLY inside
122
+ * `hooks.SessionStart`; anywhere else it is somebody's script.
123
+ */
124
+ declare function isBasouOrientSessionStartCommand(command: string): boolean;
125
+ /** Which of basou's two SessionStart forms a command is, if either. */
126
+ type ClaudeSessionStartHookKind = "session-start" | "orient";
127
+ type ClaudeSessionStartHookUpsert = {
128
+ settings: ClaudeSettings;
129
+ /**
130
+ * `installed` = a new group was appended; `updated` = an existing
131
+ * `hook session-start` entry was rewritten or a duplicate removed;
132
+ * `replaced` = a hand-registered `basou orient` was rewritten into
133
+ * `hook session-start`; `unchanged` = already canonical, nothing touched.
134
+ */
135
+ action: "installed" | "updated" | "replaced" | "unchanged";
136
+ };
137
+ type ClaudeSessionStartHookRemoval = {
138
+ settings: ClaudeSettings;
139
+ action: "removed" | "absent";
140
+ };
141
+ /**
142
+ * Register (or upgrade in place) basou's SessionStart hook in Claude Code's
143
+ * settings. The hook prints the workspace's position into the new session's
144
+ * context, and records the git baseline the Stop hook measures the session's
145
+ * file changes against — without it, a session's shell edits are invisible.
146
+ *
147
+ * - EVERY basou entry — `hook session-start`, or the hand-registered
148
+ * `basou orient` — is rewritten IN PLACE to the canonical command + timeout.
149
+ * Its group's matcher is left as it is: the matcher is when the hook fires,
150
+ * and the person who wrote it may have chosen it. Only a new install brings
151
+ * basou's own matcher, in a group of its own. Same rule as the Codex twin.
152
+ * - A later entry is removed as a duplicate only when an earlier one fires
153
+ * under the SAME matcher. Entries under different matchers are kept even if
154
+ * they overlap: collapsing them would silently narrow when the hook fires
155
+ * (`startup` and `resume|clear` are not duplicates). Overlap that survives is
156
+ * reported by {@link findClaudeSessionStartHooks}, not resolved by guessing.
157
+ * - Foreign hooks, other events and other keys are untouched.
158
+ */
159
+ declare function upsertClaudeSessionStartHook(settings: unknown, command: string): ClaudeSessionStartHookUpsert;
160
+ /**
161
+ * Remove every basou-owned SessionStart entry — `hook session-start` and the
162
+ * hand-registered `basou orient` alike, since install treats both as basou's.
163
+ * A group emptied by the removal is dropped; a now-empty `hooks.SessionStart`
164
+ * / `hooks` container is deleted. Foreign hooks and other keys are preserved.
165
+ */
166
+ declare function removeClaudeSessionStartHook(settings: unknown): ClaudeSessionStartHookRemoval;
167
+ /** One basou-owned SessionStart entry in Claude Code's settings. */
168
+ type ClaudeSessionStartHookLocation = {
169
+ command: string;
170
+ kind: ClaudeSessionStartHookKind;
171
+ /** The matcher of the group it sits in (undefined = fires on every source). */
172
+ matcher: string | undefined;
173
+ };
174
+ /**
175
+ * Every basou-owned SessionStart entry, in file order. More than one survives
176
+ * an install only under different matchers — which is exactly the case a
177
+ * reader needs to see, since overlapping matchers put the position in twice.
178
+ */
179
+ declare function findClaudeSessionStartHooks(settings: unknown): ClaudeSessionStartHookLocation[];
180
+ /** Whether `hooks.SessionStart` exists but cannot be read as a list of groups. */
181
+ declare function isClaudeSessionStartMalformed(settings: unknown): boolean;
182
+ /**
183
+ * What a SessionStart command that runs basou but is NOT one of the two
184
+ * recognized shapes appears to run: `orient` or `hook session-start`, inside a
185
+ * longer command (a `cd` first, an `&&` chain, node options, `npx`). Install
186
+ * leaves those exactly as written; this lets it and `status` say so.
187
+ */
188
+ type ClaudeUnrecognizedSessionStart = {
189
+ command: string;
190
+ runs: ClaudeSessionStartHookKind;
191
+ };
192
+ declare function findUnrecognizedSessionStart(settings: unknown): ClaudeUnrecognizedSessionStart[];
108
193
 
109
194
  /**
110
195
  * `schema_version` stamped on NEWLY WRITTEN `.basou/manifest.yaml`.
@@ -715,11 +800,6 @@ declare function getDiff(repoRoot: string, baseRef: string, headRef: string): Pr
715
800
  * Untracked files are NOT included — `git diff` never reports them — so a
716
801
  * caller that wants them unions this with {@link getWorkingTreeChanges}.
717
802
  *
718
- * {@link getDiff} does NOT set `core.quotePath=false` and still returns git's
719
- * quoted rendering for a non-ASCII path. That is a separate defect on a
720
- * shipped path (`basou run` / `exec` write those paths into `file_changed`
721
- * events) and is deliberately not changed here.
722
- *
723
803
  * Pathless contract and error vocabulary are identical to {@link getDiff}.
724
804
  *
725
805
  * @param repoRoot absolute path to the git repository root
@@ -4489,6 +4569,43 @@ declare function parseBuildStamp(raw: string | undefined): BuildStamp | undefine
4489
4569
  */
4490
4570
  declare const BASOU_CORE_BUILD: BuildStamp | undefined;
4491
4571
 
4572
+ /**
4573
+ * Render a recorded file path for a human reader or a model: every character
4574
+ * that would act rather than read — a line break, a tab, an escape sequence —
4575
+ * becomes a visible escape, and every other character is left as it is.
4576
+ *
4577
+ * Paths are stored RAW, exactly as the filesystem names the file, because that
4578
+ * is the only spelling that identifies it. But a raw name can carry a newline,
4579
+ * and every place basou prints paths is line-structured: a generated Markdown
4580
+ * document, where a newline followed by `## ` in a file name becomes a heading
4581
+ * of the document; the position handed to a session at start, where it becomes
4582
+ * text the model reads as basou's own; and a terminal, where an ESC byte in a
4583
+ * name is an instruction to the terminal, not a character. So the conversion
4584
+ * happens where a path is SHOWN, never where it is kept.
4585
+ *
4586
+ * Not {@link oneLine}: collapsing a newline into a space turns `a\nb.txt` into
4587
+ * `a b.txt`, which is another, possibly real, file.
4588
+ *
4589
+ * Escaped: C0 controls (U+0000–U+001F), DEL, C1 controls (U+0080–U+009F), the
4590
+ * Unicode line and paragraph separators U+2028 / U+2029, which Markdown and
4591
+ * JavaScript both treat as line breaks, and the bidirectional embedding,
4592
+ * override and isolate controls (U+202A–U+202E, U+2066–U+2069), one of which is
4593
+ * enough to make every name after it on the line display reversed. `\n`, `\r`
4594
+ * and `\t` keep their familiar spellings; the rest become `\xHH` or `\uHHHH`.
4595
+ *
4596
+ * NOT reversible, and not meant to be. A backslash is not escaped -- it is an
4597
+ * ordinary character in a POSIX name, and doubling every one would make the
4598
+ * common case harder to read -- so a name containing a real newline and a name
4599
+ * containing the two characters `\` and `n` display the same. The display
4600
+ * keeps a name from acting; it does not identify it. Anything that must name
4601
+ * the file uses the stored value, which is exact.
4602
+ *
4603
+ * Markdown syntax inside the one line (`# `, `[..](..)`, `*`) is not escaped
4604
+ * either: the name can no longer leave its line, but a renderer may still
4605
+ * format what is on it.
4606
+ */
4607
+ declare function displayPath(path: string): string;
4608
+
4492
4609
  /**
4493
4610
  * Parse a unit-suffixed duration string (e.g. `30s`, `5m`, `1h`, `100ms`)
4494
4611
  * into milliseconds.
@@ -7913,4 +8030,4 @@ declare function overwriteYamlFile(filePath: string, value: unknown): Promise<vo
7913
8030
  */
7914
8031
  declare const BASOU_CORE_VERSION = "0.1.0";
7915
8032
 
7916
- export { ACTIVE_GAP_CAP_MS, AGENT_INFRA_DIRS, APPROVAL_SCHEMA_VERSION, type ActiveTimeBasis, type AdapterOutputEvent, type AdoptCandidate, type AdoptCandidateKind, type AnchorStarterInput, type AnchorStarterRepo, type AppendBasouGitignoreOptions, type AppendBasouGitignoreResult, type AppendEventToExistingInput, type AppendEventToExistingResult, type Approval, type ApprovalApprovedEvent, type ApprovalExpiredEvent, ApprovalIdSchema, type ApprovalLocation, type ApprovalRejectedEvent, type ApprovalRequestedEvent, ApprovalSchema, type ApprovalStatus, ApprovalStatusSchema, type ArchivePlan, type ArchiveTaskInput, type ArchiveTaskResult, type AttachTaskInput, type AttachUpdateTaskStatusInput, type AttachableStatus, BASOU_CORE_BUILD, BASOU_CORE_VERSION, type BasouPaths, type BuildStamp, type BuildStopHookCommandOptions, type BulkChainResult, CLAUDE_IMPORT_SOURCE, CODEX_IMPORT_SOURCE, type CaptureMode, type ChainBreakReason, type ChainTailState, type ChainVerdict, type ChainVerdictStatus, type ChainedEvents, ChildProcessRunner, type CitedReview, type ClaudeSettings, type ClaudeTranscriptRecord, type ClaudeTranscriptToPayloadOptions, type CodexCommandLookup, type CodexHooksFile, type CodexRolloutRecord, type CodexRolloutToPayloadOptions, type CommandExecutedEvent, type CommandLookup, type CreateAdHocSessionInput, type CreateAdHocSessionResult, type CreateAdHocTaskInput, type CreateManifestInput, type CreateTaskInput, type CreateTaskResult, DECISION_GAPS_EPOCH, DEFAULT_STOP_HOOK_MIN_EDITS, type DayWorkStats, type DecisionGap, type DecisionGapsExcluded, type DecisionGapsIncomplete, type DecisionGapsInput, type DecisionGapsScope, type DecisionGapsSummary, DecisionIdSchema, type DecisionRecordedEvent, type DecisionsRendererInput, type DecisionsRendererResult, type DeleteTaskInput, type DeleteTaskResult, type DiffResult, EVENT_SCHEMA_VERSION, type EditTaskInput, type EditTaskResult, type Event, EventIdSchema, EventSchema, EventSourceSchema, type ExistingViewLink, FailedToFinalizeError, type FederatedRoot, type FileChange, type FileChangeStatus, type FileChangedEvent, GENERATED_END, GENERATED_START, type GitSnapshot, type GitSnapshotEvent, type GitignorePlanSummary, type HandoffRendererInput, type HandoffRendererResult, ID_PREFIXES, type IdPrefix, type ImportSessionOptions, type ImportSessionResult, type IncompleteWiring, type InstructionFileFact, type InstructionSymlinkFact, type InstructionSymlinkState, IsoTimestampSchema, JSON_SCHEMA_VERSIONS, type JsonSchemaArtifact, LOCAL_CLI_EVENT_SOURCE, type LoadFederatedOptions, type LoadSessionEntriesOptions, type LoadTaskEntriesOptions, type LoadedApproval, type LockHandle, type LockScope, MANIFEST_SCHEMA_VERSION, type Manifest, ManifestSchema, type MarkerSection, type Markers, type MeasureAvailability, type MissingCanonical, type NoteAddedEvent, ORIENTATION_END, ORIENTATION_START, type ObserveSessionInput, type ObservedFile, type ObservedRepo, type OrientationRendererInput, type OrientationRendererResult, type OrientationSummary, PROTOCOL_END, PROTOCOL_START, PROTOCOL_UPDATE_TOKEN_PREFIX, type PrefixedId, type PresetAction, type PresetCollision, type PresetMarkerConflict, type PresetMarkerKind, type PresetPlanSummary, type PresetRepo, type PresetStrings, type ProcessRunner, type ProtocolStamp, type PublishKind, type PublishTarget, REVIEW_RECORD_NO_INPUT_HINT, type RechainOptions, type RechainResult, type ReconcileAllResult, type ReconcileAllTasksInput, type ReconcileAllTasksOptions, type ReconcileFailure, type ReconcileResult, type ReconcileTaskInput, type RefreshLinkageInput, type RefreshLinkageResult, type ReimportOptions, type ReimportResult, type RenamePlan, type ReplayOptions, type ReplayWarning, type RepoEntry, type RepoGitignoreFacts, type RepoGitignorePlan, type RepoInstructions, type RepoLanguage, type RepoPathProblem, type RepoPresetFacts, type RepoPresetPlan, type RepoSymlinkFacts, type RepoSymlinkPlan, type RepoVisibility, type RepoWiringFacts, type ReportApprovalItem, type ReportData, type ReportDecisionItem, type ReportRendererInput, type ReportRendererResult, type ReportSessionItem, type ReportTaskItem, type RetrofitAction, type RetrofitAgentsState, type RetrofitFacts, type RetrofitPlan, type RetrofitReason, type ReviewBlocked, type ReviewFinding, type ReviewGapRepoSummary, type ReviewGapUnit, type ReviewGapVerdict, type ReviewGapsInput, type ReviewGapsSummary, type ReviewGateResult, type ReviewGateSilentReason, type ReviewRecordBlockedInput, type ReviewRecordFindingInput, type ReviewRecordInput, type ReviewRecordedEvent, type RiskLevel, RiskLevelSchema, type RosterAdoptionPlan, type RosterDriftSummary, type RunOptions, type RunResult, SESSION_IMPORT_SCHEMA_VERSION, SESSION_OBSERVATION_SCHEMA_VERSION, SESSION_SCHEMA_VERSION, SESSION_START_HOOK_CONTEXT_LIMIT, SESSION_START_HOOK_MATCHER, SESSION_START_HOOK_STATUS_MESSAGE, SESSION_START_HOOK_TIMEOUT_SECONDS, STOP_HOOK_TIMEOUT_SECONDS, STUCK_THRESHOLD_MS, type SanitizePathOptions, type SanitizeRelatedFilesResult, SchemaVersionSchema, type SelfReportedReview, type Session, type SessionEndedEvent, type SessionEntry, SessionIdSchema, type SessionImportPayload, SessionImportPayloadSchema, type SessionInnerImportInput, SessionInnerImportSchema, type SessionIntegrity, SessionIntegritySchema, type SessionMetrics, SessionMetricsSchema, type SessionObservation, SessionSchema, type SessionSkipReason, type SessionSourceKind, SessionSourceKindSchema, type SessionStartHookLocation, type SessionStartHookRemoval, type SessionStartHookUpsert, type SessionStartedEvent, type SessionStatus, type SessionStatusChangedEvent, SessionStatusSchema, type SessionWorkStats, type SourceRootScope, type SourceRootsReconcile, type SourceWorkStats, type StatusCount, StatusSchema, type StatusSnapshot, type StopHookEvaluation, type StopHookEvaluationInput, type StopHookRemoval, type StopHookSilentReason, type StopHookUpsert, type SuspectReason, type SymlinkCollision, type SymlinkConflict, type SymlinkPlanSummary, TASK_SCHEMA_VERSION, type Task, type TaskArchivedEvent, type TaskCreatedEvent, type TaskDeletedEvent, type TaskDocument, TaskIdSchema, type TaskLinkageRefreshedEvent, type TaskReconciledEvent, TaskSchema, type TaskSkipReason, type TaskStatus, type TaskStatusChangedEvent, type TaskStatusCount, TaskStatusSchema, TaskWriteAfterEventError, type TaskWriteAfterEventPhase, type TokenTotals, type UnattachedSelfReports, type UnbindableRepo, type UpdateAdHocTaskStatusInput, type UpdateTaskStatusInput, type UpdateTaskStatusResult, type ViewCollision, type ViewConflict, type ViewLanguage, type ViewLinkState, type ViewPresetInput, type ViewPresetRepo, type ViewRepoFact, type ViewStrayUnknown, type ViewStrings, type ViewWiringFacts, type WiringCollision, type WiringConflict, type WiringDriftSummary, type WiringRisk, type WiringSummary, type WorkStatsInput, type WorkStatsResult, type WorkStatsTotals, WorkspaceIdSchema, type WorkspaceViewPlan, type WriteEventsBulkOptions, type WriteTaskFileMode, ZERO_DURATION_RETIRED_SINCE, acquireLock, appendBasouGitignore, appendChainedEvent, appendChainedEventLocked, appendEvent, appendEventToExistingSession, archiveTask, assertBasouRootSafe, basouPaths, buildJsonSchemas, buildReviewRecordLabel, buildReviewRecordedEvent, buildSessionStartHookCommand, buildStatusSnapshot, buildStopHookCommand, carryForwardProtocolStamp, chainEvents, chainRawJsonLines, classifyFilesBySourceRoot, classifyRetrofit, classifySuspect, claudeCodeAdapterMetadata, claudeTranscriptToImportPayload, codexAdapterMetadata, codexRolloutToImportPayload, computeWorkStats, createAdHocSessionWithEvent, createManifest, createTaskWithEvent, deleteTask, editTask, ensureBasouDirectory, enumerateApprovals, enumerateArchivedTaskIds, enumerateSessionDirs, enumerateTaskIds, evaluateStopHook, finalizeSessionYaml, findBasouSessionStartHook, findBasouStopHookCommand, findDecisionGaps, findErrorCode, findReviewGaps, findUnbindableRepos, formatDurationMs, genesisHash, getChangesSince, getDiff, getSnapshot, getWorkingTreeChanges, hasRetiredZeroDuration, importSessionFromJson, inspectChainTail, instructionMode, isBasouSessionStartHookCommand, isBasouStopHookCommand, isGitNotFound, isImportDerivedSource, isLazyExpired, isProtocolUpdateDue, isRenderable, isValidPrefixedId, lineHash, linkYamlFile, loadApproval, loadFederatedSessionEntries, loadSessionEntries, loadTaskEntries, normalizeRepoKey, normalizeRepoPath, observeSessionChanges, observedFilesOf, observedRepoRoots, overwriteYamlFile, parseBuildStamp, parseDuration, parseMarkers, parseProtocolStamp, parseReviewRecordInput, pathBasename, planArchive, planGitignore, planRename, planRosterAdoption, planWorkspaceView, prefixedUlid, presetStrings, protocolBlockHash, protocolSectionsFrom, protocolUpdateToken, readAllEvents, readHeadSha, readManifest, readMarkdownFile, readObservedDuration, readSessionObservation, readSessionYaml, readStatus, readTaskFile, readTaskFileWithArchiveFallback, readYamlFile, rechainSessionInPlace, reconcileAllTasks, reconcileSourceRoots, reconcileTask, recordSessionBaseline, refreshTaskLinkedSessions, reimportPreservingId, removeMarkerSection, removeSessionStartHook, removeStopHook, renderAnchorStarter, renderDecisions, renderHandoff, renderOrientation, renderPresetBlock, renderProtocolStamp, renderProtocolUpdate, renderReport, renderViewPresetBlock, renderWithMarkers, replayEvents, resolveAnchorContentLanguage, resolveBasouRepositoryRoot, resolveClaudeCodeCommand, resolveCodexCommand, resolveRepoContentLanguage, resolveRepoRoot, resolveRepositoryRoot, resolveSessionId, resolveTaskId, resolveViewLanguage, resolveViewLanguageFromPaths, safeSimpleGit, sanitizePath, sanitizeRelatedFiles, sanitizeWorkingDirectory, seedMarkers, serializeEventLine, serializeJsonSchema, sessionObservationPath, sessionWorkStatsFromEvents, summarizeAdapterOutput, summarizeOrientation, summarizePresetPlan, summarizeRosterDrift, summarizeSymlinkPlan, summarizeWiring, summarizeWiringDrift, transcriptStartedAt, tryRemoteUrl, ulid, unknownManifestKeys, unstampedProtocolSectionsFrom, updateTaskStatusWithEvent, upsertSessionStartHook, upsertStopHook, verifyEventsChain, viewStrings, writeEventsBulk, writeManifest, writeMarkdownFile, writeObservedDuration, writeSessionObservation, writeStatus, writeTaskFile, writeYamlFile };
8033
+ export { ACTIVE_GAP_CAP_MS, AGENT_INFRA_DIRS, APPROVAL_SCHEMA_VERSION, type ActiveTimeBasis, type AdapterOutputEvent, type AdoptCandidate, type AdoptCandidateKind, type AnchorStarterInput, type AnchorStarterRepo, type AppendBasouGitignoreOptions, type AppendBasouGitignoreResult, type AppendEventToExistingInput, type AppendEventToExistingResult, type Approval, type ApprovalApprovedEvent, type ApprovalExpiredEvent, ApprovalIdSchema, type ApprovalLocation, type ApprovalRejectedEvent, type ApprovalRequestedEvent, ApprovalSchema, type ApprovalStatus, ApprovalStatusSchema, type ArchivePlan, type ArchiveTaskInput, type ArchiveTaskResult, type AttachTaskInput, type AttachUpdateTaskStatusInput, type AttachableStatus, BASOU_CORE_BUILD, BASOU_CORE_VERSION, type BasouPaths, type BuildStamp, type BuildStopHookCommandOptions, type BulkChainResult, CLAUDE_IMPORT_SOURCE, CODEX_IMPORT_SOURCE, type CaptureMode, type ChainBreakReason, type ChainTailState, type ChainVerdict, type ChainVerdictStatus, type ChainedEvents, ChildProcessRunner, type CitedReview, type ClaudeSessionStartHookKind, type ClaudeSessionStartHookLocation, type ClaudeSessionStartHookRemoval, type ClaudeSessionStartHookUpsert, type ClaudeSettings, type ClaudeTranscriptRecord, type ClaudeTranscriptToPayloadOptions, type ClaudeUnrecognizedSessionStart, type CodexCommandLookup, type CodexHooksFile, type CodexRolloutRecord, type CodexRolloutToPayloadOptions, type CommandExecutedEvent, type CommandLookup, type CreateAdHocSessionInput, type CreateAdHocSessionResult, type CreateAdHocTaskInput, type CreateManifestInput, type CreateTaskInput, type CreateTaskResult, DECISION_GAPS_EPOCH, DEFAULT_STOP_HOOK_MIN_EDITS, type DayWorkStats, type DecisionGap, type DecisionGapsExcluded, type DecisionGapsIncomplete, type DecisionGapsInput, type DecisionGapsScope, type DecisionGapsSummary, DecisionIdSchema, type DecisionRecordedEvent, type DecisionsRendererInput, type DecisionsRendererResult, type DeleteTaskInput, type DeleteTaskResult, type DiffResult, EVENT_SCHEMA_VERSION, type EditTaskInput, type EditTaskResult, type Event, EventIdSchema, EventSchema, EventSourceSchema, type ExistingViewLink, FailedToFinalizeError, type FederatedRoot, type FileChange, type FileChangeStatus, type FileChangedEvent, GENERATED_END, GENERATED_START, type GitSnapshot, type GitSnapshotEvent, type GitignorePlanSummary, type HandoffRendererInput, type HandoffRendererResult, ID_PREFIXES, type IdPrefix, type ImportSessionOptions, type ImportSessionResult, type IncompleteWiring, type InstructionFileFact, type InstructionSymlinkFact, type InstructionSymlinkState, IsoTimestampSchema, JSON_SCHEMA_VERSIONS, type JsonSchemaArtifact, LOCAL_CLI_EVENT_SOURCE, type LoadFederatedOptions, type LoadSessionEntriesOptions, type LoadTaskEntriesOptions, type LoadedApproval, type LockHandle, type LockScope, MANIFEST_SCHEMA_VERSION, type Manifest, ManifestSchema, type MarkerSection, type Markers, type MeasureAvailability, type MissingCanonical, type NoteAddedEvent, ORIENTATION_END, ORIENTATION_START, type ObserveSessionInput, type ObservedFile, type ObservedRepo, type OrientationRendererInput, type OrientationRendererResult, type OrientationSummary, PROTOCOL_END, PROTOCOL_START, PROTOCOL_UPDATE_TOKEN_PREFIX, type PrefixedId, type PresetAction, type PresetCollision, type PresetMarkerConflict, type PresetMarkerKind, type PresetPlanSummary, type PresetRepo, type PresetStrings, type ProcessRunner, type ProtocolStamp, type PublishKind, type PublishTarget, REVIEW_RECORD_NO_INPUT_HINT, type RechainOptions, type RechainResult, type ReconcileAllResult, type ReconcileAllTasksInput, type ReconcileAllTasksOptions, type ReconcileFailure, type ReconcileResult, type ReconcileTaskInput, type RefreshLinkageInput, type RefreshLinkageResult, type ReimportOptions, type ReimportResult, type RenamePlan, type ReplayOptions, type ReplayWarning, type RepoEntry, type RepoGitignoreFacts, type RepoGitignorePlan, type RepoInstructions, type RepoLanguage, type RepoPathProblem, type RepoPresetFacts, type RepoPresetPlan, type RepoSymlinkFacts, type RepoSymlinkPlan, type RepoVisibility, type RepoWiringFacts, type ReportApprovalItem, type ReportData, type ReportDecisionItem, type ReportRendererInput, type ReportRendererResult, type ReportSessionItem, type ReportTaskItem, type RetrofitAction, type RetrofitAgentsState, type RetrofitFacts, type RetrofitPlan, type RetrofitReason, type ReviewBlocked, type ReviewFinding, type ReviewGapRepoSummary, type ReviewGapUnit, type ReviewGapVerdict, type ReviewGapsInput, type ReviewGapsSummary, type ReviewGateResult, type ReviewGateSilentReason, type ReviewRecordBlockedInput, type ReviewRecordFindingInput, type ReviewRecordInput, type ReviewRecordedEvent, type RiskLevel, RiskLevelSchema, type RosterAdoptionPlan, type RosterDriftSummary, type RunOptions, type RunResult, SESSION_IMPORT_SCHEMA_VERSION, SESSION_OBSERVATION_SCHEMA_VERSION, SESSION_SCHEMA_VERSION, SESSION_START_HOOK_CONTEXT_LIMIT, SESSION_START_HOOK_MATCHER, SESSION_START_HOOK_STATUS_MESSAGE, SESSION_START_HOOK_TIMEOUT_SECONDS, STOP_HOOK_TIMEOUT_SECONDS, STUCK_THRESHOLD_MS, type SanitizePathOptions, type SanitizeRelatedFilesResult, SchemaVersionSchema, type SelfReportedReview, type Session, type SessionEndedEvent, type SessionEntry, SessionIdSchema, type SessionImportPayload, SessionImportPayloadSchema, type SessionInnerImportInput, SessionInnerImportSchema, type SessionIntegrity, SessionIntegritySchema, type SessionMetrics, SessionMetricsSchema, type SessionObservation, SessionSchema, type SessionSkipReason, type SessionSourceKind, SessionSourceKindSchema, type SessionStartHookLocation, type SessionStartHookRemoval, type SessionStartHookUpsert, type SessionStartedEvent, type SessionStatus, type SessionStatusChangedEvent, SessionStatusSchema, type SessionWorkStats, type SourceRootScope, type SourceRootsReconcile, type SourceWorkStats, type StatusCount, StatusSchema, type StatusSnapshot, type StopHookEvaluation, type StopHookEvaluationInput, type StopHookRemoval, type StopHookSilentReason, type StopHookUpsert, type SuspectReason, type SymlinkCollision, type SymlinkConflict, type SymlinkPlanSummary, TASK_SCHEMA_VERSION, type Task, type TaskArchivedEvent, type TaskCreatedEvent, type TaskDeletedEvent, type TaskDocument, TaskIdSchema, type TaskLinkageRefreshedEvent, type TaskReconciledEvent, TaskSchema, type TaskSkipReason, type TaskStatus, type TaskStatusChangedEvent, type TaskStatusCount, TaskStatusSchema, TaskWriteAfterEventError, type TaskWriteAfterEventPhase, type TokenTotals, type UnattachedSelfReports, type UnbindableRepo, type UpdateAdHocTaskStatusInput, type UpdateTaskStatusInput, type UpdateTaskStatusResult, type ViewCollision, type ViewConflict, type ViewLanguage, type ViewLinkState, type ViewPresetInput, type ViewPresetRepo, type ViewRepoFact, type ViewStrayUnknown, type ViewStrings, type ViewWiringFacts, type WiringCollision, type WiringConflict, type WiringDriftSummary, type WiringRisk, type WiringSummary, type WorkStatsInput, type WorkStatsResult, type WorkStatsTotals, WorkspaceIdSchema, type WorkspaceViewPlan, type WriteEventsBulkOptions, type WriteTaskFileMode, ZERO_DURATION_RETIRED_SINCE, acquireLock, appendBasouGitignore, appendChainedEvent, appendChainedEventLocked, appendEvent, appendEventToExistingSession, archiveTask, assertBasouRootSafe, basouPaths, buildJsonSchemas, buildReviewRecordLabel, buildReviewRecordedEvent, buildSessionStartHookCommand, buildStatusSnapshot, buildStopHookCommand, carryForwardProtocolStamp, chainEvents, chainRawJsonLines, classifyFilesBySourceRoot, classifyRetrofit, classifySuspect, claudeCodeAdapterMetadata, claudeTranscriptToImportPayload, codexAdapterMetadata, codexRolloutToImportPayload, computeWorkStats, createAdHocSessionWithEvent, createManifest, createTaskWithEvent, deleteTask, displayPath, editTask, ensureBasouDirectory, enumerateApprovals, enumerateArchivedTaskIds, enumerateSessionDirs, enumerateTaskIds, evaluateStopHook, finalizeSessionYaml, findBasouSessionStartHook, findBasouStopHookCommand, findClaudeSessionStartHooks, findDecisionGaps, findErrorCode, findReviewGaps, findUnbindableRepos, findUnrecognizedSessionStart, formatDurationMs, genesisHash, getChangesSince, getDiff, getSnapshot, getWorkingTreeChanges, hasRetiredZeroDuration, importSessionFromJson, inspectChainTail, instructionMode, isBasouOrientSessionStartCommand, isBasouSessionStartHookCommand, isBasouStopHookCommand, isClaudeSessionStartHookCommand, isClaudeSessionStartMalformed, isGitNotFound, isImportDerivedSource, isLazyExpired, isProtocolUpdateDue, isRenderable, isValidPrefixedId, lineHash, linkYamlFile, loadApproval, loadFederatedSessionEntries, loadSessionEntries, loadTaskEntries, normalizeRepoKey, normalizeRepoPath, observeSessionChanges, observedFilesOf, observedRepoRoots, overwriteYamlFile, parseBuildStamp, parseDuration, parseMarkers, parseProtocolStamp, parseReviewRecordInput, pathBasename, planArchive, planGitignore, planRename, planRosterAdoption, planWorkspaceView, prefixedUlid, presetStrings, protocolBlockHash, protocolSectionsFrom, protocolUpdateToken, readAllEvents, readHeadSha, readManifest, readMarkdownFile, readObservedDuration, readSessionObservation, readSessionYaml, readStatus, readTaskFile, readTaskFileWithArchiveFallback, readYamlFile, rechainSessionInPlace, reconcileAllTasks, reconcileSourceRoots, reconcileTask, recordSessionBaseline, refreshTaskLinkedSessions, reimportPreservingId, removeClaudeSessionStartHook, removeMarkerSection, removeSessionStartHook, removeStopHook, renderAnchorStarter, renderDecisions, renderHandoff, renderOrientation, renderPresetBlock, renderProtocolStamp, renderProtocolUpdate, renderReport, renderViewPresetBlock, renderWithMarkers, replayEvents, resolveAnchorContentLanguage, resolveBasouRepositoryRoot, resolveClaudeCodeCommand, resolveCodexCommand, resolveRepoContentLanguage, resolveRepoRoot, resolveRepositoryRoot, resolveSessionId, resolveTaskId, resolveViewLanguage, resolveViewLanguageFromPaths, safeSimpleGit, sanitizePath, sanitizeRelatedFiles, sanitizeWorkingDirectory, seedMarkers, serializeEventLine, serializeJsonSchema, sessionObservationPath, sessionWorkStatsFromEvents, summarizeAdapterOutput, summarizeOrientation, summarizePresetPlan, summarizeRosterDrift, summarizeSymlinkPlan, summarizeWiring, summarizeWiringDrift, transcriptStartedAt, tryRemoteUrl, ulid, unknownManifestKeys, unstampedProtocolSectionsFrom, updateTaskStatusWithEvent, upsertClaudeSessionStartHook, upsertSessionStartHook, upsertStopHook, verifyEventsChain, viewStrings, writeEventsBulk, writeManifest, writeMarkdownFile, writeObservedDuration, writeSessionObservation, writeStatus, writeTaskFile, writeYamlFile };