@astralyn/pi 0.87.5 → 0.87.6

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 (173) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/bundle/chunks/{chunk-EWLAVDVN.js → chunk-4W4Q2H6W.js} +55 -54
  3. package/dist/bundle/chunks/{chunk-APQ4ACY3.js → chunk-IORR2FW4.js} +1 -1
  4. package/dist/bundle/chunks/{virtual-modules-W3OGMIX7.js → virtual-modules-KUEIEAZN.js} +1 -1
  5. package/dist/bundle/cli.js +1 -1
  6. package/dist/bundle/index.js +1 -1
  7. package/dist/bundle/rpc-entry.js +1 -1
  8. package/dist/core/agent-session.d.ts +8 -24
  9. package/dist/core/agent-session.d.ts.map +1 -1
  10. package/dist/core/agent-session.js +54 -109
  11. package/dist/core/agent-session.js.map +1 -1
  12. package/dist/core/background/session.d.ts +11 -7
  13. package/dist/core/background/session.d.ts.map +1 -1
  14. package/dist/core/background/session.js +42 -16
  15. package/dist/core/background/session.js.map +1 -1
  16. package/dist/core/context-snapshot.d.ts +17 -4
  17. package/dist/core/context-snapshot.d.ts.map +1 -1
  18. package/dist/core/context-snapshot.js +48 -50
  19. package/dist/core/context-snapshot.js.map +1 -1
  20. package/dist/core/extensions/distribution-api.d.ts +0 -7
  21. package/dist/core/extensions/distribution-api.d.ts.map +1 -1
  22. package/dist/core/extensions/distribution-api.js +6 -6
  23. package/dist/core/extensions/distribution-api.js.map +1 -1
  24. package/dist/core/extensions/index.d.ts +1 -1
  25. package/dist/core/extensions/index.d.ts.map +1 -1
  26. package/dist/core/extensions/index.js +1 -1
  27. package/dist/core/extensions/index.js.map +1 -1
  28. package/dist/core/extensions/loader.d.ts +1 -1
  29. package/dist/core/extensions/loader.d.ts.map +1 -1
  30. package/dist/core/extensions/loader.js +3 -2
  31. package/dist/core/extensions/loader.js.map +1 -1
  32. package/dist/core/extensions/types.d.ts +1 -5
  33. package/dist/core/extensions/types.d.ts.map +1 -1
  34. package/dist/core/extensions/types.js +1 -1
  35. package/dist/core/extensions/types.js.map +1 -1
  36. package/dist/core/keybindings.d.ts +10 -0
  37. package/dist/core/keybindings.d.ts.map +1 -1
  38. package/dist/core/keybindings.js +3 -0
  39. package/dist/core/keybindings.js.map +1 -1
  40. package/dist/core/sdk.d.ts.map +1 -1
  41. package/dist/core/sdk.js +59 -7
  42. package/dist/core/sdk.js.map +1 -1
  43. package/dist/core/tools/bash.d.ts +1 -3
  44. package/dist/core/tools/bash.d.ts.map +1 -1
  45. package/dist/core/tools/bash.js.map +1 -1
  46. package/dist/core/tools/find.d.ts.map +1 -1
  47. package/dist/core/tools/find.js +0 -1
  48. package/dist/core/tools/find.js.map +1 -1
  49. package/dist/core/tools/grep.d.ts.map +1 -1
  50. package/dist/core/tools/grep.js +0 -1
  51. package/dist/core/tools/grep.js.map +1 -1
  52. package/dist/core/tools/ls.d.ts.map +1 -1
  53. package/dist/core/tools/ls.js +0 -1
  54. package/dist/core/tools/ls.js.map +1 -1
  55. package/dist/core/tools/read.d.ts.map +1 -1
  56. package/dist/core/tools/read.js +0 -1
  57. package/dist/core/tools/read.js.map +1 -1
  58. package/dist/core/tools/render-utils.d.ts +0 -7
  59. package/dist/core/tools/render-utils.d.ts.map +1 -1
  60. package/dist/core/tools/render-utils.js +0 -11
  61. package/dist/core/tools/render-utils.js.map +1 -1
  62. package/dist/core/tools/renderers/bash.d.ts.map +1 -1
  63. package/dist/core/tools/renderers/bash.js +59 -5
  64. package/dist/core/tools/renderers/bash.js.map +1 -1
  65. package/dist/core/tools/renderers/edit.d.ts.map +1 -1
  66. package/dist/core/tools/renderers/edit.js +4 -22
  67. package/dist/core/tools/renderers/edit.js.map +1 -1
  68. package/dist/core/tools/renderers/find.d.ts.map +1 -1
  69. package/dist/core/tools/renderers/find.js +7 -6
  70. package/dist/core/tools/renderers/find.js.map +1 -1
  71. package/dist/core/tools/renderers/grep.d.ts.map +1 -1
  72. package/dist/core/tools/renderers/grep.js +8 -7
  73. package/dist/core/tools/renderers/grep.js.map +1 -1
  74. package/dist/core/tools/renderers/ls.d.ts.map +1 -1
  75. package/dist/core/tools/renderers/ls.js +3 -2
  76. package/dist/core/tools/renderers/ls.js.map +1 -1
  77. package/dist/core/tools/renderers/read.d.ts.map +1 -1
  78. package/dist/core/tools/renderers/read.js +7 -12
  79. package/dist/core/tools/renderers/read.js.map +1 -1
  80. package/dist/core/tools/renderers/write.d.ts.map +1 -1
  81. package/dist/core/tools/renderers/write.js +3 -2
  82. package/dist/core/tools/renderers/write.js.map +1 -1
  83. package/dist/core/tools/tool-definition-wrapper.d.ts +2 -6
  84. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  85. package/dist/core/tools/tool-definition-wrapper.js +0 -2
  86. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  87. package/dist/extensions/background/completion-render.d.ts.map +1 -1
  88. package/dist/extensions/background/completion-render.js +3 -4
  89. package/dist/extensions/background/completion-render.js.map +1 -1
  90. package/dist/extensions/background/constants.d.ts +2 -0
  91. package/dist/extensions/background/constants.d.ts.map +1 -1
  92. package/dist/extensions/background/constants.js +2 -0
  93. package/dist/extensions/background/constants.js.map +1 -1
  94. package/dist/extensions/background/index.d.ts.map +1 -1
  95. package/dist/extensions/background/index.js +31 -5
  96. package/dist/extensions/background/index.js.map +1 -1
  97. package/dist/extensions/question/detail-pane.d.ts +12 -0
  98. package/dist/extensions/question/detail-pane.d.ts.map +1 -0
  99. package/dist/extensions/question/detail-pane.js +42 -0
  100. package/dist/extensions/question/detail-pane.js.map +1 -0
  101. package/dist/extensions/question/dialog.d.ts.map +1 -1
  102. package/dist/extensions/question/dialog.js +175 -105
  103. package/dist/extensions/question/dialog.js.map +1 -1
  104. package/dist/extensions/question/option-window.d.ts +26 -0
  105. package/dist/extensions/question/option-window.d.ts.map +1 -0
  106. package/dist/extensions/question/option-window.js +53 -0
  107. package/dist/extensions/question/option-window.js.map +1 -0
  108. package/dist/extensions/question/render-cache.d.ts +4 -4
  109. package/dist/extensions/question/render-cache.d.ts.map +1 -1
  110. package/dist/extensions/question/render-cache.js +10 -11
  111. package/dist/extensions/question/render-cache.js.map +1 -1
  112. package/dist/extensions/todo/index.d.ts.map +1 -1
  113. package/dist/extensions/todo/index.js +12 -8
  114. package/dist/extensions/todo/index.js.map +1 -1
  115. package/dist/extensions/todo/view.d.ts +3 -3
  116. package/dist/extensions/todo/view.d.ts.map +1 -1
  117. package/dist/extensions/todo/view.js +7 -6
  118. package/dist/extensions/todo/view.js.map +1 -1
  119. package/dist/modes/interactive/components/index.d.ts +1 -1
  120. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  121. package/dist/modes/interactive/components/index.js +1 -1
  122. package/dist/modes/interactive/components/index.js.map +1 -1
  123. package/dist/modes/interactive/components/status-marker.d.ts +2 -2
  124. package/dist/modes/interactive/components/status-marker.js +2 -2
  125. package/dist/modes/interactive/components/status-marker.js.map +1 -1
  126. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  127. package/dist/modes/interactive/interactive-mode.js +7 -10
  128. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  129. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  130. package/dist/modes/interactive/theme/theme.js +2 -3
  131. package/dist/modes/interactive/theme/theme.js.map +1 -1
  132. package/dist/modes/interactive/tool-view/chat.d.ts +20 -0
  133. package/dist/modes/interactive/tool-view/chat.d.ts.map +1 -0
  134. package/dist/modes/interactive/tool-view/chat.js +46 -0
  135. package/dist/modes/interactive/tool-view/chat.js.map +1 -0
  136. package/dist/modes/interactive/tool-view/fallback.d.ts +14 -0
  137. package/dist/modes/interactive/tool-view/fallback.d.ts.map +1 -0
  138. package/dist/modes/interactive/tool-view/fallback.js +52 -0
  139. package/dist/modes/interactive/tool-view/fallback.js.map +1 -0
  140. package/dist/modes/interactive/tool-view/style.d.ts +63 -0
  141. package/dist/modes/interactive/tool-view/style.d.ts.map +1 -0
  142. package/dist/modes/interactive/tool-view/style.js +83 -0
  143. package/dist/modes/interactive/tool-view/style.js.map +1 -0
  144. package/dist/modes/interactive/{components → tool-view}/tool-execution.d.ts +17 -24
  145. package/dist/modes/interactive/tool-view/tool-execution.d.ts.map +1 -0
  146. package/dist/modes/interactive/{components → tool-view}/tool-execution.js +42 -116
  147. package/dist/modes/interactive/tool-view/tool-execution.js.map +1 -0
  148. package/docs/bundled/README.md +1 -1
  149. package/docs/bundled/extensions/background.md +1 -1
  150. package/docs/bundled/extensions/question.md +6 -5
  151. package/docs/bundled/tool-presentation.md +41 -31
  152. package/docs/extensions.md +1 -4
  153. package/docs/keybindings.md +11 -0
  154. package/npm-shrinkwrap.json +2 -2
  155. package/package.json +1 -1
  156. package/dist/core/model-stream-options.d.ts +0 -6
  157. package/dist/core/model-stream-options.d.ts.map +0 -1
  158. package/dist/core/model-stream-options.js +0 -20
  159. package/dist/core/model-stream-options.js.map +0 -1
  160. package/dist/modes/interactive/components/tool-chrome.d.ts +0 -28
  161. package/dist/modes/interactive/components/tool-chrome.d.ts.map +0 -1
  162. package/dist/modes/interactive/components/tool-chrome.js +0 -84
  163. package/dist/modes/interactive/components/tool-chrome.js.map +0 -1
  164. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  165. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  166. package/dist/modes/interactive/components/tool-group.d.ts +0 -17
  167. package/dist/modes/interactive/components/tool-group.d.ts.map +0 -1
  168. package/dist/modes/interactive/components/tool-group.js +0 -78
  169. package/dist/modes/interactive/components/tool-group.js.map +0 -1
  170. package/dist/modes/interactive/tool-chat.d.ts +0 -21
  171. package/dist/modes/interactive/tool-chat.d.ts.map +0 -1
  172. package/dist/modes/interactive/tool-chat.js +0 -58
  173. package/dist/modes/interactive/tool-chat.js.map +0 -1
@@ -1,78 +0,0 @@
1
- import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
2
- import { theme } from "../theme/theme.js";
3
- import { keyText } from "./keybinding-hints.js";
4
- export class ToolGroupComponent {
5
- constructor(toolGroup, tools = []) {
6
- this.tools = [];
7
- this.expanded = false;
8
- this.toolGroup = toolGroup;
9
- for (const tool of tools) {
10
- this.addTool(tool);
11
- }
12
- }
13
- addTool(tool) {
14
- tool.setExpanded(this.expanded);
15
- this.tools.push(tool);
16
- }
17
- setExpanded(expanded) {
18
- this.expanded = expanded;
19
- for (const tool of this.tools) {
20
- tool.setExpanded(expanded);
21
- }
22
- }
23
- setShowImages(show) {
24
- for (const tool of this.tools) {
25
- tool.setShowImages(show);
26
- }
27
- }
28
- setImageWidthCells(width) {
29
- for (const tool of this.tools) {
30
- tool.setImageWidthCells(width);
31
- }
32
- }
33
- invalidate() {
34
- for (const tool of this.tools) {
35
- tool.invalidate();
36
- }
37
- }
38
- dispose() {
39
- for (const tool of this.tools) {
40
- tool.dispose();
41
- }
42
- }
43
- render(width) {
44
- if (this.tools.length === 0)
45
- return [];
46
- const safeWidth = Math.max(1, width);
47
- if (this.expanded) {
48
- return this.tools.flatMap((tool) => tool.render(safeWidth));
49
- }
50
- return ["", ...this.renderCollapsed(safeWidth)];
51
- }
52
- renderCollapsed(width) {
53
- const lines = this.tools.flatMap((tool) => tool.renderCallSummary(width).map((line) => line.replace(/[ \t]+$/g, "")));
54
- for (let i = lines.length - 1; i >= 0; i--) {
55
- if (lines[i].trim().length > 0) {
56
- const hint = theme.fg("dim", ` (${keyText("app.tools.expand")} to expand)`);
57
- const hintWidth = visibleWidth(hint);
58
- lines[i] =
59
- hintWidth >= width
60
- ? truncateToWidth(hint, width, "...")
61
- : truncateToWidth(lines[i], width - hintWidth, "...") + hint;
62
- break;
63
- }
64
- }
65
- if (this.toolGroup === "explore") {
66
- let error;
67
- for (let index = this.tools.length - 1; index >= 0; index--) {
68
- error = this.tools[index]?.getFinalErrorSummary();
69
- if (error)
70
- break;
71
- }
72
- if (error)
73
- lines.push(truncateToWidth(theme.fg("error", ` ${error}`), width, "..."));
74
- }
75
- return lines;
76
- }
77
- }
78
- //# sourceMappingURL=tool-group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-group.js","sourceRoot":"","sources":["../../../../src/modes/interactive/components/tool-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Component, truncateToWidth, visibleWidth } from \"@earendil-works/pi-tui\";\nimport { theme } from \"../theme/theme.ts\";\nimport { keyText } from \"./keybinding-hints.ts\";\nimport type { ToolExecutionComponent } from \"./tool-execution.ts\";\n\nexport class ToolGroupComponent implements Component {\n\treadonly toolGroup: string;\n\tprivate readonly tools: ToolExecutionComponent[] = [];\n\tprivate expanded = false;\n\n\tconstructor(toolGroup: string, tools: ToolExecutionComponent[] = []) {\n\t\tthis.toolGroup = toolGroup;\n\t\tfor (const tool of tools) {\n\t\t\tthis.addTool(tool);\n\t\t}\n\t}\n\n\taddTool(tool: ToolExecutionComponent): void {\n\t\ttool.setExpanded(this.expanded);\n\t\tthis.tools.push(tool);\n\t}\n\n\tsetExpanded(expanded: boolean): void {\n\t\tthis.expanded = expanded;\n\t\tfor (const tool of this.tools) {\n\t\t\ttool.setExpanded(expanded);\n\t\t}\n\t}\n\n\tsetShowImages(show: boolean): void {\n\t\tfor (const tool of this.tools) {\n\t\t\ttool.setShowImages(show);\n\t\t}\n\t}\n\n\tsetImageWidthCells(width: number): void {\n\t\tfor (const tool of this.tools) {\n\t\t\ttool.setImageWidthCells(width);\n\t\t}\n\t}\n\n\tinvalidate(): void {\n\t\tfor (const tool of this.tools) {\n\t\t\ttool.invalidate();\n\t\t}\n\t}\n\n\tdispose(): void {\n\t\tfor (const tool of this.tools) {\n\t\t\ttool.dispose();\n\t\t}\n\t}\n\n\trender(width: number): string[] {\n\t\tif (this.tools.length === 0) return [];\n\n\t\tconst safeWidth = Math.max(1, width);\n\t\tif (this.expanded) {\n\t\t\treturn this.tools.flatMap((tool) => tool.render(safeWidth));\n\t\t}\n\n\t\treturn [\"\", ...this.renderCollapsed(safeWidth)];\n\t}\n\n\tprivate renderCollapsed(width: number): string[] {\n\t\tconst lines = this.tools.flatMap((tool) =>\n\t\t\ttool.renderCallSummary(width).map((line) => line.replace(/[ \\t]+$/g, \"\")),\n\t\t);\n\t\tfor (let i = lines.length - 1; i >= 0; i--) {\n\t\t\tif (lines[i]!.trim().length > 0) {\n\t\t\t\tconst hint = theme.fg(\"dim\", ` (${keyText(\"app.tools.expand\")} to expand)`);\n\t\t\t\tconst hintWidth = visibleWidth(hint);\n\t\t\t\tlines[i] =\n\t\t\t\t\thintWidth >= width\n\t\t\t\t\t\t? truncateToWidth(hint, width, \"...\")\n\t\t\t\t\t\t: truncateToWidth(lines[i], width - hintWidth, \"...\") + hint;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.toolGroup === \"explore\") {\n\t\t\tlet error: string | undefined;\n\t\t\tfor (let index = this.tools.length - 1; index >= 0; index--) {\n\t\t\t\terror = this.tools[index]?.getFinalErrorSummary();\n\t\t\t\tif (error) break;\n\t\t\t}\n\t\t\tif (error) lines.push(truncateToWidth(theme.fg(\"error\", ` ${error}`), width, \"...\"));\n\t\t}\n\t\treturn lines;\n\t}\n}\n"]}
@@ -1,21 +0,0 @@
1
- import { type Component, Container } from "@earendil-works/pi-tui";
2
- import type { KeybindingsManager } from "../../core/keybindings.ts";
3
- import { ToolExecutionComponent, type ToolExecutionOptions } from "./components/tool-execution.ts";
4
- import { ToolGroupComponent } from "./components/tool-group.ts";
5
- /** Chat container whose clear() disposes tool rows, so renderer timers never outlive them. */
6
- export declare class ToolChatContainer extends Container {
7
- clear(): void;
8
- }
9
- /** Pending tool rows by call ID; clear() disposes the rows it forgets. */
10
- export declare class PendingToolMap extends Map<string, ToolExecutionComponent> {
11
- clear(): void;
12
- }
13
- /** Dispose every row still shown, for mode shutdown where the chat is not cleared. */
14
- export declare function disposeChatRows(chat: Container): void;
15
- /** Chat children that host tool presentation and share image display settings. */
16
- export declare function isToolChatComponent(child: Component): child is ToolExecutionComponent | ToolGroupComponent;
17
- /** Append a tool row, folding consecutive rows that share a toolGroup into one group row. */
18
- export declare function appendToolRow(chat: Container, component: ToolExecutionComponent, expanded: boolean): void;
19
- /** Detach hint for rows BackgroundService.detachForeground() can move: shell tools and subagents. */
20
- export declare function toolDetachHint(keybindings: KeybindingsManager): ToolExecutionOptions["detachHint"];
21
- //# sourceMappingURL=tool-chat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-chat.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/tool-chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAShE,8FAA8F;AAC9F,qBAAa,iBAAkB,SAAQ,SAAS;IACtC,KAAK,IAAI,IAAI;CAItB;AAED,0EAA0E;AAC1E,qBAAa,cAAe,SAAQ,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAC7D,KAAK,IAAI,IAAI;CAItB;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAErD;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,sBAAsB,GAAG,kBAAkB,CAE1G;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAezG;AAED,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,WAAW,EAAE,kBAAkB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAKlG"}
@@ -1,58 +0,0 @@
1
- import { Container } from "@earendil-works/pi-tui";
2
- import { keyLabel } from "./components/keybinding-hints.js";
3
- import { ToolExecutionComponent } from "./components/tool-execution.js";
4
- import { ToolGroupComponent } from "./components/tool-group.js";
5
- function disposeAll(components) {
6
- for (const component of components) {
7
- const disposable = component;
8
- if (typeof disposable.dispose === "function")
9
- disposable.dispose();
10
- }
11
- }
12
- /** Chat container whose clear() disposes tool rows, so renderer timers never outlive them. */
13
- export class ToolChatContainer extends Container {
14
- clear() {
15
- disposeAll(this.children);
16
- super.clear();
17
- }
18
- }
19
- /** Pending tool rows by call ID; clear() disposes the rows it forgets. */
20
- export class PendingToolMap extends Map {
21
- clear() {
22
- disposeAll(this.values());
23
- super.clear();
24
- }
25
- }
26
- /** Dispose every row still shown, for mode shutdown where the chat is not cleared. */
27
- export function disposeChatRows(chat) {
28
- disposeAll(chat.children);
29
- }
30
- /** Chat children that host tool presentation and share image display settings. */
31
- export function isToolChatComponent(child) {
32
- return child instanceof ToolExecutionComponent || child instanceof ToolGroupComponent;
33
- }
34
- /** Append a tool row, folding consecutive rows that share a toolGroup into one group row. */
35
- export function appendToolRow(chat, component, expanded) {
36
- const toolGroup = component.toolGroup?.trim();
37
- const children = chat.children;
38
- const lastChild = children[children.length - 1];
39
- if (toolGroup && lastChild instanceof ToolGroupComponent && lastChild.toolGroup === toolGroup) {
40
- lastChild.addTool(component);
41
- return;
42
- }
43
- if (toolGroup && lastChild instanceof ToolExecutionComponent && lastChild.toolGroup?.trim() === toolGroup) {
44
- const group = new ToolGroupComponent(toolGroup, [lastChild, component]);
45
- group.setExpanded(expanded);
46
- children[children.length - 1] = group;
47
- return;
48
- }
49
- chat.addChild(component);
50
- }
51
- /** Detach hint for rows BackgroundService.detachForeground() can move: shell tools and subagents. */
52
- export function toolDetachHint(keybindings) {
53
- return {
54
- isDetachable: (name) => name === "bash" || name === "powershell" || name === "subagent",
55
- keyLabel: () => keyLabel("app.backgroundTasks.detach", { keybindings }),
56
- };
57
- }
58
- //# sourceMappingURL=tool-chat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-chat.js","sourceRoot":"","sources":["../../../src/modes/interactive/tool-chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAA6B,MAAM,gCAAgC,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,SAAS,UAAU,CAAC,UAA6B;IAChD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,SAAqC,CAAC;QACzD,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,UAAU;YAAE,UAAU,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC;AACF,CAAC;AAED,8FAA8F;AAC9F,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IACtC,KAAK;QACb,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,KAAK,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACD;AAED,0EAA0E;AAC1E,MAAM,OAAO,cAAe,SAAQ,GAAmC;IAC7D,KAAK;QACb,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1B,KAAK,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACD;AAED,sFAAsF;AACtF,MAAM,UAAU,eAAe,CAAC,IAAe;IAC9C,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IACnD,OAAO,KAAK,YAAY,sBAAsB,IAAI,KAAK,YAAY,kBAAkB,CAAC;AACvF,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,SAAiC,EAAE,QAAiB;IAClG,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,SAAS,IAAI,SAAS,YAAY,kBAAkB,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC/F,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO;IACR,CAAC;IACD,IAAI,SAAS,IAAI,SAAS,YAAY,sBAAsB,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3G,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACtC,OAAO;IACR,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1B,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,cAAc,CAAC,WAA+B;IAC7D,OAAO;QACN,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,UAAU;QACvF,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,CAAC;KACvE,CAAC;AACH,CAAC","sourcesContent":["import { type Component, Container } from \"@earendil-works/pi-tui\";\nimport type { KeybindingsManager } from \"../../core/keybindings.ts\";\nimport { keyLabel } from \"./components/keybinding-hints.ts\";\nimport { ToolExecutionComponent, type ToolExecutionOptions } from \"./components/tool-execution.ts\";\nimport { ToolGroupComponent } from \"./components/tool-group.ts\";\n\nfunction disposeAll(components: Iterable<unknown>): void {\n\tfor (const component of components) {\n\t\tconst disposable = component as { dispose?: () => void };\n\t\tif (typeof disposable.dispose === \"function\") disposable.dispose();\n\t}\n}\n\n/** Chat container whose clear() disposes tool rows, so renderer timers never outlive them. */\nexport class ToolChatContainer extends Container {\n\toverride clear(): void {\n\t\tdisposeAll(this.children);\n\t\tsuper.clear();\n\t}\n}\n\n/** Pending tool rows by call ID; clear() disposes the rows it forgets. */\nexport class PendingToolMap extends Map<string, ToolExecutionComponent> {\n\toverride clear(): void {\n\t\tdisposeAll(this.values());\n\t\tsuper.clear();\n\t}\n}\n\n/** Dispose every row still shown, for mode shutdown where the chat is not cleared. */\nexport function disposeChatRows(chat: Container): void {\n\tdisposeAll(chat.children);\n}\n\n/** Chat children that host tool presentation and share image display settings. */\nexport function isToolChatComponent(child: Component): child is ToolExecutionComponent | ToolGroupComponent {\n\treturn child instanceof ToolExecutionComponent || child instanceof ToolGroupComponent;\n}\n\n/** Append a tool row, folding consecutive rows that share a toolGroup into one group row. */\nexport function appendToolRow(chat: Container, component: ToolExecutionComponent, expanded: boolean): void {\n\tconst toolGroup = component.toolGroup?.trim();\n\tconst children = chat.children;\n\tconst lastChild = children[children.length - 1];\n\tif (toolGroup && lastChild instanceof ToolGroupComponent && lastChild.toolGroup === toolGroup) {\n\t\tlastChild.addTool(component);\n\t\treturn;\n\t}\n\tif (toolGroup && lastChild instanceof ToolExecutionComponent && lastChild.toolGroup?.trim() === toolGroup) {\n\t\tconst group = new ToolGroupComponent(toolGroup, [lastChild, component]);\n\t\tgroup.setExpanded(expanded);\n\t\tchildren[children.length - 1] = group;\n\t\treturn;\n\t}\n\tchat.addChild(component);\n}\n\n/** Detach hint for rows BackgroundService.detachForeground() can move: shell tools and subagents. */\nexport function toolDetachHint(keybindings: KeybindingsManager): ToolExecutionOptions[\"detachHint\"] {\n\treturn {\n\t\tisDetachable: (name) => name === \"bash\" || name === \"powershell\" || name === \"subagent\",\n\t\tkeyLabel: () => keyLabel(\"app.backgroundTasks.detach\", { keybindings }),\n\t};\n}\n"]}