@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
@@ -8,6 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  */
9
9
  import { Box, Text } from 'ink';
10
10
  import { useEffect, useState } from 'react';
11
+ import { terminalDisplayText } from './terminal-display.js';
11
12
  import { theme } from './theme.js';
12
13
  const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
13
14
  export function LiveActivity({ activeTools, thinking }) {
@@ -18,7 +19,7 @@ export function LiveActivity({ activeTools, thinking }) {
18
19
  const spinner = SPINNER_FRAMES[tick % SPINNER_FRAMES.length] ?? '⠋';
19
20
  const now = Date.now();
20
21
  if (activeTools.length > 0) {
21
- return (_jsx(Box, { flexDirection: "column", children: activeTools.map((t) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.accent.tool, children: spinner }) }), _jsxs(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [t.label, _jsxs(Text, { color: theme.text.muted, children: [" \u00B7 ", formatElapsed(now - t.startedAt)] })] })] }, t.id))) }));
22
+ return (_jsx(Box, { flexDirection: "column", children: activeTools.map((t) => (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.accent.tool, children: spinner }) }), _jsxs(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [terminalDisplayText(t.label), _jsxs(Text, { color: theme.text.muted, children: [" \u00B7 ", formatElapsed(now - t.startedAt)] })] })] }, t.id))) }));
22
23
  }
23
24
  return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.accent.assistant, children: spinner }) }), _jsx(Text, { color: theme.text.muted, children: "thinking\u2026" })] }));
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LiveActivity.js","sourceRoot":"","sources":["../../src/tui/LiveActivity.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveActivity.js","sourceRoot":"","sources":["../../src/tui/LiveActivity.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/tui/Markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAA0B,EAAE,EAAE,aAAa,2CAW3E"}
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/tui/Markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAA0B,EAAE,EAAE,aAAa,2CAW3E"}
@@ -16,6 +16,7 @@ import { Box, Text } from 'ink';
16
16
  import { memo, useRef } from 'react';
17
17
  import { createBlockCache } from './markdown-block-cache.js';
18
18
  import { parseInline } from './markdownParser.js';
19
+ import { terminalDisplayText } from './terminal-display.js';
19
20
  import { theme } from './theme.js';
20
21
  const CODE_COLOR = theme.status.ok;
21
22
  /**
@@ -35,7 +36,7 @@ const CODE_COLOR = theme.status.ok;
35
36
  export function Markdown({ text, color = theme.text.primary }) {
36
37
  const cache = useRef(undefined);
37
38
  cache.current ??= createBlockCache();
38
- const blocks = cache.current.parse(text);
39
+ const blocks = cache.current.parse(terminalDisplayText(text));
39
40
  return (_jsx(Box, { flexDirection: "column", children: blocks.map((block, i) => (_jsx(BlockView, { block: block, prev: blocks[i - 1], color: color }, `b-${i}`))) }));
40
41
  }
41
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/tui/Markdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../src/tui/Markdown.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionOverlay.d.ts","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAGpD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;CACjD;AAQD,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CA6EtE"}
1
+ {"version":3,"file":"PermissionOverlay.d.ts","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAA;CACjD;AAQD,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CAkFtE"}
@@ -8,6 +8,7 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
8
8
  * component is presentational.
9
9
  */
10
10
  import { Box, Text } from 'ink';
11
+ import { terminalDisplayText } from './terminal-display.js';
11
12
  import { theme } from './theme.js';
12
13
  function previewColor(line) {
13
14
  if (line.startsWith('+'))
@@ -17,6 +18,11 @@ function previewColor(line) {
17
18
  return theme.text.muted;
18
19
  }
19
20
  export function PermissionOverlay({ toolCalls }) {
20
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.status.warn, paddingX: 1, marginTop: 1, children: [_jsxs(Text, { color: theme.status.warn, bold: true, children: ["\u26A0 namzu wants to run ", toolCalls.length === 1 ? 'a tool' : `${toolCalls.length} tools`] }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: toolCalls.map((tc) => (_jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsxs(Text, { children: [_jsxs(Text, { color: theme.accent.tool, bold: true, children: ["\u2699 ", tc.name] }), _jsxs(Text, { color: theme.text.secondary, children: [" ", tc.summary] }), tc.isDestructive ? _jsx(Text, { color: theme.status.error, children: " (destructive)" }) : null] }), tc.preview && tc.preview.length > 0 ? (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: tc.preview.map((line, i) => (_jsx(Text, { color: previewColor(line), children: line }, `${tc.id}-${i}`))) })) : null] }, tc.id))) }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.ok, bold: true, children: "y" }), ' ', "approve \u00B7", ' ', _jsx(Text, { color: theme.accent.user, bold: true, children: "a" }), ' ', "approve all for this session"] }), _jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.error, bold: true, children: "n" }), ' ', "or", ' ', _jsx(Text, { color: theme.status.error, bold: true, children: "esc" }), ' ', "decline, and the agent tries something else \u00B7", ' ', _jsx(Text, { color: theme.status.error, bold: true, children: "ctrl+c" }), ' ', "decline and stop the turn"] })] })] }));
21
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.status.warn, paddingX: 1, marginTop: 1, children: [_jsxs(Text, { color: theme.status.warn, bold: true, children: ["\u26A0 namzu wants to run ", toolCalls.length === 1 ? 'a tool' : `${toolCalls.length} tools`] }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: toolCalls.map((tc) => {
22
+ const name = terminalDisplayText(tc.name);
23
+ const summary = terminalDisplayText(tc.summary);
24
+ const preview = tc.preview?.map(terminalDisplayText);
25
+ return (_jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsxs(Text, { children: [_jsxs(Text, { color: theme.accent.tool, bold: true, children: ["\u2699 ", name] }), _jsxs(Text, { color: theme.text.secondary, children: [" ", summary] }), tc.isDestructive ? _jsx(Text, { color: theme.status.error, children: " (destructive)" }) : null] }), preview && preview.length > 0 ? (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: preview.map((line, i) => (_jsx(Text, { color: previewColor(line), children: line }, `${tc.id}-${i}`))) })) : null] }, tc.id));
26
+ }) }), _jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.ok, bold: true, children: "y" }), ' ', "approve \u00B7", ' ', _jsx(Text, { color: theme.accent.user, bold: true, children: "a" }), ' ', "approve all for this session"] }), _jsxs(Text, { color: theme.text.muted, children: [_jsx(Text, { color: theme.status.error, bold: true, children: "n" }), ' ', "or", ' ', _jsx(Text, { color: theme.status.error, bold: true, children: "esc" }), ' ', "decline, and the agent tries something else \u00B7", ' ', _jsx(Text, { color: theme.status.error, bold: true, children: "ctrl+c" }), ' ', "decline and stop the turn"] })] })] }));
21
27
  }
22
28
  //# sourceMappingURL=PermissionOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionOverlay.js","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAG/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMlC,SAAS,YAAY,CAAC,IAAY;IACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,CAAA;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAA0B;IACtE,OAAO,CACN,MAAC,GAAG,IACH,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAC9B,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,aAEZ,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,iDACb,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,QAAQ,IAC/E,EACP,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACvC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACtB,MAAC,GAAG,IAAa,aAAa,EAAC,QAAQ,EAAC,aAAa,EAAE,CAAC,aACvD,MAAC,IAAI,eACJ,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,8BAChC,EAAE,CAAC,IAAI,IACJ,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,kBAAI,EAAE,CAAC,OAAO,IAAQ,EACtD,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,+BAAuB,CAAC,CAAC,CAAC,IAAI,IAC3E,EACN,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACxC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,IAAI,IAAuB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,YACnD,IAAI,IADK,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAEnB,CACP,CAAC,GACG,CACN,CAAC,CAAC,CAAC,IAAI,KAhBC,EAAE,CAAC,EAAE,CAiBT,CACN,CAAC,GACG,EAgBN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,wBAE3B,EAAC,GAAG,oBACD,GAAG,EACb,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,wBAE7B,EAAC,GAAG,oCAEL,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,aAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,wBAE9B,EAAC,GAAG,QACR,GAAG,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,0BAE9B,EAAC,GAAG,wDACmC,GAAG,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,6BAE9B,EAAC,GAAG,iCAEL,IACF,IACD,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"PermissionOverlay.js","sourceRoot":"","sources":["../../src/tui/PermissionOverlay.tsx"],"names":[],"mappings":"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"}
@@ -6,17 +6,19 @@
6
6
  * chat. Keyboard-only. The dispatch path that turns the selection into a
7
7
  * live agent session lives in `agent.ts`.
8
8
  */
9
- import { type DetectedProvider, type ProviderId } from '../integrations/providers/index.js';
9
+ import { type DetectedProvider, type ProviderId, type SubscriptionProviderId } from '../integrations/providers/index.js';
10
10
  import { type ModelListing, verifyCredential } from './agent.js';
11
11
  export interface PickerProps {
12
12
  readonly detected: readonly DetectedProvider[];
13
13
  readonly currentProvider?: string | null;
14
+ /** Open directly on the subscription choice when `/login` owns this mount. */
15
+ readonly initialView?: 'providers' | 'subscriptions';
14
16
  /** The model in force, so re-opening starts on it rather than the default. */
15
17
  readonly currentModel?: string | null;
16
18
  readonly onSubmit: (selection: {
17
19
  provider: string;
18
20
  model?: string;
19
- }) => void;
21
+ }, signal: AbortSignal) => void;
20
22
  readonly onCancel: () => void;
21
23
  /**
22
24
  * Seam for tests: how the picker asks a provider what it has.
@@ -25,12 +27,12 @@ export interface PickerProps {
25
27
  * caller has to know this exists. It is here because the alternative is a
26
28
  * screen whose behaviour can only be checked by launching a terminal.
27
29
  */
28
- readonly describeModels?: (id: ProviderId, det: DetectedProvider) => Promise<ModelListing>;
30
+ readonly describeModels?: (id: ProviderId, det: DetectedProvider, signal?: AbortSignal) => Promise<ModelListing>;
29
31
  /**
30
32
  * A credential the operator typed, with the sentence describing what was
31
33
  * done with it. Absent means this picker cannot take one.
32
34
  */
33
- readonly onCredential?: (credential: DetectedProvider, disposition: string) => void;
35
+ readonly onCredential?: (credential: DetectedProvider, disposition: string, signal: AbortSignal) => void;
34
36
  /**
35
37
  * Start a subscription sign-in from this screen. Absent means this picker
36
38
  * cannot start one.
@@ -43,7 +45,7 @@ export interface PickerProps {
43
45
  * sources it scans, offered a key to paste, and said to restart, while a
44
46
  * working sign-in sat one unreachable keystroke away.
45
47
  */
46
- readonly onLogin?: () => void;
48
+ readonly onLogin?: (provider: SubscriptionProviderId, signal: AbortSignal) => void;
47
49
  /**
48
50
  * Seam for tests: how a typed key is checked. Defaulted to the real thing,
49
51
  * so no production caller knows this exists.
@@ -81,5 +83,5 @@ export interface PickerProps {
81
83
  */
82
84
  readonly notice?: string | null;
83
85
  }
84
- export declare function Picker({ detected, currentProvider, currentModel, onSubmit, onCancel, describeModels, onCredential, onLogin, verify, keyEntryFor, notice, }: PickerProps): import("react/jsx-runtime").JSX.Element;
86
+ export declare function Picker({ detected, currentProvider, currentModel, initialView, onSubmit, onCancel, describeModels, onCredential, onLogin, verify, keyEntryFor, notice, }: PickerProps): import("react/jsx-runtime").JSX.Element;
85
87
  //# sourceMappingURL=Picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,UAAU,EAGf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,YAAY,EAA0B,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAWxF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACzB,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,gBAAgB,KACjB,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAA;IACnF;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,gBAAgB,CAAA;IACzC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAsBD,wBAAgB,MAAM,CAAC,EACtB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,cAAuC,EACvC,YAAY,EACZ,OAAO,EACP,MAAyB,EACzB,WAAW,EACX,MAAM,GACN,EAAE,WAAW,2CA+Wb"}
1
+ {"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,UAAU,EAEf,KAAK,sBAAsB,EAE3B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,YAAY,EAA0B,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAWxF,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,eAAe,CAAA;IACpD,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;IACjG,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACzB,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,gBAAgB,EACrB,MAAM,CAAC,EAAE,WAAW,KAChB,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CACvB,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,KACf,IAAI,CAAA;IACT;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;IAClF;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,gBAAgB,CAAA;IACzC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AA4BD,wBAAgB,MAAM,CAAC,EACtB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAyB,EACzB,QAAQ,EACR,QAAQ,EACR,cAAuC,EACvC,YAAY,EACZ,OAAO,EACP,MAAyB,EACzB,WAAW,EACX,MAAM,GACN,EAAE,WAAW,2CAwhBb"}
@@ -8,7 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
8
8
  * live agent session lives in `agent.ts`.
9
9
  */
10
10
  import { Box, Text, useInput } from 'ink';
11
- import { useState } from 'react';
11
+ import { useCallback, useEffect, useRef, useState } from 'react';
12
12
  import { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, unsupportedProviderMessage, } from '../integrations/providers/index.js';
13
13
  import { describeProviderModels, verifyCredential } from './agent.js';
14
14
  import { classifyCredential, describeDisposition, keyLooksUsable, maskKey, sessionCredential, } from './credential-entry.js';
@@ -16,7 +16,10 @@ import { modelStep } from './model-choices.js';
16
16
  import { theme } from './theme.js';
17
17
  /** Providers that take a typed credential. Local servers do not. */
18
18
  function keyCapableProviders() {
19
- return ALL_PROVIDER_IDS.map((id) => PROVIDER_REGISTRY[id]).filter((e) => e.requiresApiKey);
19
+ return ALL_PROVIDER_IDS.map((id) => PROVIDER_REGISTRY[id]).filter((e) => e.acceptsTypedCredential);
20
+ }
21
+ function subscriptionProviders() {
22
+ return ALL_PROVIDER_IDS.map((id) => PROVIDER_REGISTRY[id]).filter((entry) => entry.subscriptionLogin !== undefined);
20
23
  }
21
24
  /**
22
25
  * The provider `k` opens entry for.
@@ -28,12 +31,44 @@ function keyCapableProviders() {
28
31
  function keyEntryTarget(keyEntryFor) {
29
32
  if (keyEntryFor) {
30
33
  const entry = PROVIDER_REGISTRY[keyEntryFor];
31
- if (entry?.requiresApiKey)
34
+ if (entry?.acceptsTypedCredential)
32
35
  return entry;
33
36
  }
34
37
  return keyCapableProviders()[0] ?? null;
35
38
  }
36
- export function Picker({ detected, currentProvider, currentModel, onSubmit, onCancel, describeModels = describeProviderModels, onCredential, onLogin, verify = verifyCredential, keyEntryFor, notice, }) {
39
+ export function Picker({ detected, currentProvider, currentModel, initialView = 'providers', onSubmit, onCancel, describeModels = describeProviderModels, onCredential, onLogin, verify = verifyCredential, keyEntryFor, notice, }) {
40
+ /**
41
+ * The one foreign operation still allowed to publish into this picker.
42
+ *
43
+ * A promise is not cancelled by unmounting the component that started it.
44
+ * The generation prevents a late result from writing state or invoking an
45
+ * external callback; the controller releases cooperative transports as soon
46
+ * as the operator changes their mind.
47
+ */
48
+ const operationGenerationRef = useRef(0);
49
+ const operationRef = useRef(null);
50
+ const invalidateOperation = useCallback(() => {
51
+ operationGenerationRef.current += 1;
52
+ operationRef.current?.controller.abort(new Error('The picker operation was cancelled.'));
53
+ operationRef.current = null;
54
+ }, []);
55
+ const beginOperation = useCallback(() => {
56
+ invalidateOperation();
57
+ const operation = {
58
+ generation: operationGenerationRef.current,
59
+ controller: new AbortController(),
60
+ };
61
+ operationRef.current = operation;
62
+ return operation;
63
+ }, [invalidateOperation]);
64
+ const ownsOperation = useCallback((operation) => operationRef.current === operation &&
65
+ operationGenerationRef.current === operation.generation &&
66
+ !operation.controller.signal.aborted, []);
67
+ const finishOperation = useCallback((operation) => {
68
+ if (operationRef.current === operation)
69
+ operationRef.current = null;
70
+ }, []);
71
+ useEffect(() => invalidateOperation, [invalidateOperation]);
37
72
  const initialIndex = (currentProvider !== null && currentProvider !== undefined
38
73
  ? detected.findIndex((d) => d.entry.id === currentProvider)
39
74
  : 0) || 0;
@@ -42,6 +77,8 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
42
77
  // `null` while choosing a provider. Once a provider is accepted this holds
43
78
  // the model step, and `undefined` inside it means the listing is in flight.
44
79
  const [modelPhase, setModelPhase] = useState(null);
80
+ const [loginPhase, setLoginPhase] = useState(initialView === 'subscriptions');
81
+ useEffect(() => setLoginPhase(initialView === 'subscriptions'), [initialView]);
45
82
  // Key entry. `value` is the secret and never leaves this component except as
46
83
  // a mask or as the credential handed to `onCredential`.
47
84
  //
@@ -66,8 +103,26 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
66
103
  // function the session layer picks the wire header with, so the sentence
67
104
  // on screen cannot disagree with the request that follows it.
68
105
  const kind = classifyCredential(entry, state.value);
69
- const verification = await verify(entry.id, cred);
106
+ const operation = beginOperation();
107
+ let verification;
108
+ try {
109
+ verification = await verify(entry.id, cred, operation.controller.signal);
110
+ }
111
+ catch {
112
+ if (!ownsOperation(operation))
113
+ return;
114
+ finishOperation(operation);
115
+ setKeyEntry({
116
+ ...state,
117
+ status: 'typing',
118
+ problem: 'The credential check failed before the provider answered. Nothing was stored.',
119
+ });
120
+ return;
121
+ }
122
+ if (!ownsOperation(operation))
123
+ return;
70
124
  if (verification.kind === 'rejected') {
125
+ finishOperation(operation);
71
126
  // Stays on the screen with the key intact so a one-character typo is
72
127
  // fixable. The reason is the provider's, never the key.
73
128
  setKeyEntry({
@@ -77,13 +132,16 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
77
132
  });
78
133
  return;
79
134
  }
80
- onCredential?.(cred, describeDisposition(entry, verification, kind));
135
+ // Keep this generation owned through App's session construction. Esc or
136
+ // another choice aborts it, so a late session cannot replace the newer one.
137
+ onCredential?.(cred, describeDisposition(entry, verification, kind), operation.controller.signal);
81
138
  };
82
139
  useInput((input, key) => {
83
140
  // Key entry owns the keyboard while it is open: every printable character
84
141
  // is part of a secret, so nothing here may fall through to a shortcut.
85
142
  if (keyEntry) {
86
143
  if (key.escape) {
144
+ invalidateOperation();
87
145
  setKeyEntry(null);
88
146
  return;
89
147
  }
@@ -120,8 +178,15 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
120
178
  // reaches with nothing usable. Checked BEFORE `k` only in the sense of
121
179
  // sitting beside it — the letters do not collide, and navigation is
122
180
  // arrows and digits.
123
- if ((detected.length === 0 || keyEntryFor) && onLogin && (input === 'l' || input === 'L')) {
124
- onLogin();
181
+ const loginTarget = keyEntryFor ? PROVIDER_REGISTRY[keyEntryFor] : undefined;
182
+ const canLogin = detected.length === 0 ||
183
+ (loginTarget !== undefined && loginTarget.subscriptionLogin !== undefined);
184
+ if (canLogin && onLogin && (input === 'l' || input === 'L')) {
185
+ invalidateOperation();
186
+ setLoginPhase(true);
187
+ setCursor(loginTarget?.subscriptionLogin
188
+ ? Math.max(0, subscriptionProviders().findIndex((entry) => entry.id === loginTarget.id))
189
+ : 0);
125
190
  return;
126
191
  }
127
192
  if ((detected.length === 0 || keyEntryFor) &&
@@ -129,6 +194,7 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
129
194
  (input === 'k' || input === 'K')) {
130
195
  const target = keyEntryTarget(keyEntryFor);
131
196
  if (target) {
197
+ invalidateOperation();
132
198
  setKeyEntry({ entry: target, value: '', status: 'typing' });
133
199
  }
134
200
  else {
@@ -137,15 +203,55 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
137
203
  return;
138
204
  }
139
205
  if (key.escape) {
206
+ if (loginPhase) {
207
+ invalidateOperation();
208
+ setLoginPhase(false);
209
+ setCursor(0);
210
+ return;
211
+ }
140
212
  // From the model step, back to the provider list rather than out of
141
213
  // the picker: escape should undo one decision, not two.
142
214
  if (modelPhase) {
215
+ invalidateOperation();
143
216
  setModelPhase(null);
144
217
  return;
145
218
  }
219
+ invalidateOperation();
146
220
  onCancel();
147
221
  return;
148
222
  }
223
+ if (loginPhase) {
224
+ const choices = subscriptionProviders();
225
+ if (key.upArrow) {
226
+ setCursor((current) => Math.max(0, current - 1));
227
+ return;
228
+ }
229
+ if (key.downArrow) {
230
+ setCursor((current) => Math.min(choices.length - 1, current + 1));
231
+ return;
232
+ }
233
+ if (key.return) {
234
+ const chosen = choices[cursor];
235
+ if (!chosen || !chosen.subscriptionLogin)
236
+ return;
237
+ const operation = beginOperation();
238
+ try {
239
+ onLogin?.(chosen.id, operation.controller.signal);
240
+ }
241
+ catch (error) {
242
+ if (ownsOperation(operation)) {
243
+ finishOperation(operation);
244
+ setErrorHint(`Could not start sign-in: ${error instanceof Error ? error.message : String(error)}`);
245
+ }
246
+ }
247
+ return;
248
+ }
249
+ const selected = Number.parseInt(input, 10);
250
+ if (Number.isFinite(selected) && selected >= 1 && selected <= choices.length) {
251
+ setCursor(selected - 1);
252
+ }
253
+ return;
254
+ }
149
255
  if (modelPhase) {
150
256
  const step = modelPhase.step;
151
257
  if (!step)
@@ -164,7 +270,8 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
164
270
  setErrorHint('No model available.');
165
271
  return;
166
272
  }
167
- onSubmit({ provider: modelPhase.provider.entry.id, model: chosen.id });
273
+ const operation = beginOperation();
274
+ onSubmit({ provider: modelPhase.provider.entry.id, model: chosen.id }, operation.controller.signal);
168
275
  return;
169
276
  }
170
277
  const n = Number.parseInt(input, 10);
@@ -198,12 +305,28 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
198
305
  // Ask the provider what it has, then show the model step. The list is
199
306
  // raced against 3s inside `describeProviderModels`, so this resolves
200
307
  // either way and the step always has at least the default.
308
+ const operation = beginOperation();
201
309
  setModelPhase({ provider: current, step: undefined });
202
310
  setCursor(0);
203
- void describeModels(current.entry.id, current).then((listing) => {
311
+ void describeModels(current.entry.id, current, operation.controller.signal)
312
+ .then((listing) => {
313
+ if (!ownsOperation(operation))
314
+ return;
315
+ finishOperation(operation);
204
316
  const step = modelStep(current.entry.defaultModel, listing, currentModel ?? undefined);
205
317
  setModelPhase({ provider: current, step });
206
318
  setCursor(step.initialIndex);
319
+ })
320
+ .catch((error) => {
321
+ if (!ownsOperation(operation))
322
+ return;
323
+ finishOperation(operation);
324
+ const step = modelStep(current.entry.defaultModel, {
325
+ kind: 'failed',
326
+ reason: error instanceof Error ? error.message : String(error),
327
+ }, currentModel ?? undefined);
328
+ setModelPhase({ provider: current, step });
329
+ setCursor(step.initialIndex);
207
330
  });
208
331
  return;
209
332
  }
@@ -226,16 +349,20 @@ export function Picker({ detected, currentProvider, currentModel, onSubmit, onCa
226
349
  return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [noticeBox, _jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsxs(Text, { color: theme.accent.system, bold: true, children: ["Paste a credential for ", entry.label] }), _jsx(Text, { color: theme.text.muted, children: "An API key or a subscription token. Type or paste, then enter. esc cancels." })] }), _jsx(Text, { color: theme.text.primary, children: maskKey(keyEntry.value) || _jsx(Text, { color: theme.text.muted, children: "(nothing typed yet)" }) }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [keyEntry.status === 'checking' ? (_jsxs(Text, { color: theme.text.muted, children: ["Checking it with ", entry.label, "\u2026"] })) : (_jsx(Text, { color: theme.text.secondary, children: "Used for this session only \u2014 it is not written anywhere." })), keyEntry.value.length > 0 && kind === 'subscription-token' ? (_jsx(Text, { color: theme.status.warn, children: "Reads as a subscription token \u2014 it expires in a few hours and namzu has no refresh data for a pasted one." })) : null, keyEntry.problem ? _jsx(Text, { color: theme.status.warn, children: keyEntry.problem }) : null] })] }));
227
350
  }
228
351
  if (modelPhase) {
229
- return (_jsx(ModelStepView, { providerLabel: modelPhase.provider.entry.label, step: modelPhase.step, cursor: cursor, errorHint: errorHint }));
352
+ return (_jsxs(Box, { flexDirection: "column", children: [noticeBox, _jsx(ModelStepView, { providerLabel: modelPhase.provider.entry.label, step: modelPhase.step, cursor: cursor, errorHint: errorHint })] }));
353
+ }
354
+ if (loginPhase) {
355
+ const choices = subscriptionProviders();
356
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [noticeBox, _jsx(Text, { color: theme.accent.system, bold: true, children: "Choose a subscription" }), _jsx(Text, { color: theme.text.muted, children: "Use an existing device session when one is available; this creates a Namzu-owned sign-in." }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: choices.map((entry, index) => (_jsxs(Text, { color: index === cursor ? theme.text.primary : theme.text.muted, children: [index === cursor ? '❯' : ' ', " ", index + 1, ". ", entry.label, entry.subscriptionLogin === 'device' ? ' · device code' : ' · browser sign-in'] }, entry.id))) }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 or 1-2 navigate \u00B7 enter sign in \u00B7 esc back" }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
230
357
  }
231
358
  // Non-null exactly when `k` is live on the populated list — the same
232
359
  // condition the key handler uses, read from one place so the hint and the
233
360
  // keyboard cannot drift apart.
234
361
  const entryTarget = keyEntryFor && onCredential ? keyEntryTarget(keyEntryFor) : null;
235
362
  if (detected.length === 0) {
236
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.status.warn, paddingX: 1, children: [noticeBox, _jsx(Text, { color: theme.status.warn, bold: true, children: "No providers detected" }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.primary, children: "namzu scans these sources, in order, for an LLM credential:" }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 env vars (ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, \u2026)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 a subscription signed in to from namzu (~/.namzu/credentials.json)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 macOS Keychain (an existing OAuth sign-in; macOS only)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 local servers (Ollama localhost:11434, LM Studio localhost:1234)"] })] }), onLogin ? (_jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Press ", _jsx(Text, { color: theme.accent.system, children: "l" }), " to sign in with a subscription \u2014 no API key, and namzu keeps it for next time."] }) })) : null, _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Or press ", _jsx(Text, { color: theme.accent.system, children: "k" }), " to paste a credential now and use it for this session."] }) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "You can also set one of the env vars above (or start a local server) and restart." }) }), _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.muted, children: [onLogin ? 'l: sign in · ' : '', "k: enter a credential \u00B7 esc: exit picker"] }) })] }));
363
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.status.warn, paddingX: 1, children: [noticeBox, _jsx(Text, { color: theme.status.warn, bold: true, children: "No providers detected" }), _jsxs(Box, { paddingTop: 1, flexDirection: "column", children: [_jsx(Text, { color: theme.text.primary, children: "namzu scans these sources, in order, for an LLM credential:" }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 existing ", subscriptionProviders().map((entry) => entry.label).join(' and '), " sessions on this device"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 subscriptions signed in to from namzu (~/.namzu/credentials.json)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 env vars / API keys (optional alternatives: ANTHROPIC_API_KEY, OPENAI_API_KEY, \u2026)"] }), _jsxs(Text, { color: theme.text.muted, children: [' ', "\u00B7 local servers (Ollama localhost:11434, LM Studio localhost:1234)"] })] }), onLogin ? (_jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Press ", _jsx(Text, { color: theme.accent.system, children: "l" }), " to sign in with a subscription \u2014 no API key, and namzu keeps it for next time."] }) })) : null, _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.primary, children: ["Or press ", _jsx(Text, { color: theme.accent.system, children: "k" }), " to paste a credential now and use it for this session."] }) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.secondary, children: "You can also set one of the env vars above (or start a local server) and restart." }) }), _jsx(Box, { paddingTop: 1, children: _jsxs(Text, { color: theme.text.muted, children: [onLogin ? 'l: sign in · ' : '', "k: enter a credential \u00B7 esc: exit picker"] }) })] }));
237
364
  }
238
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [noticeBox, _jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsx(Text, { color: theme.accent.system, bold: true, children: "Choose a provider" }), _jsxs(Text, { color: theme.text.muted, children: [detected.length, " detected \u00B7 credentials resolved from env / keychain / local probes"] })] }), _jsx(Box, { flexDirection: "column", children: detected.map((d, i) => (_jsx(ProviderRow, { detected: d, index: i, selected: i === cursor, isCurrent: d.entry.id === currentProvider }, d.entry.id))) }), _jsxs(Box, { flexDirection: "column", paddingTop: 1, children: [_jsxs(Text, { color: theme.text.muted, children: ["\u2191\u2193 or 1-9 navigate \u00B7 enter accept", entryTarget ? ` · k enter a credential for ${entryTarget.label}` : '', keyEntryFor && onLogin ? ' · l sign in with a subscription' : '', " \u00B7 esc cancel"] }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
365
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [noticeBox, _jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsx(Text, { color: theme.accent.system, bold: true, children: "Choose a provider" }), _jsxs(Text, { color: theme.text.muted, children: [detected.length, " detected \u00B7 device sessions / Namzu sign-ins / optional keys / local probes"] })] }), _jsx(Box, { flexDirection: "column", children: detected.map((d, i) => (_jsx(ProviderRow, { detected: d, index: i, selected: i === cursor, isCurrent: d.entry.id === currentProvider }, d.entry.id))) }), _jsxs(Box, { flexDirection: "column", paddingTop: 1, children: [_jsxs(Text, { color: theme.text.muted, children: ["\u2191\u2193 or 1-9 navigate \u00B7 enter accept", entryTarget ? ` · k enter a credential for ${entryTarget.label}` : '', keyEntryFor && onLogin ? ' · l sign in with a subscription' : '', " \u00B7 esc cancel"] }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
239
366
  }
240
367
  function ModelStepView({ providerLabel, step, cursor, errorHint, }) {
241
368
  return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [_jsxs(Box, { flexDirection: "column", paddingBottom: 1, children: [_jsx(Text, { color: theme.accent.system, bold: true, children: "Choose a model" }), _jsx(Text, { color: theme.text.muted, children: providerLabel })] }), step === undefined ? (_jsxs(Text, { color: theme.text.muted, children: ["Asking ", providerLabel, " what it has\u2026"] })) : (_jsxs(_Fragment, { children: [step.notice ? (_jsx(Box, { paddingBottom: 1, children: _jsx(Text, { color: theme.status.warn, children: step.notice }) })) : null, _jsx(Box, { flexDirection: "column", children: step.choices.map((c, i) => (_jsxs(Text, { color: i === cursor ? theme.accent.system : theme.text.primary, children: [i === cursor ? '❯ ' : ' ', i + 1, ". ", c.label, c.note ? ` ${c.note}` : ''] }, c.id))) })] })), _jsxs(Box, { flexDirection: "column", paddingTop: 1, children: [_jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 or 1-9 navigate \u00B7 enter accept \u00B7 esc back" }), errorHint ? _jsx(Text, { color: theme.status.warn, children: errorHint }) : null] })] }));
@@ -254,11 +381,7 @@ function ProviderRow({ detected, index, selected, isCurrent, }) {
254
381
  ? describeSource(detected)
255
382
  : `${describeSource(detected)} · unavailable in this build`;
256
383
  const currentMark = isCurrent ? ' ← current' : '';
257
- return (_jsxs(Box, { children: [_jsxs(Text, { color: selected ? theme.border.focus : theme.text.muted, children: [cursor, " "] }), _jsxs(Text, { color: theme.text.muted, children: [number, " "] }), _jsx(Text, { color: usable
258
- ? selected
259
- ? theme.border.focus
260
- : theme.text.primary
261
- : theme.text.muted, bold: usable && selected, dimColor: !usable, children: label.padEnd(28) }), _jsx(Text, { color: usable ? theme.text.muted : theme.status.warn, dimColor: !usable, children: sourceLabel }), isCurrent ? _jsx(Text, { color: theme.accent.system, children: currentMark }) : null] }));
384
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: selected ? theme.border.focus : theme.text.muted, children: [cursor, " "] }), _jsxs(Text, { color: theme.text.muted, children: [number, " "] }), _jsx(Text, { color: usable ? (selected ? theme.border.focus : theme.text.primary) : theme.text.muted, bold: usable && selected, dimColor: !usable, children: label.padEnd(28) }), _jsx(Text, { color: usable ? theme.text.muted : theme.status.warn, dimColor: !usable, children: sourceLabel }), isCurrent ? _jsx(Text, { color: theme.accent.system, children: currentMark }) : null] }));
262
385
  }
263
386
  function describeSource(d) {
264
387
  switch (d.source.kind) {
@@ -268,6 +391,10 @@ function describeSource(d) {
268
391
  return `local · ${d.source.url.replace(/^https?:\/\//, '')}`;
269
392
  case 'keychain':
270
393
  return `keychain · ${d.source.service}`;
394
+ case 'claude-file':
395
+ return 'Claude session · this device';
396
+ case 'codex-file':
397
+ return 'Codex session · this device';
271
398
  case 'stored':
272
399
  // Named for what the operator DID, not for where the bytes live. They
273
400
  // signed in; the path is in `/doctor` for when it matters.
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../src/tui/Picker.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResumePicker.d.ts","sourceRoot":"","sources":["../../src/tui/ResumePicker.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAG3E,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,YAAY,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAmC1E"}
1
+ {"version":3,"file":"ResumePicker.d.ts","sourceRoot":"","sources":["../../src/tui/ResumePicker.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAG3E,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,YAAY,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA2C1E"}
@@ -7,7 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import { Box, Text } from 'ink';
8
8
  import { theme } from './theme.js';
9
9
  export function ResumePicker({ conversations, selected }) {
10
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [_jsx(Text, { color: theme.accent.user, bold: true, children: "Resume a conversation" }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: conversations.map((c, i) => (_jsxs(Box, { children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.accent.user, children: i === selected ? '›' : ' ' }) }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { color: i === selected ? theme.text.primary : theme.text.secondary, bold: i === selected, wrap: "truncate-end", children: c.title }) }), _jsxs(Text, { color: theme.text.muted, children: [" ", relativeTime(c.updatedAt)] })] }, c.id))) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 navigate \u00B7 enter resume \u00B7 esc cancel" }) })] }));
10
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: theme.border.focus, paddingX: 1, children: [_jsx(Text, { color: theme.accent.user, bold: true, children: "Resume a conversation" }), _jsx(Box, { flexDirection: "column", paddingTop: 1, children: conversations.map((c, i) => (_jsxs(Box, { children: [_jsx(Box, { width: 2, flexShrink: 0, children: _jsx(Text, { color: theme.accent.user, children: i === selected ? '›' : ' ' }) }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { color: i === selected ? theme.text.primary : theme.text.secondary, bold: i === selected, wrap: "truncate-end", children: c.named ? `"${c.title}"` : c.title }) }), _jsxs(Text, { color: theme.text.muted, children: [" ", relativeTime(c.updatedAt)] })] }, c.id))) }), _jsx(Box, { paddingTop: 1, children: _jsx(Text, { color: theme.text.muted, children: "\u2191\u2193 navigate \u00B7 enter resume \u00B7 esc cancel" }) })] }));
11
11
  }
12
12
  function relativeTime(iso) {
13
13
  const then = Date.parse(iso);