@ashx-j/lunr 0.2.13 → 0.2.14

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/CHANGELOG.md +10 -1
  2. package/README.md +6 -3
  3. package/dist/builtin-extensions/ashxj-tui.d.ts +16 -1
  4. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  5. package/dist/builtin-extensions/ashxj-tui.js +44 -20
  6. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  7. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +2 -0
  8. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  9. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +27 -22
  10. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  11. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  12. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +5 -2
  13. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  14. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
  15. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +12 -1
  16. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
  17. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts +1 -0
  18. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.d.ts.map +1 -1
  19. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js +3 -2
  20. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-status.js.map +1 -1
  21. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.d.ts.map +1 -1
  22. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js +1 -0
  23. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-append.js.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -1
  25. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +3 -0
  26. package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -1
  27. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.d.ts.map +1 -1
  28. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js +3 -3
  29. package/dist/builtin-extensions/pi-subagents/src/runs/background/fleet-view.js.map +1 -1
  30. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -1
  31. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +2 -2
  32. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -1
  33. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  34. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +3 -0
  35. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  36. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  37. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +7 -1
  38. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  40. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +2 -0
  41. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  42. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +1 -0
  43. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  44. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +19 -3
  45. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  46. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +10 -1
  47. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +19 -0
  49. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +1 -0
  51. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  53. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +2 -1
  54. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -1
  55. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +17 -0
  56. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -1
  57. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts +3 -1
  58. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.d.ts.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js +14 -3
  60. package/dist/builtin-extensions/pi-subagents/src/shared/formatters.js.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +14 -0
  62. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  63. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.d.ts.map +1 -1
  65. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js +2 -2
  66. package/dist/builtin-extensions/pi-subagents/src/tui/fleet.js.map +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +12 -10
  69. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  70. package/dist/catalog/models.json +1 -1
  71. package/dist/catalog/providers/amazon-bedrock.json +1 -1
  72. package/dist/catalog/providers/anthropic.json +1 -1
  73. package/dist/catalog/providers/azure-openai-responses.json +1 -1
  74. package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -1
  75. package/dist/catalog/providers/fireworks.json +1 -1
  76. package/dist/catalog/providers/github-copilot.json +1 -1
  77. package/dist/catalog/providers/google-vertex.json +1 -1
  78. package/dist/catalog/providers/google.json +1 -1
  79. package/dist/catalog/providers/groq.json +1 -1
  80. package/dist/catalog/providers/huggingface.json +1 -1
  81. package/dist/catalog/providers/nvidia.json +1 -1
  82. package/dist/catalog/providers/openai-codex.json +1 -1
  83. package/dist/catalog/providers/openai.json +1 -1
  84. package/dist/catalog/providers/opencode-go.json +1 -1
  85. package/dist/catalog/providers/opencode.json +1 -1
  86. package/dist/catalog/providers/openrouter.json +1 -1
  87. package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
  88. package/dist/catalog/publication.json +131 -3
  89. package/dist/cli/list-models.d.ts.map +1 -1
  90. package/dist/cli/list-models.js +1 -0
  91. package/dist/cli/list-models.js.map +1 -1
  92. package/dist/cli.d.ts.map +1 -1
  93. package/dist/cli.js +52 -27
  94. package/dist/cli.js.map +1 -1
  95. package/dist/core/catalog-cache-scope.d.ts +3 -0
  96. package/dist/core/catalog-cache-scope.d.ts.map +1 -0
  97. package/dist/core/catalog-cache-scope.js +12 -0
  98. package/dist/core/catalog-cache-scope.js.map +1 -0
  99. package/dist/core/catalog-merge.d.ts +2 -0
  100. package/dist/core/catalog-merge.d.ts.map +1 -1
  101. package/dist/core/catalog-merge.js +29 -2
  102. package/dist/core/catalog-merge.js.map +1 -1
  103. package/dist/core/catalog-refresh-polling.d.ts +8 -0
  104. package/dist/core/catalog-refresh-polling.d.ts.map +1 -0
  105. package/dist/core/catalog-refresh-polling.js +30 -0
  106. package/dist/core/catalog-refresh-polling.js.map +1 -0
  107. package/dist/core/codex-catalog.d.ts +3 -0
  108. package/dist/core/codex-catalog.d.ts.map +1 -0
  109. package/dist/core/codex-catalog.js +15 -0
  110. package/dist/core/codex-catalog.js.map +1 -0
  111. package/dist/core/customize.d.ts +2 -4
  112. package/dist/core/customize.d.ts.map +1 -1
  113. package/dist/core/customize.js +2 -8
  114. package/dist/core/customize.js.map +1 -1
  115. package/dist/core/footer-data-provider.d.ts +3 -4
  116. package/dist/core/footer-data-provider.d.ts.map +1 -1
  117. package/dist/core/footer-data-provider.js +54 -82
  118. package/dist/core/footer-data-provider.js.map +1 -1
  119. package/dist/core/live-catalog.d.ts +5 -2
  120. package/dist/core/live-catalog.d.ts.map +1 -1
  121. package/dist/core/live-catalog.js +108 -27
  122. package/dist/core/live-catalog.js.map +1 -1
  123. package/dist/core/model-runtime.d.ts +8 -0
  124. package/dist/core/model-runtime.d.ts.map +1 -1
  125. package/dist/core/model-runtime.js +64 -12
  126. package/dist/core/model-runtime.js.map +1 -1
  127. package/dist/core/official-catalog.d.ts +4 -0
  128. package/dist/core/official-catalog.d.ts.map +1 -1
  129. package/dist/core/official-catalog.js +86 -21
  130. package/dist/core/official-catalog.js.map +1 -1
  131. package/dist/core/settings-manager.d.ts +0 -6
  132. package/dist/core/settings-manager.d.ts.map +1 -1
  133. package/dist/core/settings-manager.js +0 -17
  134. package/dist/core/settings-manager.js.map +1 -1
  135. package/dist/core/slash-commands.d.ts.map +1 -1
  136. package/dist/core/slash-commands.js +1 -0
  137. package/dist/core/slash-commands.js.map +1 -1
  138. package/dist/main.d.ts +2 -0
  139. package/dist/main.d.ts.map +1 -1
  140. package/dist/main.js +106 -50
  141. package/dist/main.js.map +1 -1
  142. package/dist/migrations.d.ts +2 -0
  143. package/dist/migrations.d.ts.map +1 -1
  144. package/dist/migrations.js +14 -4
  145. package/dist/migrations.js.map +1 -1
  146. package/dist/modes/interactive/components/assistant-message.d.ts +1 -3
  147. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  148. package/dist/modes/interactive/components/assistant-message.js +4 -32
  149. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  150. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  151. package/dist/modes/interactive/components/custom-editor.js +2 -1
  152. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  153. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  154. package/dist/modes/interactive/components/model-selector.js +4 -1
  155. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  156. package/dist/modes/interactive/components/plan-message.d.ts +1 -3
  157. package/dist/modes/interactive/components/plan-message.d.ts.map +1 -1
  158. package/dist/modes/interactive/components/plan-message.js +1 -16
  159. package/dist/modes/interactive/components/plan-message.js.map +1 -1
  160. package/dist/modes/interactive/components/settings-selector.d.ts +0 -4
  161. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  162. package/dist/modes/interactive/components/settings-selector.js +10 -30
  163. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  164. package/dist/modes/interactive/components/user-message.d.ts +1 -3
  165. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  166. package/dist/modes/interactive/components/user-message.js +2 -19
  167. package/dist/modes/interactive/components/user-message.js.map +1 -1
  168. package/dist/modes/interactive/interactive-mode.d.ts +12 -1
  169. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  170. package/dist/modes/interactive/interactive-mode.js +137 -127
  171. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  172. package/dist/modes/interactive/theme/moon.json +0 -1
  173. package/dist/modes/interactive/theme/theme-schema.json +3 -3
  174. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  175. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  176. package/dist/modes/interactive/theme/theme.js +95 -90
  177. package/dist/modes/interactive/theme/theme.js.map +1 -1
  178. package/dist/startup/interactive-view.d.ts +55 -0
  179. package/dist/startup/interactive-view.d.ts.map +1 -0
  180. package/dist/startup/interactive-view.js +332 -0
  181. package/dist/startup/interactive-view.js.map +1 -0
  182. package/dist/startup/launch-routing.d.ts +8 -0
  183. package/dist/startup/launch-routing.d.ts.map +1 -0
  184. package/dist/startup/launch-routing.js +29 -0
  185. package/dist/startup/launch-routing.js.map +1 -0
  186. package/dist/startup/startup-milestones.d.ts +4 -0
  187. package/dist/startup/startup-milestones.d.ts.map +1 -0
  188. package/dist/startup/startup-milestones.js +14 -0
  189. package/dist/startup/startup-milestones.js.map +1 -0
  190. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  191. package/dist/utils/syntax-highlight.js +10 -4
  192. package/dist/utils/syntax-highlight.js.map +1 -1
  193. package/docs/features.md +2 -2
  194. package/docs/interactive-startup.md +58 -0
  195. package/docs/keybindings.md +1 -1
  196. package/docs/model-catalog.md +29 -0
  197. package/docs/quickstart.md +1 -1
  198. package/docs/settings.md +1 -3
  199. package/docs/terminal-setup.md +2 -2
  200. package/docs/usage.md +2 -1
  201. package/docs/windows.md +1 -1
  202. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  203. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  204. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  205. package/examples/extensions/gondolin/package-lock.json +2 -2
  206. package/examples/extensions/gondolin/package.json +1 -1
  207. package/examples/extensions/sandbox/package-lock.json +2 -2
  208. package/examples/extensions/sandbox/package.json +1 -1
  209. package/examples/extensions/with-deps/package-lock.json +2 -2
  210. package/examples/extensions/with-deps/package.json +1 -1
  211. package/package.json +16 -16
@@ -11,24 +11,17 @@ export class UserMessageComponent extends Container {
11
11
  text;
12
12
  markdownTheme;
13
13
  outputPad;
14
- // lunr: gutter rail — prefix rendered lines with a dim │ (last line when this
15
- // component closes a turn; user messages open the rail so all lines use │).
16
- gutterRail;
17
- constructor(text, markdownTheme = getMarkdownTheme(), outputPad = 1, gutterRail = false) {
14
+ constructor(text, markdownTheme = getMarkdownTheme(), outputPad = 1) {
18
15
  super();
19
16
  this.text = text;
20
17
  this.markdownTheme = markdownTheme;
21
18
  this.outputPad = outputPad;
22
- this.gutterRail = gutterRail;
23
19
  this.rebuild();
24
20
  }
25
21
  setOutputPad(padding) {
26
22
  this.outputPad = padding;
27
23
  this.rebuild();
28
24
  }
29
- setGutterRail(enabled) {
30
- this.gutterRail = enabled;
31
- }
32
25
  rebuild() {
33
26
  this.clear();
34
27
  const contentBox = new Box(this.outputPad, 1, (content) => theme.bg("userMessageBg", content));
@@ -41,22 +34,12 @@ export class UserMessageComponent extends Container {
41
34
  this.addChild(contentBox);
42
35
  }
43
36
  render(width) {
44
- // lunr: gutter rail — render content at width-2 and prefix each line with a
45
- // dim │ so a thin rail runs down the left of the user message.
46
- const railEnabled = this.gutterRail;
47
- const contentWidth = railEnabled ? Math.max(1, width - 2) : width;
48
- const lines = super.render(contentWidth);
37
+ const lines = super.render(width);
49
38
  if (lines.length === 0) {
50
39
  return lines;
51
40
  }
52
41
  lines[0] = OSC133_ZONE_START + lines[0];
53
42
  lines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];
54
- if (railEnabled) {
55
- const rail = theme.fg("dim", "│ ");
56
- for (let i = 0; i < lines.length; i++) {
57
- lines[i] = rail + lines[i];
58
- }
59
- }
60
43
  return lines;
61
44
  }
62
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"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","sourcesContent":["import { Box, Container, Markdown, type MarkdownTheme } from \"@ashx-j/lunr-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.ts\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\nconst OSC133_ZONE_FINAL = \"\\x1b]133;C\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tselectable = true;\n\tprivate text: string;\n\tprivate markdownTheme: MarkdownTheme;\n\tprivate outputPad: number;\n\t// lunr: gutter rail — prefix rendered lines with a dim │ (last line ╰ when this\n\t// component closes a turn; user messages open the rail so all lines use │).\n\tprivate gutterRail: boolean;\n\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme(), outputPad = 1, gutterRail = false) {\n\t\tsuper();\n\t\tthis.text = text;\n\t\tthis.markdownTheme = markdownTheme;\n\t\tthis.outputPad = outputPad;\n\t\tthis.gutterRail = gutterRail;\n\t\tthis.rebuild();\n\t}\n\n\tsetOutputPad(padding: number): void {\n\t\tthis.outputPad = padding;\n\t\tthis.rebuild();\n\t}\n\n\tsetGutterRail(enabled: boolean): void {\n\t\tthis.gutterRail = enabled;\n\t}\n\n\tprivate rebuild(): void {\n\t\tthis.clear();\n\t\tconst contentBox = new Box(this.outputPad, 1, (content: string) => theme.bg(\"userMessageBg\", content));\n\t\t// lunr: leading ● marks the first line of a user message. Kept uncolored in the\n\t\t// markdown source so the message's own text color applies (white in moon theme);\n\t\t// embedding ANSI here would strip the text color from the rest of the paragraph.\n\t\tcontentBox.addChild(\n\t\t\tnew Markdown(\n\t\t\t\t`● ${this.text}`,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tthis.markdownTheme,\n\t\t\t\t{\n\t\t\t\t\tcolor: (content: string) => theme.fg(\"userMessageText\", content),\n\t\t\t\t},\n\t\t\t\t{ preserveOrderedListMarkers: true, preserveBackslashEscapes: true },\n\t\t\t),\n\t\t);\n\t\tthis.addChild(contentBox);\n\t}\n\n\toverride render(width: number): string[] {\n\t\t// lunr: gutter rail — render content at width-2 and prefix each line with a\n\t\t// dim │ so a thin rail runs down the left of the user message.\n\t\tconst railEnabled = this.gutterRail;\n\t\tconst contentWidth = railEnabled ? Math.max(1, width - 2) : width;\n\t\tconst lines = super.render(contentWidth);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];\n\n\t\tif (railEnabled) {\n\t\t\tconst rail = theme.fg(\"dim\", \"│ \");\n\t\t\tfor (let i = 0; i < lines.length; i++) {\n\t\t\t\tlines[i] = rail + lines[i];\n\t\t\t}\n\t\t}\n\t\treturn lines;\n\t}\n}\n"]}
1
+ {"version":3,"file":"user-message.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/user-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAsB,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAClD,UAAU,GAAG,IAAI,CAAC;IACV,IAAI,CAAS;IACb,aAAa,CAAgB;IAC7B,SAAS,CAAS;IAE1B,YAAY,IAAY,EAAE,aAAa,GAAkB,gBAAgB,EAAE,EAAE,SAAS,GAAG,CAAC,EAAE;QAC3F,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;IAAA,CACf;IAED,YAAY,CAAC,OAAe,EAAQ;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IAAA,CACf;IAEO,OAAO,GAAS;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvG,kFAAgF;QAChF,iFAAiF;QACjF,iFAAiF;QACjF,UAAU,CAAC,QAAQ,CAClB,IAAI,QAAQ,CACX,OAAK,IAAI,CAAC,IAAI,EAAE,EAChB,CAAC,EACD,CAAC,EACD,IAAI,CAAC,aAAa,EAClB;YACC,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC;SAChE,EACD,EAAE,0BAA0B,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACpE,CACD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAAA,CAC1B;IAEQ,MAAM,CAAC,KAAa,EAAY;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe,GAAG,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExF,OAAO,KAAK,CAAC;IAAA,CACb;CACD","sourcesContent":["import { Box, Container, Markdown, type MarkdownTheme } from \"@ashx-j/lunr-tui\";\nimport { getMarkdownTheme, theme } from \"../theme/theme.ts\";\n\nconst OSC133_ZONE_START = \"\\x1b]133;A\\x07\";\nconst OSC133_ZONE_END = \"\\x1b]133;B\\x07\";\nconst OSC133_ZONE_FINAL = \"\\x1b]133;C\\x07\";\n\n/**\n * Component that renders a user message\n */\nexport class UserMessageComponent extends Container {\n\tselectable = true;\n\tprivate text: string;\n\tprivate markdownTheme: MarkdownTheme;\n\tprivate outputPad: number;\n\n\tconstructor(text: string, markdownTheme: MarkdownTheme = getMarkdownTheme(), outputPad = 1) {\n\t\tsuper();\n\t\tthis.text = text;\n\t\tthis.markdownTheme = markdownTheme;\n\t\tthis.outputPad = outputPad;\n\t\tthis.rebuild();\n\t}\n\n\tsetOutputPad(padding: number): void {\n\t\tthis.outputPad = padding;\n\t\tthis.rebuild();\n\t}\n\n\tprivate rebuild(): void {\n\t\tthis.clear();\n\t\tconst contentBox = new Box(this.outputPad, 1, (content: string) => theme.bg(\"userMessageBg\", content));\n\t\t// lunr: leading ● marks the first line of a user message. Kept uncolored in the\n\t\t// markdown source so the message's own text color applies (white in moon theme);\n\t\t// embedding ANSI here would strip the text color from the rest of the paragraph.\n\t\tcontentBox.addChild(\n\t\t\tnew Markdown(\n\t\t\t\t`● ${this.text}`,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tthis.markdownTheme,\n\t\t\t\t{\n\t\t\t\t\tcolor: (content: string) => theme.fg(\"userMessageText\", content),\n\t\t\t\t},\n\t\t\t\t{ preserveOrderedListMarkers: true, preserveBackslashEscapes: true },\n\t\t\t),\n\t\t);\n\t\tthis.addChild(contentBox);\n\t}\n\n\toverride render(width: number): string[] {\n\t\tconst lines = super.render(width);\n\t\tif (lines.length === 0) {\n\t\t\treturn lines;\n\t\t}\n\n\t\tlines[0] = OSC133_ZONE_START + lines[0];\n\t\tlines[lines.length - 1] = OSC133_ZONE_END + OSC133_ZONE_FINAL + lines[lines.length - 1];\n\n\t\treturn lines;\n\t}\n}\n"]}
@@ -4,8 +4,10 @@
4
4
  */
5
5
  import { type ImageContent } from "@ashx-j/lunr-ai/compat";
6
6
  import { type AgentSessionRuntime } from "../../core/agent-session-runtime.ts";
7
+ import type { AgentSessionRuntimeDiagnostic } from "../../core/agent-session-services.ts";
7
8
  import type { InlineExtension } from "../../core/extensions/index.ts";
8
9
  import { SessionManager } from "../../core/session-manager.ts";
10
+ import type { InteractiveView } from "../../startup/interactive-view.ts";
9
11
  type QueuedUserInput = {
10
12
  text: string;
11
13
  images?: ImageContent[];
@@ -15,6 +17,10 @@ export declare function formatResumeCommand(sessionManager: SessionManager): str
15
17
  * Options for InteractiveMode initialization.
16
18
  */
17
19
  export interface InteractiveModeOptions {
20
+ startupView?: InteractiveView;
21
+ startupDiagnostics?: AgentSessionRuntimeDiagnostic[];
22
+ deprecationWarnings?: string[];
23
+ deferredMaintenance?: () => Promise<void>;
18
24
  /** Providers that were migrated to auth.json (shows warning) */
19
25
  migratedProviders?: string[];
20
26
  /** Warning message if session model couldn't be restored */
@@ -34,6 +40,8 @@ export interface InteractiveModeOptions {
34
40
  /** Persist attached factories so /new and /resume recreate the full roster. */
35
41
  onDeferredBuiltinsAttached?: (factories: InlineExtension[]) => void;
36
42
  }
43
+ type EnsureInteractiveTool = (tool: "fd" | "rg", silent?: boolean) => Promise<string | undefined>;
44
+ export declare function startInteractiveToolInstalls(currentFdPath: string | undefined, onFdInstalled: (fdPath: string) => void, installer?: EnsureInteractiveTool): Promise<void>;
37
45
  export declare class InteractiveMode {
38
46
  private runtimeHost;
39
47
  private ui;
@@ -53,6 +61,7 @@ export declare class InteractiveMode {
53
61
  private keybindings;
54
62
  private version;
55
63
  private isInitialized;
64
+ private stopCatalogRefresh;
56
65
  private onInputCallback?;
57
66
  private pendingUserInputs;
58
67
  private stagedSubmitImages;
@@ -113,6 +122,8 @@ export declare class InteractiveMode {
113
122
  private autoTrustOnReloadCwd;
114
123
  private themeController;
115
124
  private deferredBuiltinsAttached;
125
+ private startupReadyPromise?;
126
+ private startupFeatureError?;
116
127
  private deferredBuiltinAttachPromise;
117
128
  private get session();
118
129
  private get agent();
@@ -125,6 +136,7 @@ export declare class InteractiveMode {
125
136
  private createBaseAutocompleteProvider;
126
137
  private setupAutocompleteProvider;
127
138
  init(): Promise<void>;
139
+ waitForStartupReady(): Promise<void>;
128
140
  /** Wait until deferred builtins have attached (or were skipped). */
129
141
  waitForDeferredBuiltins(): Promise<void>;
130
142
  private planUsageTimer;
@@ -381,7 +393,6 @@ export declare class InteractiveMode {
381
393
  private showSettingsSelector;
382
394
  private handleModelCommand;
383
395
  private handleRefreshCommand;
384
- private promptIncompleteModelDetails;
385
396
  private findExactModelMatch;
386
397
  /** Resolve a "provider/model" settings string to a runtime model, if it still exists. */
387
398
  private resolveModelReference;