@namzu/cli 26.3.0 → 27.0.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/CHANGELOG.md +214 -0
- package/README.md +49 -34
- package/dist/bin.js +7 -0
- package/dist/bin.js.map +1 -1
- package/dist/checkpoints/store.d.ts +17 -4
- package/dist/checkpoints/store.d.ts.map +1 -1
- package/dist/checkpoints/store.js +20 -5
- package/dist/checkpoints/store.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/acp.d.ts +23 -1
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/acp.js +41 -2
- package/dist/commands/acp.js.map +1 -1
- package/dist/commands/drain.d.ts +69 -2
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +214 -134
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/eval.js +1 -1
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/provider-wait.d.ts +5 -5
- package/dist/commands/provider-wait.d.ts.map +1 -1
- package/dist/commands/provider-wait.js +2 -2
- package/dist/commands/resident.d.ts.map +1 -1
- package/dist/commands/resident.js +2 -1
- package/dist/commands/resident.js.map +1 -1
- package/dist/commands/run-flags.d.ts +7 -7
- package/dist/commands/run-flags.js +4 -4
- package/dist/commands/run-stream.d.ts +16 -12
- package/dist/commands/run-stream.d.ts.map +1 -1
- package/dist/commands/run-stream.js +142 -98
- package/dist/commands/run-stream.js.map +1 -1
- package/dist/commands/run.d.ts +6 -4
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +129 -45
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/serve.js +2 -2
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/state.js +8 -8
- package/dist/commands/state.js.map +1 -1
- package/dist/config/load.d.ts +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +17 -5
- package/dist/config/load.js.map +1 -1
- package/dist/config/run-limits.d.ts +20 -8
- package/dist/config/run-limits.d.ts.map +1 -1
- package/dist/config/run-limits.js +28 -46
- package/dist/config/run-limits.js.map +1 -1
- package/dist/config/schema.d.ts +44 -19
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/tool-result-screens.js +1 -1
- package/dist/context/directories.d.ts +37 -0
- package/dist/context/directories.d.ts.map +1 -0
- package/dist/context/directories.js +69 -0
- package/dist/context/directories.js.map +1 -0
- package/dist/context/environment.d.ts +55 -0
- package/dist/context/environment.d.ts.map +1 -1
- package/dist/context/environment.js +96 -0
- package/dist/context/environment.js.map +1 -1
- package/dist/context/project-tracker.d.ts +3 -3
- package/dist/context/project-tracker.d.ts.map +1 -1
- package/dist/context/project-tracker.js +3 -3
- package/dist/context/project-tracker.js.map +1 -1
- package/dist/context/project.d.ts +1 -1
- package/dist/context/project.js +1 -1
- package/dist/context/sandbox.d.ts +22 -3
- package/dist/context/sandbox.d.ts.map +1 -1
- package/dist/context/sandbox.js +42 -4
- package/dist/context/sandbox.js.map +1 -1
- package/dist/doctor/checks/chain.d.ts +1 -1
- package/dist/doctor/checks/chain.js +5 -5
- package/dist/doctor/checks/chain.js.map +1 -1
- package/dist/doctor/checks/invariants.d.ts +2 -2
- package/dist/doctor/checks/invariants.js +5 -5
- package/dist/doctor/checks/invariants.js.map +1 -1
- package/dist/doctor/checks/logging.js +1 -1
- package/dist/doctor/checks/logging.js.map +1 -1
- package/dist/doctor/checks/sandbox.js +1 -1
- package/dist/doctor/checks/sandbox.js.map +1 -1
- package/dist/doctor/checks/session-export.d.ts +1 -1
- package/dist/doctor/checks/session-export.js +2 -2
- package/dist/doctor/checks/session-export.js.map +1 -1
- package/dist/doctor/checks/telemetry.d.ts +1 -1
- package/dist/doctor/checks/telemetry.js +1 -1
- package/dist/doctor/registry.js +2 -2
- package/dist/doctor/registry.js.map +1 -1
- package/dist/exit-codes.d.ts +2 -2
- package/dist/exit-codes.js +2 -2
- package/dist/integrations/mcp/servers.d.ts +1 -1
- package/dist/integrations/providers/chain-capabilities.d.ts +6 -6
- package/dist/integrations/providers/chain-capabilities.js +8 -8
- package/dist/integrations/providers/chain-capabilities.js.map +1 -1
- package/dist/integrations/providers/register.d.ts +1 -1
- package/dist/integrations/providers/register.js +1 -1
- package/dist/integrations/providers/registry.d.ts +1 -1
- package/dist/integrations/resident/inspection.d.ts +4 -1
- package/dist/integrations/resident/inspection.d.ts.map +1 -1
- package/dist/integrations/resident/inspection.js +53 -34
- package/dist/integrations/resident/inspection.js.map +1 -1
- package/dist/integrations/resident/learning-storage.d.ts +7 -2
- package/dist/integrations/resident/learning-storage.d.ts.map +1 -1
- package/dist/integrations/resident/learning-storage.js +12 -8
- package/dist/integrations/resident/learning-storage.js.map +1 -1
- package/dist/integrations/resident/runner-store.d.ts +1 -1
- package/dist/integrations/resident/runner-store.d.ts.map +1 -1
- package/dist/integrations/resident/runner-store.js +5 -2
- package/dist/integrations/resident/runner-store.js.map +1 -1
- package/dist/integrations/resident/runner-worker.js +1 -0
- package/dist/integrations/resident/runner-worker.js.map +1 -1
- package/dist/integrations/resident/session-log-reads.d.ts +37 -0
- package/dist/integrations/resident/session-log-reads.d.ts.map +1 -0
- package/dist/integrations/resident/session-log-reads.js +125 -0
- package/dist/integrations/resident/session-log-reads.js.map +1 -0
- package/dist/integrations/resident/session-step.d.ts +2 -0
- package/dist/integrations/resident/session-step.d.ts.map +1 -1
- package/dist/integrations/resident/session-step.js +15 -13
- package/dist/integrations/resident/session-step.js.map +1 -1
- package/dist/integrations/resident/storage.d.ts +23 -1
- package/dist/integrations/resident/storage.d.ts.map +1 -1
- package/dist/integrations/resident/storage.js +60 -17
- package/dist/integrations/resident/storage.js.map +1 -1
- package/dist/integrations/resident/tool-evidence.d.ts +4 -2
- package/dist/integrations/resident/tool-evidence.d.ts.map +1 -1
- package/dist/integrations/resident/tool-evidence.js +36 -30
- package/dist/integrations/resident/tool-evidence.js.map +1 -1
- package/dist/integrations/resident/verification.d.ts +2 -2
- package/dist/integrations/resident/verification.d.ts.map +1 -1
- package/dist/integrations/resident/verification.js +4 -4
- package/dist/integrations/resident/verification.js.map +1 -1
- package/dist/integrations/sessions/checkpoint-view.d.ts +13 -0
- package/dist/integrations/sessions/checkpoint-view.d.ts.map +1 -0
- package/dist/integrations/sessions/checkpoint-view.js +48 -0
- package/dist/integrations/sessions/checkpoint-view.js.map +1 -0
- package/dist/integrations/sessions/context-inventory.js +1 -1
- package/dist/integrations/sessions/context-inventory.js.map +1 -1
- package/dist/integrations/sessions/conversation-search.d.ts +16 -20
- package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
- package/dist/integrations/sessions/conversation-search.js +305 -731
- package/dist/integrations/sessions/conversation-search.js.map +1 -1
- package/dist/integrations/sessions/evidence-page-validation.d.ts +4 -4
- package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -1
- package/dist/integrations/sessions/evidence-page-validation.js +1 -1
- package/dist/integrations/sessions/evidence-page-validation.js.map +1 -1
- package/dist/integrations/sessions/evidence-recall.d.ts +40 -2
- package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -1
- package/dist/integrations/sessions/evidence-recall.js +41 -97
- package/dist/integrations/sessions/evidence-recall.js.map +1 -1
- package/dist/integrations/sessions/store.d.ts +153 -85
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/store.js +414 -484
- package/dist/integrations/sessions/store.js.map +1 -1
- package/dist/integrations/sessions/task-context.d.ts +15 -2
- package/dist/integrations/sessions/task-context.d.ts.map +1 -1
- package/dist/integrations/sessions/task-context.js +34 -11
- package/dist/integrations/sessions/task-context.js.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts +13 -6
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
- package/dist/integrations/sessions/transcript-export.js +148 -263
- package/dist/integrations/sessions/transcript-export.js.map +1 -1
- package/dist/integrations/state/home.d.ts +4 -16
- package/dist/integrations/state/home.d.ts.map +1 -1
- package/dist/integrations/state/home.js +6 -42
- package/dist/integrations/state/home.js.map +1 -1
- package/dist/integrations/state/project.d.ts +6 -7
- package/dist/integrations/state/project.d.ts.map +1 -1
- package/dist/integrations/state/project.js +7 -9
- package/dist/integrations/state/project.js.map +1 -1
- package/dist/integrations/state/report.d.ts +27 -41
- package/dist/integrations/state/report.d.ts.map +1 -1
- package/dist/integrations/state/report.js +172 -464
- package/dist/integrations/state/report.js.map +1 -1
- package/dist/integrations/state/retention.d.ts +18 -0
- package/dist/integrations/state/retention.d.ts.map +1 -0
- package/dist/integrations/state/retention.js +18 -0
- package/dist/integrations/state/retention.js.map +1 -0
- package/dist/integrations/subagents/activity.d.ts +36 -31
- package/dist/integrations/subagents/activity.d.ts.map +1 -1
- package/dist/integrations/subagents/activity.js +27 -23
- package/dist/integrations/subagents/activity.js.map +1 -1
- package/dist/integrations/subagents/batches.d.ts +91 -0
- package/dist/integrations/subagents/batches.d.ts.map +1 -0
- package/dist/integrations/subagents/batches.js +172 -0
- package/dist/integrations/subagents/batches.js.map +1 -0
- package/dist/integrations/subagents/parent.d.ts +26 -11
- package/dist/integrations/subagents/parent.d.ts.map +1 -1
- package/dist/integrations/subagents/parent.js +13 -28
- package/dist/integrations/subagents/parent.js.map +1 -1
- package/dist/integrations/subagents/policy.d.ts +2 -2
- package/dist/integrations/subagents/policy.d.ts.map +1 -1
- package/dist/integrations/subagents/policy.js +2 -2
- package/dist/integrations/subagents/policy.js.map +1 -1
- package/dist/integrations/subagents/replay.d.ts +91 -26
- package/dist/integrations/subagents/replay.d.ts.map +1 -1
- package/dist/integrations/subagents/replay.js +216 -114
- package/dist/integrations/subagents/replay.js.map +1 -1
- package/dist/integrations/subagents/runtime.d.ts +50 -26
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/subagents/runtime.js +132 -126
- package/dist/integrations/subagents/runtime.js.map +1 -1
- package/dist/integrations/subagents/saved-agents.d.ts +57 -0
- package/dist/integrations/subagents/saved-agents.d.ts.map +1 -0
- package/dist/integrations/subagents/saved-agents.js +102 -0
- package/dist/integrations/subagents/saved-agents.js.map +1 -0
- package/dist/integrations/subagents/slash.d.ts +55 -0
- package/dist/integrations/subagents/slash.d.ts.map +1 -0
- package/dist/integrations/subagents/slash.js +45 -0
- package/dist/integrations/subagents/slash.js.map +1 -0
- package/dist/integrations/telemetry/session-export.d.ts +6 -6
- package/dist/integrations/telemetry/session-export.d.ts.map +1 -1
- package/dist/integrations/telemetry/session-export.js +2 -2
- package/dist/memory/presentation.d.ts +11 -0
- package/dist/memory/presentation.d.ts.map +1 -1
- package/dist/memory/presentation.js +25 -0
- package/dist/memory/presentation.js.map +1 -1
- package/dist/memory/store.d.ts +13 -7
- package/dist/memory/store.d.ts.map +1 -1
- package/dist/memory/store.js +37 -11
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/typed.d.ts +116 -0
- package/dist/memory/typed.d.ts.map +1 -0
- package/dist/memory/typed.js +336 -0
- package/dist/memory/typed.js.map +1 -0
- package/dist/permissions/checks.d.ts +1 -1
- package/dist/permissions/checks.js +1 -1
- package/dist/permissions/headless-trust.d.ts +2 -2
- package/dist/permissions/headless-trust.d.ts.map +1 -1
- package/dist/permissions/headless-trust.js +3 -3
- package/dist/permissions/headless-trust.js.map +1 -1
- package/dist/permissions/mode.d.ts +4 -4
- package/dist/permissions/mode.js +1 -1
- package/dist/permissions/rules.d.ts +1 -1
- package/dist/permissions/rules.js +1 -1
- package/dist/termination.d.ts +75 -0
- package/dist/termination.d.ts.map +1 -0
- package/dist/termination.js +143 -0
- package/dist/termination.js.map +1 -0
- package/dist/tui/AgentExplorer.d.ts +2 -2
- package/dist/tui/AgentExplorer.js +4 -4
- package/dist/tui/AgentExplorer.js.map +1 -1
- package/dist/tui/App.d.ts +9 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +452 -303
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/LiveActivity.d.ts +1 -1
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.d.ts +8 -0
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.js +25 -2
- package/dist/tui/PermissionOverlay.js.map +1 -1
- package/dist/tui/Picker.js +1 -1
- package/dist/tui/agent.d.ts +208 -132
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/agent.js +523 -313
- package/dist/tui/agent.js.map +1 -1
- package/dist/tui/conversation-evidence-view.js +3 -3
- package/dist/tui/conversation-evidence-view.js.map +1 -1
- package/dist/tui/conversation-history.d.ts +4 -21
- package/dist/tui/conversation-history.d.ts.map +1 -1
- package/dist/tui/conversation-history.js +4 -28
- package/dist/tui/conversation-history.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +27 -1
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/log-pane.js +1 -1
- package/dist/tui/markdownParser.d.ts +1 -1
- package/dist/tui/markdownParser.js +1 -1
- package/dist/tui/permission-review.d.ts +16 -0
- package/dist/tui/permission-review.d.ts.map +1 -1
- package/dist/tui/permission-review.js +25 -2
- package/dist/tui/permission-review.js.map +1 -1
- package/dist/tui/slashCommands.d.ts +29 -40
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +70 -61
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/tui/{run-interruption.d.ts → turn-interruption.d.ts} +4 -4
- package/dist/tui/turn-interruption.d.ts.map +1 -0
- package/dist/tui/{run-interruption.js → turn-interruption.js} +20 -20
- package/dist/tui/turn-interruption.js.map +1 -0
- package/dist/tui/turn-limits-settings.d.ts +39 -0
- package/dist/tui/turn-limits-settings.d.ts.map +1 -0
- package/dist/tui/{run-limits-settings.js → turn-limits-settings.js} +18 -18
- package/dist/tui/turn-limits-settings.js.map +1 -0
- package/dist/tui/types.d.ts +3 -3
- package/dist/tui/types.d.ts.map +1 -1
- package/dist/user-commands/store.d.ts +1 -1
- package/dist/user-commands/store.js +1 -1
- package/package.json +7 -7
- package/dist/integrations/sessions/compaction-evidence.d.ts +0 -5
- package/dist/integrations/sessions/compaction-evidence.d.ts.map +0 -1
- package/dist/integrations/sessions/compaction-evidence.js +0 -59
- package/dist/integrations/sessions/compaction-evidence.js.map +0 -1
- package/dist/integrations/sessions/database.d.ts +0 -5
- package/dist/integrations/sessions/database.d.ts.map +0 -1
- package/dist/integrations/sessions/database.js +0 -34
- package/dist/integrations/sessions/database.js.map +0 -1
- package/dist/integrations/sessions/paths.d.ts +0 -7
- package/dist/integrations/sessions/paths.d.ts.map +0 -1
- package/dist/integrations/sessions/paths.js +0 -14
- package/dist/integrations/sessions/paths.js.map +0 -1
- package/dist/integrations/sessions/run-discovery.d.ts +0 -24
- package/dist/integrations/sessions/run-discovery.d.ts.map +0 -1
- package/dist/integrations/sessions/run-discovery.js +0 -142
- package/dist/integrations/sessions/run-discovery.js.map +0 -1
- package/dist/integrations/sessions/turn-evidence.d.ts +0 -129
- package/dist/integrations/sessions/turn-evidence.d.ts.map +0 -1
- package/dist/integrations/sessions/turn-evidence.js +0 -517
- package/dist/integrations/sessions/turn-evidence.js.map +0 -1
- package/dist/integrations/subagents/history.d.ts +0 -26
- package/dist/integrations/subagents/history.d.ts.map +0 -1
- package/dist/integrations/subagents/history.js +0 -76
- package/dist/integrations/subagents/history.js.map +0 -1
- package/dist/integrations/subagents/runs.d.ts +0 -72
- package/dist/integrations/subagents/runs.d.ts.map +0 -1
- package/dist/integrations/subagents/runs.js +0 -155
- package/dist/integrations/subagents/runs.js.map +0 -1
- package/dist/tui/run-interruption.d.ts.map +0 -1
- package/dist/tui/run-interruption.js.map +0 -1
- package/dist/tui/run-limits-settings.d.ts +0 -39
- package/dist/tui/run-limits-settings.d.ts.map +0 -1
- package/dist/tui/run-limits-settings.js.map +0 -1
|
@@ -1,26 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Conversation persistence for the CLI, built on the SDK's session log.
|
|
3
|
+
*
|
|
4
|
+
* Every conversation is one session: an append-only, hash-chained JSONL file
|
|
5
|
+
* at `$NAMZU_HOME/projects/<slug>/<session-id>.jsonl`. The log is the source
|
|
6
|
+
* of truth. The rebuildable index at `$NAMZU_HOME/index.sqlite` answers the
|
|
7
|
+
* questions a list needs (which sessions this project has, which one a
|
|
8
|
+
* desktop key names) and is refreshed from the log after every write here.
|
|
9
|
+
*
|
|
10
|
+
* The CLI writes only the records that happen outside a turn: the
|
|
11
|
+
* `session_started` that creates a conversation, `session_updated` for its
|
|
12
|
+
* title, archive flag and caller-side names, and the `compaction` record that
|
|
13
|
+
* seeds a fork with the history it copied. Messages and turns are appended by
|
|
14
|
+
* the kernel's turn recorder while `query()` runs, under the session lease.
|
|
15
|
+
*
|
|
16
|
+
* This is what powers `/resume`: list recent sessions, fold a chosen
|
|
17
|
+
* session's messages, and keep chatting in it. The project is the canonical
|
|
18
|
+
* checkout root, so every directory of one checkout shares its history.
|
|
19
|
+
*/
|
|
20
|
+
import { DiskSessionLog, type Message, type ProjectId, type Session, type SessionGoalStore, type SessionId, type SessionIndex, type SessionLog, SessionPaths, type SessionRecord, type SessionStartedRecord, type TenantId, type TopicId, type UserMessage } from '@namzu/sdk';
|
|
21
|
+
/**
|
|
22
|
+
* The part of the kernel's `SessionStore` contract the CLI still reads: one
|
|
23
|
+
* session by id, scoped to the tenant. Derived from the session's log, so it
|
|
24
|
+
* can never disagree with it. The goal store takes this for its ownership
|
|
25
|
+
* check.
|
|
26
|
+
*/
|
|
27
|
+
export interface CliSessionCatalog {
|
|
28
|
+
getSession(sessionId: SessionId, tenantId: TenantId): Promise<Session | null>;
|
|
29
|
+
}
|
|
3
30
|
export interface CliSessions {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
31
|
+
/** Absolute `NAMZU_HOME`. */
|
|
32
|
+
readonly root: string;
|
|
33
|
+
/** The project's layout under `root`. */
|
|
34
|
+
readonly paths: SessionPaths;
|
|
35
|
+
/** The project's directory name under `projects/`. */
|
|
36
|
+
readonly slug: string;
|
|
37
|
+
/** The canonical checkout root the project stands for. */
|
|
38
|
+
readonly projectRoot: string;
|
|
7
39
|
readonly projectId: ProjectId;
|
|
8
40
|
readonly topicId: TopicId;
|
|
9
41
|
readonly tenantId: TenantId;
|
|
10
|
-
/**
|
|
11
|
-
readonly
|
|
12
|
-
/**
|
|
13
|
-
readonly
|
|
14
|
-
/**
|
|
15
|
-
readonly
|
|
16
|
-
/**
|
|
17
|
-
* CLI-only turn/run correlation. Optional for embedded test doubles and
|
|
18
|
-
* pre-feature hosts; {@link openSessions} always supplies it.
|
|
19
|
-
*/
|
|
20
|
-
readonly turnEvidence?: DiskConversationEvidence;
|
|
42
|
+
/** The rebuildable index over every session log under `root`. */
|
|
43
|
+
readonly index: SessionIndex;
|
|
44
|
+
/** Sessions by id, read from their logs. */
|
|
45
|
+
readonly store: CliSessionCatalog;
|
|
46
|
+
/** Durable completion goal owned by each conversation Session. */
|
|
47
|
+
readonly goals: SessionGoalStore;
|
|
21
48
|
}
|
|
22
49
|
/** Persisted conversation ownership and history; no goal or UI sidecars are needed for retrieval. */
|
|
23
|
-
export type ConversationContext = Pick<CliSessions, '
|
|
50
|
+
export type ConversationContext = Pick<CliSessions, 'root' | 'paths' | 'slug' | 'projectId' | 'topicId' | 'tenantId' | 'store' | 'index'>;
|
|
24
51
|
export interface RecentConversation {
|
|
25
52
|
readonly id: SessionId;
|
|
26
53
|
readonly title: string;
|
|
@@ -38,101 +65,138 @@ export interface RecentConversation {
|
|
|
38
65
|
readonly count: number;
|
|
39
66
|
readonly preview?: string;
|
|
40
67
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Open (or initialize) the working directory's CLI project. Returns the handle
|
|
43
|
-
* used by the other helpers. Invalid identity or binding metadata refuses.
|
|
44
|
-
*/
|
|
45
68
|
export interface OpenSessionsOptions {
|
|
46
|
-
/** Exact
|
|
69
|
+
/** Exact `NAMZU_HOME`; test/embedding seam. */
|
|
47
70
|
readonly stateRoot?: string;
|
|
48
71
|
/** OS-home and environment seams used by the application-home resolver. */
|
|
49
72
|
readonly home?: string;
|
|
50
73
|
readonly env?: NodeJS.ProcessEnv;
|
|
74
|
+
/** Index backend; `auto` (the default) uses SQLite when `node:sqlite` loads. */
|
|
75
|
+
readonly indexBackend?: 'auto' | 'sqlite' | 'scan';
|
|
51
76
|
}
|
|
52
77
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
78
|
+
* Open (or initialize) the working directory's project: `projects/<slug>/`
|
|
79
|
+
* with its `project.json`, the installation's tenant, and the index.
|
|
80
|
+
*
|
|
81
|
+
* The project is the nearest checkout root (a `.git` file or directory), so
|
|
82
|
+
* worktrees and nested repositories keep distinct history while every
|
|
83
|
+
* directory of one checkout shares it. Tool cwd is unchanged.
|
|
56
84
|
*/
|
|
57
85
|
export declare function openSessions(cwd: string, options?: OpenSessionsOptions): Promise<CliSessions>;
|
|
86
|
+
/** Release the index's database handle. Idempotent. */
|
|
87
|
+
export declare function closeSessions(s: Pick<CliSessions, 'index'>): void;
|
|
88
|
+
/** The file a root conversation's log lives in. */
|
|
89
|
+
export declare function conversationLogPath(s: Pick<CliSessions, 'paths'>, sessionId: SessionId): string;
|
|
90
|
+
/** A writer handle on one conversation's log. */
|
|
91
|
+
export declare function openConversationLog(s: Pick<CliSessions, 'paths'>, sessionId: SessionId): DiskSessionLog;
|
|
92
|
+
/** Bring the index's row for one conversation up to date with its log. */
|
|
93
|
+
export declare function refreshIndex(s: Pick<CliSessions, 'paths' | 'slug' | 'index'>, sessionId: SessionId): Promise<void>;
|
|
94
|
+
/** What one conversation's log says about it, outside its messages. */
|
|
95
|
+
export interface ConversationFacts {
|
|
96
|
+
readonly sessionId: SessionId;
|
|
97
|
+
readonly started: SessionStartedRecord;
|
|
98
|
+
/** The latest `session_updated.title`; empty or absent means derived. */
|
|
99
|
+
readonly title?: string;
|
|
100
|
+
readonly named: boolean;
|
|
101
|
+
readonly archived: boolean;
|
|
102
|
+
readonly createdAt: string;
|
|
103
|
+
readonly updatedAt: string;
|
|
104
|
+
/** The session's open turn, if any, and whether it is parked. */
|
|
105
|
+
readonly activeTurn?: {
|
|
106
|
+
readonly turnId: string;
|
|
107
|
+
readonly paused: boolean;
|
|
108
|
+
};
|
|
109
|
+
readonly records: readonly SessionRecord[];
|
|
110
|
+
}
|
|
58
111
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
112
|
+
* Read one conversation's log, or `null` when there is none.
|
|
113
|
+
*
|
|
114
|
+
* Strict by default: a log whose chain is broken is not something to resume
|
|
115
|
+
* or fork. A list passes `tolerant` and reads what precedes the break.
|
|
63
116
|
*/
|
|
64
|
-
export declare function
|
|
65
|
-
|
|
66
|
-
|
|
117
|
+
export declare function readConversationFacts(s: Pick<CliSessions, 'paths'>, sessionId: SessionId, mode?: 'strict' | 'tolerant'): Promise<ConversationFacts | null>;
|
|
118
|
+
export interface StartConversationOptions {
|
|
119
|
+
/** The id to create the conversation under; minted when absent. */
|
|
120
|
+
readonly id?: SessionId;
|
|
121
|
+
/** A caller-side name for the conversation (a desktop host's session key). */
|
|
122
|
+
readonly origin?: SessionStartedRecord['origin'];
|
|
123
|
+
}
|
|
67
124
|
/**
|
|
68
125
|
* Start a fresh conversation; returns its session id.
|
|
69
126
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* the invariant, and this was such a caller.
|
|
74
|
-
*
|
|
75
|
-
* `openSessions` reuses the central root-path binding across launches. Its
|
|
76
|
-
* Project may have been closed since it was created, so session creation
|
|
77
|
-
* checks that Project's current status again.
|
|
127
|
+
* Writes the log's first record, `session_started`, naming the project, the
|
|
128
|
+
* tenant and the CLI topic. An id that already has a log is refused: two
|
|
129
|
+
* conversations never share one.
|
|
78
130
|
*/
|
|
79
|
-
export declare function startConversation(s: CliSessions,
|
|
131
|
+
export declare function startConversation(s: Pick<CliSessions, 'paths' | 'slug' | 'index' | 'projectId' | 'topicId' | 'tenantId' | 'projectRoot'>, idOrOptions?: SessionId | StartConversationOptions): Promise<SessionId>;
|
|
80
132
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* and Session mutation live in separate store records, so serializing an
|
|
86
|
-
* archive racing a live turn requires a durable lease shared by both paths.
|
|
87
|
-
* What this gate does guarantee is that a target already closed, archived or
|
|
88
|
-
* outside the current Project never silently reaches the requested operation.
|
|
133
|
+
* Give a session log its `session_started` if it has none yet, so a turn can
|
|
134
|
+
* begin in it. A log that already starts is left alone. Used where a session
|
|
135
|
+
* is brought into existence by its first turn rather than by
|
|
136
|
+
* {@link startConversation}: a headless scope, an in-memory log.
|
|
89
137
|
*/
|
|
90
|
-
export declare function
|
|
138
|
+
export declare function ensureSessionStarted(log: SessionLog, session: {
|
|
139
|
+
readonly projectId: ProjectId;
|
|
140
|
+
readonly tenantId: TenantId;
|
|
141
|
+
readonly topicId: TopicId;
|
|
142
|
+
readonly cwd: string;
|
|
143
|
+
readonly agent: {
|
|
144
|
+
readonly id: string;
|
|
145
|
+
readonly name: string;
|
|
146
|
+
};
|
|
147
|
+
readonly origin?: SessionStartedRecord['origin'];
|
|
148
|
+
}): Promise<void>;
|
|
91
149
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* appends and forks reject through {@link requireWritableConversation}.
|
|
150
|
+
* Resolve (creating if needed) the conversation bound to an embedder's
|
|
151
|
+
* session key. The binding is the conversation's own `session_started.origin`,
|
|
152
|
+
* so a later turn or history load with the same key reuses it, and an index
|
|
153
|
+
* rebuild finds it again.
|
|
97
154
|
*/
|
|
98
|
-
export declare function
|
|
99
|
-
/**
|
|
100
|
-
export declare function
|
|
155
|
+
export declare function resolveConversation(s: CliSessions, key: string): Promise<SessionId>;
|
|
156
|
+
/** Read an external-session binding without creating or widening its scope. */
|
|
157
|
+
export declare function findMappedConversation(s: CliSessions, key: string): Promise<SessionId | null>;
|
|
101
158
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* so a crash cannot expose the first half of a compacted conversation. Before
|
|
106
|
-
* replacing, pin the derived title without calling it a chosen name: the
|
|
107
|
-
* opening user message may be among the turns compacted away, and `/resume`
|
|
108
|
-
* must neither rename nor quote the conversation as a side effect of making
|
|
109
|
-
* it smaller.
|
|
159
|
+
* Sequential admission gate for a turn or conversation mutation: the target
|
|
160
|
+
* exists in this project and is not archived. It is not a cross-process
|
|
161
|
+
* transaction; the session lease is what serialises writers.
|
|
110
162
|
*/
|
|
111
|
-
export declare function
|
|
112
|
-
/**
|
|
113
|
-
|
|
163
|
+
export declare function requireWritableConversation(s: ConversationContext, sessionId: SessionId, op?: string): Promise<void>;
|
|
164
|
+
/**
|
|
165
|
+
* Turn the conversation into a read-only tombstone with `session_updated
|
|
166
|
+
* {archived: true}`. History remains readable, while `/resume`, later turns
|
|
167
|
+
* and forks reject through {@link requireWritableConversation}.
|
|
168
|
+
*/
|
|
169
|
+
export declare function archiveConversation(s: CliSessions, sessionId: SessionId): Promise<void>;
|
|
170
|
+
/** Load a conversation's folded message history. */
|
|
171
|
+
export declare function loadConversation(s: ConversationContext, sessionId: SessionId): Promise<Message[]>;
|
|
114
172
|
/**
|
|
115
173
|
* Load one conversation for a new model turn.
|
|
116
174
|
*
|
|
117
175
|
* Reading an archived conversation remains legitimate — `history` and export
|
|
118
176
|
* are inspection surfaces — but resuming it would turn a tombstone back into a
|
|
119
|
-
* live writer without a restore operation.
|
|
120
|
-
* the same reason: closing a workspace must not make its history disappear,
|
|
121
|
-
* while it must stop a later turn from starting there.
|
|
177
|
+
* live writer without a restore operation.
|
|
122
178
|
*/
|
|
123
|
-
export declare function loadResumableConversation(s:
|
|
179
|
+
export declare function loadResumableConversation(s: ConversationContext, sessionId: string): Promise<Message[]>;
|
|
180
|
+
/** The open turn of a conversation, if it has one: `paused` when it is parked. */
|
|
181
|
+
export declare function activeConversationTurn(s: ConversationContext, sessionId: SessionId): Promise<ConversationFacts['activeTurn'] | undefined>;
|
|
124
182
|
/** Recent non-empty conversations, newest first — for the `/resume` list. */
|
|
125
183
|
export declare function listRecent(s: CliSessions, limit?: number): Promise<RecentConversation[]>;
|
|
126
184
|
/** The name a person gave this conversation, or `undefined`. */
|
|
127
|
-
export declare function titleOf(s:
|
|
185
|
+
export declare function titleOf(s: ConversationContext, sessionId: SessionId): Promise<string | undefined>;
|
|
128
186
|
/**
|
|
129
187
|
* Name a conversation, or with an empty name, take the name away.
|
|
130
188
|
*
|
|
131
|
-
*
|
|
132
|
-
* an empty
|
|
133
|
-
*
|
|
189
|
+
* Recorded as `session_updated{title, titleSource: 'named'}`; clearing records
|
|
190
|
+
* an empty derived title, so the list derives one from the first message
|
|
191
|
+
* again rather than showing a blank row.
|
|
192
|
+
*/
|
|
193
|
+
export declare function setTitle(s: CliSessions, sessionId: SessionId, title: string): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* Seed a conversation that has no turns yet with a history, as one
|
|
196
|
+
* `compaction` record outside any turn: the fold starts from its summary, so
|
|
197
|
+
* the new conversation's context is exactly `messages`. Used by forks.
|
|
134
198
|
*/
|
|
135
|
-
export declare function
|
|
199
|
+
export declare function seedConversationHistory(s: Pick<CliSessions, 'paths' | 'slug' | 'index'>, sessionId: SessionId, messages: readonly Message[], strategy?: string): Promise<void>;
|
|
136
200
|
/**
|
|
137
201
|
* Continue in a copy, leaving the original where it is.
|
|
138
202
|
*
|
|
@@ -142,11 +206,9 @@ export declare function setTitle(s: CliSessions, sessionId: SessionId, title: st
|
|
|
142
206
|
*
|
|
143
207
|
* **The fork is always named, and that is the load-bearing part.** Both
|
|
144
208
|
* conversations start with the same first message, so both DERIVE the same
|
|
145
|
-
* title — and `/resume` would show two rows a person cannot tell apart
|
|
146
|
-
* is
|
|
147
|
-
*
|
|
148
|
-
* numbered against the names already in use so a second fork does not collide
|
|
149
|
-
* with the first.
|
|
209
|
+
* title — and `/resume` would show two rows a person cannot tell apart. The
|
|
210
|
+
* name is taken from the source's own, so a fork of a fork stays readable, and
|
|
211
|
+
* it is numbered against the names already in use.
|
|
150
212
|
*/
|
|
151
213
|
export declare function forkConversation(s: CliSessions, sourceId: SessionId): Promise<{
|
|
152
214
|
id: SessionId;
|
|
@@ -171,8 +233,7 @@ export interface ForkBeforeUserResult {
|
|
|
171
233
|
* a boundary the operator did not select.
|
|
172
234
|
*
|
|
173
235
|
* An empty prefix is valid. Editing the first prompt creates an empty branch
|
|
174
|
-
* and restores that prompt to the composer
|
|
175
|
-
* common first-turn correction the one prompt this feature cannot edit.
|
|
236
|
+
* and restores that prompt to the composer.
|
|
176
237
|
*/
|
|
177
238
|
export declare function forkConversationBeforeUser(s: CliSessions, sourceId: SessionId, userOrdinal: number, expected: UserMessage): Promise<ForkBeforeUserResult>;
|
|
178
239
|
/**
|
|
@@ -183,4 +244,11 @@ export declare function forkConversationBeforeUser(s: CliSessions, sourceId: Ses
|
|
|
183
244
|
* never held one.
|
|
184
245
|
*/
|
|
185
246
|
export declare function nextForkName(taken: Record<string, string>, source: string): string;
|
|
247
|
+
export declare function conversationTitle(messages: readonly Message[]): string;
|
|
248
|
+
/** The project directory name, for messages that point a person at it. */
|
|
249
|
+
export declare function projectLabel(s: Pick<CliSessions, 'projectRoot'>): string;
|
|
250
|
+
/** Where a conversation's per-session files live (`<session-id>/`). */
|
|
251
|
+
export declare function conversationDir(s: Pick<CliSessions, 'paths'>, sessionId: SessionId): string;
|
|
252
|
+
/** The project's directory under `NAMZU_HOME` (`projects/<slug>/`). */
|
|
253
|
+
export declare function projectDir(s: Pick<CliSessions, 'root' | 'slug'>): string;
|
|
186
254
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/store.ts"],"names":[],"mappings":"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"}
|