@namzu/cli 26.2.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 +312 -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/index.d.ts +1 -1
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/index.js +1 -1
- package/dist/integrations/providers/index.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 +74 -1
- package/dist/integrations/providers/registry.d.ts.map +1 -1
- package/dist/integrations/providers/registry.js +75 -0
- package/dist/integrations/providers/registry.js.map +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 +458 -304
- 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.d.ts +14 -1
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/Picker.js +598 -132
- package/dist/tui/Picker.js.map +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/model-choices.d.ts.map +1 -1
- package/dist/tui/model-choices.js +20 -1
- package/dist/tui/model-choices.js.map +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/provider-list.d.ts +206 -41
- package/dist/tui/provider-list.d.ts.map +1 -1
- package/dist/tui/provider-list.js +248 -52
- package/dist/tui/provider-list.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/terminal-choice-text.d.ts +22 -0
- package/dist/tui/terminal-choice-text.d.ts.map +1 -1
- package/dist/tui/terminal-choice-text.js +81 -0
- package/dist/tui/terminal-choice-text.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 +8 -8
- 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
|
@@ -4,7 +4,7 @@ import { terminalDisplayText } from './terminal-display.js';
|
|
|
4
4
|
* Budget admission includes reservations: refusal is not proof of money or
|
|
5
5
|
* tokens spent. Usage remains the reported measurement available through /cost.
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
7
|
+
export function describeTurnStop(reason, budget) {
|
|
8
8
|
switch (reason) {
|
|
9
9
|
case undefined:
|
|
10
10
|
case 'end_turn':
|
|
@@ -12,36 +12,36 @@ export function describeRunStop(reason, budget) {
|
|
|
12
12
|
return undefined;
|
|
13
13
|
case 'token_budget':
|
|
14
14
|
if ((budget?.unresolvedRequests ?? 0) > 0)
|
|
15
|
-
return '
|
|
15
|
+
return 'Turn stopped: usage for a model request could not be confirmed. /cost shows reported usage; the total remains uncertain.';
|
|
16
16
|
if (budget?.poisoned)
|
|
17
|
-
return '
|
|
18
|
-
return '
|
|
17
|
+
return 'Turn stopped: usage accounting could not be verified. /cost shows the available measurements.';
|
|
18
|
+
return 'Turn stopped: the token allowance could not cover further work. /cost shows reported usage.';
|
|
19
19
|
case 'cost_limit':
|
|
20
|
-
return '
|
|
20
|
+
return 'Turn stopped: the cost allowance could not cover further work. /cost shows reported usage.';
|
|
21
21
|
case 'cost_unmeasurable':
|
|
22
|
-
return '
|
|
22
|
+
return 'Turn stopped: missing pricing prevented checking the cost limit. /cost shows reported usage.';
|
|
23
23
|
case 'timeout':
|
|
24
|
-
return '
|
|
24
|
+
return 'Turn stopped: the time limit was reached.';
|
|
25
25
|
case 'max_iterations':
|
|
26
|
-
return '
|
|
26
|
+
return 'Turn stopped: the step limit was reached.';
|
|
27
27
|
case 'plan_rejected':
|
|
28
|
-
return '
|
|
28
|
+
return 'Turn stopped: the plan was rejected.';
|
|
29
29
|
case 'stop_condition':
|
|
30
|
-
return '
|
|
30
|
+
return 'Turn stopped: the configured stop condition was met.';
|
|
31
31
|
case 'step_refused':
|
|
32
|
-
return '
|
|
32
|
+
return 'Turn stopped: the next model call was refused.';
|
|
33
33
|
case 'structured_output_failed':
|
|
34
|
-
return '
|
|
34
|
+
return 'Turn stopped: no valid structured result was produced.';
|
|
35
35
|
case 'answer_rejected':
|
|
36
|
-
return '
|
|
36
|
+
return 'Turn stopped: the final answer was not accepted.';
|
|
37
37
|
case 'input_guardrail':
|
|
38
|
-
return '
|
|
38
|
+
return 'Turn stopped: an input check refused this turn.';
|
|
39
39
|
case 'output_guardrail':
|
|
40
|
-
return '
|
|
40
|
+
return 'Turn stopped: an output check refused the result.';
|
|
41
41
|
case 'paused':
|
|
42
|
-
return '
|
|
42
|
+
return 'Turn paused.';
|
|
43
43
|
case 'error':
|
|
44
|
-
return '
|
|
44
|
+
return 'Turn stopped after an error.';
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
/** One terminal-safe line, bounded so a provider response cannot own the screen. */
|
|
@@ -86,12 +86,12 @@ function materiallyDifferent(candidate, earlier) {
|
|
|
86
86
|
* not a clock this process keeps updating. No generic remedy either: when the
|
|
87
87
|
* SDK catalog did not claim a failure, the provider reason is all we know.
|
|
88
88
|
*/
|
|
89
|
-
export function
|
|
89
|
+
export function describeTurnInterruption(event) {
|
|
90
90
|
const explained = event.explanation;
|
|
91
91
|
const rawReason = event.kind === 'paused' ? event.reason : event.message;
|
|
92
92
|
const lead = line(explained?.message || rawReason);
|
|
93
93
|
const id = explained?.id ? ` [${line(explained.id, 120)}]` : '';
|
|
94
|
-
const rows = [`${event.kind === 'paused' ? '
|
|
94
|
+
const rows = [`${event.kind === 'paused' ? 'Turn paused' : 'Error'}${id}: ${lead}`];
|
|
95
95
|
const providerDetail = event.providerError?.detail;
|
|
96
96
|
if (providerDetail && materiallyDifferent(providerDetail, [lead, rawReason])) {
|
|
97
97
|
rows.push(`Provider detail: ${line(providerDetail)}`);
|
|
@@ -110,4 +110,4 @@ export function describeRunInterruption(event) {
|
|
|
110
110
|
}
|
|
111
111
|
return rows.join('\n');
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=
|
|
113
|
+
//# sourceMappingURL=turn-interruption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-interruption.js","sourceRoot":"","sources":["../../src/tui/turn-interruption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type TurnGuardKey, type TurnGuards } from '../config/run-limits.js';
|
|
2
|
+
export declare const TURN_LIMIT_FIELDS: readonly [{
|
|
3
|
+
readonly name: "tokens";
|
|
4
|
+
readonly key: "tokenBudget";
|
|
5
|
+
readonly label: "Token budget";
|
|
6
|
+
readonly hint: "Whole tokens across the turn and its children; 0 or unlimited removes the cap.";
|
|
7
|
+
}, {
|
|
8
|
+
readonly name: "iterations";
|
|
9
|
+
readonly key: "maxIterations";
|
|
10
|
+
readonly label: "Model turns";
|
|
11
|
+
readonly hint: "Whole model calls per turn; 0 or unlimited removes the cap.";
|
|
12
|
+
}, {
|
|
13
|
+
readonly name: "time";
|
|
14
|
+
readonly key: "timeoutMs";
|
|
15
|
+
readonly label: "Turn duration";
|
|
16
|
+
readonly hint: "Duration such as 30m, 2h or 1500ms; a bare number is milliseconds. 0 or unlimited removes the cap.";
|
|
17
|
+
}];
|
|
18
|
+
export type TurnLimitsAction = {
|
|
19
|
+
kind: 'turn-limits-picker';
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'turn-limit-editor';
|
|
22
|
+
key: TurnGuardKey;
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'turn-limits-set';
|
|
25
|
+
limits: Partial<TurnGuards>;
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'message';
|
|
28
|
+
role: 'system';
|
|
29
|
+
content: string;
|
|
30
|
+
statusRows?: undefined;
|
|
31
|
+
};
|
|
32
|
+
export declare function turnLimitsAction(args: readonly string[]): TurnLimitsAction;
|
|
33
|
+
export declare function formatTurnLimit(key: TurnGuardKey, value: number): string;
|
|
34
|
+
export declare function turnLimitCommands(limits: TurnGuards): {
|
|
35
|
+
name: string;
|
|
36
|
+
label: string;
|
|
37
|
+
description: string;
|
|
38
|
+
}[];
|
|
39
|
+
//# sourceMappingURL=turn-limits-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-limits-settings.d.ts","sourceRoot":"","sources":["../../src/tui/turn-limits-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAqB,MAAM,yBAAyB,CAAA;AAE/F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAmBpB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAE/E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CAmC1E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU;;;;IAanD"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const
|
|
1
|
+
import { resolveTurnGuards } from '../config/run-limits.js';
|
|
2
|
+
export const TURN_LIMIT_FIELDS = [
|
|
3
3
|
{
|
|
4
4
|
name: 'tokens',
|
|
5
5
|
key: 'tokenBudget',
|
|
6
6
|
label: 'Token budget',
|
|
7
|
-
hint: 'Whole tokens across the
|
|
7
|
+
hint: 'Whole tokens across the turn and its children; 0 or unlimited removes the cap.',
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'iterations',
|
|
11
11
|
key: 'maxIterations',
|
|
12
12
|
label: 'Model turns',
|
|
13
|
-
hint: 'Whole model calls per
|
|
13
|
+
hint: 'Whole model calls per turn; 0 or unlimited removes the cap.',
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
name: 'time',
|
|
17
17
|
key: 'timeoutMs',
|
|
18
|
-
label: '
|
|
18
|
+
label: 'Turn duration',
|
|
19
19
|
hint: 'Duration such as 30m, 2h or 1500ms; a bare number is milliseconds. 0 or unlimited removes the cap.',
|
|
20
20
|
},
|
|
21
21
|
];
|
|
22
|
-
export function
|
|
22
|
+
export function turnLimitsAction(args) {
|
|
23
23
|
if (args.length === 0)
|
|
24
|
-
return { kind: '
|
|
24
|
+
return { kind: 'turn-limits-picker' };
|
|
25
25
|
if (args.length === 1 && args[0] === 'unlimited')
|
|
26
|
-
return { kind: '
|
|
27
|
-
const field =
|
|
26
|
+
return { kind: 'turn-limits-set', limits: resolveTurnGuards() };
|
|
27
|
+
const field = TURN_LIMIT_FIELDS.find((field) => field.name === args[0]);
|
|
28
28
|
if (field && args.length === 1)
|
|
29
|
-
return { kind: '
|
|
29
|
+
return { kind: 'turn-limit-editor', key: field.key };
|
|
30
30
|
if (field && args.length === 2) {
|
|
31
31
|
try {
|
|
32
32
|
const raw = (args[1] ?? '').toLowerCase();
|
|
@@ -39,8 +39,8 @@ export function runLimitsAction(args) {
|
|
|
39
39
|
: /^\d+$/.test(raw)
|
|
40
40
|
? Number(raw)
|
|
41
41
|
: Number.NaN;
|
|
42
|
-
|
|
43
|
-
return { kind: '
|
|
42
|
+
resolveTurnGuards({ [field.key]: value });
|
|
43
|
+
return { kind: 'turn-limits-set', limits: { [field.key]: value } };
|
|
44
44
|
}
|
|
45
45
|
catch (error) {
|
|
46
46
|
return {
|
|
@@ -56,7 +56,7 @@ export function runLimitsAction(args) {
|
|
|
56
56
|
content: 'Usage: /config limits [tokens|iterations|time] [value]; /config limits unlimited removes all three caps.',
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
export function
|
|
59
|
+
export function formatTurnLimit(key, value) {
|
|
60
60
|
if (value === 0)
|
|
61
61
|
return 'Unlimited';
|
|
62
62
|
if (key === 'timeoutMs') {
|
|
@@ -71,18 +71,18 @@ export function formatRunLimit(key, value) {
|
|
|
71
71
|
}
|
|
72
72
|
return value.toLocaleString('en-US');
|
|
73
73
|
}
|
|
74
|
-
export function
|
|
74
|
+
export function turnLimitCommands(limits) {
|
|
75
75
|
return [
|
|
76
|
-
...
|
|
76
|
+
...TURN_LIMIT_FIELDS.map((field) => ({
|
|
77
77
|
name: `config limits ${field.name}`,
|
|
78
78
|
label: field.label,
|
|
79
|
-
description:
|
|
79
|
+
description: formatTurnLimit(field.key, limits[field.key]),
|
|
80
80
|
})),
|
|
81
81
|
{
|
|
82
82
|
name: 'config limits unlimited',
|
|
83
|
-
label: 'Remove all
|
|
83
|
+
label: 'Remove all turn caps',
|
|
84
84
|
description: 'Unlimited tokens, model turns and duration. Usage is still measured.',
|
|
85
85
|
},
|
|
86
86
|
];
|
|
87
87
|
}
|
|
88
|
-
//# sourceMappingURL=
|
|
88
|
+
//# sourceMappingURL=turn-limits-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-limits-settings.js","sourceRoot":"","sources":["../../src/tui/turn-limits-settings.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { AuthorizationRule } from '@namzu/sdk';
|
|
7
7
|
import type { ConfigDebugSnapshot } from '../config/debug.js';
|
|
8
|
-
import type { CompactionCliConfig, HooksConfig, MemoryCliConfig, PluginConfig,
|
|
8
|
+
import type { CompactionCliConfig, HooksConfig, MemoryCliConfig, PluginConfig, SandboxConfig, TuiConfig, TurnLimitsConfig, WebConfig } from '../config/schema.js';
|
|
9
9
|
import type { ToolResultScreenConfig } from '../config/tool-result-screens.js';
|
|
10
10
|
import type { McpServersConfig } from '../integrations/mcp/servers.js';
|
|
11
11
|
import type { ResolvedLogging } from '../logging.js';
|
|
@@ -82,8 +82,8 @@ export interface TuiContext {
|
|
|
82
82
|
readonly hooks?: HooksConfig;
|
|
83
83
|
readonly compaction?: CompactionCliConfig;
|
|
84
84
|
readonly memory?: MemoryCliConfig;
|
|
85
|
-
/** Configured per-
|
|
86
|
-
readonly limits?:
|
|
85
|
+
/** Configured per-turn limits, also applied when rebuilding a session. */
|
|
86
|
+
readonly limits?: TurnLimitsConfig;
|
|
87
87
|
/**
|
|
88
88
|
* See `NamzuCliConfig.toolResultScreens`.
|
|
89
89
|
*
|
package/dist/tui/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EACX,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ export type HeadlessExpansion =
|
|
|
95
95
|
*
|
|
96
96
|
* `namzu run "/ozet hedef.js"` used to send that string to the model verbatim.
|
|
97
97
|
* The model, reasonably, tried to make sense of it — offering to create a file
|
|
98
|
-
* called `ozet hedef.js`. The
|
|
98
|
+
* called `ozet hedef.js`. The turn exited 0 with confident output that had
|
|
99
99
|
* nothing to do with the command. It did not fail; it quietly did something
|
|
100
100
|
* else, which is the shape worth removing.
|
|
101
101
|
*
|
|
@@ -138,7 +138,7 @@ function samePhysicalDirectory(left, right) {
|
|
|
138
138
|
*
|
|
139
139
|
* `namzu run "/ozet hedef.js"` used to send that string to the model verbatim.
|
|
140
140
|
* The model, reasonably, tried to make sense of it — offering to create a file
|
|
141
|
-
* called `ozet hedef.js`. The
|
|
141
|
+
* called `ozet hedef.js`. The turn exited 0 with confident output that had
|
|
142
142
|
* nothing to do with the command. It did not fail; it quietly did something
|
|
143
143
|
* else, which is the shape worth removing.
|
|
144
144
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "27.0.0",
|
|
4
4
|
"description": "Interactive and headless terminal agent for Namzu, with provider discovery, durable sessions, tools and diagnostics.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"namzu",
|
|
@@ -46,16 +46,16 @@
|
|
|
46
46
|
"react": "19.2.6",
|
|
47
47
|
"string-width": "8.2.1",
|
|
48
48
|
"yaml": "^2.9.0",
|
|
49
|
-
"@namzu/anthropic": "6.0.
|
|
49
|
+
"@namzu/anthropic": "6.0.1",
|
|
50
50
|
"@namzu/computer-use": "1.4.3",
|
|
51
51
|
"@namzu/deepseek": "^2.0.0",
|
|
52
|
-
"@namzu/ollama": "2.2.4",
|
|
53
52
|
"@namzu/files": "1.1.1",
|
|
53
|
+
"@namzu/ollama": "2.2.4",
|
|
54
54
|
"@namzu/openai": "4.0.0",
|
|
55
|
-
"@namzu/openrouter": "3.0.
|
|
56
|
-
"@namzu/sdk": "^
|
|
57
|
-
"@namzu/
|
|
58
|
-
"@namzu/
|
|
55
|
+
"@namzu/openrouter": "3.0.1",
|
|
56
|
+
"@namzu/sdk": "^44.0.0",
|
|
57
|
+
"@namzu/google": "^1.0.0",
|
|
58
|
+
"@namzu/zen": "^2.4.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@biomejs/biome": "^1.9.4",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"ink-testing-library": "^4.0.0",
|
|
65
65
|
"typescript": "^5.5.0",
|
|
66
66
|
"vitest": "^4.1.11",
|
|
67
|
-
"@namzu/telemetry": "
|
|
67
|
+
"@namzu/telemetry": "3.0.0"
|
|
68
68
|
},
|
|
69
69
|
"engines": {
|
|
70
70
|
"node": ">=22.13.0"
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type Message, type SessionId } from '@namzu/sdk';
|
|
2
|
-
import { type ConversationContext } from './store.js';
|
|
3
|
-
/** A zero-model maintenance record, separate from closed model invocations. */
|
|
4
|
-
export declare function retainManualCompaction(sessions: ConversationContext, sessionId: SessionId, messages: readonly Message[], signal?: AbortSignal): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=compaction-evidence.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-evidence.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/compaction-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EAGZ,KAAK,SAAS,EAEd,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,KAAK,mBAAmB,EAA+B,MAAM,YAAY,CAAA;AAElF,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC3C,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { RunPersistence, generateRunId, } from '@namzu/sdk';
|
|
2
|
-
import { cliLogger } from '../../logging.js';
|
|
3
|
-
import { ensurePrivateStateDirectory } from '../state/private-directory.js';
|
|
4
|
-
import { requireWritableConversation } from './store.js';
|
|
5
|
-
/** A zero-model maintenance record, separate from closed model invocations. */
|
|
6
|
-
export async function retainManualCompaction(sessions, sessionId, messages, signal) {
|
|
7
|
-
signal?.throwIfAborted();
|
|
8
|
-
await requireWritableConversation(sessions, sessionId, 'retain compacted history');
|
|
9
|
-
if (!messages.length)
|
|
10
|
-
return;
|
|
11
|
-
const sessionsDir = ensurePrivateStateDirectory(sessions.root, 'sessions');
|
|
12
|
-
const sessionDir = ensurePrivateStateDirectory(sessionsDir, sessionId);
|
|
13
|
-
const outputDir = ensurePrivateStateDirectory(sessionDir, 'runs');
|
|
14
|
-
const persistence = new RunPersistence({
|
|
15
|
-
runId: generateRunId(),
|
|
16
|
-
agentId: 'manual-compaction',
|
|
17
|
-
agentName: 'Manual compaction archive',
|
|
18
|
-
providerId: 'host',
|
|
19
|
-
runConfig: { model: 'none', timeoutMs: 0, tokenBudget: 0 },
|
|
20
|
-
outputDir,
|
|
21
|
-
log: cliLogger(),
|
|
22
|
-
sessionId,
|
|
23
|
-
topicId: sessions.topicId,
|
|
24
|
-
tenantId: sessions.tenantId,
|
|
25
|
-
projectId: sessions.projectId,
|
|
26
|
-
});
|
|
27
|
-
await persistence.init();
|
|
28
|
-
const store = persistence.getRunStore();
|
|
29
|
-
const append = async (event) => {
|
|
30
|
-
signal?.throwIfAborted();
|
|
31
|
-
const seq = persistence.nextEventSeq();
|
|
32
|
-
await store.appendEvent({ ...event, seq });
|
|
33
|
-
persistence.commitEventSeq(seq);
|
|
34
|
-
};
|
|
35
|
-
try {
|
|
36
|
-
await append({ type: 'run_started', runId: persistence.id });
|
|
37
|
-
// The SDK bounds large records and indexes their individual text parts.
|
|
38
|
-
// Keep the same removed-message event shape as automatic compaction.
|
|
39
|
-
await append({
|
|
40
|
-
type: 'compaction_shed',
|
|
41
|
-
runId: persistence.id,
|
|
42
|
-
iteration: 0,
|
|
43
|
-
reason: 'manual',
|
|
44
|
-
messages: [...messages],
|
|
45
|
-
});
|
|
46
|
-
await append({ type: 'run_completed', runId: persistence.id, result: '' });
|
|
47
|
-
persistence.markCompleted();
|
|
48
|
-
// No model answer, checkpoint or global run-index row: this operation
|
|
49
|
-
// archives evidence; it must not become a resumable agent invocation.
|
|
50
|
-
await store.writeRunMeta(persistence.getRun());
|
|
51
|
-
signal?.throwIfAborted();
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
persistence.markFailed('Manual compaction retention did not finish.');
|
|
55
|
-
await store.writeRunMeta(persistence.getRun()).catch(() => { });
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=compaction-evidence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-evidence.js","sourceRoot":"","sources":["../../../src/integrations/sessions/compaction-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { SqliteSessionStore } from '@namzu/sdk';
|
|
2
|
-
export declare function sessionDatabasePath(root: string): string;
|
|
3
|
-
/** Readers never mint state. The private parent also confines SQLite's journal files. */
|
|
4
|
-
export declare function sessionStore(root: string, readOnly?: boolean): SqliteSessionStore;
|
|
5
|
-
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/database.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,kBAAkB,CAsB/E"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { lstatSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { SqliteSessionStore } from '@namzu/sdk';
|
|
4
|
-
import { ensurePrivateStateDirectory } from '../state/private-directory.js';
|
|
5
|
-
export function sessionDatabasePath(root) {
|
|
6
|
-
return join(root, 'state', 'sessions.sqlite');
|
|
7
|
-
}
|
|
8
|
-
/** Readers never mint state. The private parent also confines SQLite's journal files. */
|
|
9
|
-
export function sessionStore(root, readOnly = false) {
|
|
10
|
-
if (!readOnly)
|
|
11
|
-
ensurePrivateStateDirectory(root, 'state');
|
|
12
|
-
const path = sessionDatabasePath(root);
|
|
13
|
-
if (readOnly) {
|
|
14
|
-
const parent = lstatSync(join(root, 'state'));
|
|
15
|
-
if (!parent.isDirectory() || parent.isSymbolicLink())
|
|
16
|
-
throw new Error('Session database requires a real state directory');
|
|
17
|
-
}
|
|
18
|
-
for (const file of [path, `${path}-wal`, `${path}-shm`, `${path}-journal`]) {
|
|
19
|
-
let entry;
|
|
20
|
-
try {
|
|
21
|
-
entry = lstatSync(file);
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
if (error.code === 'ENOENT')
|
|
25
|
-
continue;
|
|
26
|
-
throw error;
|
|
27
|
-
}
|
|
28
|
-
if (!entry.isFile() || entry.isSymbolicLink() || entry.nlink !== 1) {
|
|
29
|
-
throw new Error(`Session database requires a private regular file: ${file}`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return new SqliteSessionStore({ databasePath: path, readOnly });
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=database.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/integrations/sessions/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAE3E,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAA;AAC9C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;IAC1D,IAAI,CAAC,QAAQ;QAAE,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE;YACnD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;QAC5E,IAAI,KAAmC,CAAA;QACvC,IAAI,CAAC;YACJ,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAQ;YAChE,MAAM,KAAK,CAAA;QACZ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAA;QAC7E,CAAC;IACF,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAChE,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DefaultPathBuilder, type ProjectId, type SessionId } from '@namzu/sdk';
|
|
2
|
-
/** Application artifacts are keyed by conversation; workspace membership lives in SQLite. */
|
|
3
|
-
export declare class CliPathBuilder extends DefaultPathBuilder {
|
|
4
|
-
projectDir(projectId: ProjectId): string;
|
|
5
|
-
sessionDir(projectId: ProjectId, sessionId: SessionId): string;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/paths.ts"],"names":[],"mappings":"AACA,OAAO,EACN,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EAGd,MAAM,YAAY,CAAA;AAEnB,6FAA6F;AAC7F,qBAAa,cAAe,SAAQ,kBAAkB;IAC5C,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAKxC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM;CAIvE"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { DefaultPathBuilder, asProjectId, asSessionId, } from '@namzu/sdk';
|
|
3
|
-
/** Application artifacts are keyed by conversation; workspace membership lives in SQLite. */
|
|
4
|
-
export class CliPathBuilder extends DefaultPathBuilder {
|
|
5
|
-
projectDir(projectId) {
|
|
6
|
-
asProjectId(projectId);
|
|
7
|
-
return this.rootDir();
|
|
8
|
-
}
|
|
9
|
-
sessionDir(projectId, sessionId) {
|
|
10
|
-
asProjectId(projectId);
|
|
11
|
-
return join(this.projectDir(projectId), 'sessions', asSessionId(sessionId));
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/integrations/sessions/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EACN,kBAAkB,EAGlB,WAAW,EACX,WAAW,GACX,MAAM,YAAY,CAAA;AAEnB,6FAA6F;AAC7F,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAC5C,UAAU,CAAC,SAAoB;QACvC,WAAW,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;IAEQ,UAAU,CAAC,SAAoB,EAAE,SAAoB;QAC7D,WAAW,CAAC,SAAS,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5E,CAAC;CACD"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
interface DiscoveryPage {
|
|
2
|
-
runIds: string[];
|
|
3
|
-
next?: string;
|
|
4
|
-
}
|
|
5
|
-
/** Process-local, bounded directory continuations. No output or authorization is cached here. */
|
|
6
|
-
export declare class RunDiscovery {
|
|
7
|
-
private readonly now;
|
|
8
|
-
private streams;
|
|
9
|
-
private pages;
|
|
10
|
-
private tail;
|
|
11
|
-
constructor(now?: () => number);
|
|
12
|
-
private serialize;
|
|
13
|
-
private stamp;
|
|
14
|
-
private close;
|
|
15
|
-
private forget;
|
|
16
|
-
private slot;
|
|
17
|
-
/** The host checks ancestor paths and conversation membership before every call. */
|
|
18
|
-
read(scope: string, path: string, cursor?: string, signal?: AbortSignal): Promise<DiscoveryPage>;
|
|
19
|
-
private releaseStream;
|
|
20
|
-
/** Closing a conversation (or a test host) releases its directory handles and tokens. */
|
|
21
|
-
release(scope?: string): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=run-discovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-discovery.d.ts","sourceRoot":"","sources":["../../../src/integrations/sessions/run-discovery.ts"],"names":[],"mappings":"AAUA,UAAU,aAAa;IACtB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAeD,iGAAiG;AACjG,qBAAa,YAAY;IAIZ,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,IAAI,CAAmC;gBAClB,GAAG,GAAE,MAAM,MAAiB;IAEzD,OAAO,CAAC,SAAS;YASH,KAAK;YAML,KAAK;YAML,MAAM;IAOpB,OAAO,CAAC,IAAI;IAWZ,oFAAoF;IACpF,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAmEhG,OAAO,CAAC,aAAa;IAIrB,yFAAyF;IACzF,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMtC"}
|