@basou/core 0.35.1 → 0.37.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
@@ -579,6 +579,9 @@ declare const SessionImportPayloadSchema: z.ZodObject<{
579
579
  type: z.ZodLiteral<"review_recorded">;
580
580
  reviewer: z.ZodString;
581
581
  target: z.ZodString;
582
+ repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
583
+ repos_resolved: z.ZodOptional<z.ZodArray<z.ZodString>>;
584
+ commits: z.ZodOptional<z.ZodArray<z.ZodString>>;
582
585
  verdict: z.ZodOptional<z.ZodEnum<{
583
586
  pass: "pass";
584
587
  "needs-attention": "needs-attention";
@@ -1325,6 +1328,9 @@ declare const ReviewRecordedEventSchema: z.ZodObject<{
1325
1328
  type: z.ZodLiteral<"review_recorded">;
1326
1329
  reviewer: z.ZodString;
1327
1330
  target: z.ZodString;
1331
+ repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
1332
+ repos_resolved: z.ZodOptional<z.ZodArray<z.ZodString>>;
1333
+ commits: z.ZodOptional<z.ZodArray<z.ZodString>>;
1328
1334
  verdict: z.ZodOptional<z.ZodEnum<{
1329
1335
  pass: "pass";
1330
1336
  "needs-attention": "needs-attention";
@@ -1614,6 +1620,9 @@ declare const EventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1614
1620
  type: z.ZodLiteral<"review_recorded">;
1615
1621
  reviewer: z.ZodString;
1616
1622
  target: z.ZodString;
1623
+ repos: z.ZodOptional<z.ZodArray<z.ZodString>>;
1624
+ repos_resolved: z.ZodOptional<z.ZodArray<z.ZodString>>;
1625
+ commits: z.ZodOptional<z.ZodArray<z.ZodString>>;
1617
1626
  verdict: z.ZodOptional<z.ZodEnum<{
1618
1627
  pass: "pass";
1619
1628
  "needs-attention": "needs-attention";
@@ -5983,6 +5992,14 @@ declare function renderReport(input: ReportRendererInput): Promise<ReportRendere
5983
5992
  * - `unknown` the repo or time could not be derived; abstain rather than
5984
5993
  * guess (an abstention is never counted as a clear).
5985
5994
  *
5995
+ * A `review_recorded` event (written by `basou review record`) is a SELF-REPORT:
5996
+ * the agent's own claim that a review ran, with nothing corroborating it. Such a
5997
+ * record is bound to a unit by the repo paths it names and surfaced as a label,
5998
+ * but it NEVER changes that unit's verdict — a gap stays a gap, a candidate
5999
+ * stays a candidate — otherwise an empty record would become a way to make the
6000
+ * gap count go down, the same weakness the Stop-gate has. It re-labels; it does
6001
+ * not clear.
6002
+ *
5986
6003
  * It reads only captured provenance and writes nothing.
5987
6004
  */
5988
6005
  type ReviewGapVerdict = "omission" | "near_unbound" | "candidate" | "unknown";
@@ -5995,6 +6012,28 @@ type CitedReview = {
5995
6012
  files: string[];
5996
6013
  endedAt: string | null;
5997
6014
  };
6015
+ /**
6016
+ * A `review_recorded` self-report bound to a unit by the repo paths it named.
6017
+ * Carries no corroboration: it is what the agent said it did, not what the
6018
+ * capture observed.
6019
+ */
6020
+ type SelfReportedReview = {
6021
+ sessionId: string;
6022
+ eventId: string;
6023
+ reviewer: string;
6024
+ target: string;
6025
+ recordedAt: string;
6026
+ /** Commit SHAs the record claimed to cover; display only, never a binding key. */
6027
+ commits: string[];
6028
+ /**
6029
+ * The record was written after this unit's first commit, so it cannot have
6030
+ * gated the work. Surfaced rather than hidden — a claim made after the fact is
6031
+ * still the operator's own note about what happened, and the label can never
6032
+ * reduce the gap count — but kept distinguishable, because when a record was
6033
+ * written is part of what the operator is judging.
6034
+ */
6035
+ recordedAfterCommit: boolean;
6036
+ };
5998
6037
  /** One unit of work (a committing session's commits in one repo) and its verdict. */
5999
6038
  type ReviewGapUnit = {
6000
6039
  repo: string;
@@ -6006,6 +6045,33 @@ type ReviewGapUnit = {
6006
6045
  verdict: ReviewGapVerdict;
6007
6046
  /** For `candidate` / `near_unbound`: the review sessions considered. */
6008
6047
  reviews: CitedReview[];
6048
+ /**
6049
+ * `review_recorded` self-reports naming this repo in the window. Present on
6050
+ * every repo-keyed unit; it re-labels the unit and NEVER alters `verdict`, so
6051
+ * a self-reported gap is still a gap.
6052
+ */
6053
+ selfReports: SelfReportedReview[];
6054
+ };
6055
+ /** Recorded reviews that reached no unit of work, broken down by cause. */
6056
+ type UnattachedSelfReports = {
6057
+ total: number;
6058
+ /** The record named no repository at all. */
6059
+ noRepos: number;
6060
+ /**
6061
+ * At least one repository it named could not be verified as a repo root on
6062
+ * this machine. ANY unverifiable entry puts the record here, even alongside
6063
+ * one that resolved: a half-checkable claim is refused whole, so that
6064
+ * everything that does get paired was checkable in full.
6065
+ */
6066
+ unresolvableRepo: number;
6067
+ /** It named a resolvable repository, but no unit of work fell in the window. */
6068
+ noMatchingUnit: number;
6069
+ /**
6070
+ * Work WAS captured in the window, but the unit's own repository path could
6071
+ * not be verified, so the pairing could not be checked either way. Distinct
6072
+ * from {@link noMatchingUnit}, which would deny that the work exists.
6073
+ */
6074
+ unverifiableUnit: number;
6009
6075
  };
6010
6076
  type ReviewGapRepoSummary = {
6011
6077
  repo: string;
@@ -6014,6 +6080,8 @@ type ReviewGapRepoSummary = {
6014
6080
  nearUnboundUnits: number;
6015
6081
  candidateUnits: number;
6016
6082
  unknownUnits: number;
6083
+ /** Of the units with no bound trail, how many carry a self-report only. */
6084
+ selfReportedGapUnits: number;
6017
6085
  };
6018
6086
  type ReviewGapsSummary = {
6019
6087
  generatedAt: string;
@@ -6027,6 +6095,30 @@ type ReviewGapsSummary = {
6027
6095
  candidates: ReviewGapUnit[];
6028
6096
  /** Units whose repo/time could not be derived from the captured command; abstained, not cleared. */
6029
6097
  unknowns: ReviewGapUnit[];
6098
+ /**
6099
+ * Recorded reviews that changed nothing in this report — the answer to "I ran
6100
+ * `basou review record` and the omission is still there". Reported with the
6101
+ * reason for each, because basou must not assert a cause it has not
6102
+ * established; "no `repos` field" and "a `repos` that does not resolve" are
6103
+ * different mistakes with different fixes.
6104
+ *
6105
+ * Unlike {@link unknowns} this is NOT suppressed under a `--repo` scope, and
6106
+ * attachment is computed against every unit rather than the scoped ones. It is
6107
+ * a caveat about the tool's own input handling, not repo-dimensioned data, and
6108
+ * a completeness caveat that disappears under a filter is how silence starts
6109
+ * looking like success again — the very failure this surfacer exists to catch.
6110
+ */
6111
+ unattachedSelfReports: UnattachedSelfReports;
6112
+ /**
6113
+ * How many (record, unit) pairings fell inside a unit's window but could not
6114
+ * be checked, because that unit's own repository path was never verified.
6115
+ *
6116
+ * Counted per PAIRING, not per record, and reported even when the record
6117
+ * attached to some other unit: {@link unattachedSelfReports} only speaks for
6118
+ * records that changed nothing at all, so a record that landed once and was
6119
+ * refused elsewhere would otherwise leave the refusal invisible.
6120
+ */
6121
+ refusedPairings: number;
6030
6122
  /** Newest captured commit considered; commits not yet imported are invisible. */
6031
6123
  newestCommitAt: string | null;
6032
6124
  };
@@ -6057,6 +6149,38 @@ type ReviewGapsSummary = {
6057
6149
  * process lifetime.
6058
6150
  */
6059
6151
  declare function normalizeRepoPath(p: string | null | undefined): string | null;
6152
+ /** Why a hand-typed repository path cannot become a binding key. */
6153
+ type RepoPathProblem = "relative" | "absent" | "not_a_repo_root";
6154
+ /** A `repos` entry that cannot bind, and why. */
6155
+ type UnbindableRepo = {
6156
+ repo: string;
6157
+ index: number;
6158
+ problem: RepoPathProblem;
6159
+ };
6160
+ /**
6161
+ * Strict repo-root resolution for HAND-TYPED input (a record's `repos`), as
6162
+ * opposed to {@link normalizeRepoPath}, which reads paths basou itself captured.
6163
+ *
6164
+ * The difference is the string fallback. `normalizeRepoPath` keeps one for
6165
+ * captured data: a historical `cd` target whose repo has since moved is still
6166
+ * the best key available, and refusing it would lose an observation basou
6167
+ * genuinely made. Typed input has no such claim on the benefit of the doubt — a
6168
+ * relative path, a typo, or a subdirectory would mint a key that no commit can
6169
+ * ever match, and the record would then be accepted, stored, and silently
6170
+ * unbindable forever. So this verifies against the disk and returns null
6171
+ * otherwise.
6172
+ *
6173
+ * The asymmetry runs the safe way: everything this accepts, `normalizeRepoPath`
6174
+ * resolves to the same key, so a record the writer took is a record the reader
6175
+ * can bind.
6176
+ */
6177
+ declare function resolveRepoRoot(p: string | null | undefined): string | null;
6178
+ /**
6179
+ * The `repos` entries that could never bind to a unit of work, for the writer to
6180
+ * reject before the record is stored. Sharing {@link classifyRepoPath} with the
6181
+ * reader is the point: the writer must not accept a path the reader cannot use.
6182
+ */
6183
+ declare function findUnbindableRepos(repos: readonly string[]): UnbindableRepo[];
6060
6184
  /**
6061
6185
  * Short repo key (the final path segment) for DISPLAY and `--scope` matching.
6062
6186
  * Binding uses {@link normalizeRepoPath} to avoid basename collisions; this is
@@ -6103,6 +6227,19 @@ type ReviewRecordInput = {
6103
6227
  reviewer: string;
6104
6228
  /** What was reviewed (e.g. "working-tree", a git ref, "PR #145"). Required. */
6105
6229
  target: string;
6230
+ /**
6231
+ * Repository paths the review examined. Optional, but it is the ONLY thing
6232
+ * that can bind this record to the reviewed repo: the record lands in an
6233
+ * ad-hoc session whose location is the planning repo it was written from, not
6234
+ * the repo under review. Without it `review-gaps` cannot associate the record
6235
+ * with a unit of work.
6236
+ */
6237
+ repos?: string[];
6238
+ /**
6239
+ * Commit SHAs the review examined. Optional; recorded as the reviewer's own
6240
+ * claim about coverage.
6241
+ */
6242
+ commits?: string[];
6106
6243
  /** Overall outcome. Optional. */
6107
6244
  verdict?: "pass" | "needs-attention" | "fail";
6108
6245
  /** Findings surfaced by the review. Optional. */
@@ -6133,6 +6270,13 @@ declare function buildReviewRecordedEvent(input: {
6133
6270
  sessionId: PrefixedId<"ses">;
6134
6271
  occurredAt: string;
6135
6272
  review: ReviewRecordInput;
6273
+ /**
6274
+ * The canonical repository roots `review.repos` resolved to on this machine.
6275
+ * A CALLER-DERIVED value, not part of the piped input: what a path resolves to
6276
+ * is something basou observes, and the whole point of keeping it is that the
6277
+ * author's spelling may be a symlink whose target changes later.
6278
+ */
6279
+ reposResolved?: string[];
6136
6280
  }): Event;
6137
6281
  /** Ad-hoc session label for a recorded review: `Ad-hoc review: <reviewer> -> <target>`. */
6138
6282
  declare function buildReviewRecordLabel(review: ReviewRecordInput): string;
@@ -6722,4 +6866,4 @@ declare function overwriteYamlFile(filePath: string, value: unknown): Promise<vo
6722
6866
  */
6723
6867
  declare const BASOU_CORE_VERSION = "0.1.0";
6724
6868
 
6725
- export { ACTIVE_GAP_CAP_MS, AGENT_INFRA_DIRS, 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_VERSION, type BasouPaths, 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 CodexRolloutRecord, type CodexRolloutToPayloadOptions, type CommandExecutedEvent, type CommandLookup, type CreateAdHocSessionInput, type CreateAdHocSessionResult, type CreateAdHocTaskInput, type CreateManifestInput, type CreateTaskInput, type CreateTaskResult, DEFAULT_STOP_HOOK_MIN_EDITS, type DayWorkStats, DecisionIdSchema, type DecisionRecordedEvent, type DecisionsRendererInput, type DecisionsRendererResult, type DeleteTaskInput, type DeleteTaskResult, type DiffResult, 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_VERSION, type JsonSchemaArtifact, type LoadFederatedOptions, type LoadSessionEntriesOptions, type LoadTaskEntriesOptions, type LoadedApproval, type LockHandle, type LockScope, type Manifest, ManifestSchema, type MarkerSection, type Markers, type MeasureAvailability, type MissingCanonical, type NoteAddedEvent, ORIENTATION_END, ORIENTATION_START, type OrientationRendererInput, type OrientationRendererResult, type OrientationSummary, PROTOCOL_END, PROTOCOL_START, type PrefixedId, type PresetAction, type PresetCollision, type PresetMarkerConflict, type PresetMarkerKind, type PresetPlanSummary, type PresetRepo, type PresetStrings, type ProcessRunner, 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 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, STOP_HOOK_TIMEOUT_SECONDS, STUCK_THRESHOLD_MS, type SanitizePathOptions, type SanitizeRelatedFilesResult, SchemaVersionSchema, type Session, type SessionEndedEvent, type SessionEntry, SessionIdSchema, type SessionImportPayload, SessionImportPayloadSchema, type SessionInnerImportInput, SessionInnerImportSchema, type SessionIntegrity, SessionIntegritySchema, type SessionMetrics, SessionMetricsSchema, SessionSchema, type SessionSkipReason, type SessionSourceKind, SessionSourceKindSchema, 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, 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 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, acquireLock, appendBasouGitignore, appendChainedEvent, appendChainedEventLocked, appendEvent, appendEventToExistingSession, archiveTask, assertBasouRootSafe, basouPaths, buildJsonSchemas, buildReviewRecordLabel, buildReviewRecordedEvent, buildStatusSnapshot, buildStopHookCommand, chainEvents, chainRawJsonLines, classifyFilesBySourceRoot, classifyRetrofit, classifySuspect, claudeCodeAdapterMetadata, claudeTranscriptToImportPayload, codexAdapterMetadata, codexRolloutToImportPayload, computeWorkStats, createAdHocSessionWithEvent, createManifest, createTaskWithEvent, deleteTask, editTask, ensureBasouDirectory, enumerateApprovals, enumerateArchivedTaskIds, enumerateSessionDirs, enumerateTaskIds, evaluateStopHook, finalizeSessionYaml, findBasouStopHookCommand, findErrorCode, findReviewGaps, formatDurationMs, genesisHash, getDiff, getSnapshot, importSessionFromJson, inspectChainTail, instructionMode, isBasouStopHookCommand, isGitNotFound, isImportDerivedSource, isLazyExpired, isRenderable, isValidPrefixedId, lineHash, linkYamlFile, loadApproval, loadFederatedSessionEntries, loadSessionEntries, loadTaskEntries, normalizeRepoKey, normalizeRepoPath, overwriteYamlFile, parseDuration, parseMarkers, parseReviewRecordInput, pathBasename, planArchive, planGitignore, planRename, planRosterAdoption, planWorkspaceView, prefixedUlid, presetStrings, readAllEvents, readManifest, readMarkdownFile, readSessionYaml, readStatus, readTaskFile, readTaskFileWithArchiveFallback, readYamlFile, rechainSessionInPlace, reconcileAllTasks, reconcileSourceRoots, reconcileTask, refreshTaskLinkedSessions, reimportPreservingId, removeMarkerSection, removeStopHook, renderAnchorStarter, renderDecisions, renderHandoff, renderOrientation, renderPresetBlock, renderReport, renderViewPresetBlock, renderWithMarkers, replayEvents, resolveAnchorContentLanguage, resolveBasouRepositoryRoot, resolveClaudeCodeCommand, resolveCodexCommand, resolveRepoContentLanguage, resolveRepositoryRoot, resolveSessionId, resolveTaskId, resolveViewLanguage, resolveViewLanguageFromPaths, safeSimpleGit, sanitizePath, sanitizeRelatedFiles, sanitizeWorkingDirectory, seedMarkers, serializeEventLine, serializeJsonSchema, sessionWorkStatsFromEvents, summarizeAdapterOutput, summarizeOrientation, summarizePresetPlan, summarizeRosterDrift, summarizeSymlinkPlan, summarizeWiring, summarizeWiringDrift, tryRemoteUrl, ulid, unknownManifestKeys, updateTaskStatusWithEvent, upsertStopHook, verifyEventsChain, viewStrings, writeEventsBulk, writeManifest, writeMarkdownFile, writeStatus, writeTaskFile, writeYamlFile };
6869
+ export { ACTIVE_GAP_CAP_MS, AGENT_INFRA_DIRS, 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_VERSION, type BasouPaths, 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 CodexRolloutRecord, type CodexRolloutToPayloadOptions, type CommandExecutedEvent, type CommandLookup, type CreateAdHocSessionInput, type CreateAdHocSessionResult, type CreateAdHocTaskInput, type CreateManifestInput, type CreateTaskInput, type CreateTaskResult, DEFAULT_STOP_HOOK_MIN_EDITS, type DayWorkStats, DecisionIdSchema, type DecisionRecordedEvent, type DecisionsRendererInput, type DecisionsRendererResult, type DeleteTaskInput, type DeleteTaskResult, type DiffResult, 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_VERSION, type JsonSchemaArtifact, type LoadFederatedOptions, type LoadSessionEntriesOptions, type LoadTaskEntriesOptions, type LoadedApproval, type LockHandle, type LockScope, type Manifest, ManifestSchema, type MarkerSection, type Markers, type MeasureAvailability, type MissingCanonical, type NoteAddedEvent, ORIENTATION_END, ORIENTATION_START, type OrientationRendererInput, type OrientationRendererResult, type OrientationSummary, PROTOCOL_END, PROTOCOL_START, type PrefixedId, type PresetAction, type PresetCollision, type PresetMarkerConflict, type PresetMarkerKind, type PresetPlanSummary, type PresetRepo, type PresetStrings, type ProcessRunner, 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, 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, SessionSchema, type SessionSkipReason, type SessionSourceKind, SessionSourceKindSchema, 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, 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, acquireLock, appendBasouGitignore, appendChainedEvent, appendChainedEventLocked, appendEvent, appendEventToExistingSession, archiveTask, assertBasouRootSafe, basouPaths, buildJsonSchemas, buildReviewRecordLabel, buildReviewRecordedEvent, buildStatusSnapshot, buildStopHookCommand, chainEvents, chainRawJsonLines, classifyFilesBySourceRoot, classifyRetrofit, classifySuspect, claudeCodeAdapterMetadata, claudeTranscriptToImportPayload, codexAdapterMetadata, codexRolloutToImportPayload, computeWorkStats, createAdHocSessionWithEvent, createManifest, createTaskWithEvent, deleteTask, editTask, ensureBasouDirectory, enumerateApprovals, enumerateArchivedTaskIds, enumerateSessionDirs, enumerateTaskIds, evaluateStopHook, finalizeSessionYaml, findBasouStopHookCommand, findErrorCode, findReviewGaps, findUnbindableRepos, formatDurationMs, genesisHash, getDiff, getSnapshot, importSessionFromJson, inspectChainTail, instructionMode, isBasouStopHookCommand, isGitNotFound, isImportDerivedSource, isLazyExpired, isRenderable, isValidPrefixedId, lineHash, linkYamlFile, loadApproval, loadFederatedSessionEntries, loadSessionEntries, loadTaskEntries, normalizeRepoKey, normalizeRepoPath, overwriteYamlFile, parseDuration, parseMarkers, parseReviewRecordInput, pathBasename, planArchive, planGitignore, planRename, planRosterAdoption, planWorkspaceView, prefixedUlid, presetStrings, readAllEvents, readManifest, readMarkdownFile, readSessionYaml, readStatus, readTaskFile, readTaskFileWithArchiveFallback, readYamlFile, rechainSessionInPlace, reconcileAllTasks, reconcileSourceRoots, reconcileTask, refreshTaskLinkedSessions, reimportPreservingId, removeMarkerSection, removeStopHook, renderAnchorStarter, renderDecisions, renderHandoff, renderOrientation, renderPresetBlock, renderReport, renderViewPresetBlock, renderWithMarkers, replayEvents, resolveAnchorContentLanguage, resolveBasouRepositoryRoot, resolveClaudeCodeCommand, resolveCodexCommand, resolveRepoContentLanguage, resolveRepoRoot, resolveRepositoryRoot, resolveSessionId, resolveTaskId, resolveViewLanguage, resolveViewLanguageFromPaths, safeSimpleGit, sanitizePath, sanitizeRelatedFiles, sanitizeWorkingDirectory, seedMarkers, serializeEventLine, serializeJsonSchema, sessionWorkStatsFromEvents, summarizeAdapterOutput, summarizeOrientation, summarizePresetPlan, summarizeRosterDrift, summarizeSymlinkPlan, summarizeWiring, summarizeWiringDrift, tryRemoteUrl, ulid, unknownManifestKeys, updateTaskStatusWithEvent, upsertStopHook, verifyEventsChain, viewStrings, writeEventsBulk, writeManifest, writeMarkdownFile, writeStatus, writeTaskFile, writeYamlFile };