@tomsun28/pizza 0.0.9 → 0.1.1

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 (382) hide show
  1. package/README.md +20 -143
  2. package/README.zh-CN.md +36 -0
  3. package/dist/bun/cli.d.ts +2 -0
  4. package/dist/bun/cli.js +6 -0
  5. package/dist/bun/register-bedrock.d.ts +1 -0
  6. package/dist/bun/register-bedrock.js +3 -0
  7. package/dist/cli/args.d.ts +48 -0
  8. package/dist/cli/args.js +330 -0
  9. package/dist/cli/config-selector.d.ts +13 -0
  10. package/dist/cli/config-selector.js +30 -0
  11. package/dist/cli/file-processor.d.ts +14 -0
  12. package/dist/cli/file-processor.js +82 -0
  13. package/dist/cli/initial-message.d.ts +17 -0
  14. package/dist/cli/initial-message.js +21 -0
  15. package/dist/cli/list-models.d.ts +8 -0
  16. package/dist/cli/list-models.js +96 -0
  17. package/dist/cli.d.ts +2 -0
  18. package/dist/cli.js +68 -0
  19. package/dist/config.d.ts +79 -0
  20. package/dist/config.js +223 -0
  21. package/dist/core/agent/index.d.ts +6 -0
  22. package/dist/core/agent/index.js +6 -0
  23. package/dist/core/agent/types.d.ts +202 -0
  24. package/dist/core/agent/types.js +51 -0
  25. package/dist/core/auth-storage.d.ts +135 -0
  26. package/dist/core/auth-storage.js +417 -0
  27. package/dist/core/bash-executor.d.ts +31 -0
  28. package/dist/core/bash-executor.js +107 -0
  29. package/dist/core/compaction/branch-summarization.d.ts +87 -0
  30. package/dist/core/compaction/branch-summarization.js +242 -0
  31. package/dist/core/compaction/compaction-engine.d.ts +40 -0
  32. package/dist/core/compaction/compaction-engine.js +292 -0
  33. package/dist/core/compaction/compaction.d.ts +106 -0
  34. package/dist/core/compaction/compaction.js +295 -0
  35. package/dist/core/compaction/index.d.ts +7 -0
  36. package/dist/core/compaction/index.js +7 -0
  37. package/dist/core/compaction/utils.d.ts +37 -0
  38. package/dist/core/compaction/utils.js +152 -0
  39. package/dist/core/defaults.d.ts +2 -0
  40. package/dist/core/defaults.js +1 -0
  41. package/dist/core/diagnostics.d.ts +14 -0
  42. package/dist/core/diagnostics.js +1 -0
  43. package/dist/core/event-bus.d.ts +8 -0
  44. package/dist/core/event-bus.js +24 -0
  45. package/dist/core/event-store/events.d.ts +465 -0
  46. package/dist/core/event-store/events.js +6 -0
  47. package/dist/core/event-store/index.d.ts +10 -0
  48. package/dist/core/event-store/index.js +10 -0
  49. package/dist/core/event-store/sqlite-store.d.ts +27 -0
  50. package/dist/core/event-store/sqlite-store.js +275 -0
  51. package/dist/core/event-store/store.d.ts +91 -0
  52. package/dist/core/event-store/store.js +7 -0
  53. package/dist/core/event-store/thread-scoped-store.d.ts +29 -0
  54. package/dist/core/event-store/thread-scoped-store.js +50 -0
  55. package/dist/core/event-store/types.d.ts +70 -0
  56. package/dist/core/event-store/types.js +7 -0
  57. package/dist/core/event-store/workspace.d.ts +37 -0
  58. package/dist/core/event-store/workspace.js +71 -0
  59. package/dist/core/exec.d.ts +28 -0
  60. package/dist/core/exec.js +74 -0
  61. package/dist/core/export-html/ansi-to-html.d.ts +21 -0
  62. package/dist/core/export-html/ansi-to-html.js +248 -0
  63. package/dist/core/export-html/index.d.ts +29 -0
  64. package/dist/core/export-html/index.js +186 -0
  65. package/dist/core/export-html/template.css +1017 -0
  66. package/dist/core/export-html/template.html +55 -0
  67. package/dist/core/export-html/template.js +1742 -0
  68. package/dist/core/export-html/tool-renderer.d.ts +39 -0
  69. package/dist/core/export-html/tool-renderer.js +94 -0
  70. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  71. package/dist/core/export-html/vendor/marked.min.js +6 -0
  72. package/dist/core/extensions/index.d.ts +12 -0
  73. package/dist/core/extensions/index.js +9 -0
  74. package/dist/core/extensions/loader.d.ts +24 -0
  75. package/dist/core/extensions/loader.js +492 -0
  76. package/dist/core/extensions/runner.d.ts +167 -0
  77. package/dist/core/extensions/runner.js +898 -0
  78. package/dist/core/extensions/session-context.d.ts +67 -0
  79. package/dist/core/extensions/session-context.js +272 -0
  80. package/dist/core/extensions/types.d.ts +1147 -0
  81. package/dist/core/extensions/types.js +44 -0
  82. package/dist/core/extensions/wrapper.d.ts +19 -0
  83. package/dist/core/extensions/wrapper.js +21 -0
  84. package/dist/core/footer-data-provider.d.ts +47 -0
  85. package/dist/core/footer-data-provider.js +321 -0
  86. package/dist/core/goal/index.d.ts +3 -0
  87. package/dist/core/goal/index.js +1 -0
  88. package/dist/core/goal/scheduler.d.ts +83 -0
  89. package/dist/core/goal/scheduler.js +154 -0
  90. package/dist/core/goal/types.d.ts +182 -0
  91. package/dist/core/goal/types.js +11 -0
  92. package/dist/core/index.d.ts +8 -0
  93. package/dist/core/index.js +8 -0
  94. package/dist/core/intent/classifier.d.ts +53 -0
  95. package/dist/core/intent/classifier.js +353 -0
  96. package/dist/core/intent/index.d.ts +8 -0
  97. package/dist/core/intent/index.js +8 -0
  98. package/dist/core/intent/tool-adapter.d.ts +31 -0
  99. package/dist/core/intent/tool-adapter.js +168 -0
  100. package/dist/core/intent/types.d.ts +71 -0
  101. package/dist/core/intent/types.js +6 -0
  102. package/dist/core/keybindings.d.ts +297 -0
  103. package/dist/core/keybindings.js +250 -0
  104. package/dist/core/messages.d.ts +30 -0
  105. package/dist/core/messages.js +134 -0
  106. package/dist/core/model-registry.d.ts +131 -0
  107. package/dist/core/model-registry.js +634 -0
  108. package/dist/core/model-resolver.d.ts +109 -0
  109. package/dist/core/model-resolver.js +486 -0
  110. package/dist/core/output-guard.d.ts +5 -0
  111. package/dist/core/output-guard.js +58 -0
  112. package/dist/core/package-manager.d.ts +196 -0
  113. package/dist/core/package-manager.js +1873 -0
  114. package/dist/core/projection/boundary-inferrer.d.ts +58 -0
  115. package/dist/core/projection/boundary-inferrer.js +122 -0
  116. package/dist/core/projection/event-to-message.d.ts +35 -0
  117. package/dist/core/projection/event-to-message.js +253 -0
  118. package/dist/core/projection/goal-projection.d.ts +67 -0
  119. package/dist/core/projection/goal-projection.js +339 -0
  120. package/dist/core/projection/index.d.ts +13 -0
  121. package/dist/core/projection/index.js +13 -0
  122. package/dist/core/projection/session-manager.d.ts +100 -0
  123. package/dist/core/projection/session-manager.js +331 -0
  124. package/dist/core/projection/session-projection.d.ts +58 -0
  125. package/dist/core/projection/session-projection.js +257 -0
  126. package/dist/core/projection/task-history.d.ts +13 -0
  127. package/dist/core/projection/task-history.js +61 -0
  128. package/dist/core/projection/timeline-projection.d.ts +82 -0
  129. package/dist/core/projection/timeline-projection.js +276 -0
  130. package/dist/core/projection/types.d.ts +69 -0
  131. package/dist/core/projection/types.js +6 -0
  132. package/dist/core/prompt-templates.d.ts +51 -0
  133. package/dist/core/prompt-templates.js +249 -0
  134. package/dist/core/resolve-config-value.d.ts +22 -0
  135. package/dist/core/resolve-config-value.js +125 -0
  136. package/dist/core/resource-loader.d.ts +193 -0
  137. package/dist/core/resource-loader.js +685 -0
  138. package/dist/core/runtime/ai-client.d.ts +12 -0
  139. package/dist/core/runtime/ai-client.js +153 -0
  140. package/dist/core/runtime/checkpoint.d.ts +12 -0
  141. package/dist/core/runtime/checkpoint.js +78 -0
  142. package/dist/core/runtime/index.d.ts +12 -0
  143. package/dist/core/runtime/index.js +12 -0
  144. package/dist/core/runtime/llm-types.d.ts +99 -0
  145. package/dist/core/runtime/llm-types.js +6 -0
  146. package/dist/core/runtime/local-runtime.d.ts +23 -0
  147. package/dist/core/runtime/local-runtime.js +59 -0
  148. package/dist/core/runtime/policies.d.ts +72 -0
  149. package/dist/core/runtime/policies.js +37 -0
  150. package/dist/core/runtime/reactor.d.ts +213 -0
  151. package/dist/core/runtime/reactor.js +992 -0
  152. package/dist/core/runtime/runtime.d.ts +191 -0
  153. package/dist/core/runtime/runtime.js +449 -0
  154. package/dist/core/runtime/types.d.ts +42 -0
  155. package/dist/core/runtime/types.js +1 -0
  156. package/dist/core/sdk.d.ts +12 -0
  157. package/dist/core/sdk.js +10 -0
  158. package/dist/core/session-context-builder.d.ts +9 -0
  159. package/dist/core/session-context-builder.js +87 -0
  160. package/dist/core/session-cwd.d.ts +18 -0
  161. package/dist/core/session-cwd.js +36 -0
  162. package/dist/core/session-facade-factory.d.ts +79 -0
  163. package/dist/core/session-facade-factory.js +460 -0
  164. package/dist/core/session-facade.d.ts +57 -0
  165. package/dist/core/session-facade.js +91 -0
  166. package/dist/core/session-listing.d.ts +30 -0
  167. package/dist/core/session-listing.js +168 -0
  168. package/dist/core/session-reader.d.ts +19 -0
  169. package/dist/core/session-reader.js +101 -0
  170. package/dist/core/session-ref.d.ts +7 -0
  171. package/dist/core/session-ref.js +25 -0
  172. package/dist/core/session-services.d.ts +51 -0
  173. package/dist/core/session-services.js +90 -0
  174. package/dist/core/session-stats.d.ts +43 -0
  175. package/dist/core/session-stats.js +41 -0
  176. package/dist/core/settings-manager.d.ts +236 -0
  177. package/dist/core/settings-manager.js +706 -0
  178. package/dist/core/skill-block-parser.d.ts +12 -0
  179. package/dist/core/skill-block-parser.js +15 -0
  180. package/dist/core/skills.d.ts +59 -0
  181. package/dist/core/skills.js +408 -0
  182. package/dist/core/slash-commands.d.ts +13 -0
  183. package/dist/core/slash-commands.js +17 -0
  184. package/dist/core/source-info.d.ts +17 -0
  185. package/dist/core/source-info.js +18 -0
  186. package/dist/core/system-prompt.d.ts +27 -0
  187. package/dist/core/system-prompt.js +179 -0
  188. package/dist/core/timings.d.ts +7 -0
  189. package/dist/core/timings.js +30 -0
  190. package/dist/core/tools/bash.d.ts +95 -0
  191. package/dist/core/tools/bash.js +513 -0
  192. package/dist/core/tools/builtin-commands.d.ts +75 -0
  193. package/dist/core/tools/builtin-commands.js +503 -0
  194. package/dist/core/tools/compat-commands.d.ts +12 -0
  195. package/dist/core/tools/compat-commands.js +1280 -0
  196. package/dist/core/tools/edit-diff.d.ts +59 -0
  197. package/dist/core/tools/edit-diff.js +263 -0
  198. package/dist/core/tools/edit.d.ts +49 -0
  199. package/dist/core/tools/edit.js +340 -0
  200. package/dist/core/tools/file-mutation-queue.d.ts +5 -0
  201. package/dist/core/tools/file-mutation-queue.js +36 -0
  202. package/dist/core/tools/find.d.ts +34 -0
  203. package/dist/core/tools/find.js +459 -0
  204. package/dist/core/tools/grep.d.ts +36 -0
  205. package/dist/core/tools/grep.js +422 -0
  206. package/dist/core/tools/index.d.ts +70 -0
  207. package/dist/core/tools/index.js +129 -0
  208. package/dist/core/tools/line-anchors.d.ts +33 -0
  209. package/dist/core/tools/line-anchors.js +151 -0
  210. package/dist/core/tools/ls.d.ts +36 -0
  211. package/dist/core/tools/ls.js +268 -0
  212. package/dist/core/tools/path-utils.d.ts +7 -0
  213. package/dist/core/tools/path-utils.js +80 -0
  214. package/dist/core/tools/read.d.ts +35 -0
  215. package/dist/core/tools/read.js +244 -0
  216. package/dist/core/tools/render-utils.d.ts +20 -0
  217. package/dist/core/tools/render-utils.js +48 -0
  218. package/dist/core/tools/session-split.d.ts +9 -0
  219. package/dist/core/tools/session-split.js +77 -0
  220. package/dist/core/tools/tool-definition-wrapper.d.ts +13 -0
  221. package/dist/core/tools/tool-definition-wrapper.js +32 -0
  222. package/dist/core/tools/truncate.d.ts +69 -0
  223. package/dist/core/tools/truncate.js +204 -0
  224. package/dist/core/tools/write.d.ts +25 -0
  225. package/dist/core/tools/write.js +211 -0
  226. package/dist/core/types/session-types.d.ts +123 -0
  227. package/dist/core/types/session-types.js +8 -0
  228. package/dist/index.d.ts +27 -0
  229. package/dist/index.js +38 -0
  230. package/dist/main.d.ts +11 -2
  231. package/dist/main.js +577 -149
  232. package/dist/modes/event-mapper.d.ts +115 -0
  233. package/dist/modes/event-mapper.js +200 -0
  234. package/dist/modes/gui/server.d.ts +14 -0
  235. package/dist/modes/gui/server.js +1032 -0
  236. package/dist/modes/index.d.ts +10 -0
  237. package/dist/modes/index.js +9 -0
  238. package/dist/modes/interactive/assets/clankolas.png +0 -0
  239. package/dist/modes/interactive/components/armin.d.ts +33 -0
  240. package/dist/modes/interactive/components/armin.js +328 -0
  241. package/dist/modes/interactive/components/assistant-message.d.ts +19 -0
  242. package/dist/modes/interactive/components/assistant-message.js +115 -0
  243. package/dist/modes/interactive/components/bash-execution.d.ts +33 -0
  244. package/dist/modes/interactive/components/bash-execution.js +169 -0
  245. package/dist/modes/interactive/components/bordered-loader.d.ts +15 -0
  246. package/dist/modes/interactive/components/bordered-loader.js +50 -0
  247. package/dist/modes/interactive/components/branch-summary-message.d.ts +15 -0
  248. package/dist/modes/interactive/components/branch-summary-message.js +41 -0
  249. package/dist/modes/interactive/components/brand-header.d.ts +33 -0
  250. package/dist/modes/interactive/components/brand-header.js +235 -0
  251. package/dist/modes/interactive/components/compaction-summary-message.d.ts +15 -0
  252. package/dist/modes/interactive/components/compaction-summary-message.js +42 -0
  253. package/dist/modes/interactive/components/config-selector.d.ts +70 -0
  254. package/dist/modes/interactive/components/config-selector.js +469 -0
  255. package/dist/modes/interactive/components/countdown-timer.d.ts +13 -0
  256. package/dist/modes/interactive/components/countdown-timer.js +27 -0
  257. package/dist/modes/interactive/components/custom-editor.d.ts +27 -0
  258. package/dist/modes/interactive/components/custom-editor.js +94 -0
  259. package/dist/modes/interactive/components/custom-message.d.ts +19 -0
  260. package/dist/modes/interactive/components/custom-message.js +73 -0
  261. package/dist/modes/interactive/components/daxnuts.d.ts +22 -0
  262. package/dist/modes/interactive/components/daxnuts.js +137 -0
  263. package/dist/modes/interactive/components/diff.d.ts +11 -0
  264. package/dist/modes/interactive/components/diff.js +132 -0
  265. package/dist/modes/interactive/components/dynamic-border.d.ts +14 -0
  266. package/dist/modes/interactive/components/dynamic-border.js +19 -0
  267. package/dist/modes/interactive/components/earendil-announcement.d.ts +4 -0
  268. package/dist/modes/interactive/components/earendil-announcement.js +39 -0
  269. package/dist/modes/interactive/components/extension-editor.d.ts +19 -0
  270. package/dist/modes/interactive/components/extension-editor.js +105 -0
  271. package/dist/modes/interactive/components/extension-input.d.ts +22 -0
  272. package/dist/modes/interactive/components/extension-input.js +54 -0
  273. package/dist/modes/interactive/components/extension-selector.d.ts +23 -0
  274. package/dist/modes/interactive/components/extension-selector.js +70 -0
  275. package/dist/modes/interactive/components/footer.d.ts +55 -0
  276. package/dist/modes/interactive/components/footer.js +207 -0
  277. package/dist/modes/interactive/components/index.d.ts +31 -0
  278. package/dist/modes/interactive/components/index.js +32 -0
  279. package/dist/modes/interactive/components/keybinding-hints.d.ts +7 -0
  280. package/dist/modes/interactive/components/keybinding-hints.js +21 -0
  281. package/dist/modes/interactive/components/login-dialog.d.ts +41 -0
  282. package/dist/modes/interactive/components/login-dialog.js +138 -0
  283. package/dist/modes/interactive/components/model-selector.d.ts +32 -0
  284. package/dist/modes/interactive/components/model-selector.js +209 -0
  285. package/dist/modes/interactive/components/oauth-selector.d.ts +18 -0
  286. package/dist/modes/interactive/components/oauth-selector.js +91 -0
  287. package/dist/modes/interactive/components/settings-selector.d.ts +57 -0
  288. package/dist/modes/interactive/components/settings-selector.js +299 -0
  289. package/dist/modes/interactive/components/show-images-selector.d.ts +9 -0
  290. package/dist/modes/interactive/components/show-images-selector.js +37 -0
  291. package/dist/modes/interactive/components/skill-invocation-message.d.ts +16 -0
  292. package/dist/modes/interactive/components/skill-invocation-message.js +44 -0
  293. package/dist/modes/interactive/components/theme-selector.d.ts +10 -0
  294. package/dist/modes/interactive/components/theme-selector.js +47 -0
  295. package/dist/modes/interactive/components/thinking-selector.d.ts +10 -0
  296. package/dist/modes/interactive/components/thinking-selector.js +50 -0
  297. package/dist/modes/interactive/components/timeline-view.d.ts +31 -0
  298. package/dist/modes/interactive/components/timeline-view.js +81 -0
  299. package/dist/modes/interactive/components/tool-execution.d.ts +64 -0
  300. package/dist/modes/interactive/components/tool-execution.js +305 -0
  301. package/dist/modes/interactive/components/tree-selector.d.ts +88 -0
  302. package/dist/modes/interactive/components/tree-selector.js +1072 -0
  303. package/dist/modes/interactive/components/user-message-selector.d.ts +29 -0
  304. package/dist/modes/interactive/components/user-message-selector.js +110 -0
  305. package/dist/modes/interactive/components/user-message.d.ts +9 -0
  306. package/dist/modes/interactive/components/user-message.js +27 -0
  307. package/dist/modes/interactive/components/visual-truncate.d.ts +23 -0
  308. package/dist/modes/interactive/components/visual-truncate.js +32 -0
  309. package/dist/modes/interactive/interactive-mode.d.ts +394 -0
  310. package/dist/modes/interactive/interactive-mode.js +4116 -0
  311. package/dist/modes/interactive/theme/dark.json +85 -0
  312. package/dist/modes/interactive/theme/light.json +84 -0
  313. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  314. package/dist/modes/interactive/theme/theme.d.ts +80 -0
  315. package/dist/modes/interactive/theme/theme.js +973 -0
  316. package/dist/modes/print-mode.d.ts +27 -0
  317. package/dist/modes/print-mode.js +102 -0
  318. package/dist/modes/rpc/jsonl.d.ts +16 -0
  319. package/dist/modes/rpc/jsonl.js +48 -0
  320. package/dist/modes/rpc/rpc-client.d.ts +219 -0
  321. package/dist/modes/rpc/rpc-client.js +405 -0
  322. package/dist/modes/rpc/rpc-mode.d.ts +19 -0
  323. package/dist/modes/rpc/rpc-mode.js +381 -0
  324. package/dist/modes/rpc/rpc-types.d.ts +406 -0
  325. package/dist/modes/rpc/rpc-types.js +7 -0
  326. package/dist/package-manager-cli.d.ts +3 -0
  327. package/dist/package-manager-cli.js +233 -0
  328. package/dist/utils/changelog.d.ts +20 -0
  329. package/dist/utils/changelog.js +86 -0
  330. package/dist/utils/child-process.d.ts +10 -0
  331. package/dist/utils/child-process.js +77 -0
  332. package/dist/utils/clipboard-image.d.ts +10 -0
  333. package/dist/utils/clipboard-image.js +244 -0
  334. package/dist/utils/clipboard-native.d.ts +7 -0
  335. package/dist/utils/clipboard-native.js +13 -0
  336. package/dist/utils/clipboard.d.ts +1 -0
  337. package/dist/utils/clipboard.js +77 -0
  338. package/dist/utils/exif-orientation.d.ts +4 -0
  339. package/dist/utils/exif-orientation.js +157 -0
  340. package/dist/utils/frontmatter.d.ts +7 -0
  341. package/dist/utils/frontmatter.js +25 -0
  342. package/dist/utils/git.d.ts +25 -0
  343. package/dist/utils/git.js +162 -0
  344. package/dist/utils/image-convert.d.ts +8 -0
  345. package/dist/utils/image-convert.js +38 -0
  346. package/dist/utils/image-resize.d.ts +35 -0
  347. package/dist/utils/image-resize.js +136 -0
  348. package/dist/utils/mime.d.ts +1 -0
  349. package/dist/utils/mime.js +25 -0
  350. package/dist/utils/path-shims.d.ts +1 -0
  351. package/dist/utils/path-shims.js +90 -0
  352. package/dist/utils/paths.d.ts +6 -0
  353. package/dist/utils/paths.js +18 -0
  354. package/dist/utils/photon.d.ts +20 -0
  355. package/dist/utils/photon.js +120 -0
  356. package/dist/utils/shell.d.ts +29 -0
  357. package/dist/utils/shell.js +189 -0
  358. package/dist/utils/sleep.d.ts +4 -0
  359. package/dist/utils/sleep.js +16 -0
  360. package/dist/utils/tools-manager.d.ts +3 -0
  361. package/dist/utils/tools-manager.js +101 -0
  362. package/dist/vendor/bin/darwin-arm64/fd +0 -0
  363. package/dist/vendor/bin/darwin-arm64/rg +0 -0
  364. package/dist/vendor/bin/darwin-x64/fd +0 -0
  365. package/dist/vendor/bin/darwin-x64/rg +0 -0
  366. package/dist/vendor/bin/linux-arm64/fd +0 -0
  367. package/dist/vendor/bin/linux-arm64/rg +0 -0
  368. package/dist/vendor/bin/linux-x64/fd +0 -0
  369. package/dist/vendor/bin/linux-x64/rg +0 -0
  370. package/dist/vendor/bin/win32-arm64/fd.exe +0 -0
  371. package/dist/vendor/bin/win32-arm64/rg.exe +0 -0
  372. package/dist/vendor/bin/win32-x64/fd.exe +0 -0
  373. package/dist/vendor/bin/win32-x64/rg.exe +0 -0
  374. package/package.json +90 -26
  375. package/dist/extension/core.d.ts +0 -69
  376. package/dist/extension/core.js +0 -270
  377. package/dist/extension/core.js.map +0 -1
  378. package/dist/extension/index.d.ts +0 -25
  379. package/dist/extension/index.js +0 -303
  380. package/dist/extension/index.js.map +0 -1
  381. package/dist/main.js.map +0 -1
  382. package/themes/pizza.json +0 -87
@@ -0,0 +1,297 @@
1
+ import { type Keybinding, type KeybindingsConfig, type KeyId, KeybindingsManager as TuiKeybindingsManager } from "@earendil-works/pi-tui";
2
+ export interface AppKeybindings {
3
+ "app.interrupt": true;
4
+ "app.clear": true;
5
+ "app.exit": true;
6
+ "app.suspend": true;
7
+ "app.thinking.cycle": true;
8
+ "app.model.cycleForward": true;
9
+ "app.model.cycleBackward": true;
10
+ "app.model.select": true;
11
+ "app.tools.expand": true;
12
+ "app.thinking.toggle": true;
13
+ "app.editor.external": true;
14
+ "app.message.followUp": true;
15
+ "app.message.dequeue": true;
16
+ "app.clipboard.pasteImage": true;
17
+ "app.tree.foldOrUp": true;
18
+ "app.tree.unfoldOrDown": true;
19
+ "app.tree.toggleLabelTimestamp": true;
20
+ "app.models.save": true;
21
+ "app.models.enableAll": true;
22
+ "app.models.clearAll": true;
23
+ "app.models.toggleProvider": true;
24
+ "app.models.reorderUp": true;
25
+ "app.models.reorderDown": true;
26
+ "app.tree.filter.default": true;
27
+ "app.tree.filter.noTools": true;
28
+ "app.tree.filter.userOnly": true;
29
+ "app.tree.filter.labeledOnly": true;
30
+ "app.tree.filter.all": true;
31
+ "app.tree.filter.cycleForward": true;
32
+ "app.tree.filter.cycleBackward": true;
33
+ }
34
+ export type AppKeybinding = keyof AppKeybindings;
35
+ declare module "@earendil-works/pi-tui" {
36
+ interface Keybindings extends AppKeybindings {
37
+ }
38
+ }
39
+ export declare const KEYBINDINGS: {
40
+ readonly "app.interrupt": {
41
+ readonly defaultKeys: "escape";
42
+ readonly description: "Cancel or abort";
43
+ };
44
+ readonly "app.clear": {
45
+ readonly defaultKeys: "ctrl+c";
46
+ readonly description: "Clear editor";
47
+ };
48
+ readonly "app.exit": {
49
+ readonly defaultKeys: "ctrl+d";
50
+ readonly description: "Exit when editor is empty";
51
+ };
52
+ readonly "app.suspend": {
53
+ readonly defaultKeys: never[] | "ctrl+z";
54
+ readonly description: "Suspend to background";
55
+ };
56
+ readonly "app.thinking.cycle": {
57
+ readonly defaultKeys: "shift+tab";
58
+ readonly description: "Cycle thinking level";
59
+ };
60
+ readonly "app.model.cycleForward": {
61
+ readonly defaultKeys: "ctrl+p";
62
+ readonly description: "Cycle to next model";
63
+ };
64
+ readonly "app.model.cycleBackward": {
65
+ readonly defaultKeys: "shift+ctrl+p";
66
+ readonly description: "Cycle to previous model";
67
+ };
68
+ readonly "app.model.select": {
69
+ readonly defaultKeys: "ctrl+l";
70
+ readonly description: "Open model selector";
71
+ };
72
+ readonly "app.tools.expand": {
73
+ readonly defaultKeys: "ctrl+o";
74
+ readonly description: "Toggle tool output";
75
+ };
76
+ readonly "app.thinking.toggle": {
77
+ readonly defaultKeys: "ctrl+t";
78
+ readonly description: "Toggle thinking blocks";
79
+ };
80
+ readonly "app.editor.external": {
81
+ readonly defaultKeys: "ctrl+g";
82
+ readonly description: "Open external editor";
83
+ };
84
+ readonly "app.message.followUp": {
85
+ readonly defaultKeys: "alt+enter";
86
+ readonly description: "Queue follow-up message";
87
+ };
88
+ readonly "app.message.dequeue": {
89
+ readonly defaultKeys: "alt+up";
90
+ readonly description: "Restore queued messages";
91
+ };
92
+ readonly "app.clipboard.pasteImage": {
93
+ readonly defaultKeys: "ctrl+v" | "alt+v";
94
+ readonly description: "Paste image from clipboard";
95
+ };
96
+ readonly "app.tree.foldOrUp": {
97
+ readonly defaultKeys: ["ctrl+left", "alt+left"];
98
+ readonly description: "Fold tree branch or move up";
99
+ };
100
+ readonly "app.tree.unfoldOrDown": {
101
+ readonly defaultKeys: ["ctrl+right", "alt+right"];
102
+ readonly description: "Unfold tree branch or move down";
103
+ };
104
+ readonly "app.tree.toggleLabelTimestamp": {
105
+ readonly defaultKeys: "shift+t";
106
+ readonly description: "Toggle tree label timestamps";
107
+ };
108
+ readonly "app.models.save": {
109
+ readonly defaultKeys: "ctrl+s";
110
+ readonly description: "Save model selection";
111
+ };
112
+ readonly "app.models.enableAll": {
113
+ readonly defaultKeys: "ctrl+a";
114
+ readonly description: "Enable all models";
115
+ };
116
+ readonly "app.models.clearAll": {
117
+ readonly defaultKeys: "ctrl+x";
118
+ readonly description: "Clear all models";
119
+ };
120
+ readonly "app.models.toggleProvider": {
121
+ readonly defaultKeys: "ctrl+p";
122
+ readonly description: "Toggle all models for provider";
123
+ };
124
+ readonly "app.models.reorderUp": {
125
+ readonly defaultKeys: "alt+up";
126
+ readonly description: "Move model up in order";
127
+ };
128
+ readonly "app.models.reorderDown": {
129
+ readonly defaultKeys: "alt+down";
130
+ readonly description: "Move model down in order";
131
+ };
132
+ readonly "app.tree.filter.default": {
133
+ readonly defaultKeys: "ctrl+d";
134
+ readonly description: "Tree filter: default view";
135
+ };
136
+ readonly "app.tree.filter.noTools": {
137
+ readonly defaultKeys: "ctrl+t";
138
+ readonly description: "Tree filter: hide tool results";
139
+ };
140
+ readonly "app.tree.filter.userOnly": {
141
+ readonly defaultKeys: "ctrl+u";
142
+ readonly description: "Tree filter: user messages only";
143
+ };
144
+ readonly "app.tree.filter.labeledOnly": {
145
+ readonly defaultKeys: "ctrl+l";
146
+ readonly description: "Tree filter: labeled entries only";
147
+ };
148
+ readonly "app.tree.filter.all": {
149
+ readonly defaultKeys: "ctrl+a";
150
+ readonly description: "Tree filter: show all entries";
151
+ };
152
+ readonly "app.tree.filter.cycleForward": {
153
+ readonly defaultKeys: "ctrl+o";
154
+ readonly description: "Tree filter: cycle forward";
155
+ };
156
+ readonly "app.tree.filter.cycleBackward": {
157
+ readonly defaultKeys: "shift+ctrl+o";
158
+ readonly description: "Tree filter: cycle backward";
159
+ };
160
+ readonly "tui.editor.cursorUp": {
161
+ readonly defaultKeys: "up";
162
+ readonly description: "Move cursor up";
163
+ };
164
+ readonly "tui.editor.cursorDown": {
165
+ readonly defaultKeys: "down";
166
+ readonly description: "Move cursor down";
167
+ };
168
+ readonly "tui.editor.cursorLeft": {
169
+ readonly defaultKeys: ["left", "ctrl+b"];
170
+ readonly description: "Move cursor left";
171
+ };
172
+ readonly "tui.editor.cursorRight": {
173
+ readonly defaultKeys: ["right", "ctrl+f"];
174
+ readonly description: "Move cursor right";
175
+ };
176
+ readonly "tui.editor.cursorWordLeft": {
177
+ readonly defaultKeys: ["alt+left", "ctrl+left", "alt+b"];
178
+ readonly description: "Move cursor word left";
179
+ };
180
+ readonly "tui.editor.cursorWordRight": {
181
+ readonly defaultKeys: ["alt+right", "ctrl+right", "alt+f"];
182
+ readonly description: "Move cursor word right";
183
+ };
184
+ readonly "tui.editor.cursorLineStart": {
185
+ readonly defaultKeys: ["home", "ctrl+a"];
186
+ readonly description: "Move to line start";
187
+ };
188
+ readonly "tui.editor.cursorLineEnd": {
189
+ readonly defaultKeys: ["end", "ctrl+e"];
190
+ readonly description: "Move to line end";
191
+ };
192
+ readonly "tui.editor.jumpForward": {
193
+ readonly defaultKeys: "ctrl+]";
194
+ readonly description: "Jump forward to character";
195
+ };
196
+ readonly "tui.editor.jumpBackward": {
197
+ readonly defaultKeys: "ctrl+alt+]";
198
+ readonly description: "Jump backward to character";
199
+ };
200
+ readonly "tui.editor.pageUp": {
201
+ readonly defaultKeys: "pageUp";
202
+ readonly description: "Page up";
203
+ };
204
+ readonly "tui.editor.pageDown": {
205
+ readonly defaultKeys: "pageDown";
206
+ readonly description: "Page down";
207
+ };
208
+ readonly "tui.editor.deleteCharBackward": {
209
+ readonly defaultKeys: "backspace";
210
+ readonly description: "Delete character backward";
211
+ };
212
+ readonly "tui.editor.deleteCharForward": {
213
+ readonly defaultKeys: ["delete", "ctrl+d"];
214
+ readonly description: "Delete character forward";
215
+ };
216
+ readonly "tui.editor.deleteWordBackward": {
217
+ readonly defaultKeys: ["ctrl+w", "alt+backspace"];
218
+ readonly description: "Delete word backward";
219
+ };
220
+ readonly "tui.editor.deleteWordForward": {
221
+ readonly defaultKeys: ["alt+d", "alt+delete"];
222
+ readonly description: "Delete word forward";
223
+ };
224
+ readonly "tui.editor.deleteToLineStart": {
225
+ readonly defaultKeys: "ctrl+u";
226
+ readonly description: "Delete to line start";
227
+ };
228
+ readonly "tui.editor.deleteToLineEnd": {
229
+ readonly defaultKeys: "ctrl+k";
230
+ readonly description: "Delete to line end";
231
+ };
232
+ readonly "tui.editor.yank": {
233
+ readonly defaultKeys: "ctrl+y";
234
+ readonly description: "Yank";
235
+ };
236
+ readonly "tui.editor.yankPop": {
237
+ readonly defaultKeys: "alt+y";
238
+ readonly description: "Yank pop";
239
+ };
240
+ readonly "tui.editor.undo": {
241
+ readonly defaultKeys: "ctrl+-";
242
+ readonly description: "Undo";
243
+ };
244
+ readonly "tui.input.newLine": {
245
+ readonly defaultKeys: ["shift+enter", "ctrl+j"];
246
+ readonly description: "Insert newline";
247
+ };
248
+ readonly "tui.input.submit": {
249
+ readonly defaultKeys: "enter";
250
+ readonly description: "Submit input";
251
+ };
252
+ readonly "tui.input.tab": {
253
+ readonly defaultKeys: "tab";
254
+ readonly description: "Tab / autocomplete";
255
+ };
256
+ readonly "tui.input.copy": {
257
+ readonly defaultKeys: "ctrl+c";
258
+ readonly description: "Copy selection";
259
+ };
260
+ readonly "tui.select.up": {
261
+ readonly defaultKeys: "up";
262
+ readonly description: "Move selection up";
263
+ };
264
+ readonly "tui.select.down": {
265
+ readonly defaultKeys: "down";
266
+ readonly description: "Move selection down";
267
+ };
268
+ readonly "tui.select.pageUp": {
269
+ readonly defaultKeys: "pageUp";
270
+ readonly description: "Selection page up";
271
+ };
272
+ readonly "tui.select.pageDown": {
273
+ readonly defaultKeys: "pageDown";
274
+ readonly description: "Selection page down";
275
+ };
276
+ readonly "tui.select.confirm": {
277
+ readonly defaultKeys: "enter";
278
+ readonly description: "Confirm selection";
279
+ };
280
+ readonly "tui.select.cancel": {
281
+ readonly defaultKeys: ["escape", "ctrl+c"];
282
+ readonly description: "Cancel selection";
283
+ };
284
+ };
285
+ export declare function migrateKeybindingsConfig(rawConfig: Record<string, unknown>): {
286
+ config: Record<string, unknown>;
287
+ migrated: boolean;
288
+ };
289
+ export declare class KeybindingsManager extends TuiKeybindingsManager {
290
+ private configPath;
291
+ constructor(userBindings?: KeybindingsConfig, configPath?: string);
292
+ static create(agentDir?: string): KeybindingsManager;
293
+ reload(): void;
294
+ getEffectiveConfig(): KeybindingsConfig;
295
+ private static loadFromFile;
296
+ }
297
+ export type { Keybinding, KeyId, KeybindingsConfig };
@@ -0,0 +1,250 @@
1
+ import { TUI_KEYBINDINGS, KeybindingsManager as TuiKeybindingsManager, } from "@earendil-works/pi-tui";
2
+ import { existsSync, readFileSync } from "fs";
3
+ import { join } from "path";
4
+ import { getAgentDir } from "../config.js";
5
+ export const KEYBINDINGS = {
6
+ ...TUI_KEYBINDINGS,
7
+ "app.interrupt": { defaultKeys: "escape", description: "Cancel or abort" },
8
+ "app.clear": { defaultKeys: "ctrl+c", description: "Clear editor" },
9
+ "app.exit": { defaultKeys: "ctrl+d", description: "Exit when editor is empty" },
10
+ "app.suspend": {
11
+ defaultKeys: process.platform === "win32" ? [] : "ctrl+z",
12
+ description: "Suspend to background",
13
+ },
14
+ "app.thinking.cycle": {
15
+ defaultKeys: "shift+tab",
16
+ description: "Cycle thinking level",
17
+ },
18
+ "app.model.cycleForward": {
19
+ defaultKeys: "ctrl+p",
20
+ description: "Cycle to next model",
21
+ },
22
+ "app.model.cycleBackward": {
23
+ defaultKeys: "shift+ctrl+p",
24
+ description: "Cycle to previous model",
25
+ },
26
+ "app.model.select": { defaultKeys: "ctrl+l", description: "Open model selector" },
27
+ "app.tools.expand": { defaultKeys: "ctrl+o", description: "Toggle tool output" },
28
+ "app.thinking.toggle": {
29
+ defaultKeys: "ctrl+t",
30
+ description: "Toggle thinking blocks",
31
+ },
32
+ "app.editor.external": {
33
+ defaultKeys: "ctrl+g",
34
+ description: "Open external editor",
35
+ },
36
+ "app.message.followUp": {
37
+ defaultKeys: "alt+enter",
38
+ description: "Queue follow-up message",
39
+ },
40
+ "app.message.dequeue": {
41
+ defaultKeys: "alt+up",
42
+ description: "Restore queued messages",
43
+ },
44
+ "app.clipboard.pasteImage": {
45
+ defaultKeys: process.platform === "win32" ? "alt+v" : "ctrl+v",
46
+ description: "Paste image from clipboard",
47
+ },
48
+ "app.tree.foldOrUp": {
49
+ defaultKeys: ["ctrl+left", "alt+left"],
50
+ description: "Fold tree branch or move up",
51
+ },
52
+ "app.tree.unfoldOrDown": {
53
+ defaultKeys: ["ctrl+right", "alt+right"],
54
+ description: "Unfold tree branch or move down",
55
+ },
56
+ "app.tree.toggleLabelTimestamp": {
57
+ defaultKeys: "shift+t",
58
+ description: "Toggle tree label timestamps",
59
+ },
60
+ "app.models.save": {
61
+ defaultKeys: "ctrl+s",
62
+ description: "Save model selection",
63
+ },
64
+ "app.models.enableAll": {
65
+ defaultKeys: "ctrl+a",
66
+ description: "Enable all models",
67
+ },
68
+ "app.models.clearAll": {
69
+ defaultKeys: "ctrl+x",
70
+ description: "Clear all models",
71
+ },
72
+ "app.models.toggleProvider": {
73
+ defaultKeys: "ctrl+p",
74
+ description: "Toggle all models for provider",
75
+ },
76
+ "app.models.reorderUp": {
77
+ defaultKeys: "alt+up",
78
+ description: "Move model up in order",
79
+ },
80
+ "app.models.reorderDown": {
81
+ defaultKeys: "alt+down",
82
+ description: "Move model down in order",
83
+ },
84
+ "app.tree.filter.default": {
85
+ defaultKeys: "ctrl+d",
86
+ description: "Tree filter: default view",
87
+ },
88
+ "app.tree.filter.noTools": {
89
+ defaultKeys: "ctrl+t",
90
+ description: "Tree filter: hide tool results",
91
+ },
92
+ "app.tree.filter.userOnly": {
93
+ defaultKeys: "ctrl+u",
94
+ description: "Tree filter: user messages only",
95
+ },
96
+ "app.tree.filter.labeledOnly": {
97
+ defaultKeys: "ctrl+l",
98
+ description: "Tree filter: labeled entries only",
99
+ },
100
+ "app.tree.filter.all": {
101
+ defaultKeys: "ctrl+a",
102
+ description: "Tree filter: show all entries",
103
+ },
104
+ "app.tree.filter.cycleForward": {
105
+ defaultKeys: "ctrl+o",
106
+ description: "Tree filter: cycle forward",
107
+ },
108
+ "app.tree.filter.cycleBackward": {
109
+ defaultKeys: "shift+ctrl+o",
110
+ description: "Tree filter: cycle backward",
111
+ },
112
+ };
113
+ const KEYBINDING_NAME_MIGRATIONS = {
114
+ cursorUp: "tui.editor.cursorUp",
115
+ cursorDown: "tui.editor.cursorDown",
116
+ cursorLeft: "tui.editor.cursorLeft",
117
+ cursorRight: "tui.editor.cursorRight",
118
+ cursorWordLeft: "tui.editor.cursorWordLeft",
119
+ cursorWordRight: "tui.editor.cursorWordRight",
120
+ cursorLineStart: "tui.editor.cursorLineStart",
121
+ cursorLineEnd: "tui.editor.cursorLineEnd",
122
+ jumpForward: "tui.editor.jumpForward",
123
+ jumpBackward: "tui.editor.jumpBackward",
124
+ pageUp: "tui.editor.pageUp",
125
+ pageDown: "tui.editor.pageDown",
126
+ deleteCharBackward: "tui.editor.deleteCharBackward",
127
+ deleteCharForward: "tui.editor.deleteCharForward",
128
+ deleteWordBackward: "tui.editor.deleteWordBackward",
129
+ deleteWordForward: "tui.editor.deleteWordForward",
130
+ deleteToLineStart: "tui.editor.deleteToLineStart",
131
+ deleteToLineEnd: "tui.editor.deleteToLineEnd",
132
+ yank: "tui.editor.yank",
133
+ yankPop: "tui.editor.yankPop",
134
+ undo: "tui.editor.undo",
135
+ newLine: "tui.input.newLine",
136
+ submit: "tui.input.submit",
137
+ tab: "tui.input.tab",
138
+ copy: "tui.input.copy",
139
+ selectUp: "tui.select.up",
140
+ selectDown: "tui.select.down",
141
+ selectPageUp: "tui.select.pageUp",
142
+ selectPageDown: "tui.select.pageDown",
143
+ selectConfirm: "tui.select.confirm",
144
+ selectCancel: "tui.select.cancel",
145
+ interrupt: "app.interrupt",
146
+ clear: "app.clear",
147
+ exit: "app.exit",
148
+ suspend: "app.suspend",
149
+ cycleThinkingLevel: "app.thinking.cycle",
150
+ cycleModelForward: "app.model.cycleForward",
151
+ cycleModelBackward: "app.model.cycleBackward",
152
+ selectModel: "app.model.select",
153
+ expandTools: "app.tools.expand",
154
+ toggleThinking: "app.thinking.toggle",
155
+ externalEditor: "app.editor.external",
156
+ followUp: "app.message.followUp",
157
+ dequeue: "app.message.dequeue",
158
+ pasteImage: "app.clipboard.pasteImage",
159
+ treeFoldOrUp: "app.tree.foldOrUp",
160
+ treeUnfoldOrDown: "app.tree.unfoldOrDown",
161
+ treeToggleLabelTimestamp: "app.tree.toggleLabelTimestamp",
162
+ };
163
+ function isRecord(value) {
164
+ return typeof value === "object" && value !== null && !Array.isArray(value);
165
+ }
166
+ function isLegacyKeybindingName(key) {
167
+ return key in KEYBINDING_NAME_MIGRATIONS;
168
+ }
169
+ function toKeybindingsConfig(value) {
170
+ if (!isRecord(value))
171
+ return {};
172
+ const config = {};
173
+ for (const [key, binding] of Object.entries(value)) {
174
+ if (typeof binding === "string") {
175
+ config[key] = binding;
176
+ continue;
177
+ }
178
+ if (Array.isArray(binding) && binding.every((entry) => typeof entry === "string")) {
179
+ config[key] = binding;
180
+ }
181
+ }
182
+ return config;
183
+ }
184
+ export function migrateKeybindingsConfig(rawConfig) {
185
+ const config = {};
186
+ let migrated = false;
187
+ for (const [key, value] of Object.entries(rawConfig)) {
188
+ const nextKey = isLegacyKeybindingName(key) ? KEYBINDING_NAME_MIGRATIONS[key] : key;
189
+ if (nextKey !== key) {
190
+ migrated = true;
191
+ }
192
+ if (key !== nextKey && Object.hasOwn(rawConfig, nextKey)) {
193
+ migrated = true;
194
+ continue;
195
+ }
196
+ config[nextKey] = value;
197
+ }
198
+ return { config: orderKeybindingsConfig(config), migrated };
199
+ }
200
+ function orderKeybindingsConfig(config) {
201
+ const ordered = {};
202
+ for (const keybinding of Object.keys(KEYBINDINGS)) {
203
+ if (Object.hasOwn(config, keybinding)) {
204
+ ordered[keybinding] = config[keybinding];
205
+ }
206
+ }
207
+ const extras = Object.keys(config)
208
+ .filter((key) => !Object.hasOwn(ordered, key))
209
+ .sort();
210
+ for (const key of extras) {
211
+ ordered[key] = config[key];
212
+ }
213
+ return ordered;
214
+ }
215
+ function loadRawConfig(path) {
216
+ if (!existsSync(path))
217
+ return undefined;
218
+ try {
219
+ const parsed = JSON.parse(readFileSync(path, "utf-8"));
220
+ return isRecord(parsed) ? parsed : undefined;
221
+ }
222
+ catch {
223
+ return undefined;
224
+ }
225
+ }
226
+ export class KeybindingsManager extends TuiKeybindingsManager {
227
+ constructor(userBindings = {}, configPath) {
228
+ super(KEYBINDINGS, userBindings);
229
+ this.configPath = configPath;
230
+ }
231
+ static create(agentDir = getAgentDir()) {
232
+ const configPath = join(agentDir, "keybindings.json");
233
+ const userBindings = KeybindingsManager.loadFromFile(configPath);
234
+ return new KeybindingsManager(userBindings, configPath);
235
+ }
236
+ reload() {
237
+ if (!this.configPath)
238
+ return;
239
+ this.setUserBindings(KeybindingsManager.loadFromFile(this.configPath));
240
+ }
241
+ getEffectiveConfig() {
242
+ return this.getResolvedBindings();
243
+ }
244
+ static loadFromFile(path) {
245
+ const rawConfig = loadRawConfig(path);
246
+ if (!rawConfig)
247
+ return {};
248
+ return toKeybindingsConfig(migrateKeybindingsConfig(rawConfig).config);
249
+ }
250
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Custom message types and transformers for the coding agent.
3
+ *
4
+ * Extends the base AgentMessage type with coding-agent specific message types,
5
+ * and provides a transformer to convert them to LLM-compatible messages.
6
+ */
7
+ import type { AgentMessage, BashExecutionMessage, BranchSummaryMessage, CompactionSummaryMessage, CustomMessage } from "./agent/types.js";
8
+ import type { ImageContent, Message, TextContent } from "@earendil-works/pi-ai/compat";
9
+ export type { BashExecutionMessage, BranchSummaryMessage, CompactionSummaryMessage, CustomMessage };
10
+ export declare const COMPACTION_SUMMARY_PREFIX = "The conversation history before this point was compacted into the following summary:\n\n<summary>\n";
11
+ export declare const COMPACTION_SUMMARY_SUFFIX = "\n</summary>";
12
+ export declare const BRANCH_SUMMARY_PREFIX = "The following is a summary of a branch that this conversation came back from:\n\n<summary>\n";
13
+ export declare const BRANCH_SUMMARY_SUFFIX = "</summary>";
14
+ /**
15
+ * Convert a BashExecutionMessage to user message text for LLM context.
16
+ */
17
+ export declare function bashExecutionToText(msg: BashExecutionMessage): string;
18
+ export declare function createBranchSummaryMessage(summary: string, fromId: string, timestamp: string): BranchSummaryMessage;
19
+ export declare function createCompactionSummaryMessage(summary: string, tokensBefore: number, timestamp: string): CompactionSummaryMessage;
20
+ /** Convert CustomMessageEntry to AgentMessage format */
21
+ export declare function createCustomMessage(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details: unknown | undefined, timestamp: string): CustomMessage;
22
+ /**
23
+ * Transform AgentMessages (including custom types) to LLM-compatible Messages.
24
+ *
25
+ * This is used by:
26
+ * - Agent's transormToLlm option (for prompt calls and queued messages)
27
+ * - Compaction's generateSummary (for summarization)
28
+ * - Custom extensions and tools
29
+ */
30
+ export declare function convertToLlm(messages: AgentMessage[]): Message[];