@esso0428/pi-subagents 0.17.16 → 0.17.17

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 (359) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/ROADMAP.md +87 -0
  3. package/docs/post-0.17.6-agents-roster-viewer-spec.md +42 -0
  4. package/docs/post-0.17.6-durable-history-spec.md +41 -0
  5. package/docs/post-0.17.6-feature-specs.md +50 -0
  6. package/docs/post-0.17.6-nested-agents-spec.md +38 -0
  7. package/docs/post-0.17.6-recovery-shutdown-spec.md +46 -0
  8. package/docs/post-0.17.6-ui-latency-baseline-spec.md +46 -0
  9. package/docs/post-0.17.6-workflow-rpc-lifecycle-spec.md +54 -0
  10. package/package.json +1 -1
  11. package/src/agent-history.ts +2 -54
  12. package/src/agent-manager.ts +406 -1288
  13. package/src/agent-runner.ts +27 -251
  14. package/src/agent-types.ts +32 -188
  15. package/src/cross-extension-rpc.ts +20 -96
  16. package/src/custom-agents.ts +13 -170
  17. package/src/index.ts +480 -1920
  18. package/src/invocation-config.ts +3 -118
  19. package/src/model-resolver.ts +0 -18
  20. package/src/output-file.ts +6 -61
  21. package/src/prompts.ts +2 -45
  22. package/src/schedule.ts +14 -35
  23. package/src/settings.ts +2 -301
  24. package/src/status-note.ts +1 -66
  25. package/src/types.ts +10 -177
  26. package/src/ui/agent-widget.ts +57 -278
  27. package/src/ui/conversation-blocks.ts +0 -6
  28. package/src/ui/conversation-timeline.ts +25 -139
  29. package/src/ui/conversation-viewer.ts +48 -212
  30. package/src/ui/schedule-menu.ts +8 -9
  31. package/src/usage.ts +2 -109
  32. package/src/worktree.ts +55 -69
  33. package/dist/abortable.d.ts +0 -13
  34. package/dist/abortable.d.ts.map +0 -1
  35. package/dist/abortable.js +0 -43
  36. package/dist/abortable.js.map +0 -1
  37. package/dist/agent-color.d.ts +0 -36
  38. package/dist/agent-color.d.ts.map +0 -1
  39. package/dist/agent-color.js +0 -124
  40. package/dist/agent-color.js.map +0 -1
  41. package/dist/agent-file-toggle.d.ts +0 -126
  42. package/dist/agent-file-toggle.d.ts.map +0 -1
  43. package/dist/agent-file-toggle.js +0 -259
  44. package/dist/agent-file-toggle.js.map +0 -1
  45. package/dist/agent-history-list.d.ts +0 -19
  46. package/dist/agent-history-list.d.ts.map +0 -1
  47. package/dist/agent-history-list.js +0 -69
  48. package/dist/agent-history-list.js.map +0 -1
  49. package/dist/agent-history.d.ts +0 -35
  50. package/dist/agent-history.d.ts.map +0 -1
  51. package/dist/agent-history.js +0 -188
  52. package/dist/agent-history.js.map +0 -1
  53. package/dist/agent-manager.d.ts +0 -503
  54. package/dist/agent-manager.d.ts.map +0 -1
  55. package/dist/agent-manager.js +0 -1572
  56. package/dist/agent-manager.js.map +0 -1
  57. package/dist/agent-recovery.d.ts +0 -37
  58. package/dist/agent-recovery.d.ts.map +0 -1
  59. package/dist/agent-recovery.js +0 -171
  60. package/dist/agent-recovery.js.map +0 -1
  61. package/dist/agent-runner.d.ts +0 -303
  62. package/dist/agent-runner.d.ts.map +0 -1
  63. package/dist/agent-runner.js +0 -1003
  64. package/dist/agent-runner.js.map +0 -1
  65. package/dist/agent-types.d.ts +0 -120
  66. package/dist/agent-types.d.ts.map +0 -1
  67. package/dist/agent-types.js +0 -301
  68. package/dist/agent-types.js.map +0 -1
  69. package/dist/child-context.d.ts +0 -3
  70. package/dist/child-context.d.ts.map +0 -1
  71. package/dist/child-context.js +0 -13
  72. package/dist/child-context.js.map +0 -1
  73. package/dist/context.d.ts +0 -13
  74. package/dist/context.d.ts.map +0 -1
  75. package/dist/context.js +0 -57
  76. package/dist/context.js.map +0 -1
  77. package/dist/cross-extension-rpc.d.ts +0 -67
  78. package/dist/cross-extension-rpc.d.ts.map +0 -1
  79. package/dist/cross-extension-rpc.js +0 -139
  80. package/dist/cross-extension-rpc.js.map +0 -1
  81. package/dist/custom-agents.d.ts +0 -55
  82. package/dist/custom-agents.d.ts.map +0 -1
  83. package/dist/custom-agents.js +0 -309
  84. package/dist/custom-agents.js.map +0 -1
  85. package/dist/default-agents.d.ts +0 -8
  86. package/dist/default-agents.d.ts.map +0 -1
  87. package/dist/default-agents.js +0 -123
  88. package/dist/default-agents.js.map +0 -1
  89. package/dist/enabled-models.d.ts +0 -50
  90. package/dist/enabled-models.d.ts.map +0 -1
  91. package/dist/enabled-models.js +0 -146
  92. package/dist/enabled-models.js.map +0 -1
  93. package/dist/env.d.ts +0 -7
  94. package/dist/env.d.ts.map +0 -1
  95. package/dist/env.js +0 -29
  96. package/dist/env.js.map +0 -1
  97. package/dist/group-join.d.ts +0 -33
  98. package/dist/group-join.d.ts.map +0 -1
  99. package/dist/group-join.js +0 -117
  100. package/dist/group-join.js.map +0 -1
  101. package/dist/index.d.ts +0 -51
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -3687
  104. package/dist/index.js.map +0 -1
  105. package/dist/invocation-config.d.ts +0 -108
  106. package/dist/invocation-config.d.ts.map +0 -1
  107. package/dist/invocation-config.js +0 -84
  108. package/dist/invocation-config.js.map +0 -1
  109. package/dist/memory.d.ts +0 -54
  110. package/dist/memory.d.ts.map +0 -1
  111. package/dist/memory.js +0 -166
  112. package/dist/memory.js.map +0 -1
  113. package/dist/mention-clone.d.ts +0 -88
  114. package/dist/mention-clone.d.ts.map +0 -1
  115. package/dist/mention-clone.js +0 -154
  116. package/dist/mention-clone.js.map +0 -1
  117. package/dist/mention.d.ts +0 -82
  118. package/dist/mention.d.ts.map +0 -1
  119. package/dist/mention.js +0 -132
  120. package/dist/mention.js.map +0 -1
  121. package/dist/model-resolver.d.ts +0 -37
  122. package/dist/model-resolver.d.ts.map +0 -1
  123. package/dist/model-resolver.js +0 -96
  124. package/dist/model-resolver.js.map +0 -1
  125. package/dist/model-scope.d.ts +0 -50
  126. package/dist/model-scope.d.ts.map +0 -1
  127. package/dist/model-scope.js +0 -49
  128. package/dist/model-scope.js.map +0 -1
  129. package/dist/nested-tools.d.ts +0 -57
  130. package/dist/nested-tools.d.ts.map +0 -1
  131. package/dist/nested-tools.js +0 -301
  132. package/dist/nested-tools.js.map +0 -1
  133. package/dist/nico-overrides.d.ts +0 -54
  134. package/dist/nico-overrides.d.ts.map +0 -1
  135. package/dist/nico-overrides.js +0 -170
  136. package/dist/nico-overrides.js.map +0 -1
  137. package/dist/output-file.d.ts +0 -44
  138. package/dist/output-file.d.ts.map +0 -1
  139. package/dist/output-file.js +0 -156
  140. package/dist/output-file.js.map +0 -1
  141. package/dist/prompts.d.ts +0 -56
  142. package/dist/prompts.d.ts.map +0 -1
  143. package/dist/prompts.js +0 -92
  144. package/dist/prompts.js.map +0 -1
  145. package/dist/schedule-store.d.ts +0 -39
  146. package/dist/schedule-store.d.ts.map +0 -1
  147. package/dist/schedule-store.js +0 -156
  148. package/dist/schedule-store.js.map +0 -1
  149. package/dist/schedule.d.ts +0 -110
  150. package/dist/schedule.d.ts.map +0 -1
  151. package/dist/schedule.js +0 -360
  152. package/dist/schedule.js.map +0 -1
  153. package/dist/settings.d.ts +0 -354
  154. package/dist/settings.d.ts.map +0 -1
  155. package/dist/settings.js +0 -247
  156. package/dist/settings.js.map +0 -1
  157. package/dist/skill-loader.d.ts +0 -25
  158. package/dist/skill-loader.d.ts.map +0 -1
  159. package/dist/skill-loader.js +0 -94
  160. package/dist/skill-loader.js.map +0 -1
  161. package/dist/status-note.d.ts +0 -62
  162. package/dist/status-note.d.ts.map +0 -1
  163. package/dist/status-note.js +0 -86
  164. package/dist/status-note.js.map +0 -1
  165. package/dist/structured-output.d.ts +0 -62
  166. package/dist/structured-output.d.ts.map +0 -1
  167. package/dist/structured-output.js +0 -113
  168. package/dist/structured-output.js.map +0 -1
  169. package/dist/types.d.ts +0 -372
  170. package/dist/types.d.ts.map +0 -1
  171. package/dist/types.js +0 -6
  172. package/dist/types.js.map +0 -1
  173. package/dist/ui/agent-mention.d.ts +0 -83
  174. package/dist/ui/agent-mention.d.ts.map +0 -1
  175. package/dist/ui/agent-mention.js +0 -188
  176. package/dist/ui/agent-mention.js.map +0 -1
  177. package/dist/ui/agent-widget.d.ts +0 -241
  178. package/dist/ui/agent-widget.d.ts.map +0 -1
  179. package/dist/ui/agent-widget.js +0 -992
  180. package/dist/ui/agent-widget.js.map +0 -1
  181. package/dist/ui/ccstyle/diff/ansi-utils.d.ts +0 -11
  182. package/dist/ui/ccstyle/diff/ansi-utils.d.ts.map +0 -1
  183. package/dist/ui/ccstyle/diff/ansi-utils.js +0 -145
  184. package/dist/ui/ccstyle/diff/ansi-utils.js.map +0 -1
  185. package/dist/ui/ccstyle/diff/diff-presentation.d.ts +0 -12
  186. package/dist/ui/ccstyle/diff/diff-presentation.d.ts.map +0 -1
  187. package/dist/ui/ccstyle/diff/diff-presentation.js +0 -48
  188. package/dist/ui/ccstyle/diff/diff-presentation.js.map +0 -1
  189. package/dist/ui/ccstyle/diff/diff-renderer.d.ts +0 -46
  190. package/dist/ui/ccstyle/diff/diff-renderer.d.ts.map +0 -1
  191. package/dist/ui/ccstyle/diff/diff-renderer.js +0 -2049
  192. package/dist/ui/ccstyle/diff/diff-renderer.js.map +0 -1
  193. package/dist/ui/ccstyle/diff/line-width-safety.d.ts +0 -12
  194. package/dist/ui/ccstyle/diff/line-width-safety.d.ts.map +0 -1
  195. package/dist/ui/ccstyle/diff/line-width-safety.js +0 -58
  196. package/dist/ui/ccstyle/diff/line-width-safety.js.map +0 -1
  197. package/dist/ui/ccstyle/diff/render-utils.d.ts +0 -6
  198. package/dist/ui/ccstyle/diff/render-utils.d.ts.map +0 -1
  199. package/dist/ui/ccstyle/diff/render-utils.js +0 -25
  200. package/dist/ui/ccstyle/diff/render-utils.js.map +0 -1
  201. package/dist/ui/ccstyle/diff/shiki-highlight.d.ts +0 -19
  202. package/dist/ui/ccstyle/diff/shiki-highlight.d.ts.map +0 -1
  203. package/dist/ui/ccstyle/diff/shiki-highlight.js +0 -85
  204. package/dist/ui/ccstyle/diff/shiki-highlight.js.map +0 -1
  205. package/dist/ui/ccstyle/diff/types.d.ts +0 -22
  206. package/dist/ui/ccstyle/diff/types.d.ts.map +0 -1
  207. package/dist/ui/ccstyle/diff/types.js +0 -10
  208. package/dist/ui/ccstyle/diff/types.js.map +0 -1
  209. package/dist/ui/ccstyle/diff/write-display-utils.d.ts +0 -2
  210. package/dist/ui/ccstyle/diff/write-display-utils.d.ts.map +0 -1
  211. package/dist/ui/ccstyle/diff/write-display-utils.js +0 -12
  212. package/dist/ui/ccstyle/diff/write-display-utils.js.map +0 -1
  213. package/dist/ui/ccstyle/tool-renderer.d.ts +0 -17
  214. package/dist/ui/ccstyle/tool-renderer.d.ts.map +0 -1
  215. package/dist/ui/ccstyle/tool-renderer.js +0 -74
  216. package/dist/ui/ccstyle/tool-renderer.js.map +0 -1
  217. package/dist/ui/ccstyle/tool-result.d.ts +0 -44
  218. package/dist/ui/ccstyle/tool-result.d.ts.map +0 -1
  219. package/dist/ui/ccstyle/tool-result.js +0 -423
  220. package/dist/ui/ccstyle/tool-result.js.map +0 -1
  221. package/dist/ui/conversation-blocks.d.ts +0 -46
  222. package/dist/ui/conversation-blocks.d.ts.map +0 -1
  223. package/dist/ui/conversation-blocks.js +0 -313
  224. package/dist/ui/conversation-blocks.js.map +0 -1
  225. package/dist/ui/conversation-nvim.d.ts +0 -8
  226. package/dist/ui/conversation-nvim.d.ts.map +0 -1
  227. package/dist/ui/conversation-nvim.js +0 -117
  228. package/dist/ui/conversation-nvim.js.map +0 -1
  229. package/dist/ui/conversation-role.d.ts +0 -13
  230. package/dist/ui/conversation-role.d.ts.map +0 -1
  231. package/dist/ui/conversation-role.js +0 -39
  232. package/dist/ui/conversation-role.js.map +0 -1
  233. package/dist/ui/conversation-search.d.ts +0 -39
  234. package/dist/ui/conversation-search.d.ts.map +0 -1
  235. package/dist/ui/conversation-search.js +0 -124
  236. package/dist/ui/conversation-search.js.map +0 -1
  237. package/dist/ui/conversation-timeline.d.ts +0 -102
  238. package/dist/ui/conversation-timeline.d.ts.map +0 -1
  239. package/dist/ui/conversation-timeline.js +0 -555
  240. package/dist/ui/conversation-timeline.js.map +0 -1
  241. package/dist/ui/conversation-viewer.d.ts +0 -138
  242. package/dist/ui/conversation-viewer.d.ts.map +0 -1
  243. package/dist/ui/conversation-viewer.js +0 -1175
  244. package/dist/ui/conversation-viewer.js.map +0 -1
  245. package/dist/ui/schedule-menu.d.ts +0 -17
  246. package/dist/ui/schedule-menu.d.ts.map +0 -1
  247. package/dist/ui/schedule-menu.js +0 -95
  248. package/dist/ui/schedule-menu.js.map +0 -1
  249. package/dist/ui/select-item.d.ts +0 -28
  250. package/dist/ui/select-item.d.ts.map +0 -1
  251. package/dist/ui/select-item.js +0 -35
  252. package/dist/ui/select-item.js.map +0 -1
  253. package/dist/ui/viewer-keys.d.ts +0 -21
  254. package/dist/ui/viewer-keys.d.ts.map +0 -1
  255. package/dist/ui/viewer-keys.js +0 -18
  256. package/dist/ui/viewer-keys.js.map +0 -1
  257. package/dist/ui/workflow-card.d.ts +0 -176
  258. package/dist/ui/workflow-card.d.ts.map +0 -1
  259. package/dist/ui/workflow-card.js +0 -333
  260. package/dist/ui/workflow-card.js.map +0 -1
  261. package/dist/ui/workflow-dialog.d.ts +0 -306
  262. package/dist/ui/workflow-dialog.d.ts.map +0 -1
  263. package/dist/ui/workflow-dialog.js +0 -844
  264. package/dist/ui/workflow-dialog.js.map +0 -1
  265. package/dist/ui/workflow-menu.d.ts +0 -42
  266. package/dist/ui/workflow-menu.d.ts.map +0 -1
  267. package/dist/ui/workflow-menu.js +0 -127
  268. package/dist/ui/workflow-menu.js.map +0 -1
  269. package/dist/usage.d.ts +0 -136
  270. package/dist/usage.d.ts.map +0 -1
  271. package/dist/usage.js +0 -121
  272. package/dist/usage.js.map +0 -1
  273. package/dist/workflow/collisions.d.ts +0 -96
  274. package/dist/workflow/collisions.d.ts.map +0 -1
  275. package/dist/workflow/collisions.js +0 -89
  276. package/dist/workflow/collisions.js.map +0 -1
  277. package/dist/workflow/entry.d.ts +0 -33
  278. package/dist/workflow/entry.d.ts.map +0 -1
  279. package/dist/workflow/entry.js +0 -30
  280. package/dist/workflow/entry.js.map +0 -1
  281. package/dist/workflow/host.d.ts +0 -63
  282. package/dist/workflow/host.d.ts.map +0 -1
  283. package/dist/workflow/host.js +0 -363
  284. package/dist/workflow/host.js.map +0 -1
  285. package/dist/workflow/journal.d.ts +0 -98
  286. package/dist/workflow/journal.d.ts.map +0 -1
  287. package/dist/workflow/journal.js +0 -121
  288. package/dist/workflow/journal.js.map +0 -1
  289. package/dist/workflow/json-schema.d.ts +0 -52
  290. package/dist/workflow/json-schema.d.ts.map +0 -1
  291. package/dist/workflow/json-schema.js +0 -112
  292. package/dist/workflow/json-schema.js.map +0 -1
  293. package/dist/workflow/meta.d.ts +0 -68
  294. package/dist/workflow/meta.d.ts.map +0 -1
  295. package/dist/workflow/meta.js +0 -318
  296. package/dist/workflow/meta.js.map +0 -1
  297. package/dist/workflow/progress.d.ts +0 -225
  298. package/dist/workflow/progress.d.ts.map +0 -1
  299. package/dist/workflow/progress.js +0 -362
  300. package/dist/workflow/progress.js.map +0 -1
  301. package/dist/workflow/runtime.d.ts +0 -335
  302. package/dist/workflow/runtime.d.ts.map +0 -1
  303. package/dist/workflow/runtime.js +0 -831
  304. package/dist/workflow/runtime.js.map +0 -1
  305. package/dist/workflow/saved.d.ts +0 -91
  306. package/dist/workflow/saved.d.ts.map +0 -1
  307. package/dist/workflow/saved.js +0 -204
  308. package/dist/workflow/saved.js.map +0 -1
  309. package/dist/workflow/task.d.ts +0 -137
  310. package/dist/workflow/task.d.ts.map +0 -1
  311. package/dist/workflow/task.js +0 -208
  312. package/dist/workflow/task.js.map +0 -1
  313. package/dist/workflow/tool-description.d.ts +0 -39
  314. package/dist/workflow/tool-description.d.ts.map +0 -1
  315. package/dist/workflow/tool-description.js +0 -200
  316. package/dist/workflow/tool-description.js.map +0 -1
  317. package/dist/workflow/worker-source.d.ts +0 -48
  318. package/dist/workflow/worker-source.d.ts.map +0 -1
  319. package/dist/workflow/worker-source.js +0 -779
  320. package/dist/workflow/worker-source.js.map +0 -1
  321. package/dist/worktree.d.ts +0 -53
  322. package/dist/worktree.d.ts.map +0 -1
  323. package/dist/worktree.js +0 -165
  324. package/dist/worktree.js.map +0 -1
  325. package/dist/write-execution.d.ts +0 -42
  326. package/dist/write-execution.d.ts.map +0 -1
  327. package/dist/write-execution.js +0 -138
  328. package/dist/write-execution.js.map +0 -1
  329. package/dist/xml.d.ts +0 -11
  330. package/dist/xml.d.ts.map +0 -1
  331. package/dist/xml.js +0 -13
  332. package/dist/xml.js.map +0 -1
  333. package/src/abortable.ts +0 -43
  334. package/src/agent-color.ts +0 -161
  335. package/src/agent-file-toggle.ts +0 -269
  336. package/src/child-context.ts +0 -15
  337. package/src/mention-clone.ts +0 -196
  338. package/src/mention.ts +0 -141
  339. package/src/model-scope.ts +0 -70
  340. package/src/nested-tools.ts +0 -424
  341. package/src/structured-output.ts +0 -130
  342. package/src/ui/agent-mention.ts +0 -216
  343. package/src/ui/select-item.ts +0 -45
  344. package/src/ui/workflow-card.ts +0 -470
  345. package/src/ui/workflow-dialog.ts +0 -1115
  346. package/src/ui/workflow-menu.ts +0 -166
  347. package/src/workflow/collisions.ts +0 -123
  348. package/src/workflow/entry.ts +0 -47
  349. package/src/workflow/host.ts +0 -403
  350. package/src/workflow/journal.ts +0 -164
  351. package/src/workflow/json-schema.ts +0 -128
  352. package/src/workflow/meta.ts +0 -325
  353. package/src/workflow/progress.ts +0 -550
  354. package/src/workflow/runtime.ts +0 -1219
  355. package/src/workflow/saved.ts +0 -217
  356. package/src/workflow/task.ts +0 -302
  357. package/src/workflow/tool-description.ts +0 -200
  358. package/src/workflow/worker-source.ts +0 -781
  359. package/src/xml.ts +0 -13
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-renderer.js","sourceRoot":"","sources":["../../../src/ui/ccstyle/tool-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { type Component } from "@earendil-works/pi-tui";
2
- import { type DisplayConfigInput } from "./diff/diff-renderer.js";
3
- export declare function toolViewportWidth(width: number): number;
4
- export declare function oneLine(value: unknown, max?: number): string;
5
- export declare function textFromResult(result: any, expanded?: boolean, maxChars?: number): string;
6
- export declare function outputLineCount(result: any): number;
7
- export declare function countLines(text: string): number;
8
- /** Format arguments as stable, readable `key: value` rows for the Input rail. */
9
- export declare function formatToolInputArgs(args: unknown, maxChars?: number): string;
10
- /** Resolve only explicit tool/path or fenced metadata; no command/log heuristics. */
11
- export declare function resolveToolOutputLanguage(args: unknown, output: string): string | undefined;
12
- export type ToolIoSection = "input" | "output";
13
- /** Viewer-local adaptation of pi-cc's structured Input/Output tool card. */
14
- export declare class ExpandedToolIoView implements Component {
15
- private input;
16
- private output;
17
- private readonly isError;
18
- private readonly maxOutputLines;
19
- private readonly maxInputLines;
20
- private readonly theme?;
21
- private cachedWidth;
22
- private cachedLines;
23
- private lineSections;
24
- private hoveredSection;
25
- private showMoreRows;
26
- private readonly outputLanguage?;
27
- private readonly invalidateCard?;
28
- private outputHighlightKey;
29
- private outputHighlightState;
30
- private readonly onHighlightReady;
31
- constructor(input: string, output: string, isError: boolean, maxOutputLines?: number, maxInputLines?: number, theme?: any | undefined, outputLanguage?: string, invalidateCard?: () => void);
32
- getInputBody(): string;
33
- getOutputBody(): string;
34
- private highlightedOutputLines;
35
- setHoveredSection(section: ToolIoSection | null): void;
36
- sectionAtLine(line: number): ToolIoSection | null;
37
- showMoreLine(section: ToolIoSection): number | undefined;
38
- render(width: number): string[];
39
- invalidate(): void;
40
- }
41
- export declare function renderRichToolResult(toolName: string, result: any, options: any, theme: any, context: any): Component | undefined;
42
- export declare function createViewerCcstyleResult(toolName: string, result: any, options: any, theme: any, context: any): Component;
43
- export type { DisplayConfigInput };
44
- //# sourceMappingURL=tool-result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-result.d.ts","sourceRoot":"","sources":["../../../src/ui/ccstyle/tool-result.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmD,MAAM,wBAAwB,CAAC;AACzG,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,yBAAyB,CAAC;AAKjC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAO,GAAG,MAAM,CAG1D;AAWD,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,UAAQ,EAAE,QAAQ,SAAS,GAAG,MAAM,CAUvF;AAUD,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAGnD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAuC3E;AAsDD,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY3F;AA8BD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/C,4EAA4E;AAC5E,qBAAa,kBAAmB,YAAW,SAAS;IAqBhD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAzBzB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAC7C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAKd;IACd,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG/B;gBAGQ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACL,OAAO,EAAE,OAAO,EAChB,cAAc,SAAsD,EACpE,aAAa,SAAsD,EACnE,KAAK,CAAC,EAAE,GAAG,YAAA,EAC5B,cAAc,CAAC,EAAE,MAAM,EACvB,cAAc,CAAC,EAAE,MAAM,IAAI;IAM7B,YAAY,IAAI,MAAM;IACtB,aAAa,IAAI,MAAM;IAEvB,OAAO,CAAC,sBAAsB;IAwC9B,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAMtD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IACjD,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;IAExD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA4E/B,UAAU,IAAI,IAAI;CAInB;AA6BD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,GAAG,GACX,SAAS,GAAG,SAAS,CAiCvB;AAwCD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,SAAS,CAE1H;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,423 +0,0 @@
1
- import { getLanguageFromPath, highlightCode } from "@earendil-works/pi-coding-agent";
2
- import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@earendil-works/pi-tui";
3
- import { renderEditDiffResult, renderWriteDiffResult, } from "./diff/diff-renderer.js";
4
- import { sanitizeAnsiForThemedOutput, sanitizeToolResultText, showMoreHintText } from "./diff/render-utils.js";
5
- import { MAX_HL_CHARS, shikiHighlightCache } from "./diff/shiki-highlight.js";
6
- import { DEFAULT_TOOL_DISPLAY_CONFIG } from "./diff/types.js";
7
- export function toolViewportWidth(width) {
8
- return Math.max(1, Math.floor(Number.isFinite(width) ? width : 1));
9
- }
10
- export function oneLine(value, max = 4096) {
11
- const text = sanitizeToolResultText(String(value ?? "")).replace(/\s+/g, " ").trim();
12
- return text.length > max ? `${text.slice(0, Math.max(0, max - 1))}…` : text;
13
- }
14
- function rawTextFromResult(result) {
15
- return Array.isArray(result?.content)
16
- ? result.content
17
- .filter((item) => item?.type === "text")
18
- .map((item) => String(item.text ?? ""))
19
- .join("\n")
20
- : "";
21
- }
22
- export function textFromResult(result, expanded = false, maxChars = 16_384) {
23
- const content = sanitizeToolResultText(rawTextFromResult(result), maxChars);
24
- const detail = result?.details;
25
- if (!expanded || detail === undefined)
26
- return content;
27
- const details = sanitizeToolResultText(typeof detail === "string" ? detail : safeJson(detail), maxChars);
28
- if (!details || details === content)
29
- return content;
30
- return content ? `${content}\nDetails:\n${details}` : details;
31
- }
32
- function safeJson(value) {
33
- try {
34
- return JSON.stringify(value, null, 2) ?? "";
35
- }
36
- catch {
37
- return String(value);
38
- }
39
- }
40
- export function outputLineCount(result) {
41
- const text = rawTextFromResult(result).replace(/\r\n?/g, "\n").replace(/\n+$/, "");
42
- return text ? text.split("\n").length : 0;
43
- }
44
- export function countLines(text) {
45
- return text.trim() ? text.trim().split("\n").filter((line) => line.trim()).length : 0;
46
- }
47
- /** Format arguments as stable, readable `key: value` rows for the Input rail. */
48
- export function formatToolInputArgs(args, maxChars = 8_000) {
49
- if (args === undefined || args === null)
50
- return "";
51
- if (typeof args !== "object" || Array.isArray(args)) {
52
- const rendered = typeof args === "string" ? sanitizeToolResultText(args) : safeJson(args);
53
- return rendered.length > maxChars ? `${rendered.slice(0, maxChars)}…` : rendered;
54
- }
55
- const preferred = [
56
- "path", "file_path", "command", "query", "pattern", "url", "name",
57
- "message", "content", "old_string", "new_string",
58
- ];
59
- const entries = Object.entries(args)
60
- .filter(([, value]) => value !== undefined)
61
- .sort(([left], [right]) => {
62
- const li = preferred.indexOf(left);
63
- const ri = preferred.indexOf(right);
64
- if (li < 0 && ri < 0)
65
- return left.localeCompare(right);
66
- if (li < 0)
67
- return 1;
68
- if (ri < 0)
69
- return -1;
70
- return li - ri;
71
- });
72
- const lines = [];
73
- for (const [key, value] of entries) {
74
- const safeKey = sanitizeToolResultText(key);
75
- if (typeof value === "string") {
76
- const safeValue = sanitizeToolResultText(value);
77
- if (safeValue.includes("\n")) {
78
- lines.push(`${safeKey}:`);
79
- lines.push(...safeValue.split("\n").map((line) => ` ${line}`));
80
- }
81
- else
82
- lines.push(`${safeKey}: ${safeValue}`);
83
- }
84
- else {
85
- const rendered = safeJson(value);
86
- if (rendered.includes("\n")) {
87
- lines.push(`${safeKey}:`);
88
- lines.push(...rendered.split("\n").map((line) => ` ${line}`));
89
- }
90
- else
91
- lines.push(`${safeKey}: ${rendered}`);
92
- }
93
- }
94
- const rendered = lines.join("\n");
95
- return rendered.length > maxChars ? `${rendered.slice(0, maxChars)}…` : rendered;
96
- }
97
- function parseFenceOpening(line) {
98
- const match = line.match(/^\s*(`{3,}|~{3,})(?:\s*([A-Za-z][\w+.-]*))?(?:\s+.*)?\s*$/);
99
- if (!match)
100
- return undefined;
101
- return { marker: match[1], language: match[2] };
102
- }
103
- function isFenceClosing(line, marker) {
104
- const trimmed = line.trim();
105
- return trimmed.length >= marker.length &&
106
- trimmed[0] === marker[0] &&
107
- [...trimmed].every((character) => character === marker[0]);
108
- }
109
- function findFencedCodeRegion(lines) {
110
- for (let openingIndex = 0; openingIndex < lines.length; openingIndex++) {
111
- const opening = parseFenceOpening(lines[openingIndex]);
112
- if (!opening)
113
- continue;
114
- let bodyEnd = lines.length;
115
- for (let index = openingIndex + 1; index < lines.length; index++) {
116
- if (isFenceClosing(lines[index], opening.marker)) {
117
- bodyEnd = index;
118
- break;
119
- }
120
- }
121
- return {
122
- bodyStart: openingIndex + 1,
123
- bodyEnd,
124
- ...(opening.language ? { language: opening.language } : {}),
125
- };
126
- }
127
- return undefined;
128
- }
129
- function pathFromToolArgs(args) {
130
- if (!args || typeof args !== "object" || Array.isArray(args))
131
- return undefined;
132
- const record = args;
133
- const path = record.file_path ?? record.path;
134
- return typeof path === "string" && path.trim() ? path : undefined;
135
- }
136
- /** Resolve only explicit tool/path or fenced metadata; no command/log heuristics. */
137
- export function resolveToolOutputLanguage(args, output) {
138
- const path = pathFromToolArgs(args)?.replace(/^@/, "").trim();
139
- if (path) {
140
- try {
141
- const language = getLanguageFromPath(path);
142
- if (language)
143
- return language;
144
- }
145
- catch {
146
- // Fall through to an explicit fence when the path mapping is unavailable.
147
- }
148
- }
149
- const lines = output.replace(/\t/g, " ").replace(/\n+$/, "").split("\n");
150
- return findFencedCodeRegion(lines)?.language;
151
- }
152
- function outputHighlightPlan(output, language) {
153
- if (!language || !output.trim() || output.length > MAX_HL_CHARS)
154
- return undefined;
155
- const lines = output.replace(/\t/g, " ").replace(/\n+$/, "").split("\n");
156
- // A path language follows Pi's read renderer and applies to the complete
157
- // output. A fence-only language is also highlighted as a normal code body;
158
- // keeping one line-to-line mapping preserves fences and wrapping safely.
159
- const codeLineIndexes = lines.map((_, index) => index);
160
- const codeLines = codeLineIndexes.map((index) => sanitizeToolResultText(lines[index] ?? "").replace(/\n/g, ""));
161
- const code = codeLines.join("\n");
162
- if (!code || code.length > MAX_HL_CHARS)
163
- return undefined;
164
- return { lines, code, codeLineIndexes };
165
- }
166
- function syncHighlight(code, language, fallback) {
167
- try {
168
- const highlighted = highlightCode(code, language).map(sanitizeAnsiForThemedOutput);
169
- return highlighted.length === fallback.length
170
- ? highlighted
171
- : fallback.map((line, index) => highlighted[index] ?? line);
172
- }
173
- catch {
174
- return fallback.map(sanitizeAnsiForThemedOutput);
175
- }
176
- }
177
- function hasExpandableDetail(text, args) {
178
- return countLines(text) > 1 || formatToolInputArgs(args).trim().length > 0;
179
- }
180
- /** Viewer-local adaptation of pi-cc's structured Input/Output tool card. */
181
- export class ExpandedToolIoView {
182
- input;
183
- output;
184
- isError;
185
- maxOutputLines;
186
- maxInputLines;
187
- theme;
188
- cachedWidth;
189
- cachedLines;
190
- lineSections = [];
191
- hoveredSection = null;
192
- showMoreRows = {};
193
- outputLanguage;
194
- invalidateCard;
195
- outputHighlightKey;
196
- outputHighlightState;
197
- onHighlightReady = () => {
198
- this.invalidate();
199
- this.invalidateCard?.();
200
- };
201
- constructor(input, output, isError, maxOutputLines = DEFAULT_TOOL_DISPLAY_CONFIG.expandedPreviewMaxLines, maxInputLines = DEFAULT_TOOL_DISPLAY_CONFIG.expandedPreviewMaxLines, theme, outputLanguage, invalidateCard) {
202
- this.input = input;
203
- this.output = output;
204
- this.isError = isError;
205
- this.maxOutputLines = maxOutputLines;
206
- this.maxInputLines = maxInputLines;
207
- this.theme = theme;
208
- this.outputLanguage = outputLanguage;
209
- this.invalidateCard = invalidateCard;
210
- }
211
- getInputBody() { return this.input; }
212
- getOutputBody() { return this.output.trim() ? this.output : "Done"; }
213
- highlightedOutputLines(body) {
214
- const plainLines = body.split("\n");
215
- const plan = outputHighlightPlan(body, this.outputLanguage);
216
- if (!plan)
217
- return plainLines;
218
- const key = `${this.outputLanguage ?? ""}\0${plan.code}\0${plan.lines.join("\n")}`;
219
- if (this.outputHighlightKey !== key || !this.outputHighlightState) {
220
- this.outputHighlightKey = key;
221
- this.outputHighlightState = {
222
- plan,
223
- // A plain fallback lets a cache hit avoid running the synchronous
224
- // highlighter again. On a miss it is replaced below before paint.
225
- fallback: plan.code.split("\n"),
226
- fallbackReady: false,
227
- };
228
- }
229
- const state = this.outputHighlightState;
230
- const shikiLines = state.shiki ?? shikiHighlightCache.get(plan.code, this.outputLanguage, process.env.DIFF_THEME || "github-dark", state.fallback, this.onHighlightReady);
231
- if (shikiLines) {
232
- state.shiki = shikiLines.map(sanitizeAnsiForThemedOutput);
233
- }
234
- else if (!state.fallbackReady) {
235
- state.fallback = syncHighlight(plan.code, this.outputLanguage, state.fallback);
236
- state.fallbackReady = true;
237
- }
238
- const highlightedCode = state.shiki ?? state.fallback;
239
- const lines = plan.lines.slice();
240
- for (const [codeIndex, lineIndex] of plan.codeLineIndexes.entries()) {
241
- lines[lineIndex] = highlightedCode[codeIndex] ?? lines[lineIndex] ?? "";
242
- }
243
- return lines;
244
- }
245
- setHoveredSection(section) {
246
- if (this.hoveredSection === section)
247
- return;
248
- this.hoveredSection = section;
249
- this.invalidate();
250
- }
251
- sectionAtLine(line) { return this.lineSections[line] ?? null; }
252
- showMoreLine(section) { return this.showMoreRows[section]; }
253
- render(width) {
254
- const safeWidth = toolViewportWidth(width);
255
- if (this.cachedLines && this.cachedWidth === safeWidth)
256
- return this.cachedLines;
257
- const theme = this.theme;
258
- const color = (name, value) => typeof theme?.fg === "function" ? theme.fg(name, value) : value;
259
- const bold = (value) => typeof theme?.bold === "function" ? theme.bold(value) : value;
260
- const rail = " │ ";
261
- const contentWidth = Math.max(1, safeWidth - visibleWidth(rail));
262
- const bodyColor = this.isError ? "error" : "toolOutput";
263
- const rows = [];
264
- this.lineSections = [];
265
- this.showMoreRows = {};
266
- const push = (line, section) => {
267
- rows.push(truncateToWidth(line, safeWidth, ""));
268
- this.lineSections.push(section);
269
- };
270
- const pushHeader = (corner, title) => {
271
- push(color("dim", ` ${corner} `) + color("accent", bold(title)), null);
272
- };
273
- const pushRail = (line, section, continued) => {
274
- push(color("dim", continued ? rail : " ") + line, section);
275
- };
276
- const pushBody = (body, section, limit, continued, input) => {
277
- const raw = body.replace(/\t/g, " ").replace(/\n+$/, "");
278
- if (!raw.trim()) {
279
- pushRail(color("dim", "(empty)"), section, continued);
280
- return;
281
- }
282
- const sources = raw.split("\n");
283
- const highlighted = input ? undefined : this.highlightedOutputLines(raw);
284
- const wrapped = [];
285
- const styleInput = (line) => {
286
- const match = line.match(/^([A-Za-z_][\w.-]*)(:\s*)(.*)$/);
287
- return match
288
- ? color("dim", `${match[1]}${match[2]}`) + color("muted", match[3] ?? "")
289
- : color("muted", line);
290
- };
291
- for (const [index, source] of sources.entries()) {
292
- const outputLine = highlighted?.[index] ?? source;
293
- // Shiki/core ANSI carries the actual token colors. Do not wrap it in
294
- // theme.fg(), whose closing reset would erase nested token styles.
295
- const hasAnsi = /\x1b\[[0-?]*[ -/]*[@-~]/.test(outputLine);
296
- const styled = input
297
- ? styleInput(source)
298
- : hasAnsi ? sanitizeAnsiForThemedOutput(outputLine) : color(bodyColor, outputLine);
299
- const lines = wrapTextWithAnsi(styled, contentWidth);
300
- wrapped.push(...(lines.length ? lines : [styled]));
301
- }
302
- const truncated = sources.length > limit || wrapped.length > limit;
303
- const visible = truncated ? wrapped.slice(0, limit) : wrapped;
304
- for (const line of visible)
305
- pushRail(line, section, continued);
306
- if (truncated && wrapped.length > visible.length) {
307
- const hidden = wrapped.length - visible.length;
308
- const hintColor = this.hoveredSection === section ? "text" : "dim";
309
- pushRail(color("dim", `… +${hidden} more lines`) + color("dim", " •") + color(hintColor, ` ${showMoreHintText()}`), section, continued);
310
- this.showMoreRows[section] = rows.length - 1;
311
- }
312
- };
313
- const hasInput = this.input.trim().length > 0;
314
- if (hasInput) {
315
- pushHeader("├", "Input");
316
- pushBody(this.input, "input", Math.max(1, this.maxInputLines), true, true);
317
- push(color("dim", " │"), null);
318
- }
319
- pushHeader("└", "Output");
320
- pushBody(this.getOutputBody(), "output", Math.max(1, this.maxOutputLines), false, false);
321
- this.cachedWidth = safeWidth;
322
- this.cachedLines = rows;
323
- return rows;
324
- }
325
- invalidate() {
326
- this.cachedWidth = undefined;
327
- this.cachedLines = undefined;
328
- }
329
- }
330
- function unavailableComponent(reason, theme) {
331
- return {
332
- render(width) {
333
- return [truncateToWidth(theme.fg("warning", `↳ diff unavailable: ${oneLine(reason, 512)}`), toolViewportWidth(width), "")];
334
- },
335
- invalidate() { },
336
- };
337
- }
338
- function resultText(result) { return rawTextFromResult(result); }
339
- function persistedFromDetails(details) {
340
- if (!details || typeof details !== "object")
341
- return undefined;
342
- const persisted = {};
343
- if (typeof details.diff === "string")
344
- persisted.diff = details.diff;
345
- if (typeof details.patch === "string")
346
- persisted.patch = details.patch;
347
- if (typeof details.diffUnavailableReason === "string")
348
- persisted.diffUnavailableReason = details.diffUnavailableReason;
349
- return Object.keys(persisted).length ? persisted : undefined;
350
- }
351
- function viewerConfig(context) {
352
- const candidate = context?.diffConfig;
353
- return candidate && typeof candidate === "object"
354
- ? { ...DEFAULT_TOOL_DISPLAY_CONFIG, ...candidate }
355
- : DEFAULT_TOOL_DISPLAY_CONFIG;
356
- }
357
- export function renderRichToolResult(toolName, result, options, theme, context) {
358
- if (options?.isPartial || options?.isError || context?.isError)
359
- return undefined;
360
- const expanded = options?.expanded === true || context?.expanded === true;
361
- const args = context?.args ?? options?.args;
362
- const details = result?.details;
363
- const persistedDiff = context?.persistedDiff ?? persistedFromDetails(details);
364
- const fileExistedBeforeWrite = typeof context?.fileExistedBeforeWrite === "boolean"
365
- ? context.fileExistedBeforeWrite
366
- : typeof details?.fileExistedBeforeWrite === "boolean" ? details.fileExistedBeforeWrite : undefined;
367
- if (toolName === "edit") {
368
- return renderEditDiffResult(details, {
369
- expanded, filePath: args?.file_path ?? args?.path, persistedDiff,
370
- isHovered: options?.isHovered, invalidate: context?.invalidate,
371
- }, viewerConfig(context), theme, resultText(result));
372
- }
373
- if (toolName !== "write")
374
- return undefined;
375
- if (persistedDiff?.diffUnavailableReason && !persistedDiff.diff && !persistedDiff.patch) {
376
- return unavailableComponent(persistedDiff.diffUnavailableReason, theme);
377
- }
378
- const content = typeof args?.content === "string" ? args.content : undefined;
379
- if (typeof content !== "string" && !persistedDiff?.diff && !persistedDiff?.patch) {
380
- return unavailableComponent("execution metadata is unavailable", theme);
381
- }
382
- return renderWriteDiffResult(content, {
383
- expanded,
384
- filePath: args?.file_path ?? args?.path,
385
- persistedDiff,
386
- previousContent: context?.previousContent,
387
- fileExistedBeforeWrite,
388
- isHovered: options?.isHovered,
389
- invalidate: context?.invalidate,
390
- }, viewerConfig(context), theme, resultText(result));
391
- }
392
- function renderFallbackResult(result, options, theme, context) {
393
- const error = options?.isError || context?.isError;
394
- const expanded = options?.expanded === true || context?.expanded === true;
395
- const maxChars = Number.isFinite(context?.maxChars) ? Math.max(0, Math.floor(context.maxChars)) : 16_384;
396
- const text = textFromResult(result, expanded, maxChars);
397
- const input = formatToolInputArgs(context?.args, maxChars);
398
- if (expanded && (text.trim() || input.trim())) {
399
- const maxLines = Number.isFinite(context?.diffConfig?.expandedPreviewMaxLines)
400
- ? Math.max(1, Math.floor(context.diffConfig.expandedPreviewMaxLines))
401
- : DEFAULT_TOOL_DISPLAY_CONFIG.expandedPreviewMaxLines;
402
- const language = resolveToolOutputLanguage(context?.args, text);
403
- return new ExpandedToolIoView(input, text, Boolean(error), maxLines, maxLines, theme, language, context?.invalidate);
404
- }
405
- const count = text ? text.split("\n").length : 0;
406
- const summary = error ? oneLine(text) || "Failed" : count ? `${count} ${count === 1 ? "line" : "lines"} returned` : "Done";
407
- const expandable = !expanded && hasExpandableDetail(text, context?.args);
408
- return {
409
- render(width) {
410
- const hovered = options?.isHovered?.() ?? context?.isHovered?.() ?? false;
411
- const hint = expandable ? ` • ${showMoreHintText()}` : "";
412
- const line = expandable && hovered
413
- ? theme.fg(error ? "error" : "muted", ` ↳ ${summary} • `) + theme.fg("text", showMoreHintText())
414
- : theme.fg(error ? "error" : "muted", ` ↳ ${summary}${hint}`);
415
- return [truncateToWidth(line, toolViewportWidth(width), "")];
416
- },
417
- invalidate() { },
418
- };
419
- }
420
- export function createViewerCcstyleResult(toolName, result, options, theme, context) {
421
- return renderRichToolResult(toolName, result, options, theme, context) ?? renderFallbackResult(result, options, theme, context);
422
- }
423
- //# sourceMappingURL=tool-result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-result.js","sourceRoot":"","sources":["../../../src/ui/ccstyle/tool-result.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- import type { AgentSession } from "@earendil-works/pi-coding-agent";
2
- export type ConversationBlockKind = "text" | "tool" | "meta";
3
- export type ConversationBlockRole = "user" | "assistant" | "tool" | "custom" | "meta";
4
- /** The durable result snapshot attached to a normalized tool block. */
5
- export interface ConversationToolResultSnapshot {
6
- toolCallId?: string;
7
- toolName?: string;
8
- content?: unknown;
9
- details?: unknown;
10
- isError?: boolean;
11
- }
12
- export interface ConversationBlock {
13
- id: string;
14
- kind: ConversationBlockKind;
15
- role: ConversationBlockRole;
16
- header: string;
17
- markdown: string;
18
- copyText: string;
19
- fullText: string;
20
- toolLine?: string;
21
- /** Stable call id, including a synthetic id when the provider omitted one. */
22
- toolCallId?: string;
23
- toolName?: string;
24
- /** Original tool arguments are retained for rich input rendering. */
25
- toolArguments?: unknown;
26
- /** Compatibility-facing short alias used by the timeline renderer. */
27
- args?: unknown;
28
- /** Result details/content are retained for rich output and durable diff rendering. */
29
- toolResult?: ConversationToolResultSnapshot;
30
- /** Compatibility-facing short alias used by the timeline renderer. */
31
- result?: ConversationToolResultSnapshot;
32
- toolStatus?: "pending" | "success" | "error";
33
- }
34
- export interface ConversationFormatOptions {
35
- maxEntryChars?: number;
36
- maxToolResultChars?: number;
37
- }
38
- /**
39
- * Convert provider messages into stable, render-oriented blocks.
40
- *
41
- * Tool results are attached to the original call when possible. This keeps the
42
- * block in call/source order while preserving the complete result snapshot for
43
- * rich rendering. Results that cannot be matched remain visible as orphan cards.
44
- */
45
- export declare function formatConversationMessages(messages: AgentSession["messages"], options?: ConversationFormatOptions): ConversationBlock[];
46
- //# sourceMappingURL=conversation-blocks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-blocks.d.ts","sourceRoot":"","sources":["../../src/ui/conversation-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtF,uEAAuE;AACvE,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,UAAU,CAAC,EAAE,8BAA8B,CAAC;IAC5C,sEAAsE;IACtE,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA4PD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,EAClC,OAAO,CAAC,EAAE,yBAAyB,GAClC,iBAAiB,EAAE,CA6GrB"}