@namzu/cli 12.1.0 → 14.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 (237) hide show
  1. package/README.md +35 -2
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +119 -60
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/acp.d.ts +24 -8
  6. package/dist/commands/acp.d.ts.map +1 -1
  7. package/dist/commands/acp.js +221 -80
  8. package/dist/commands/acp.js.map +1 -1
  9. package/dist/commands/drain.d.ts.map +1 -1
  10. package/dist/commands/drain.js +45 -9
  11. package/dist/commands/drain.js.map +1 -1
  12. package/dist/commands/login.d.ts +2 -0
  13. package/dist/commands/login.d.ts.map +1 -1
  14. package/dist/commands/login.js +79 -21
  15. package/dist/commands/login.js.map +1 -1
  16. package/dist/commands/prior-messages.d.ts +11 -0
  17. package/dist/commands/prior-messages.d.ts.map +1 -0
  18. package/dist/commands/prior-messages.js +280 -0
  19. package/dist/commands/prior-messages.js.map +1 -0
  20. package/dist/commands/resume.d.ts.map +1 -1
  21. package/dist/commands/resume.js +21 -19
  22. package/dist/commands/resume.js.map +1 -1
  23. package/dist/commands/run-stream.d.ts +5 -3
  24. package/dist/commands/run-stream.d.ts.map +1 -1
  25. package/dist/commands/run-stream.js +66 -62
  26. package/dist/commands/run-stream.js.map +1 -1
  27. package/dist/commands/run.d.ts.map +1 -1
  28. package/dist/commands/run.js +50 -37
  29. package/dist/commands/run.js.map +1 -1
  30. package/dist/config/debug.d.ts +55 -0
  31. package/dist/config/debug.d.ts.map +1 -0
  32. package/dist/config/debug.js +126 -0
  33. package/dist/config/debug.js.map +1 -0
  34. package/dist/config/load.d.ts +88 -4
  35. package/dist/config/load.d.ts.map +1 -1
  36. package/dist/config/load.js +386 -56
  37. package/dist/config/load.js.map +1 -1
  38. package/dist/config/schema.d.ts +87 -5
  39. package/dist/config/schema.d.ts.map +1 -1
  40. package/dist/config/schema.js +5 -5
  41. package/dist/config/schema.js.map +1 -1
  42. package/dist/config/trusted-project-context.d.ts +11 -0
  43. package/dist/config/trusted-project-context.d.ts.map +1 -0
  44. package/dist/config/trusted-project-context.js +28 -0
  45. package/dist/config/trusted-project-context.js.map +1 -0
  46. package/dist/context/project-path.d.ts +3 -0
  47. package/dist/context/project-path.d.ts.map +1 -0
  48. package/dist/context/project-path.js +16 -0
  49. package/dist/context/project-path.js.map +1 -0
  50. package/dist/context/project-tracker.d.ts +30 -0
  51. package/dist/context/project-tracker.d.ts.map +1 -0
  52. package/dist/context/project-tracker.js +217 -0
  53. package/dist/context/project-tracker.js.map +1 -0
  54. package/dist/context/sandbox.d.ts +29 -9
  55. package/dist/context/sandbox.d.ts.map +1 -1
  56. package/dist/context/sandbox.js +8 -0
  57. package/dist/context/sandbox.js.map +1 -1
  58. package/dist/doctor/checks/credentials.d.ts.map +1 -1
  59. package/dist/doctor/checks/credentials.js +7 -1
  60. package/dist/doctor/checks/credentials.js.map +1 -1
  61. package/dist/exit-codes.d.ts +5 -4
  62. package/dist/exit-codes.d.ts.map +1 -1
  63. package/dist/exit-codes.js +5 -4
  64. package/dist/exit-codes.js.map +1 -1
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +2 -2
  68. package/dist/index.js.map +1 -1
  69. package/dist/integrations/clipboard/text.d.ts +43 -0
  70. package/dist/integrations/clipboard/text.d.ts.map +1 -0
  71. package/dist/integrations/clipboard/text.js +43 -0
  72. package/dist/integrations/clipboard/text.js.map +1 -0
  73. package/dist/integrations/mcp/servers.d.ts +9 -0
  74. package/dist/integrations/mcp/servers.d.ts.map +1 -1
  75. package/dist/integrations/mcp/servers.js +11 -4
  76. package/dist/integrations/mcp/servers.js.map +1 -1
  77. package/dist/integrations/notifications/terminal.d.ts +32 -0
  78. package/dist/integrations/notifications/terminal.d.ts.map +1 -0
  79. package/dist/integrations/notifications/terminal.js +46 -0
  80. package/dist/integrations/notifications/terminal.js.map +1 -0
  81. package/dist/integrations/plugins/runtime.d.ts +17 -0
  82. package/dist/integrations/plugins/runtime.d.ts.map +1 -0
  83. package/dist/integrations/plugins/runtime.js +100 -0
  84. package/dist/integrations/plugins/runtime.js.map +1 -0
  85. package/dist/integrations/providers/codex-device-login.d.ts +27 -0
  86. package/dist/integrations/providers/codex-device-login.d.ts.map +1 -0
  87. package/dist/integrations/providers/codex-device-login.js +195 -0
  88. package/dist/integrations/providers/codex-device-login.js.map +1 -0
  89. package/dist/integrations/providers/codex-oauth.d.ts +10 -0
  90. package/dist/integrations/providers/codex-oauth.d.ts.map +1 -0
  91. package/dist/integrations/providers/codex-oauth.js +95 -0
  92. package/dist/integrations/providers/codex-oauth.js.map +1 -0
  93. package/dist/integrations/providers/credential-store.d.ts +40 -4
  94. package/dist/integrations/providers/credential-store.d.ts.map +1 -1
  95. package/dist/integrations/providers/credential-store.js +236 -18
  96. package/dist/integrations/providers/credential-store.js.map +1 -1
  97. package/dist/integrations/providers/discover.d.ts +25 -13
  98. package/dist/integrations/providers/discover.d.ts.map +1 -1
  99. package/dist/integrations/providers/discover.js +98 -44
  100. package/dist/integrations/providers/discover.js.map +1 -1
  101. package/dist/integrations/providers/harness-credentials.d.ts +36 -0
  102. package/dist/integrations/providers/harness-credentials.d.ts.map +1 -0
  103. package/dist/integrations/providers/harness-credentials.js +146 -0
  104. package/dist/integrations/providers/harness-credentials.js.map +1 -0
  105. package/dist/integrations/providers/identity.d.ts +8 -15
  106. package/dist/integrations/providers/identity.d.ts.map +1 -1
  107. package/dist/integrations/providers/identity.js +8 -15
  108. package/dist/integrations/providers/identity.js.map +1 -1
  109. package/dist/integrations/providers/index.d.ts +7 -4
  110. package/dist/integrations/providers/index.d.ts.map +1 -1
  111. package/dist/integrations/providers/index.js +6 -3
  112. package/dist/integrations/providers/index.js.map +1 -1
  113. package/dist/integrations/providers/keychain.d.ts +0 -13
  114. package/dist/integrations/providers/keychain.d.ts.map +1 -1
  115. package/dist/integrations/providers/keychain.js +0 -76
  116. package/dist/integrations/providers/keychain.js.map +1 -1
  117. package/dist/integrations/providers/oauth.d.ts +46 -17
  118. package/dist/integrations/providers/oauth.d.ts.map +1 -1
  119. package/dist/integrations/providers/oauth.js +175 -45
  120. package/dist/integrations/providers/oauth.js.map +1 -1
  121. package/dist/integrations/providers/register.d.ts.map +1 -1
  122. package/dist/integrations/providers/register.js +9 -1
  123. package/dist/integrations/providers/register.js.map +1 -1
  124. package/dist/integrations/providers/registry.d.ts +8 -1
  125. package/dist/integrations/providers/registry.d.ts.map +1 -1
  126. package/dist/integrations/providers/registry.js +29 -0
  127. package/dist/integrations/providers/registry.js.map +1 -1
  128. package/dist/integrations/providers/subscription-login.d.ts +2 -0
  129. package/dist/integrations/providers/subscription-login.d.ts.map +1 -1
  130. package/dist/integrations/providers/subscription-login.js +117 -14
  131. package/dist/integrations/providers/subscription-login.js.map +1 -1
  132. package/dist/integrations/sessions/store.d.ts +111 -1
  133. package/dist/integrations/sessions/store.d.ts.map +1 -1
  134. package/dist/integrations/sessions/store.js +400 -7
  135. package/dist/integrations/sessions/store.js.map +1 -1
  136. package/dist/integrations/sessions/transcript-export.d.ts +25 -0
  137. package/dist/integrations/sessions/transcript-export.d.ts.map +1 -0
  138. package/dist/integrations/sessions/transcript-export.js +441 -0
  139. package/dist/integrations/sessions/transcript-export.js.map +1 -0
  140. package/dist/integrations/sessions/turn-evidence.d.ts +138 -0
  141. package/dist/integrations/sessions/turn-evidence.d.ts.map +1 -0
  142. package/dist/integrations/sessions/turn-evidence.js +506 -0
  143. package/dist/integrations/sessions/turn-evidence.js.map +1 -0
  144. package/dist/integrations/subagents/runtime.d.ts +7 -12
  145. package/dist/integrations/subagents/runtime.d.ts.map +1 -1
  146. package/dist/integrations/subagents/runtime.js +19 -10
  147. package/dist/integrations/subagents/runtime.js.map +1 -1
  148. package/dist/integrations/trust/store.d.ts.map +1 -1
  149. package/dist/integrations/trust/store.js +27 -13
  150. package/dist/integrations/trust/store.js.map +1 -1
  151. package/dist/permissions/canonical-project.d.ts +9 -0
  152. package/dist/permissions/canonical-project.d.ts.map +1 -0
  153. package/dist/permissions/canonical-project.js +13 -0
  154. package/dist/permissions/canonical-project.js.map +1 -0
  155. package/dist/permissions/checks.d.ts +65 -0
  156. package/dist/permissions/checks.d.ts.map +1 -0
  157. package/dist/permissions/checks.js +122 -0
  158. package/dist/permissions/checks.js.map +1 -0
  159. package/dist/permissions/headless-trust.d.ts +9 -5
  160. package/dist/permissions/headless-trust.d.ts.map +1 -1
  161. package/dist/permissions/headless-trust.js +18 -4
  162. package/dist/permissions/headless-trust.js.map +1 -1
  163. package/dist/permissions/rules.d.ts +16 -7
  164. package/dist/permissions/rules.d.ts.map +1 -1
  165. package/dist/permissions/rules.js +78 -13
  166. package/dist/permissions/rules.js.map +1 -1
  167. package/dist/tui/App.d.ts +5 -2
  168. package/dist/tui/App.d.ts.map +1 -1
  169. package/dist/tui/App.js +1621 -196
  170. package/dist/tui/App.js.map +1 -1
  171. package/dist/tui/Composer.d.ts +14 -3
  172. package/dist/tui/Composer.d.ts.map +1 -1
  173. package/dist/tui/Composer.js +53 -15
  174. package/dist/tui/Composer.js.map +1 -1
  175. package/dist/tui/EditPromptPicker.d.ts +8 -0
  176. package/dist/tui/EditPromptPicker.d.ts.map +1 -0
  177. package/dist/tui/EditPromptPicker.js +18 -0
  178. package/dist/tui/EditPromptPicker.js.map +1 -0
  179. package/dist/tui/LiveActivity.d.ts.map +1 -1
  180. package/dist/tui/LiveActivity.js +2 -1
  181. package/dist/tui/LiveActivity.js.map +1 -1
  182. package/dist/tui/Markdown.d.ts.map +1 -1
  183. package/dist/tui/Markdown.js +2 -1
  184. package/dist/tui/Markdown.js.map +1 -1
  185. package/dist/tui/PermissionOverlay.d.ts.map +1 -1
  186. package/dist/tui/PermissionOverlay.js +7 -1
  187. package/dist/tui/PermissionOverlay.js.map +1 -1
  188. package/dist/tui/Picker.d.ts +8 -6
  189. package/dist/tui/Picker.d.ts.map +1 -1
  190. package/dist/tui/Picker.js +145 -18
  191. package/dist/tui/Picker.js.map +1 -1
  192. package/dist/tui/ResumePicker.d.ts.map +1 -1
  193. package/dist/tui/ResumePicker.js +1 -1
  194. package/dist/tui/ResumePicker.js.map +1 -1
  195. package/dist/tui/Transcript.d.ts +4 -2
  196. package/dist/tui/Transcript.d.ts.map +1 -1
  197. package/dist/tui/Transcript.js +31 -5
  198. package/dist/tui/Transcript.js.map +1 -1
  199. package/dist/tui/agent.d.ts +123 -19
  200. package/dist/tui/agent.d.ts.map +1 -1
  201. package/dist/tui/agent.js +757 -144
  202. package/dist/tui/agent.js.map +1 -1
  203. package/dist/tui/compact-transcript.d.ts +24 -0
  204. package/dist/tui/compact-transcript.d.ts.map +1 -0
  205. package/dist/tui/compact-transcript.js +46 -0
  206. package/dist/tui/compact-transcript.js.map +1 -0
  207. package/dist/tui/conversation-history.d.ts +33 -0
  208. package/dist/tui/conversation-history.d.ts.map +1 -0
  209. package/dist/tui/conversation-history.js +42 -0
  210. package/dist/tui/conversation-history.js.map +1 -0
  211. package/dist/tui/edit-prompts.d.ts +23 -0
  212. package/dist/tui/edit-prompts.d.ts.map +1 -0
  213. package/dist/tui/edit-prompts.js +35 -0
  214. package/dist/tui/edit-prompts.js.map +1 -0
  215. package/dist/tui/live-window.d.ts +3 -1
  216. package/dist/tui/live-window.d.ts.map +1 -1
  217. package/dist/tui/live-window.js +20 -8
  218. package/dist/tui/live-window.js.map +1 -1
  219. package/dist/tui/login-prompt.d.ts +5 -0
  220. package/dist/tui/login-prompt.d.ts.map +1 -1
  221. package/dist/tui/login-prompt.js +14 -0
  222. package/dist/tui/login-prompt.js.map +1 -1
  223. package/dist/tui/slashCommands.d.ts +178 -9
  224. package/dist/tui/slashCommands.d.ts.map +1 -1
  225. package/dist/tui/slashCommands.js +340 -16
  226. package/dist/tui/slashCommands.js.map +1 -1
  227. package/dist/tui/terminal-display.d.ts +12 -0
  228. package/dist/tui/terminal-display.d.ts.map +1 -0
  229. package/dist/tui/terminal-display.js +65 -0
  230. package/dist/tui/terminal-display.js.map +1 -0
  231. package/dist/tui/types.d.ts +14 -2
  232. package/dist/tui/types.d.ts.map +1 -1
  233. package/dist/tui/workspace-diff.d.ts +40 -0
  234. package/dist/tui/workspace-diff.d.ts.map +1 -0
  235. package/dist/tui/workspace-diff.js +101 -0
  236. package/dist/tui/workspace-diff.js.map +1 -0
  237. package/package.json +8 -8
@@ -33,27 +33,30 @@
33
33
  */
34
34
  import { createInterface } from 'node:readline';
35
35
  import { EXIT_FAIL, EXIT_OK, EXIT_USAGE } from '../exit-codes.js';
36
- import { beginSubscriptionLogin, clearStoredSubscriptionCredential, credentialsPath, readStoredSubscriptionCredential, } from '../integrations/providers/index.js';
37
- import { describeLoginOutcome, describeLoginStart, describeLogout } from '../tui/login-prompt.js';
36
+ import { beginCodexDeviceLogin, beginSubscriptionLogin, clearAllStoredCredentials, credentialsPath, readStoredCodexCredential, readStoredSubscriptionCredential, } from '../integrations/providers/index.js';
37
+ import { describeCodexDeviceLoginStart, describeLoginOutcome, describeLoginStart, describeLogout, } from '../tui/login-prompt.js';
38
38
  import { openInBrowser } from '../tui/open-browser.js';
39
- const LOGIN_HELP = `Usage: namzu login [options]
40
-
41
- Sign in with a provider subscription and store the credential on this machine.
42
-
43
- Options:
44
- --no-browser Do not try to launch a browser; just print the address.
45
- --timeout <seconds> Give up waiting after this long (default: 300).
46
- -h, --help Show this help.
47
-
48
- namzu prints an address to open. Finish the sign-in in a browser and namzu
49
- picks it up automatically; if your browser is on another machine, paste the
50
- address it lands on into this terminal and press enter.
51
-
52
- The credential is written to ~/.namzu/credentials.json, readable only by your
53
- account. Run 'namzu logout' to remove it.`;
39
+ const LOGIN_HELP = [
40
+ 'Usage: namzu login <claude|codex> [options]',
41
+ '',
42
+ 'Sign in with a provider subscription and store the credential on this machine.',
43
+ '',
44
+ 'Options:',
45
+ ' --no-browser Do not try to launch a browser; just print the address.',
46
+ ' --timeout <seconds> Give up waiting after this long (default: 300).',
47
+ ' -h, --help Show this help.',
48
+ '',
49
+ 'Claude sign-in opens a browser callback; on a remote machine, paste the final',
50
+ 'callback address into this terminal. Codex sign-in prints a device code and',
51
+ 'polls while you approve it in the browser.',
52
+ '',
53
+ 'The credential is written to ~/.namzu/credentials.json, readable only by your',
54
+ "account. Run 'namzu logout' to remove it.",
55
+ ].join('\n');
54
56
  const DEFAULT_TIMEOUT_SECONDS = 300;
55
57
  export function parseLoginFlags(argv) {
56
58
  let noBrowser = false;
59
+ let provider;
57
60
  let timeoutMs = DEFAULT_TIMEOUT_SECONDS * 1_000;
58
61
  const unknown = [];
59
62
  for (let i = 0; i < argv.length; i++) {
@@ -76,10 +79,24 @@ export function parseLoginFlags(argv) {
76
79
  timeoutMs = seconds * 1_000;
77
80
  continue;
78
81
  }
82
+ if (arg === 'claude' || arg === 'anthropic') {
83
+ if (provider)
84
+ unknown.push(arg);
85
+ else
86
+ provider = 'anthropic';
87
+ continue;
88
+ }
89
+ if (arg === 'codex' || arg === 'chatgpt') {
90
+ if (provider)
91
+ unknown.push(arg);
92
+ else
93
+ provider = 'codex';
94
+ continue;
95
+ }
79
96
  if (arg !== undefined)
80
97
  unknown.push(arg);
81
98
  }
82
- return { noBrowser, timeoutMs, unknown };
99
+ return { provider, noBrowser, timeoutMs, unknown };
83
100
  }
84
101
  /**
85
102
  * Resolve with the first NON-BLANK line standard input offers, or never.
@@ -129,6 +146,44 @@ export const loginCommand = {
129
146
  });
130
147
  return EXIT_USAGE;
131
148
  }
149
+ if (!flags.provider) {
150
+ ctx.formatter.print({
151
+ text: `Choose which subscription Namzu should own:\n namzu login claude\n namzu login codex\n\nAPI keys remain optional alternatives.\n\n${LOGIN_HELP}`,
152
+ });
153
+ return EXIT_USAGE;
154
+ }
155
+ if (flags.provider === 'codex') {
156
+ let login;
157
+ try {
158
+ login = await beginCodexDeviceLogin();
159
+ }
160
+ catch (error) {
161
+ ctx.formatter.print({
162
+ text: `Could not start Codex sign-in: ${error instanceof Error ? error.message : String(error)}`,
163
+ });
164
+ return EXIT_FAIL;
165
+ }
166
+ ctx.formatter.print({
167
+ text: describeCodexDeviceLoginStart({
168
+ url: login.url,
169
+ userCode: login.userCode,
170
+ browserOpened: flags.noBrowser ? false : openInBrowser(login.url),
171
+ }),
172
+ });
173
+ const timeout = new Promise((resolve) => setTimeout(() => resolve({
174
+ ok: false,
175
+ reason: 'Timed out waiting for Codex sign-in. Nothing was stored.',
176
+ }), flags.timeoutMs).unref());
177
+ const outcome = await Promise.race([login.waitForCompletion(), timeout]);
178
+ login.cancel();
179
+ ctx.formatter.print({
180
+ text: describeLoginOutcome(outcome, {
181
+ retry: 'namzu login codex',
182
+ remove: 'namzu logout',
183
+ }),
184
+ });
185
+ return outcome.ok ? EXIT_OK : EXIT_FAIL;
186
+ }
132
187
  let login;
133
188
  try {
134
189
  login = await beginSubscriptionLogin();
@@ -158,7 +213,10 @@ export const loginCommand = {
158
213
  stop.abort();
159
214
  login.cancel();
160
215
  ctx.formatter.print({
161
- text: describeLoginOutcome(outcome, { retry: 'namzu login', remove: 'namzu logout' }),
216
+ text: describeLoginOutcome(outcome, {
217
+ retry: 'namzu login claude',
218
+ remove: 'namzu logout',
219
+ }),
162
220
  });
163
221
  return outcome.ok ? EXIT_OK : EXIT_FAIL;
164
222
  },
@@ -168,9 +226,9 @@ export const logoutCommand = {
168
226
  description: 'Remove the subscription credential namzu stored on this machine.',
169
227
  handler: async ({ ctx }) => {
170
228
  const path = credentialsPath();
171
- const had = readStoredSubscriptionCredential() !== null;
229
+ const had = readStoredSubscriptionCredential() !== null || readStoredCodexCredential() !== null;
172
230
  try {
173
- clearStoredSubscriptionCredential();
231
+ clearAllStoredCredentials();
174
232
  }
175
233
  catch (err) {
176
234
  ctx.formatter.print({
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAGN,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,gCAAgC,GAChC,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACN,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,GACd,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,MAAM,UAAU,GAAG;IAClB,6CAA6C;IAC7C,EAAE;IACF,gFAAgF;IAChF,EAAE;IACF,UAAU;IACV,+EAA+E;IAC/E,uEAAuE;IACvE,uCAAuC;IACvC,EAAE;IACF,+EAA+E;IAC/E,6EAA6E;IAC7E,4CAA4C;IAC5C,EAAE;IACF,+EAA+E;IAC/E,2CAA2C;CAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,uBAAuB,GAAG,GAAG,CAAA;AASnC,MAAM,UAAU,eAAe,CAAC,IAAuB;IACtD,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,QAA4C,CAAA;IAChD,IAAI,SAAS,GAAG,uBAAuB,GAAG,KAAK,CAAA;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAA;YAChB,SAAQ;QACT,CAAC;QACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACvB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7B,mEAAmE;YACnE,8DAA8D;YAC9D,gEAAgE;YAChE,oDAAoD;YACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC/C,SAAQ;YACT,CAAC;YACD,SAAS,GAAG,OAAO,GAAG,KAAK,CAAA;YAC3B,SAAQ;QACT,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC7C,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;gBAC1B,QAAQ,GAAG,WAAW,CAAA;YAC3B,SAAQ;QACT,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;gBAC1B,QAAQ,GAAG,OAAO,CAAA;YACvB,SAAQ;QACT,CAAC;QACD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AACnD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,cAAc,CAAC,MAAmB;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAM;QACnC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,GAAG,EAAE;YACjB,EAAE,CAAC,KAAK,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YACpC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACzC,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,OAAO,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAe;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,gEAAgE;IAC7E,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,6BAA6B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,UAAU,EAAE;aAC9E,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,uIAAuI,UAAU,EAAE;aACzJ,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,KAAwD,CAAA;YAC5D,IAAI,CAAC;gBACJ,KAAK,GAAG,MAAM,qBAAqB,EAAE,CAAA;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;oBACnB,IAAI,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAChG,CAAC,CAAA;gBACF,OAAO,SAAS,CAAA;YACjB,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,6BAA6B,CAAC;oBACnC,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;iBACjE,CAAC;aACF,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,EAAE,CACrD,UAAU,CACT,GAAG,EAAE,CACJ,OAAO,CAAC;gBACP,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,0DAA0D;aAClE,CAAC,EACH,KAAK,CAAC,SAAS,CACf,CAAC,KAAK,EAAE,CACT,CAAA;YACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;YACxE,KAAK,CAAC,MAAM,EAAE,CAAA;YACd,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE;oBACnC,KAAK,EAAE,mBAAmB;oBAC1B,MAAM,EAAE,cAAc;iBACtB,CAAC;aACF,CAAC,CAAA;YACF,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;QACxC,CAAC;QAED,IAAI,KAAyD,CAAA;QAC7D,IAAI,CAAC;YACJ,KAAK,GAAG,MAAM,sBAAsB,EAAE,CAAA;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACtF,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE,kBAAkB,CAAC;gBACxB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;gBACjE,cAAc,EAAE,+BAA+B;aAC/C,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;QAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,EAAE,CACrD,UAAU,CACT,GAAG,EAAE,CACJ,OAAO,CAAC;YACP,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,kEAAkE;SAC1E,CAAC,EACH,KAAK,CAAC,SAAS,CACf,CAAC,KAAK,EAAE,CACT,CAAA;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7F,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;QAExC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9F,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,KAAK,CAAC,MAAM,EAAE,CAAA;QAEd,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YACnB,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE;gBACnC,KAAK,EAAE,oBAAoB;gBAC3B,MAAM,EAAE,cAAc;aACtB,CAAC;SACF,CAAC,CAAA;QACF,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;IACxC,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAe;IACxC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kEAAkE;IAC/E,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAA;QAC9B,MAAM,GAAG,GAAG,gCAAgC,EAAE,KAAK,IAAI,IAAI,yBAAyB,EAAE,KAAK,IAAI,CAAA;QAC/F,IAAI,CAAC;YACJ,yBAAyB,EAAE,CAAA;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,oBAAoB,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACrF,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QACjB,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACxD,OAAO,OAAO,CAAA;IACf,CAAC;CACD,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { type Message } from '@namzu/sdk';
2
+ export type PriorMessagesResult = {
3
+ readonly ok: true;
4
+ readonly messages: readonly Message[];
5
+ } | {
6
+ readonly ok: false;
7
+ readonly error: string;
8
+ };
9
+ /** Parse the stateless stdin contract without dropping or inventing message fields. */
10
+ export declare function parsePriorMessages(raw: string): PriorMessagesResult;
11
+ //# sourceMappingURL=prior-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prior-messages.d.ts","sourceRoot":"","sources":["../../src/commands/prior-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,OAAO,EAIZ,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,mBAAmB,GAC5B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAuTjD,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAoBnE"}
@@ -0,0 +1,280 @@
1
+ import { isCompactionMessage, isProjectInstructionMessageSource, isWorkingMemoryMessage, } from '@namzu/sdk';
2
+ const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
3
+ const isFiniteNumber = (value) => typeof value === 'number' && Number.isFinite(value);
4
+ function optional(value, key, path, accepts, expected) {
5
+ const candidate = value[key];
6
+ return candidate === undefined || accepts(candidate) ? null : `${path}.${key} must be ${expected}`;
7
+ }
8
+ function stringField(value, key, path) {
9
+ return typeof value[key] === 'string' ? null : `${path}.${key} must be a string`;
10
+ }
11
+ function validateCommon(value, path) {
12
+ return (optional(value, 'timestamp', path, isFiniteNumber, 'a finite number') ??
13
+ optional(value, 'cacheHint', path, (candidate) => candidate === 'cache' || candidate === 'ephemeral' || candidate === 'none', '"cache", "ephemeral", or "none"') ??
14
+ optional(value, 'retain', path, (candidate) => typeof candidate === 'boolean', 'a boolean'));
15
+ }
16
+ function validateAttachment(value, path) {
17
+ if (!isObject(value))
18
+ return `${path} must be an attachment object`;
19
+ const type = value.type;
20
+ if (type === 'stored') {
21
+ return `${path} is a stored attachment reference, but stateless run-stream has no attachment store; send inline data instead`;
22
+ }
23
+ if (type === 'document') {
24
+ return (stringField(value, 'data', path) ??
25
+ stringField(value, 'mediaType', path) ??
26
+ optional(value, 'name', path, (candidate) => typeof candidate === 'string', 'a string') ??
27
+ optional(value, 'citations', path, (candidate) => typeof candidate === 'boolean', 'a boolean'));
28
+ }
29
+ if (type !== undefined && type !== 'image') {
30
+ return `${path}.type must be "image", "document", "stored", or absent`;
31
+ }
32
+ return stringField(value, 'data', path) ?? stringField(value, 'mediaType', path);
33
+ }
34
+ function validateAttachments(value, path) {
35
+ if (!Array.isArray(value))
36
+ return `${path} must be an array`;
37
+ for (let index = 0; index < value.length; index++) {
38
+ const error = validateAttachment(value[index], `${path}[${index}]`);
39
+ if (error)
40
+ return error;
41
+ }
42
+ return null;
43
+ }
44
+ function validateUserSource(value, path) {
45
+ if (!isObject(value))
46
+ return `${path} must be a source object`;
47
+ if (value.type === 'project-instructions') {
48
+ return isProjectInstructionMessageSource(value)
49
+ ? null
50
+ : `${path} must contain unique canonical project-relative AGENTS.md paths`;
51
+ }
52
+ if (value.type !== 'goal-round') {
53
+ return `${path}.type must be "goal-round" or "project-instructions"`;
54
+ }
55
+ return (stringField(value, 'goalId', path) ??
56
+ stringField(value, 'objective', path) ??
57
+ (isFiniteNumber(value.goalRevision) ? null : `${path}.goalRevision must be a finite number`) ??
58
+ (isFiniteNumber(value.round) ? null : `${path}.round must be a finite number`) ??
59
+ (isFiniteNumber(value.maxGoalRounds) ? null : `${path}.maxGoalRounds must be a finite number`));
60
+ }
61
+ function validateAssistantSource(value, path) {
62
+ if (!isObject(value))
63
+ return `${path} must be a source object`;
64
+ if (value.type !== 'model')
65
+ return `${path}.type must be "model"`;
66
+ return (stringField(value, 'providerId', path) ??
67
+ stringField(value, 'model', path) ??
68
+ (Number.isSafeInteger(value.chainIndex) && value.chainIndex >= 0
69
+ ? null
70
+ : `${path}.chainIndex must be a non-negative safe integer`));
71
+ }
72
+ function validateToolCall(value, path) {
73
+ if (!isObject(value))
74
+ return `${path} must be a tool-call object`;
75
+ const fn = value.function;
76
+ if (!isObject(fn))
77
+ return `${path}.function must be an object`;
78
+ const metadata = value.metadata;
79
+ return (stringField(value, 'id', path) ??
80
+ (value.type === 'function' ? null : `${path}.type must be "function"`) ??
81
+ stringField(fn, 'name', `${path}.function`) ??
82
+ stringField(fn, 'arguments', `${path}.function`) ??
83
+ (metadata === undefined
84
+ ? null
85
+ : !isObject(metadata)
86
+ ? `${path}.metadata must be an object`
87
+ : (optional(metadata, 'inputTruncated', `${path}.metadata`, (candidate) => typeof candidate === 'boolean', 'a boolean') ??
88
+ optional(metadata, 'partialArguments', `${path}.metadata`, (candidate) => typeof candidate === 'string', 'a string'))));
89
+ }
90
+ function validateReasoning(value, path) {
91
+ if (!isObject(value))
92
+ return `${path} must be a reasoning object`;
93
+ return ((value.type === 'thinking' || value.type === 'redacted_thinking'
94
+ ? null
95
+ : `${path}.type must be "thinking" or "redacted_thinking"`) ??
96
+ optional(value, 'text', path, (candidate) => typeof candidate === 'string', 'a string') ??
97
+ optional(value, 'signature', path, (candidate) => typeof candidate === 'string', 'a string') ??
98
+ optional(value, 'encrypted', path, (candidate) => typeof candidate === 'string', 'a string'));
99
+ }
100
+ function validateCitation(value, path) {
101
+ if (!isObject(value))
102
+ return `${path} must be a citation object`;
103
+ const location = value.location;
104
+ if (!isObject(location))
105
+ return `${path}.location must be an object`;
106
+ return (stringField(value, 'citedText', path) ??
107
+ (isFiniteNumber(value.documentIndex)
108
+ ? null
109
+ : `${path}.documentIndex must be a finite number`) ??
110
+ optional(value, 'documentTitle', path, (candidate) => typeof candidate === 'string', 'a string') ??
111
+ (location.kind === 'page' || location.kind === 'char' || location.kind === 'block'
112
+ ? null
113
+ : `${path}.location.kind must be "page", "char", or "block"`) ??
114
+ (isFiniteNumber(location.start) ? null : `${path}.location.start must be a finite number`) ??
115
+ (isFiniteNumber(location.end) ? null : `${path}.location.end must be a finite number`));
116
+ }
117
+ function validateToolResultBlock(value, path) {
118
+ if (!isObject(value))
119
+ return `${path} must be a tool-result block object`;
120
+ if (value.type === 'text')
121
+ return stringField(value, 'text', path);
122
+ if (value.type === 'image') {
123
+ return stringField(value, 'data', path) ?? stringField(value, 'mediaType', path);
124
+ }
125
+ if (value.type === 'document')
126
+ return validateAttachment(value, path);
127
+ return `${path}.type must be "text", "image", or "document"`;
128
+ }
129
+ function validateMessage(value, index) {
130
+ const path = `messages[${index}]`;
131
+ if (!isObject(value))
132
+ return `${path} must be an object`;
133
+ const common = validateCommon(value, path);
134
+ if (common)
135
+ return common;
136
+ if (value.role === 'system') {
137
+ if (typeof value.content !== 'string')
138
+ return `${path}.content must be a string`;
139
+ return isCompactionMessage(value.content) || isWorkingMemoryMessage(value.content)
140
+ ? null
141
+ : `${path} is an arbitrary system prompt; stateless history accepts only compacted or working-memory conversation state`;
142
+ }
143
+ if (value.role === 'user') {
144
+ if (typeof value.content !== 'string')
145
+ return `${path}.content must be a string`;
146
+ return ((value.attachments === undefined
147
+ ? null
148
+ : validateAttachments(value.attachments, `${path}.attachments`)) ??
149
+ (value.source === undefined ? null : validateUserSource(value.source, `${path}.source`)));
150
+ }
151
+ if (value.role === 'assistant') {
152
+ if (typeof value.content !== 'string' && value.content !== null) {
153
+ return `${path}.content must be a string or null`;
154
+ }
155
+ if (value.toolCalls !== undefined) {
156
+ if (!Array.isArray(value.toolCalls))
157
+ return `${path}.toolCalls must be an array`;
158
+ for (let callIndex = 0; callIndex < value.toolCalls.length; callIndex++) {
159
+ const error = validateToolCall(value.toolCalls[callIndex], `${path}.toolCalls[${callIndex}]`);
160
+ if (error)
161
+ return error;
162
+ }
163
+ }
164
+ if (value.reasoning !== undefined) {
165
+ if (!Array.isArray(value.reasoning))
166
+ return `${path}.reasoning must be an array`;
167
+ for (let reasoningIndex = 0; reasoningIndex < value.reasoning.length; reasoningIndex++) {
168
+ const error = validateReasoning(value.reasoning[reasoningIndex], `${path}.reasoning[${reasoningIndex}]`);
169
+ if (error)
170
+ return error;
171
+ }
172
+ }
173
+ if (value.citations !== undefined) {
174
+ if (!Array.isArray(value.citations))
175
+ return `${path}.citations must be an array`;
176
+ for (let citationIndex = 0; citationIndex < value.citations.length; citationIndex++) {
177
+ const error = validateCitation(value.citations[citationIndex], `${path}.citations[${citationIndex}]`);
178
+ if (error)
179
+ return error;
180
+ }
181
+ }
182
+ return value.source === undefined
183
+ ? null
184
+ : validateAssistantSource(value.source, `${path}.source`);
185
+ }
186
+ if (value.role === 'tool') {
187
+ if (typeof value.content !== 'string') {
188
+ if (!Array.isArray(value.content)) {
189
+ return `${path}.content must be a string or tool-result block array`;
190
+ }
191
+ for (let blockIndex = 0; blockIndex < value.content.length; blockIndex++) {
192
+ const error = validateToolResultBlock(value.content[blockIndex], `${path}.content[${blockIndex}]`);
193
+ if (error)
194
+ return error;
195
+ }
196
+ }
197
+ return (stringField(value, 'toolCallId', path) ??
198
+ optional(value, 'isError', path, (candidate) => typeof candidate === 'boolean', 'a boolean'));
199
+ }
200
+ return `${path}.role must be "system", "user", "assistant", or "tool"`;
201
+ }
202
+ function validateSequence(messages) {
203
+ const seenCallIds = new Set();
204
+ let pending = null;
205
+ let sawConversation = false;
206
+ for (let index = 0; index < messages.length; index++) {
207
+ const message = messages[index];
208
+ if (!message)
209
+ continue;
210
+ if (pending) {
211
+ if (message.role !== 'tool') {
212
+ return `messages[${index}] cannot appear before every tool call from messages[${pending.openedAt}] has a result`;
213
+ }
214
+ if (!pending.ids.has(message.toolCallId)) {
215
+ return `messages[${index}].toolCallId does not match an unanswered call from messages[${pending.openedAt}]`;
216
+ }
217
+ pending.ids.delete(message.toolCallId);
218
+ if (pending.ids.size === 0)
219
+ pending = null;
220
+ continue;
221
+ }
222
+ if (message.role === 'system') {
223
+ if (sawConversation)
224
+ return `messages[${index}] is a system message after conversation began`;
225
+ continue;
226
+ }
227
+ if (!sawConversation) {
228
+ sawConversation = true;
229
+ if (message.role !== 'user') {
230
+ return `messages[${index}] must be a user message at the start of conversation history`;
231
+ }
232
+ }
233
+ if (message.role === 'tool')
234
+ return `messages[${index}] is a tool result with no pending call`;
235
+ if (message.role !== 'assistant' || !message.toolCalls || message.toolCalls.length === 0) {
236
+ continue;
237
+ }
238
+ const ids = new Set();
239
+ for (let callIndex = 0; callIndex < message.toolCalls.length; callIndex++) {
240
+ const id = message.toolCalls[callIndex]?.id;
241
+ if (!id)
242
+ continue;
243
+ if (seenCallIds.has(id) || ids.has(id)) {
244
+ return `messages[${index}].toolCalls[${callIndex}].id duplicates tool call id "${id}"`;
245
+ }
246
+ ids.add(id);
247
+ seenCallIds.add(id);
248
+ }
249
+ pending = { openedAt: index, ids };
250
+ }
251
+ if (pending) {
252
+ return `messages[${pending.openedAt}] has tool calls without immediate results for: ${[...pending.ids].join(', ')}`;
253
+ }
254
+ return null;
255
+ }
256
+ /** Parse the stateless stdin contract without dropping or inventing message fields. */
257
+ export function parsePriorMessages(raw) {
258
+ const trimmed = raw.trim();
259
+ if (!trimmed)
260
+ return { ok: true, messages: [] };
261
+ let parsed;
262
+ try {
263
+ parsed = JSON.parse(trimmed);
264
+ }
265
+ catch {
266
+ return { ok: false, error: 'stdin history is not valid JSON' };
267
+ }
268
+ if (!Array.isArray(parsed)) {
269
+ return { ok: false, error: 'stdin history must be a JSON Message[] array' };
270
+ }
271
+ for (let index = 0; index < parsed.length; index++) {
272
+ const error = validateMessage(parsed[index], index);
273
+ if (error)
274
+ return { ok: false, error };
275
+ }
276
+ const messages = parsed;
277
+ const sequenceError = validateSequence(messages);
278
+ return sequenceError ? { ok: false, error: sequenceError } : { ok: true, messages };
279
+ }
280
+ //# sourceMappingURL=prior-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prior-messages.js","sourceRoot":"","sources":["../../src/commands/prior-messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EACN,KAAK,WAAW,EAIhB,MAAM,mCAAmC,CAAA;AAE1C,MAAM,WAAW,aAAa;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,MAAM,aAAa,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,aAAa,CAAC,CA6CxB"}
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EACN,KAAK,WAAW,EAIhB,MAAM,mCAAmC,CAAA;AAE1C,MAAM,WAAW,aAAa;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,MAAM,aAAa,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAClC,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC,aAAa,CAAC,CA4CxB"}
@@ -31,7 +31,7 @@
31
31
  * If that is what you want, run the command with no flag. The absence of a
32
32
  * thing must not be spellable as a silent widening of it.
33
33
  */
34
- import { listRecent, loadConversation, } from '../integrations/sessions/store.js';
34
+ import { listRecent, loadResumableConversation, } from '../integrations/sessions/store.js';
35
35
  /**
36
36
  * Resolve what a `--continue` / `--resume` asked for.
37
37
  *
@@ -54,8 +54,17 @@ export async function resolveResume(sessions, request, cwd) {
54
54
  message: `no conversation store in ${cwd} — it could not be opened, so there is nothing to resume`,
55
55
  };
56
56
  }
57
- const recent = await listRecent(sessions, 50);
58
57
  if (request.continueLast) {
58
+ let recent;
59
+ try {
60
+ recent = await listRecent(sessions, 50);
61
+ }
62
+ catch (err) {
63
+ return {
64
+ kind: 'error',
65
+ message: `conversations in ${cwd} cannot be resumed: ${err instanceof Error ? err.message : String(err)}`,
66
+ };
67
+ }
59
68
  const latest = recent[0];
60
69
  if (!latest) {
61
70
  // Its own sentence, because the cause is different from a bad id and
@@ -66,25 +75,18 @@ export async function resolveResume(sessions, request, cwd) {
66
75
  message: `no previous conversation in ${cwd} — run without --continue to start one, or pass --cwd if you meant a different directory`,
67
76
  };
68
77
  }
69
- return await load(sessions, latest);
78
+ return await load(sessions, latest.id, cwd);
70
79
  }
71
80
  const wanted = request.sessionId;
72
- const match = recent.find((c) => c.id === wanted);
73
- if (!match) {
74
- const known = recent.length;
75
- return {
76
- kind: 'error',
77
- message: known === 0
78
- ? `no conversation "${wanted}" in ${cwd}, and no others either — pass --cwd if you meant a different directory`
79
- : `no conversation "${wanted}" in ${cwd}. ${known} other${known === 1 ? '' : 's'} here; \`namzu history\` lists them`,
80
- };
81
- }
82
- return await load(sessions, match);
81
+ // An exact id is not a request for a row in the recent picker. The previous
82
+ // implementation searched a 50-row list, so the 51st valid conversation was
83
+ // reported missing even though its durable record was intact.
84
+ return await load(sessions, wanted, cwd);
83
85
  }
84
- async function load(sessions, conversation) {
86
+ async function load(sessions, sessionId, cwd) {
85
87
  let messages;
86
88
  try {
87
- messages = await loadConversation(sessions, conversation.id);
89
+ messages = await loadResumableConversation(sessions, sessionId);
88
90
  }
89
91
  catch (err) {
90
92
  // Reading the transcript failed after the conversation was found. NOT
@@ -93,15 +95,15 @@ async function load(sessions, conversation) {
93
95
  // session that had been resumed.
94
96
  return {
95
97
  kind: 'error',
96
- message: `conversation "${conversation.id}" could not be read: ${err instanceof Error ? err.message : String(err)}`,
98
+ message: `conversation "${sessionId}" could not be resumed in ${cwd}: ${err instanceof Error ? err.message : String(err)}`,
97
99
  };
98
100
  }
99
101
  if (messages.length === 0) {
100
102
  return {
101
103
  kind: 'error',
102
- message: `conversation "${conversation.id}" has no messages to resume — its transcript is empty`,
104
+ message: `conversation "${sessionId}" has no messages to resume — its transcript is empty`,
103
105
  };
104
106
  }
105
- return { kind: 'resumed', sessionId: conversation.id, messages };
107
+ return { kind: 'resumed', sessionId, messages };
106
108
  }
107
109
  //# sourceMappingURL=resume.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/commands/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,EAGN,UAAU,EACV,yBAAyB,GACzB,MAAM,mCAAmC,CAAA;AAc1C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,QAA4B,EAC5B,OAAsB,EACtB,GAAW;IAEX,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IACzE,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/C,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EACN,wIAAwI;SACzI,CAAA;IACF,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,4BAA4B,GAAG,0DAA0D;SAClG,CAAA;IACF,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,MAA4B,CAAA;QAChC,IAAI,CAAC;YACJ,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,oBAAoB,GAAG,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACzG,CAAA;QACF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,qEAAqE;YACrE,qEAAqE;YACrE,6DAA6D;YAC7D,OAAO;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,+BAA+B,GAAG,0FAA0F;aACrI,CAAA;QACF,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,SAAmB,CAAA;IAC1C,4EAA4E;IAC5E,4EAA4E;IAC5E,8DAA8D;IAC9D,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,QAAqB,EAAE,SAAiB,EAAE,GAAW;IACxE,IAAI,QAA4B,CAAA;IAChC,IAAI,CAAC;QACJ,QAAQ,GAAG,MAAM,yBAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,sEAAsE;QACtE,gEAAgE;QAChE,kEAAkE;QAClE,iCAAiC;QACjC,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,iBAAiB,SAAS,6BAA6B,GAAG,KAClE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAChD,EAAE;SACF,CAAA;IACF,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACN,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,iBAAiB,SAAS,uDAAuD;SAC1F,CAAA;IACF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAChD,CAAC"}
@@ -9,9 +9,11 @@
9
9
  *
10
10
  * History: with `--session <key>` the turn is bound to a persisted
11
11
  * conversation in the cwd's `.namzu` store (keyed by the embedder's own
12
- * session id), so prior turns are loaded as context and the new
13
- * user+assistant pair is appended — that's what lets a reopened session show
14
- * its past messages (`namzu history --session <key>`). Without `--session`,
12
+ * session id), so prior turns are loaded as context and the kernel's exact
13
+ * settled conversation projection is published — including opaque reasoning
14
+ * and complete tool turns, excluding its fresh per-run system floor. That's
15
+ * what lets a reopened session show and replay its past messages (`namzu
16
+ * history --session <key>`). Without `--session`,
15
17
  * prior history may be supplied on stdin as a JSON `Message[]` and nothing is
16
18
  * persisted (stateless one-shot).
17
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../src/commands/run-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AA0BH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAuC5C,eAAO,MAAM,gBAAgB,EAAE,UA+T9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AA8BH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAoB5C,eAAO,MAAM,gBAAgB,EAAE,UAiV9B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,UAkD5B,CAAA;AAMD,eAAO,MAAM,iBAAiB,EAAE,UAqC/B,CAAA;AAOD,eAAO,MAAM,oBAAoB,EAAE,UA8ClC,CAAA"}