@pentoshi/clai 3.9.7 → 3.11.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +81 -9
  3. package/dist/agent/context-manager.d.ts +2 -1
  4. package/dist/agent/context-manager.js +16 -2
  5. package/dist/agent/context-manager.js.map +1 -1
  6. package/dist/agent/loop-guard.d.ts +18 -0
  7. package/dist/agent/loop-guard.js +50 -2
  8. package/dist/agent/loop-guard.js.map +1 -1
  9. package/dist/agent/must-continue.js +4 -8
  10. package/dist/agent/must-continue.js.map +1 -1
  11. package/dist/agent/prompt-composer.js +8 -8
  12. package/dist/agent/prompt-composer.js.map +1 -1
  13. package/dist/agent/runner.d.ts +1 -0
  14. package/dist/agent/runner.js +238 -74
  15. package/dist/agent/runner.js.map +1 -1
  16. package/dist/agent/session-policy.d.ts +1 -2
  17. package/dist/agent/session-policy.js +3 -2
  18. package/dist/agent/session-policy.js.map +1 -1
  19. package/dist/agent/tool-call-parser.js +6 -6
  20. package/dist/agent/tool-call-parser.js.map +1 -1
  21. package/dist/app/adapters/current-agent-adapter.js +1 -0
  22. package/dist/app/adapters/current-agent-adapter.js.map +1 -1
  23. package/dist/app/controllers/session-controller.js +2 -0
  24. package/dist/app/controllers/session-controller.js.map +1 -1
  25. package/dist/app/controllers/session-turn-request.d.ts +1 -0
  26. package/dist/app/controllers/session-turn-request.js +4 -1
  27. package/dist/app/controllers/session-turn-request.js.map +1 -1
  28. package/dist/app/ports/agent-port.d.ts +1 -0
  29. package/dist/attachments/clipboard-image.js +5 -4
  30. package/dist/attachments/clipboard-image.js.map +1 -1
  31. package/dist/attachments/image-content.d.ts +20 -2
  32. package/dist/attachments/image-content.js +201 -1
  33. package/dist/attachments/image-content.js.map +1 -1
  34. package/dist/attachments/image-prepare.d.ts +25 -0
  35. package/dist/attachments/image-prepare.js +390 -0
  36. package/dist/attachments/image-prepare.js.map +1 -0
  37. package/dist/attachments/service.d.ts +4 -2
  38. package/dist/attachments/service.js +51 -21
  39. package/dist/attachments/service.js.map +1 -1
  40. package/dist/commands/providers.d.ts +5 -2
  41. package/dist/commands/providers.js +121 -7
  42. package/dist/commands/providers.js.map +1 -1
  43. package/dist/index.js +12 -4
  44. package/dist/index.js.map +1 -1
  45. package/dist/llm/agentrouter.js +2 -2
  46. package/dist/llm/agentrouter.js.map +1 -1
  47. package/dist/llm/anthropic.d.ts +5 -4
  48. package/dist/llm/anthropic.js +28 -25
  49. package/dist/llm/anthropic.js.map +1 -1
  50. package/dist/llm/aws-mantle.js +19 -20
  51. package/dist/llm/aws-mantle.js.map +1 -1
  52. package/dist/llm/bynara.js +2 -2
  53. package/dist/llm/bynara.js.map +1 -1
  54. package/dist/llm/capabilities.d.ts +19 -0
  55. package/dist/llm/capabilities.js +273 -16
  56. package/dist/llm/capabilities.js.map +1 -1
  57. package/dist/llm/gemini.js +16 -8
  58. package/dist/llm/gemini.js.map +1 -1
  59. package/dist/llm/groq.js +2 -2
  60. package/dist/llm/groq.js.map +1 -1
  61. package/dist/llm/http.d.ts +7 -1
  62. package/dist/llm/http.js +210 -8
  63. package/dist/llm/http.js.map +1 -1
  64. package/dist/llm/kimchi.js +2 -2
  65. package/dist/llm/kimchi.js.map +1 -1
  66. package/dist/llm/lightning.d.ts +11 -0
  67. package/dist/llm/lightning.js +108 -0
  68. package/dist/llm/lightning.js.map +1 -0
  69. package/dist/llm/modal.d.ts +16 -0
  70. package/dist/llm/modal.js +182 -0
  71. package/dist/llm/modal.js.map +1 -0
  72. package/dist/llm/nvidia.js +2 -2
  73. package/dist/llm/nvidia.js.map +1 -1
  74. package/dist/llm/ollama.js +3 -3
  75. package/dist/llm/ollama.js.map +1 -1
  76. package/dist/llm/openai.js +2 -2
  77. package/dist/llm/openai.js.map +1 -1
  78. package/dist/llm/openrouter.js +2 -2
  79. package/dist/llm/openrouter.js.map +1 -1
  80. package/dist/llm/provider.d.ts +11 -0
  81. package/dist/llm/provider.js +316 -1
  82. package/dist/llm/provider.js.map +1 -1
  83. package/dist/llm/qwen-cloud.js +2 -5
  84. package/dist/llm/qwen-cloud.js.map +1 -1
  85. package/dist/llm/router.js +127 -7
  86. package/dist/llm/router.js.map +1 -1
  87. package/dist/llm/system-messages.d.ts +5 -0
  88. package/dist/llm/system-messages.js +14 -0
  89. package/dist/llm/system-messages.js.map +1 -1
  90. package/dist/llm/token-usage.d.ts +13 -0
  91. package/dist/llm/token-usage.js +31 -0
  92. package/dist/llm/token-usage.js.map +1 -1
  93. package/dist/llm/tokenrouter.d.ts +15 -0
  94. package/dist/llm/tokenrouter.js +106 -0
  95. package/dist/llm/tokenrouter.js.map +1 -0
  96. package/dist/modes/agent.d.ts +1 -0
  97. package/dist/modes/agent.js.map +1 -1
  98. package/dist/modes/ask.js +15 -4
  99. package/dist/modes/ask.js.map +1 -1
  100. package/dist/prompts/embedded.js +2 -2
  101. package/dist/prompts/embedded.js.map +1 -1
  102. package/dist/prompts/index.d.ts +6 -0
  103. package/dist/prompts/index.js +39 -21
  104. package/dist/prompts/index.js.map +1 -1
  105. package/dist/prompts/system.agent.md +15 -27
  106. package/dist/prompts/system.ask.md +1 -1
  107. package/dist/repl/slash-commands.js +53 -0
  108. package/dist/repl/slash-commands.js.map +1 -1
  109. package/dist/repl.js +16 -9
  110. package/dist/repl.js.map +1 -1
  111. package/dist/store/config.d.ts +55 -0
  112. package/dist/store/config.js +127 -0
  113. package/dist/store/config.js.map +1 -1
  114. package/dist/store/history.d.ts +2 -1
  115. package/dist/store/history.js +15 -16
  116. package/dist/store/history.js.map +1 -1
  117. package/dist/store/keys.js +41 -2
  118. package/dist/store/keys.js.map +1 -1
  119. package/dist/tools/definitions.js +31 -6
  120. package/dist/tools/definitions.js.map +1 -1
  121. package/dist/tools/image.d.ts +0 -7
  122. package/dist/tools/image.js +76 -22
  123. package/dist/tools/image.js.map +1 -1
  124. package/dist/tools/jobs.d.ts +11 -1
  125. package/dist/tools/jobs.js +67 -0
  126. package/dist/tools/jobs.js.map +1 -1
  127. package/dist/tools/ocr.d.ts +28 -0
  128. package/dist/tools/ocr.js +316 -0
  129. package/dist/tools/ocr.js.map +1 -0
  130. package/dist/tools/pdf.d.ts +0 -12
  131. package/dist/tools/pdf.js +436 -150
  132. package/dist/tools/pdf.js.map +1 -1
  133. package/dist/tools/registry.js +5 -0
  134. package/dist/tools/registry.js.map +1 -1
  135. package/dist/tui/format-keys.js +10 -0
  136. package/dist/tui/format-keys.js.map +1 -1
  137. package/dist/tui-v2/actions/action-id.d.ts +1 -1
  138. package/dist/tui-v2/actions/action-id.js +3 -0
  139. package/dist/tui-v2/actions/action-id.js.map +1 -1
  140. package/dist/tui-v2/actions/format-shortcuts.js +4 -1
  141. package/dist/tui-v2/actions/format-shortcuts.js.map +1 -1
  142. package/dist/tui-v2/actions/keymap.js +6 -1
  143. package/dist/tui-v2/actions/keymap.js.map +1 -1
  144. package/dist/tui-v2/app/App.js +3 -1
  145. package/dist/tui-v2/app/App.js.map +1 -1
  146. package/dist/tui-v2/app/commands/key-commands.js +117 -15
  147. package/dist/tui-v2/app/commands/key-commands.js.map +1 -1
  148. package/dist/tui-v2/app/commands/picker-commands.js +80 -11
  149. package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
  150. package/dist/tui-v2/bootstrap/console-guard.d.ts +20 -0
  151. package/dist/tui-v2/bootstrap/console-guard.js +73 -0
  152. package/dist/tui-v2/bootstrap/console-guard.js.map +1 -0
  153. package/dist/tui-v2/bootstrap/start-tui-v2.js +14 -0
  154. package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
  155. package/dist/tui-v2/components/composer/composer-input-box.js +5 -1
  156. package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
  157. package/dist/tui-v2/components/jobs/jobs-panel.js +25 -1
  158. package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
  159. package/dist/tui-v2/components/modal/keys-modal.js +15 -8
  160. package/dist/tui-v2/components/modal/keys-modal.js.map +1 -1
  161. package/dist/tui-v2/components/modal/secret-modal.js +13 -4
  162. package/dist/tui-v2/components/modal/secret-modal.js.map +1 -1
  163. package/dist/tui-v2/components/pager/pager.js +103 -12
  164. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  165. package/dist/tui-v2/components/status/status-line.d.ts +8 -2
  166. package/dist/tui-v2/components/status/status-line.js +12 -8
  167. package/dist/tui-v2/components/status/status-line.js.map +1 -1
  168. package/dist/tui-v2/components/transcript/thinking-block.d.ts +14 -4
  169. package/dist/tui-v2/components/transcript/thinking-block.js +53 -8
  170. package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
  171. package/dist/tui-v2/components/transcript/transcript-row.d.ts +2 -0
  172. package/dist/tui-v2/components/transcript/transcript-row.js +2 -2
  173. package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
  174. package/dist/tui-v2/components/transcript/transcript-view.js +8 -1
  175. package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
  176. package/dist/tui-v2/composer/composer-action-port.d.ts +15 -3
  177. package/dist/tui-v2/composer/composer-action-port.js +49 -6
  178. package/dist/tui-v2/composer/composer-action-port.js.map +1 -1
  179. package/dist/tui-v2/composer/composer-editor.js +37 -44
  180. package/dist/tui-v2/composer/composer-editor.js.map +1 -1
  181. package/dist/tui-v2/composer/draft-actions.d.ts +31 -0
  182. package/dist/tui-v2/composer/draft-actions.js +45 -0
  183. package/dist/tui-v2/composer/draft-actions.js.map +1 -0
  184. package/dist/tui-v2/composer/textarea-keybindings.d.ts +1 -1
  185. package/dist/tui-v2/composer/textarea-keybindings.js +33 -0
  186. package/dist/tui-v2/composer/textarea-keybindings.js.map +1 -1
  187. package/dist/tui-v2/composer/use-draft-actions.d.ts +32 -0
  188. package/dist/tui-v2/composer/use-draft-actions.js +59 -0
  189. package/dist/tui-v2/composer/use-draft-actions.js.map +1 -0
  190. package/dist/tui-v2/controllers/overlay-controller.d.ts +13 -0
  191. package/dist/tui-v2/controllers/overlay-controller.js +5 -2
  192. package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
  193. package/dist/tui-v2/rendering/artifact-pager-source.d.ts +10 -0
  194. package/dist/tui-v2/rendering/artifact-pager-source.js +6 -0
  195. package/dist/tui-v2/rendering/artifact-pager-source.js.map +1 -1
  196. package/dist/tui-v2/rendering/job-tail-source.d.ts +21 -0
  197. package/dist/tui-v2/rendering/job-tail-source.js +87 -0
  198. package/dist/tui-v2/rendering/job-tail-source.js.map +1 -0
  199. package/dist/tui-v2/state/use-has-draft.d.ts +6 -0
  200. package/dist/tui-v2/state/use-has-draft.js +13 -0
  201. package/dist/tui-v2/state/use-has-draft.js.map +1 -0
  202. package/dist/types.d.ts +7 -1
  203. package/dist/types.js +3 -0
  204. package/dist/types.js.map +1 -1
  205. package/dist/ui/mentions.d.ts +7 -2
  206. package/dist/ui/mentions.js +52 -117
  207. package/dist/ui/mentions.js.map +1 -1
  208. package/dist/version.generated.d.ts +2 -2
  209. package/dist/version.generated.js +2 -2
  210. package/dist/version.generated.js.map +1 -1
  211. package/package.json +1 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Draft-level composer actions and their registration on
3
+ * {@link composerActionPort}, so status chrome and keystrokes share one path.
4
+ */
5
+ import { type RefObject } from "react";
6
+ import type { TextareaRenderable } from "@opentui/core";
7
+ import type { AppServices } from "../bootstrap/composition-root.js";
8
+ export interface DraftActionsInput {
9
+ readonly editorRef: RefObject<TextareaRenderable | null>;
10
+ readonly services: AppServices;
11
+ /** Expands paste placeholders into the real text. */
12
+ readonly expandPastes: (text: string) => string;
13
+ /** Drop paste + prompt-history state tied to the current draft. */
14
+ readonly resetRegistries: () => void;
15
+ /** Collapse the completion menu and any accepted-slash marker. */
16
+ readonly resetMenuState: () => void;
17
+ readonly setContentRows: (rows: number) => void;
18
+ readonly clearPasteChips: () => void;
19
+ readonly focusComposer: () => void;
20
+ readonly refreshMenu: () => void;
21
+ readonly syncContentRows: () => void;
22
+ readonly notify: (message: string, durationMs: number) => void;
23
+ }
24
+ export interface DraftActions {
25
+ /** Wipe the draft and everything derived from it. */
26
+ readonly clear: (editor: TextareaRenderable) => void;
27
+ /** Ctrl+Shift+X — copy the draft to the clipboard, then clear it. */
28
+ readonly cut: () => Promise<void>;
29
+ /** Show every slash command, as typing "/" in the composer does. */
30
+ readonly showCommands: () => void;
31
+ }
32
+ export declare function useDraftActions(input: DraftActionsInput): DraftActions;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Draft-level composer actions and their registration on
3
+ * {@link composerActionPort}, so status chrome and keystrokes share one path.
4
+ */
5
+ import { useEffect } from "react";
6
+ import { composerActionPort } from "./composer-action-port.js";
7
+ import { cutDraft, cutDraftMessage, primeCommandMenu } from "./draft-actions.js";
8
+ export function useDraftActions(input) {
9
+ const clear = (editor) => {
10
+ editor.clear();
11
+ input.resetRegistries();
12
+ input.resetMenuState();
13
+ input.setContentRows(1);
14
+ input.clearPasteChips();
15
+ };
16
+ const cut = async () => {
17
+ const editor = input.editorRef.current;
18
+ if (!editor)
19
+ return;
20
+ const outcome = await cutDraft({
21
+ editor,
22
+ clipboard: input.services.ports.clipboard,
23
+ expand: input.expandPastes,
24
+ clearDraft: () => clear(editor),
25
+ focus: input.focusComposer,
26
+ });
27
+ input.notify(cutDraftMessage(outcome), outcome === "empty" ? 1400 : 1600);
28
+ };
29
+ const showCommands = () => {
30
+ const editor = input.editorRef.current;
31
+ if (!editor)
32
+ return;
33
+ input.focusComposer();
34
+ primeCommandMenu(editor);
35
+ input.refreshMenu();
36
+ input.syncContentRows();
37
+ };
38
+ // Re-registered every render so the handlers close over current state.
39
+ useEffect(() => {
40
+ const unregisterClear = composerActionPort.registerClear(() => {
41
+ const editor = input.editorRef.current;
42
+ if (!editor)
43
+ return;
44
+ clear(editor);
45
+ input.focusComposer();
46
+ });
47
+ const unregisterCut = composerActionPort.registerCut(() => {
48
+ void cut();
49
+ });
50
+ const unregisterCommands = composerActionPort.registerOpenCommands(showCommands);
51
+ return () => {
52
+ unregisterClear();
53
+ unregisterCut();
54
+ unregisterCommands();
55
+ };
56
+ });
57
+ return { clear, cut, showCommands };
58
+ }
59
+ //# sourceMappingURL=use-draft-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-draft-actions.js","sourceRoot":"","sources":["../../../src/tui-v2/composer/use-draft-actions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AA4BjF,MAAM,UAAU,eAAe,CAAC,KAAwB;IACtD,MAAM,KAAK,GAAG,CAAC,MAA0B,EAAQ,EAAE;QACjD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACxB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;YAC7B,MAAM;YACN,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS;YACzC,MAAM,EAAE,KAAK,CAAC,YAAY;YAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,KAAK,CAAC,aAAa;SAC3B,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,uEAAuE;IACvE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,KAAK,CAAC,MAAM,CAAC,CAAC;YACd,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,EAAE;YACxD,KAAK,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;QACH,MAAM,kBAAkB,GACtB,kBAAkB,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACxD,OAAO,GAAG,EAAE;YACV,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC"}
@@ -36,6 +36,12 @@ export interface PickerRequest {
36
36
  export interface SecretRequestView {
37
37
  readonly title: string;
38
38
  readonly prompt: string;
39
+ /**
40
+ * Show the typed value instead of bullets. For inputs that are not secret
41
+ * but reuse this modal — a Modal endpoint URL or an Ollama host — where
42
+ * masking a long URL just hides typos.
43
+ */
44
+ readonly reveal?: boolean | undefined;
39
45
  }
40
46
  /** Multi-row engagement scope editor (/scope). */
41
47
  export interface ScopeEditorRequest {
@@ -53,6 +59,13 @@ export interface KeysEditorRequest {
53
59
  readonly initialKeys: readonly KeysEditorSlotView[];
54
60
  /** Index of the currently-active (sticky) key for rotation. */
55
61
  readonly activeIndex?: number | undefined;
62
+ /**
63
+ * Singular noun for what a row holds. Defaults to "API key"; endpoint editors
64
+ * pass "endpoint URL" so the same overlay can manage base URLs.
65
+ */
66
+ readonly itemLabel?: string | undefined;
67
+ /** Short heading chip. Defaults to "KEYS". */
68
+ readonly heading?: string | undefined;
56
69
  }
57
70
  /**
58
71
  * Save rows: empty `value` + `slotId` keeps the stored secret; non-empty value
@@ -45,8 +45,11 @@ export class OverlayController {
45
45
  ...(highlightPath ? { highlightPath } : {}),
46
46
  ...(markdown ? { markdown } : {}),
47
47
  };
48
- // Allow pager over any confirm (plan "p" or delete "v") without resolving it.
49
- const opened = this.state.kind === "confirm" && !this.suspended
48
+ // Allow a pager over any confirm (plan "p" or delete "v") without resolving
49
+ // it, and over the jobs panel so closing a live output view returns to the
50
+ // job list rather than dropping the user back in the transcript.
51
+ const stackable = this.state.kind === "confirm" || this.state.kind === "jobs";
52
+ const opened = stackable && !this.suspended
50
53
  ? this.suspendUnder(pager, "pager")
51
54
  : this.open(pager, "pager");
52
55
  if (!opened)
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-controller.js","sourceRoot":"","sources":["../../../src/tui-v2/controllers/overlay-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay-controller.js","sourceRoot":"","sources":["../../../src/tui-v2/controllers/overlay-controller.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,15 @@ export interface ArtifactPagerSource {
15
15
  search(query: string, fromOffset?: number, reverse?: boolean): Promise<ArtifactPage | undefined>;
16
16
  readAll(): Promise<string>;
17
17
  dispose(): void;
18
+ /** Last page of the file as it is right now. */
19
+ readTail?(): Promise<ArtifactPage>;
20
+ /**
21
+ * Present only on sources backed by something that can still grow. The pager
22
+ * treats its presence as "offer follow mode" and drives one bounded tail read
23
+ * per notification, so no polling timer is created.
24
+ */
25
+ watch?(onChange: () => void): () => void;
26
+ /** False once the underlying producer is finished, so follow mode can stop. */
27
+ isGrowing?(): boolean;
18
28
  }
19
29
  export declare function createArtifactPagerSource(path: string, pageBytes?: number): ArtifactPagerSource;
@@ -46,10 +46,16 @@ export function createArtifactPagerSource(path, pageBytes = DEFAULT_ARTIFACT_PAG
46
46
  pageCount,
47
47
  };
48
48
  };
49
+ const readTail = async () => {
50
+ assertOpen();
51
+ const info = await stat(path);
52
+ return readPage(Math.max(0, info.size - boundedPageBytes));
53
+ };
49
54
  return {
50
55
  path,
51
56
  pageBytes: boundedPageBytes,
52
57
  readPage,
58
+ readTail,
53
59
  async search(query, fromOffset = 0, reverse = false) {
54
60
  assertOpen();
55
61
  const needle = Buffer.from(query, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-pager-source.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/artifact-pager-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-pager-source.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/artifact-pager-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { JobsPort } from "../../app/ports/jobs-port.js";
2
+ import { type ArtifactPage, type ArtifactPagerSource } from "./artifact-pager-source.js";
3
+ export interface JobTailSourceOptions {
4
+ readonly jobs: JobsPort;
5
+ readonly jobId: string;
6
+ readonly stream?: "stdout" | "stderr";
7
+ readonly pageBytes?: number;
8
+ }
9
+ /**
10
+ * Live view over a background job's output.
11
+ *
12
+ * Bytes are never buffered: every read is one stat plus one bounded page read
13
+ * straight off the artifact file, and the path is re-resolved each time so a
14
+ * rotation to `<artifact>.N` is followed without restarting the view. Updates
15
+ * are driven by the job manager's existing change stream, which is already
16
+ * coalesced to a few notifications per second, so following adds no timer.
17
+ */
18
+ export declare function createJobTailPagerSource(options: JobTailSourceOptions): ArtifactPagerSource | undefined;
19
+ export declare function jobTailTitle(command: string, live: boolean): string;
20
+ export declare function isLiveJobStatus(status: string): boolean;
21
+ export type { ArtifactPage };
@@ -0,0 +1,87 @@
1
+ import { createArtifactPagerSource, DEFAULT_ARTIFACT_PAGE_BYTES, } from "./artifact-pager-source.js";
2
+ const LIVE_STATUSES = new Set(["starting", "running", "stopping"]);
3
+ /**
4
+ * Live view over a background job's output.
5
+ *
6
+ * Bytes are never buffered: every read is one stat plus one bounded page read
7
+ * straight off the artifact file, and the path is re-resolved each time so a
8
+ * rotation to `<artifact>.N` is followed without restarting the view. Updates
9
+ * are driven by the job manager's existing change stream, which is already
10
+ * coalesced to a few notifications per second, so following adds no timer.
11
+ */
12
+ export function createJobTailPagerSource(options) {
13
+ const { jobs, jobId } = options;
14
+ const stream = options.stream ?? "stdout";
15
+ const pageBytes = options.pageBytes ?? DEFAULT_ARTIFACT_PAGE_BYTES;
16
+ const currentPath = () => {
17
+ const job = jobs.get(jobId);
18
+ if (!job)
19
+ return undefined;
20
+ const receipt = stream === "stderr" ? job.artifacts?.stderr : job.artifacts?.stdout;
21
+ const rotated = receipt?.chunks?.at(-1);
22
+ return rotated ?? (stream === "stderr" ? job.stderrArtifact : job.stdoutArtifact);
23
+ };
24
+ const initialPath = currentPath();
25
+ if (!initialPath)
26
+ return undefined;
27
+ let disposed = false;
28
+ const delegates = new Map();
29
+ const delegateFor = (path) => {
30
+ const existing = delegates.get(path);
31
+ if (existing)
32
+ return existing;
33
+ const created = createArtifactPagerSource(path, pageBytes);
34
+ delegates.set(path, created);
35
+ return created;
36
+ };
37
+ const active = () => {
38
+ if (disposed)
39
+ throw new Error("job tail source is disposed");
40
+ return delegateFor(currentPath() ?? initialPath);
41
+ };
42
+ const isGrowing = () => {
43
+ const job = jobs.get(jobId);
44
+ return job ? LIVE_STATUSES.has(job.status) : false;
45
+ };
46
+ return {
47
+ path: initialPath,
48
+ pageBytes,
49
+ readPage: (offset) => active().readPage(offset),
50
+ readTail: () => {
51
+ const source = active();
52
+ return source.readTail
53
+ ? source.readTail()
54
+ : source.readPage(0);
55
+ },
56
+ search: (query, fromOffset, reverse) => active().search(query, fromOffset, reverse),
57
+ readAll: () => active().readAll(),
58
+ isGrowing,
59
+ watch(onChange) {
60
+ if (disposed)
61
+ return () => undefined;
62
+ return jobs.subscribe((change) => {
63
+ if (change.jobId !== jobId)
64
+ return;
65
+ onChange();
66
+ });
67
+ },
68
+ dispose() {
69
+ if (disposed)
70
+ return;
71
+ disposed = true;
72
+ for (const delegate of delegates.values())
73
+ delegate.dispose();
74
+ delegates.clear();
75
+ },
76
+ };
77
+ }
78
+ export function jobTailTitle(command, live) {
79
+ const label = live ? "live" : "output";
80
+ const trimmed = command.replace(/\s+/g, " ").trim();
81
+ const shown = trimmed.length > 60 ? `${trimmed.slice(0, 59)}…` : trimmed;
82
+ return `${shown} · ${label}`;
83
+ }
84
+ export function isLiveJobStatus(status) {
85
+ return LIVE_STATUSES.has(status);
86
+ }
87
+ //# sourceMappingURL=job-tail-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-tail-source.js","sourceRoot":"","sources":["../../../src/tui-v2/rendering/job-tail-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Draft emptiness, published by the composer. Status chrome uses it to gate
3
+ * the draft-only chips (^X / ⇧^X) so the row never offers a chord that would
4
+ * currently do nothing.
5
+ */
6
+ export declare function useHasDraft(): boolean;
@@ -0,0 +1,13 @@
1
+ import { useEffect, useState } from "react";
2
+ import { composerActionPort } from "../composer/composer-action-port.js";
3
+ /**
4
+ * Draft emptiness, published by the composer. Status chrome uses it to gate
5
+ * the draft-only chips (^X / ⇧^X) so the row never offers a chord that would
6
+ * currently do nothing.
7
+ */
8
+ export function useHasDraft() {
9
+ const [hasDraft, setHasDraft] = useState(() => composerActionPort.hasDraft());
10
+ useEffect(() => composerActionPort.subscribeDraft(setHasDraft), []);
11
+ return hasDraft;
12
+ }
13
+ //# sourceMappingURL=use-has-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-has-draft.js","sourceRoot":"","sources":["../../../src/tui-v2/state/use-has-draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,SAAS,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const providerIds: readonly ["groq", "gemini", "openrouter", "openai", "anthropic", "nvidia", "agentrouter", "kimchi", "aws-mantle", "ollama", "bynara", "qwen-cloud"];
1
+ export declare const providerIds: readonly ["groq", "gemini", "openrouter", "openai", "anthropic", "nvidia", "agentrouter", "kimchi", "aws-mantle", "ollama", "bynara", "qwen-cloud", "modal", "lightning", "tokenrouter"];
2
2
  export type ProviderId = (typeof providerIds)[number];
3
3
  export type Mode = "ask" | "agent" | "plan";
4
4
  export type RiskLevel = "safe" | "confirm" | "block";
@@ -170,6 +170,10 @@ export interface ProviderStatus {
170
170
  activeMaskedKey?: string | undefined;
171
171
  model: string;
172
172
  note?: string | undefined;
173
+ /** Stored endpoint URLs, in order, for providers with a user-supplied base URL. */
174
+ endpoints?: string[] | undefined;
175
+ /** Index of the sticky active endpoint within `endpoints`. */
176
+ activeEndpointIndex?: number | undefined;
173
177
  }
174
178
  export interface ToolCall {
175
179
  name: string;
@@ -201,6 +205,8 @@ export interface ToolResult {
201
205
  outputPath?: string | undefined;
202
206
  backgroundJob?: BackgroundJobReceipt | undefined;
203
207
  truncated?: boolean | undefined;
208
+ /** Internal: the tool intentionally returned policy/repeat feedback without polling. */
209
+ suppressedRepeat?: boolean | undefined;
204
210
  /**
205
211
  * Set by aggregate tools (tool.batch) when some children succeeded and some
206
212
  * failed. `ok` stays false so no layer records a partial run as success,
package/dist/types.js CHANGED
@@ -11,6 +11,9 @@ export const providerIds = [
11
11
  "ollama",
12
12
  "bynara",
13
13
  "qwen-cloud",
14
+ "modal",
15
+ "lightning",
16
+ "tokenrouter",
14
17
  ];
15
18
  /** True for system-injected recovery prompts that must stay out of the chat UI. */
16
19
  export function isInternalChatMessage(message) {
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,YAAY;CACJ,CAAC;AA2FX,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpC,6EAA6E;IAC7E,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,0DAA0D;IAC1D,OAAO,ocAAoc,CAAC,IAAI,CAC9c,IAAI,CACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,WAAW;IACX,aAAa;CACL,CAAC;AA2FX,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CAAC,OAAoB;IACxD,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACpC,6EAA6E;IAC7E,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,0DAA0D;IAC1D,OAAO,ocAAoc,CAAC,IAAI,CAC9c,IAAI,CACL,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type ImageBudget } from "../attachments/image-content.js";
1
2
  import type { ChatImage } from "../types.js";
2
3
  export type AttachmentKind = "text" | "image" | "document" | "binary" | "directory" | "missing";
3
4
  export interface Attachment {
@@ -31,6 +32,10 @@ export interface MentionExpansion {
31
32
  /** Context block to append to the model message, or "" if no attachments. */
32
33
  contextBlock: string;
33
34
  }
35
+ export interface ExpandMentionsOptions {
36
+ visionCapable?: boolean | undefined;
37
+ budget?: ImageBudget | undefined;
38
+ }
34
39
  export declare function imageMediaType(absPath: string): string | undefined;
35
40
  export declare function normalizeDroppedPath(token: string): string;
36
41
  export declare function formatAttachmentReference(path: string, baseDir?: string): string;
@@ -86,7 +91,7 @@ export declare function stabilizeDroppedImagesInText(text: string, baseDir?: str
86
91
  * and a context block to append to the model message. The original text is
87
92
  * preserved so the conversation history stays readable.
88
93
  */
89
- export declare function expandMentions(line: string, baseDir?: string, visionCapable?: boolean): MentionExpansion;
94
+ export declare function expandMentions(line: string, baseDir?: string, vision?: boolean | ExpandMentionsOptions): MentionExpansion;
90
95
  /**
91
96
  * Return the absolute paths of every image attachment referenced in a prompt
92
97
  * (via @-mention or drag-drop), regardless of whether the active model
@@ -95,5 +100,5 @@ export declare function expandMentions(line: string, baseDir?: string, visionCap
95
100
  */
96
101
  export declare function imageAttachmentPaths(line: string, baseDir?: string): string[];
97
102
  export declare function stabilizeImagePaths(paths: string[], baseDir?: string): string[];
98
- export declare function loadImagePaths(paths: readonly string[]): ChatImage[];
103
+ export declare function loadImagePaths(paths: readonly string[], budget?: ImageBudget, baseDir?: string): ChatImage[];
99
104
  export declare function loadImageAttachments(line: string, baseDir?: string): ChatImage[];