@namzu/cli 23.0.0 → 25.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.
Files changed (243) hide show
  1. package/CHANGELOG.md +845 -0
  2. package/README.md +13 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +18 -10
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/drain.d.ts +0 -23
  7. package/dist/commands/drain.d.ts.map +1 -1
  8. package/dist/commands/drain.js +23 -9
  9. package/dist/commands/drain.js.map +1 -1
  10. package/dist/commands/resident-flags.d.ts +24 -0
  11. package/dist/commands/resident-flags.d.ts.map +1 -0
  12. package/dist/commands/resident-flags.js +191 -0
  13. package/dist/commands/resident-flags.js.map +1 -0
  14. package/dist/commands/resident-learning.d.ts +6 -0
  15. package/dist/commands/resident-learning.d.ts.map +1 -0
  16. package/dist/commands/resident-learning.js +293 -0
  17. package/dist/commands/resident-learning.js.map +1 -0
  18. package/dist/commands/resident.d.ts +20 -0
  19. package/dist/commands/resident.d.ts.map +1 -0
  20. package/dist/commands/resident.js +418 -0
  21. package/dist/commands/resident.js.map +1 -0
  22. package/dist/commands/run-flags.d.ts +2 -2
  23. package/dist/commands/run-flags.d.ts.map +1 -1
  24. package/dist/commands/run-flags.js +6 -6
  25. package/dist/commands/run-flags.js.map +1 -1
  26. package/dist/commands/run-stream.d.ts.map +1 -1
  27. package/dist/commands/run-stream.js +9 -10
  28. package/dist/commands/run-stream.js.map +1 -1
  29. package/dist/commands/run.d.ts.map +1 -1
  30. package/dist/commands/run.js +3 -2
  31. package/dist/commands/run.js.map +1 -1
  32. package/dist/commands/upgrade.d.ts +1 -0
  33. package/dist/commands/upgrade.d.ts.map +1 -1
  34. package/dist/commands/upgrade.js +6 -3
  35. package/dist/commands/upgrade.js.map +1 -1
  36. package/dist/config/load.d.ts.map +1 -1
  37. package/dist/config/load.js +27 -4
  38. package/dist/config/load.js.map +1 -1
  39. package/dist/config/run-limits.d.ts +11 -0
  40. package/dist/config/run-limits.d.ts.map +1 -0
  41. package/dist/config/run-limits.js +64 -0
  42. package/dist/config/run-limits.js.map +1 -0
  43. package/dist/config/schema.d.ts +12 -4
  44. package/dist/config/schema.d.ts.map +1 -1
  45. package/dist/config/schema.js.map +1 -1
  46. package/dist/context/runtime-message.d.ts.map +1 -1
  47. package/dist/context/runtime-message.js +2 -0
  48. package/dist/context/runtime-message.js.map +1 -1
  49. package/dist/integrations/npm-invocation.d.ts +10 -0
  50. package/dist/integrations/npm-invocation.d.ts.map +1 -0
  51. package/dist/integrations/npm-invocation.js +23 -0
  52. package/dist/integrations/npm-invocation.js.map +1 -0
  53. package/dist/integrations/plugins/runtime.d.ts +19 -1
  54. package/dist/integrations/plugins/runtime.d.ts.map +1 -1
  55. package/dist/integrations/plugins/runtime.js +89 -1
  56. package/dist/integrations/plugins/runtime.js.map +1 -1
  57. package/dist/integrations/plugins/settings.d.ts +15 -0
  58. package/dist/integrations/plugins/settings.d.ts.map +1 -0
  59. package/dist/integrations/plugins/settings.js +106 -0
  60. package/dist/integrations/plugins/settings.js.map +1 -0
  61. package/dist/integrations/providers/credential-store.d.ts +8 -7
  62. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  63. package/dist/integrations/providers/credential-store.js +44 -17
  64. package/dist/integrations/providers/credential-store.js.map +1 -1
  65. package/dist/integrations/providers/discover.d.ts.map +1 -1
  66. package/dist/integrations/providers/discover.js +7 -2
  67. package/dist/integrations/providers/discover.js.map +1 -1
  68. package/dist/integrations/providers/harness-credentials.d.ts +2 -2
  69. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -1
  70. package/dist/integrations/providers/harness-credentials.js +13 -8
  71. package/dist/integrations/providers/harness-credentials.js.map +1 -1
  72. package/dist/integrations/providers/setup.d.ts.map +1 -1
  73. package/dist/integrations/providers/setup.js +52 -5
  74. package/dist/integrations/providers/setup.js.map +1 -1
  75. package/dist/integrations/resident/foreground.d.ts +19 -0
  76. package/dist/integrations/resident/foreground.d.ts.map +1 -0
  77. package/dist/integrations/resident/foreground.js +95 -0
  78. package/dist/integrations/resident/foreground.js.map +1 -0
  79. package/dist/integrations/resident/inspection.d.ts +10 -0
  80. package/dist/integrations/resident/inspection.d.ts.map +1 -0
  81. package/dist/integrations/resident/inspection.js +263 -0
  82. package/dist/integrations/resident/inspection.js.map +1 -0
  83. package/dist/integrations/resident/learning-sources.d.ts +4 -0
  84. package/dist/integrations/resident/learning-sources.d.ts.map +1 -0
  85. package/dist/integrations/resident/learning-sources.js +79 -0
  86. package/dist/integrations/resident/learning-sources.js.map +1 -0
  87. package/dist/integrations/resident/learning-storage.d.ts +5 -0
  88. package/dist/integrations/resident/learning-storage.d.ts.map +1 -0
  89. package/dist/integrations/resident/learning-storage.js +51 -0
  90. package/dist/integrations/resident/learning-storage.js.map +1 -0
  91. package/dist/integrations/resident/lifecycle-errors.d.ts +9 -0
  92. package/dist/integrations/resident/lifecycle-errors.d.ts.map +1 -0
  93. package/dist/integrations/resident/lifecycle-errors.js +15 -0
  94. package/dist/integrations/resident/lifecycle-errors.js.map +1 -0
  95. package/dist/integrations/resident/owned-runner.d.ts +17 -0
  96. package/dist/integrations/resident/owned-runner.d.ts.map +1 -0
  97. package/dist/integrations/resident/owned-runner.js +91 -0
  98. package/dist/integrations/resident/owned-runner.js.map +1 -0
  99. package/dist/integrations/resident/runner-control.d.ts +47 -0
  100. package/dist/integrations/resident/runner-control.d.ts.map +1 -0
  101. package/dist/integrations/resident/runner-control.js +238 -0
  102. package/dist/integrations/resident/runner-control.js.map +1 -0
  103. package/dist/integrations/resident/runner-launch.d.ts +52 -0
  104. package/dist/integrations/resident/runner-launch.d.ts.map +1 -0
  105. package/dist/integrations/resident/runner-launch.js +142 -0
  106. package/dist/integrations/resident/runner-launch.js.map +1 -0
  107. package/dist/integrations/resident/runner-store.d.ts +44 -0
  108. package/dist/integrations/resident/runner-store.d.ts.map +1 -0
  109. package/dist/integrations/resident/runner-store.js +281 -0
  110. package/dist/integrations/resident/runner-store.js.map +1 -0
  111. package/dist/integrations/resident/runner-worker.d.ts +2 -0
  112. package/dist/integrations/resident/runner-worker.d.ts.map +1 -0
  113. package/dist/integrations/resident/runner-worker.js +146 -0
  114. package/dist/integrations/resident/runner-worker.js.map +1 -0
  115. package/dist/integrations/resident/session-step.d.ts +29 -0
  116. package/dist/integrations/resident/session-step.d.ts.map +1 -0
  117. package/dist/integrations/resident/session-step.js +462 -0
  118. package/dist/integrations/resident/session-step.js.map +1 -0
  119. package/dist/integrations/resident/storage.d.ts +17 -0
  120. package/dist/integrations/resident/storage.d.ts.map +1 -0
  121. package/dist/integrations/resident/storage.js +140 -0
  122. package/dist/integrations/resident/storage.js.map +1 -0
  123. package/dist/integrations/resident/tool-evidence.d.ts +6 -0
  124. package/dist/integrations/resident/tool-evidence.d.ts.map +1 -0
  125. package/dist/integrations/resident/tool-evidence.js +117 -0
  126. package/dist/integrations/resident/tool-evidence.js.map +1 -0
  127. package/dist/integrations/resident/verification.d.ts +11 -0
  128. package/dist/integrations/resident/verification.d.ts.map +1 -0
  129. package/dist/integrations/resident/verification.js +109 -0
  130. package/dist/integrations/resident/verification.js.map +1 -0
  131. package/dist/integrations/sessions/compaction-evidence.d.ts +5 -0
  132. package/dist/integrations/sessions/compaction-evidence.d.ts.map +1 -0
  133. package/dist/integrations/sessions/compaction-evidence.js +59 -0
  134. package/dist/integrations/sessions/compaction-evidence.js.map +1 -0
  135. package/dist/integrations/sessions/context-inventory.js +1 -1
  136. package/dist/integrations/sessions/context-inventory.js.map +1 -1
  137. package/dist/integrations/sessions/conversation-search.d.ts +56 -8
  138. package/dist/integrations/sessions/conversation-search.d.ts.map +1 -1
  139. package/dist/integrations/sessions/conversation-search.js +600 -63
  140. package/dist/integrations/sessions/conversation-search.js.map +1 -1
  141. package/dist/integrations/sessions/database.d.ts +5 -0
  142. package/dist/integrations/sessions/database.d.ts.map +1 -0
  143. package/dist/integrations/sessions/database.js +34 -0
  144. package/dist/integrations/sessions/database.js.map +1 -0
  145. package/dist/integrations/sessions/evidence-page-validation.d.ts +8 -0
  146. package/dist/integrations/sessions/evidence-page-validation.d.ts.map +1 -0
  147. package/dist/integrations/sessions/evidence-page-validation.js +74 -0
  148. package/dist/integrations/sessions/evidence-page-validation.js.map +1 -0
  149. package/dist/integrations/sessions/evidence-recall.d.ts +5 -0
  150. package/dist/integrations/sessions/evidence-recall.d.ts.map +1 -0
  151. package/dist/integrations/sessions/evidence-recall.js +173 -0
  152. package/dist/integrations/sessions/evidence-recall.js.map +1 -0
  153. package/dist/integrations/sessions/paths.d.ts +7 -0
  154. package/dist/integrations/sessions/paths.d.ts.map +1 -0
  155. package/dist/integrations/sessions/paths.js +14 -0
  156. package/dist/integrations/sessions/paths.js.map +1 -0
  157. package/dist/integrations/sessions/run-discovery.d.ts +24 -0
  158. package/dist/integrations/sessions/run-discovery.d.ts.map +1 -0
  159. package/dist/integrations/sessions/run-discovery.js +142 -0
  160. package/dist/integrations/sessions/run-discovery.js.map +1 -0
  161. package/dist/integrations/sessions/store.d.ts +8 -18
  162. package/dist/integrations/sessions/store.d.ts.map +1 -1
  163. package/dist/integrations/sessions/store.js +14 -39
  164. package/dist/integrations/sessions/store.js.map +1 -1
  165. package/dist/integrations/sessions/transcript-export.d.ts +0 -1
  166. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
  167. package/dist/integrations/sessions/transcript-export.js +3 -2
  168. package/dist/integrations/sessions/transcript-export.js.map +1 -1
  169. package/dist/integrations/sessions/turn-evidence.d.ts +0 -9
  170. package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -1
  171. package/dist/integrations/sessions/turn-evidence.js +5 -2
  172. package/dist/integrations/sessions/turn-evidence.js.map +1 -1
  173. package/dist/integrations/state/private-directory.d.ts +4 -2
  174. package/dist/integrations/state/private-directory.d.ts.map +1 -1
  175. package/dist/integrations/state/private-directory.js +6 -4
  176. package/dist/integrations/state/private-directory.js.map +1 -1
  177. package/dist/integrations/state/report.d.ts.map +1 -1
  178. package/dist/integrations/state/report.js +78 -21
  179. package/dist/integrations/state/report.js.map +1 -1
  180. package/dist/integrations/subagents/parent.d.ts +3 -2
  181. package/dist/integrations/subagents/parent.d.ts.map +1 -1
  182. package/dist/integrations/subagents/parent.js +11 -6
  183. package/dist/integrations/subagents/parent.js.map +1 -1
  184. package/dist/integrations/subagents/policy.d.ts +2 -5
  185. package/dist/integrations/subagents/policy.d.ts.map +1 -1
  186. package/dist/integrations/subagents/policy.js +2 -5
  187. package/dist/integrations/subagents/policy.js.map +1 -1
  188. package/dist/integrations/subagents/runtime.d.ts +7 -0
  189. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  190. package/dist/integrations/subagents/runtime.js +9 -7
  191. package/dist/integrations/subagents/runtime.js.map +1 -1
  192. package/dist/permissions/rules.d.ts +2 -8
  193. package/dist/permissions/rules.d.ts.map +1 -1
  194. package/dist/permissions/rules.js +19 -10
  195. package/dist/permissions/rules.js.map +1 -1
  196. package/dist/tui/App.d.ts +0 -12
  197. package/dist/tui/App.d.ts.map +1 -1
  198. package/dist/tui/App.js +235 -15
  199. package/dist/tui/App.js.map +1 -1
  200. package/dist/tui/ChoicePicker.d.ts +2 -1
  201. package/dist/tui/ChoicePicker.d.ts.map +1 -1
  202. package/dist/tui/ChoicePicker.js +10 -8
  203. package/dist/tui/ChoicePicker.js.map +1 -1
  204. package/dist/tui/ToolOutputViewer.js +1 -1
  205. package/dist/tui/ToolOutputViewer.js.map +1 -1
  206. package/dist/tui/agent.d.ts +29 -3
  207. package/dist/tui/agent.d.ts.map +1 -1
  208. package/dist/tui/agent.js +233 -46
  209. package/dist/tui/agent.js.map +1 -1
  210. package/dist/tui/conversation-evidence-view.d.ts +6 -0
  211. package/dist/tui/conversation-evidence-view.d.ts.map +1 -0
  212. package/dist/tui/conversation-evidence-view.js +96 -0
  213. package/dist/tui/conversation-evidence-view.js.map +1 -0
  214. package/dist/tui/conversation-history.d.ts +3 -1
  215. package/dist/tui/conversation-history.d.ts.map +1 -1
  216. package/dist/tui/conversation-history.js +16 -1
  217. package/dist/tui/conversation-history.js.map +1 -1
  218. package/dist/tui/exit-summary.d.ts +1 -1
  219. package/dist/tui/exit-summary.d.ts.map +1 -1
  220. package/dist/tui/exit-summary.js +17 -5
  221. package/dist/tui/exit-summary.js.map +1 -1
  222. package/dist/tui/markdownParser.d.ts.map +1 -1
  223. package/dist/tui/markdownParser.js +2 -1
  224. package/dist/tui/markdownParser.js.map +1 -1
  225. package/dist/tui/plugin-view.d.ts +9 -0
  226. package/dist/tui/plugin-view.d.ts.map +1 -0
  227. package/dist/tui/plugin-view.js +59 -0
  228. package/dist/tui/plugin-view.js.map +1 -0
  229. package/dist/tui/run-interruption.d.ts +2 -2
  230. package/dist/tui/run-interruption.d.ts.map +1 -1
  231. package/dist/tui/run-interruption.js +5 -1
  232. package/dist/tui/run-interruption.js.map +1 -1
  233. package/dist/tui/run-limits-settings.d.ts +39 -0
  234. package/dist/tui/run-limits-settings.d.ts.map +1 -0
  235. package/dist/tui/run-limits-settings.js +88 -0
  236. package/dist/tui/run-limits-settings.js.map +1 -0
  237. package/dist/tui/slashCommands.d.ts +6 -1
  238. package/dist/tui/slashCommands.d.ts.map +1 -1
  239. package/dist/tui/slashCommands.js +40 -9
  240. package/dist/tui/slashCommands.js.map +1 -1
  241. package/dist/tui/types.d.ts +4 -2
  242. package/dist/tui/types.d.ts.map +1 -1
  243. package/package.json +6 -6
@@ -0,0 +1,418 @@
1
+ import { stripVTControlCharacters } from 'node:util';
2
+ import { ResidentConflictError } from '@namzu/sdk';
3
+ import { ConfigLoadError, ConfigValueError } from '../config/load.js';
4
+ import { resolveTrustedProjectContext } from '../config/trusted-project-context.js';
5
+ import { EXIT_BAD_CONFIG, EXIT_UNTRUSTED, EXIT_USAGE } from '../exit-codes.js';
6
+ import { inspectCliResident } from '../integrations/resident/inspection.js';
7
+ import { runOwnedResident } from '../integrations/resident/owned-runner.js';
8
+ import { queryRunner } from '../integrations/resident/runner-control.js';
9
+ import { residentRunnerStatus, startResidentRunner, stopResidentRunner, } from '../integrations/resident/runner-launch.js';
10
+ import { readRunner, releaseRunner, reserveRunner } from '../integrations/resident/runner-store.js';
11
+ import { createResident, lookupResident, } from '../integrations/resident/storage.js';
12
+ import { loadResidentVerification } from '../integrations/resident/verification.js';
13
+ import { openSessions } from '../integrations/sessions/store.js';
14
+ import { decideHeadlessTrust } from '../permissions/headless-trust.js';
15
+ import { parseResidentFlags } from './resident-flags.js';
16
+ import { residentLearningCommand } from './resident-learning.js';
17
+ import { resolveWorkingDirectory } from './run-flags.js';
18
+ const line = (value) => stripVTControlCharacters(value).replace(/[\p{Cc}\p{Cf}]/gu, ' ');
19
+ export function residentStatus(resident, state, message, runner) {
20
+ const unresolved = state.pursuits.filter((p) => p.state.phase === 'running');
21
+ const live = runner?.live?.kind === 'responsive' ? runner.live : null;
22
+ const responsive = live !== null;
23
+ const text = [
24
+ `Resident · ${resident.agentKey}`,
25
+ `Directory: ${line(resident.cwd)}`,
26
+ `Admission: ${state.paused ? 'paused' : 'open'}${unresolved.length ? (responsive ? ' · a pursuit is admitted' : ' · retained work needs inspection') : ''}`,
27
+ ...(runner?.owner
28
+ ? [
29
+ `Runner: ${live ? live.phase : runner.owner.phase === 'running' ? 'unresponsive; state retained' : runner.owner.phase} · ${runner.owner.mode}`,
30
+ ` ${runner.owner.instanceId} · ${runner.owner.maxSteps} step(s) authorized${runner.owner.pid ? ` · PID ${runner.owner.pid}` : ''}`,
31
+ ...(live ? [` ${live.stepsStarted} step(s) started in this invocation`] : []),
32
+ ...(runner.owner.outcome ? [` Last outcome: ${line(runner.owner.outcome)}`] : []),
33
+ ]
34
+ : []),
35
+ ...(message ? ['', message] : []),
36
+ '',
37
+ ...state.pursuits.flatMap((p) => [
38
+ `${p.state.phase} · ${line(p.state.objective)}`,
39
+ ` ${p.id} · ${p.state.stepsAdmitted} step(s) admitted`,
40
+ ...(p.state.summary ? [` ${line(p.state.summary)}`] : []),
41
+ ...(p.state.wakeEvidence
42
+ ? [` Pending evidence: ${p.state.wakeEvidence.length} input(s) retained until settlement.`]
43
+ : []),
44
+ ...(p.state.phase === 'waiting'
45
+ ? [
46
+ ` ${p.state.wakeAt === null ? 'Waiting for evidence; use resident wake.' : p.state.wakeAt <= Date.now() ? (responsive ? 'Ready for the active runner.' : 'Ready for the next authorized run.') : `Next step: ${new Date(p.state.wakeAt).toISOString()}`}`,
47
+ ]
48
+ : []),
49
+ ...(p.state.claimId
50
+ ? [
51
+ ` Claim: ${p.state.claimId} · revision ${p.state.revision}`,
52
+ ` Inspect attempt records: ${line(resident.artifactsRoot)}/${p.state.claimId}`,
53
+ ]
54
+ : []),
55
+ ]),
56
+ ...(state.pursuits.length ? [] : ['No active pursuits.']),
57
+ ...(unresolved.length && !responsive
58
+ ? [
59
+ '',
60
+ 'A retained claim does not establish whether its executor is still alive.',
61
+ 'Stop prior executors and inspect effects before resident reconcile.',
62
+ ]
63
+ : []),
64
+ ].join('\n');
65
+ return {
66
+ text,
67
+ agent: resident.agentKey,
68
+ cwd: resident.cwd,
69
+ agenda: state,
70
+ ...(runner ? { runner } : {}),
71
+ ...(message ? { message } : {}),
72
+ };
73
+ }
74
+ function pursuit(state, id) {
75
+ const found = state.pursuits.find((p) => p.id === id);
76
+ if (!found)
77
+ throw new Error(`Unknown active pursuit: ${id}`);
78
+ return found;
79
+ }
80
+ async function readAgenda(resident) {
81
+ const state = await resident.agenda.read();
82
+ if (!state)
83
+ throw new Error('Resident agenda is missing; no saved result can be reported.');
84
+ return state;
85
+ }
86
+ async function closeAdmission(resident, initial) {
87
+ let state = initial;
88
+ for (let attempt = 0;; attempt++) {
89
+ try {
90
+ await resident.agenda.setPaused(state, true);
91
+ return;
92
+ }
93
+ catch (error) {
94
+ if (!(error instanceof ResidentConflictError) || attempt >= 7)
95
+ throw error;
96
+ state = await readAgenda(resident);
97
+ }
98
+ }
99
+ }
100
+ export const residentCommand = {
101
+ name: 'resident',
102
+ description: 'Manage persistent work and explicitly authorized resident runners (experimental)',
103
+ passThrough: true,
104
+ help: [
105
+ 'Usage: namzu resident <action> [options]',
106
+ '',
107
+ ' add <objective> Save work without starting a model',
108
+ ' inspect Inspect lifetime usage and evidence (--cursor, --through-revision, --max-revisions)',
109
+ ' learn <file.learning.js> Run one explicitly selected executable learning experiment (--trust, --cwd, --agent)',
110
+ ' learning [cycle-id] Inspect experiments or --observations (--events, --after, --before, --limit)',
111
+ ' status Show saved work and unresolved claims (default action)',
112
+ ' run --max-steps <n> Continue due work in this foreground process',
113
+ ' run/start --verify <file> Require configured JSON claims before completion (host file reads)',
114
+ ' start --max-steps <n> Start a managed background runner; retain its limit while idle',
115
+ ' stop Close admission and wait briefly for runner drainage',
116
+ ' release <runner-id> Release inspected stale ownership; requires --executor-stopped',
117
+ ' pause Close admission and request interruption of active runners',
118
+ ' resume Reopen admission; does not start work or clear claims',
119
+ ' wake <id> <evidence> Make a waiting pursuit due using new evidence',
120
+ ' archive <id> Retire a terminal pursuit, preserving its history',
121
+ ' reconcile <id> <summary> Record inspected effects for an exact interrupted claim',
122
+ '',
123
+ 'Common: --cwd <path>, --agent <name> (default: default).',
124
+ 'The first add binds the execution directory; later launches keep that directory.',
125
+ 'Add, run and start require folder trust, or --trust for this invocation.',
126
+ '',
127
+ 'Run options: --provider <id>, --model <id>, --effort <level>,',
128
+ ' --permission-mode <mode> (default: plan, read-only), --skills <a,b>,',
129
+ ' --max-iterations <n>, --token-budget <n> (limits apply per SDK step),',
130
+ ' --tool-loading eager|deferred (default: eager; defer optional schemas per step),',
131
+ ' --learning-disclosure on-demand|eager (default: on-demand; evaluated skills),',
132
+ ' --context-profile resident|interactive (default: resident; bounded-step guidance),',
133
+ ' --gate <command>, --gate-retries <n>, --max-idle-ms <n> (default: 60000).',
134
+ 'Run and start require a finite --max-steps. No OS service is installed.',
135
+ 'Start survives the launching terminal; it stops at that limit, pause, failure or stop.',
136
+ 'For start, --max-idle-ms is a positive local idle check interval; idle does not exit.',
137
+ 'Status contacts the exact runner locally; no recorded PID is blindly signalled.',
138
+ 'Idle waits use local storage checks and spend no model calls.',
139
+ '',
140
+ 'Reconcile also requires --claim <uuid> --revision <n> --outcome wait|complete|blocked',
141
+ ' --executor-stopped. This confirms all old executors stopped and effects were',
142
+ ' inspected; put the evidence in <summary>. Pause the resident first.',
143
+ ' A wait outcome rests indefinitely; use wake to supply new evidence.',
144
+ 'Release requires prior pause and confirmation all previous executors stopped.',
145
+ 'An unreachable runner is not proof it stopped. Release never reconciles a pursuit.',
146
+ '',
147
+ 'Pause acknowledges durable admission closure, not completed tool cancellation.',
148
+ 'Interrupted, failed or unfinished steps keep their claim and are never replayed automatically.',
149
+ 'Continuation uses the saved summary and approved learning, not a restored chat transcript.',
150
+ 'Exit: 0 for an operation/clean bounded run, 1 for unresolved or failed work,',
151
+ ' 64 for invalid arguments, 77 for untrusted execution, 78 for invalid run config,',
152
+ ' 130 for cancellation. A clean run does not mean every pursuit is complete.',
153
+ ].join('\n'),
154
+ handler: async ({ ctx: bootstrap, rawArgs }) => {
155
+ if (rawArgs[0] === 'learn' || rawArgs[0] === 'learning')
156
+ return residentLearningCommand({ ctx: bootstrap, rawArgs });
157
+ let flags;
158
+ try {
159
+ flags = parseResidentFlags(rawArgs);
160
+ }
161
+ catch (error) {
162
+ bootstrap.formatter.error({
163
+ message: String(error instanceof Error ? error.message : error),
164
+ });
165
+ return EXIT_USAGE;
166
+ }
167
+ const resolved = resolveWorkingDirectory(flags.run.cwd);
168
+ if ('error' in resolved) {
169
+ bootstrap.formatter.error({ message: resolved.error });
170
+ return EXIT_USAGE;
171
+ }
172
+ let resident = null;
173
+ try {
174
+ resident = await lookupResident(resolved.cwd, flags.agent);
175
+ if (['status', 'inspect'].includes(flags.action) && !resident) {
176
+ bootstrap.formatter.print({
177
+ text: `No resident named ${flags.agent} in this project. Use namzu resident add <objective>.`,
178
+ agent: flags.agent,
179
+ agenda: null,
180
+ });
181
+ return 0;
182
+ }
183
+ if (flags.action === 'add' || flags.action === 'run' || flags.action === 'start') {
184
+ const target = resolveWorkingDirectory(resident?.cwd ?? resolved.cwd);
185
+ if ('error' in target)
186
+ throw new Error(target.error);
187
+ const trust = decideHeadlessTrust({
188
+ cwd: target.cwd,
189
+ trustFlag: flags.run.trust,
190
+ });
191
+ if (!trust.allowed) {
192
+ bootstrap.formatter.error({
193
+ message: trust.message ?? 'Resident directory is not trusted.',
194
+ });
195
+ return EXIT_UNTRUSTED;
196
+ }
197
+ if (resident && trust.cwd !== resident.cwd)
198
+ throw new Error('Resident execution directory no longer resolves to its saved canonical path. Restore the original directory before running this resident.');
199
+ if (flags.action === 'add')
200
+ resident = await createResident(trust.cwd, flags.agent);
201
+ }
202
+ if (!resident)
203
+ throw new Error(`No resident named ${flags.agent}. Add a pursuit first.`);
204
+ let state = await resident.agenda.read();
205
+ if (!state)
206
+ throw new Error('Resident binding exists but its agenda is missing; repeat add to initialize it.');
207
+ let message;
208
+ switch (flags.action) {
209
+ case 'add': {
210
+ const added = await resident.agenda.add(state, flags.run.rest.join(' '));
211
+ message = `Saved ${added.id}.`;
212
+ break;
213
+ }
214
+ case 'status':
215
+ break;
216
+ case 'inspect': {
217
+ const throughRevision = flags.inspectionThroughRevision ?? state.revision;
218
+ if (throughRevision > state.revision)
219
+ throw new Error('Inspection boundary is ahead of saved history.');
220
+ bootstrap.formatter.print(await inspectCliResident(resident, throughRevision, {
221
+ cursor: flags.inspectionCursor,
222
+ maxRevisions: flags.inspectionMaxRevisions,
223
+ }));
224
+ return 0;
225
+ }
226
+ case 'stop': {
227
+ // Bind this stop to the invocation observed before closing admission.
228
+ // A later resume/start must not become the target of an older stop.
229
+ const owner = readRunner(resident);
230
+ await closeAdmission(resident, state);
231
+ const stopped = await stopResidentRunner(resident, { owner });
232
+ state = await readAgenda(resident);
233
+ const text = stopped.status === 'drained'
234
+ ? 'The observed runner drained. Inspect current admission and any retained pursuit claim below.'
235
+ : stopped.status === 'absent'
236
+ ? 'Admission closed. No managed runner is recorded; other executors are not certified stopped.'
237
+ : 'Interruption requested; runner drainage is not confirmed. Inspect status before recovery.';
238
+ bootstrap.formatter.print({
239
+ ...residentStatus(resident, state, text, await residentRunnerStatus(resident)),
240
+ stop: stopped,
241
+ });
242
+ return stopped.status === 'unconfirmed' ? 1 : 0;
243
+ }
244
+ case 'release': {
245
+ if (!state.paused)
246
+ throw new Error('Pause the resident before releasing inspected runner ownership.');
247
+ const owner = readRunner(resident);
248
+ if (!owner || owner.instanceId !== flags.run.rest[0])
249
+ throw new Error('Runner ID does not match current ownership. Inspect status again.');
250
+ if (owner.phase === 'running' &&
251
+ (await queryRunner(owner, 'status')).kind === 'responsive')
252
+ throw new Error('This runner still responds. Use resident stop and wait for drainage before recovery.');
253
+ releaseRunner(resident, owner);
254
+ message =
255
+ 'Inspected runner ownership released. Pursuit claims and admission are unchanged; reconcile interrupted work separately.';
256
+ break;
257
+ }
258
+ case 'pause':
259
+ await closeAdmission(resident, state);
260
+ message = 'Admission closed; interruption requested. Active tools may still be stopping.';
261
+ break;
262
+ case 'resume':
263
+ if (state.pursuits.some((p) => p.state.phase === 'running'))
264
+ throw new Error('Inspect and reconcile unresolved claims before reopening admission.');
265
+ await resident.agenda.setPaused(state, false);
266
+ message = 'Admission reopened. No work started; invoke resident run or start explicitly.';
267
+ break;
268
+ case 'wake': {
269
+ const selected = pursuit(state, flags.run.rest[0]);
270
+ await resident.agenda.wake(selected.id, selected.state, flags.run.rest.slice(1).join(' '), Date.now());
271
+ message = 'New evidence saved; pursuit is due on the next authorized run.';
272
+ break;
273
+ }
274
+ case 'archive':
275
+ await resident.agenda.archive(state, {
276
+ pursuitIds: [pursuit(state, flags.run.rest[0]).id],
277
+ });
278
+ message = 'Terminal pursuit archived; immutable history retained.';
279
+ break;
280
+ case 'reconcile': {
281
+ if (!state.paused)
282
+ throw new Error('Pause the resident before reconciling inspected effects.');
283
+ const selected = pursuit(state, flags.run.rest[0]);
284
+ if (selected.state.phase !== 'running' ||
285
+ selected.state.claimId !== flags.claim ||
286
+ selected.state.revision !== flags.revision)
287
+ throw new Error('Claim or revision does not match the current unresolved pursuit; inspect status again.');
288
+ const summary = flags.run.rest.slice(1).join(' ');
289
+ const decision = flags.outcome === 'wait'
290
+ ? { kind: 'wait', summary, wakeAt: null }
291
+ : { kind: flags.outcome, summary };
292
+ await resident.agenda.execution(selected.id).settle(selected.state, decision, Date.now());
293
+ message = 'Inspection recorded against the exact claim. Resident remains paused.';
294
+ break;
295
+ }
296
+ case 'run':
297
+ case 'start': {
298
+ if (flags.maxSteps === null)
299
+ throw new Error('Resident execution requires --max-steps.');
300
+ const ctx = resolveTrustedProjectContext(bootstrap, resident.cwd);
301
+ const sessions = await openSessions(resident.cwd);
302
+ if (sessions.projectId !== resident.projectId || sessions.tenantId !== resident.tenantId)
303
+ throw new Error('Resident execution directory no longer belongs to its bound project and tenant.');
304
+ const { createResidentSessionStep } = await import('../integrations/resident/session-step.js');
305
+ const verification = flags.verification
306
+ ? await loadResidentVerification(flags.verification, resident.cwd)
307
+ : undefined;
308
+ const step = createResidentSessionStep({
309
+ agenda: resident.agenda,
310
+ ctx,
311
+ cwd: resident.cwd,
312
+ sessions,
313
+ flags: flags.run,
314
+ toolLoading: flags.toolLoading,
315
+ contextProfile: flags.contextProfile,
316
+ learningDisclosure: flags.learningDisclosure,
317
+ verification,
318
+ artifactsRoot: resident.artifactsRoot,
319
+ });
320
+ if (flags.action === 'start') {
321
+ const owner = await startResidentRunner({
322
+ resident,
323
+ ctx,
324
+ flags: flags.run,
325
+ toolLoading: flags.toolLoading,
326
+ contextProfile: flags.contextProfile,
327
+ learningDisclosure: flags.learningDisclosure,
328
+ verification,
329
+ maxSteps: flags.maxSteps,
330
+ maxIdleMs: flags.maxIdleMs,
331
+ });
332
+ state = await readAgenda(resident);
333
+ ctx.formatter.print({
334
+ ...residentStatus(resident, state, 'Background runner started. Use resident status to inspect it and resident stop to drain it.', await residentRunnerStatus(resident)),
335
+ started: owner,
336
+ });
337
+ return 0;
338
+ }
339
+ const existing = readRunner(resident);
340
+ if (existing && ['reserved', 'running'].includes(existing.phase))
341
+ throw new Error('A resident runner already owns this agenda. Inspect status and stop it before another run.');
342
+ const controller = new AbortController();
343
+ const interrupt = () => controller.abort(new Error('Resident foreground invocation interrupted.'));
344
+ process.once('SIGINT', interrupt);
345
+ process.once('SIGTERM', interrupt);
346
+ try {
347
+ const result = state.paused || state.pursuits.some((p) => p.state.phase === 'running')
348
+ ? {
349
+ status: state.paused ? 'paused' : 'unresolved',
350
+ stepsSettled: 0,
351
+ nextWakeAt: null,
352
+ }
353
+ : await runOwnedResident({
354
+ resident,
355
+ owner: reserveRunner(resident, {
356
+ mode: 'foreground',
357
+ maxSteps: flags.maxSteps,
358
+ pauseGeneration: state.pauseGeneration ?? 0,
359
+ }),
360
+ step,
361
+ signal: controller.signal,
362
+ keepAlive: false,
363
+ maxIdleMs: flags.maxIdleMs,
364
+ });
365
+ state = await readAgenda(resident);
366
+ const status = residentStatus(resident, state, undefined, await residentRunnerStatus(resident));
367
+ ctx.formatter.print({
368
+ ...status,
369
+ execution: result,
370
+ text: `${status.text}\n\nRun: ${result.status} · ${result.stepsSettled} step(s) settled`,
371
+ });
372
+ return result.status === 'cancelled'
373
+ ? 130
374
+ : ['unresolved', 'contended'].includes(result.status) ||
375
+ state.pursuits.some((p) => p.state.phase === 'running')
376
+ ? 1
377
+ : 0;
378
+ }
379
+ finally {
380
+ process.removeListener('SIGINT', interrupt);
381
+ process.removeListener('SIGTERM', interrupt);
382
+ }
383
+ }
384
+ }
385
+ state = await readAgenda(resident);
386
+ const runner = await residentRunnerStatus(resident);
387
+ if (flags.action === 'add') {
388
+ message +=
389
+ runner.live?.kind === 'responsive'
390
+ ? ' Due work is available to the current runner within its remaining authorization.'
391
+ : runner.owner && ['running', 'reserved'].includes(runner.owner.phase)
392
+ ? ' Runner ownership is retained; inspect resident status before execution.'
393
+ : ' Continue with namzu resident run --max-steps <n> or resident start --max-steps <n>.';
394
+ }
395
+ bootstrap.formatter.print(residentStatus(resident, state, message, runner));
396
+ return 0;
397
+ }
398
+ catch (error) {
399
+ bootstrap.formatter.error({
400
+ message: error instanceof Error ? error.message : String(error),
401
+ });
402
+ if (resident) {
403
+ try {
404
+ const state = await resident.agenda.read();
405
+ if (state)
406
+ bootstrap.formatter.print(residentStatus(resident, state, undefined, await residentRunnerStatus(resident)));
407
+ }
408
+ catch {
409
+ /* Preserve the original error when state is also unavailable. */
410
+ }
411
+ }
412
+ return error instanceof ConfigLoadError || error instanceof ConfigValueError
413
+ ? EXIT_BAD_CONFIG
414
+ : 1;
415
+ }
416
+ },
417
+ };
418
+ //# sourceMappingURL=resident.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resident.js","sourceRoot":"","sources":["../../src/commands/resident.ts"],"names":[],"mappings":"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"}
@@ -48,9 +48,9 @@ export interface RunFlags {
48
48
  /** --resume <id>: pick up this conversation and no other. */
49
49
  resume: string | null;
50
50
  skills: string[];
51
- /** `--max-iterations <n>`: model calls this run may make before it is stopped. */
51
+ /** `--max-iterations <n>`: main-loop iterations; 0 is unlimited. */
52
52
  maxIterations: number | null;
53
- /** `--token-budget <n>`: total tokens this run may spend before it is stopped. */
53
+ /** `--token-budget <n>`: cumulative token limit; 0 is unlimited. */
54
54
  tokenBudget: number | null;
55
55
  /**
56
56
  * `--wait-for-provider <duration>`: how long the run may spend waiting out
@@ -1 +1 @@
1
- {"version":3,"file":"run-flags.d.ts","sourceRoot":"","sources":["../../src/commands/run-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE/D,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,oCAAoC,CAAA;AAWjG,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iEAAiE;IACjE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,kFAAkF;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAA;IACxB;;;;;;;;;OASG;IACH,KAAK,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAA;IACrB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,kFAAkF;IAClF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAsOlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAS/F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,CAAC,EAC9C,GAAG,EAAE,MAAM,GACT;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAUtE;AAmBD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAuBvE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,GACzC,WAAW,CAiBb"}
1
+ {"version":3,"file":"run-flags.d.ts","sourceRoot":"","sources":["../../src/commands/run-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE/D,OAAO,KAAK,EAAE,WAAW,EAA8B,MAAM,oCAAoC,CAAA;AAWjG,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iEAAiE;IACjE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,kFAAkF;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAA;IACxB;;;;;;;;;OASG;IACH,KAAK,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAA;IACrB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,oEAAoE;IACpE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oEAAoE;IACpE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAsOlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAS/F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,MAAM,EAAE,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,aAAa,CAAC,EAC9C,GAAG,EAAE,MAAM,GACT;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAUtE;AAmBD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAuBvE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,GACzC,WAAW,CAiBb"}
@@ -22,11 +22,11 @@ import { statSync } from 'node:fs';
22
22
  import { resolve } from 'node:path';
23
23
  import { DEFAULT_GATE_MAX_RETRIES, createCommandGate } from '@namzu/sdk';
24
24
  import { durationMs } from './provider-wait.js';
25
- /** A whole number above zero, or a thrown message naming the flag. */
26
- function positiveInteger(value, flag) {
25
+ /** A nonnegative safe integer; zero disables the corresponding run guard. */
26
+ function runLimit(value, flag) {
27
27
  const n = Number(value.trim());
28
- if (!Number.isInteger(n) || n <= 0)
29
- throw new Error(`${flag} takes a whole number above zero, got ${value}`);
28
+ if (!value.trim() || !Number.isSafeInteger(n) || n < 0)
29
+ throw new Error(`${flag} takes a safe whole number at least 0 (unlimited), got ${value}`);
30
30
  return n;
31
31
  }
32
32
  export function parseRunFlags(rawArgs) {
@@ -97,11 +97,11 @@ export function parseRunFlags(rawArgs) {
97
97
  }), idx))
98
98
  continue;
99
99
  if (take(a, 'max-iterations', (v) => {
100
- out.maxIterations = positiveInteger(v, '--max-iterations');
100
+ out.maxIterations = runLimit(v, '--max-iterations');
101
101
  }, idx))
102
102
  continue;
103
103
  if (take(a, 'token-budget', (v) => {
104
- out.tokenBudget = positiveInteger(v, '--token-budget');
104
+ out.tokenBudget = runLimit(v, '--token-budget');
105
105
  }, idx))
106
106
  continue;
107
107
  if (take(a, 'wait-for-provider', (v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"run-flags.js","sourceRoot":"","sources":["../../src/commands/run-flags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-flags.js","sourceRoot":"","sources":["../../src/commands/run-flags.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../src/commands/run-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAiCH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAa5C,eAAO,MAAM,gBAAgB,EAAE,UA8X9B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,UAkD5B,CAAA;AAMD,eAAO,MAAM,iBAAiB,EAAE,UAqC/B,CAAA;AAOD,eAAO,MAAM,oBAAoB,EAAE,UA8ClC,CAAA"}
1
+ {"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../src/commands/run-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAyCH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAa5C,eAAO,MAAM,gBAAgB,EAAE,UA+X9B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,UAiD5B,CAAA;AAMD,eAAO,MAAM,iBAAiB,EAAE,UAqC/B,CAAA;AAOD,eAAO,MAAM,oBAAoB,EAAE,UA8ClC,CAAA"}
@@ -57,10 +57,10 @@
57
57
  * Dropping `--session` is NOT "the caller fixing it": it abandons what was
58
58
  * asked for rather than achieving it.
59
59
  */
60
- import { generateSessionId, jsonLinesSink } from '@namzu/sdk';
60
+ import { asSessionId, generateSessionId, isEntityId, jsonLinesSink, } from '@namzu/sdk';
61
61
  import { resolveTrustedProjectContext } from '../config/trusted-project-context.js';
62
62
  import { EXIT_FAIL, EXIT_OK, EXIT_UNTRUSTED } from '../exit-codes.js';
63
- import { appendMessages, findMappedConversation, loadConversation, openSessions, replaceConversation, resolveConversation, } from '../integrations/sessions/store.js';
63
+ import { appendMessages, findMappedConversation, listRecent, loadConversation, openSessions, replaceConversation, resolveConversation, } from '../integrations/sessions/store.js';
64
64
  import { contextLogging, installCliLogging } from '../logging.js';
65
65
  import { decideHeadlessTrust } from '../permissions/headless-trust.js';
66
66
  import { resolvePermissionMode } from '../permissions/mode.js';
@@ -307,6 +307,7 @@ export const runStreamCommand = {
307
307
  tenantId: cli.tenantId,
308
308
  },
309
309
  stateRoot: cli.root,
310
+ ...(conversationId ? { conversationSessions: cli } : {}),
310
311
  rules: permissions.rules,
311
312
  // The operator's --gate commands, as a standing condition on the
312
313
  // answer. Spread rather than passed as undefined so a run without
@@ -472,10 +473,6 @@ export const historyCommand = {
472
473
  handler: async ({ rawArgs }) => {
473
474
  const flags = parseRunFlags(rawArgs);
474
475
  const key = flags.session;
475
- if (!key) {
476
- process.stdout.write('[]\n');
477
- return 0;
478
- }
479
476
  try {
480
477
  // `--cwd` is in this command's help too, and picks the central Project
481
478
  // the session is read from. Reading the process's own directory
@@ -487,9 +484,12 @@ export const historyCommand = {
487
484
  return 0;
488
485
  }
489
486
  const cli = await openSessions(resolved.cwd);
490
- const map = await import('../integrations/sessions/store.js');
491
- // Resolve WITHOUT creating: only emit history for an existing mapping.
492
- const existing = await findMappedConversation(cli, key);
487
+ // Host keys and CLI conversation UUIDs are distinct entry points. Both
488
+ // must pass the same workspace membership check before reading content.
489
+ const existing = key
490
+ ? ((await findMappedConversation(cli, key)) ??
491
+ (isEntityId(key, 'session') ? asSessionId(key) : null))
492
+ : (await listRecent(cli, 1))[0]?.id;
493
493
  if (!existing) {
494
494
  process.stdout.write('[]\n');
495
495
  return 0;
@@ -499,7 +499,6 @@ export const historyCommand = {
499
499
  .filter((m) => (m.role === 'user' || m.role === 'assistant') && m.content)
500
500
  .map((m) => ({ role: m.role, content: m.content }));
501
501
  process.stdout.write(`${JSON.stringify(out)}\n`);
502
- void map;
503
502
  return 0;
504
503
  }
505
504
  catch {