leaf-coding-agent 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/dist/cli/args.d.ts +55 -0
  2. package/dist/cli/args.d.ts.map +1 -0
  3. package/dist/cli/args.js +356 -0
  4. package/dist/cli/args.js.map +1 -0
  5. package/dist/cli/config-selector.d.ts +14 -0
  6. package/dist/cli/config-selector.d.ts.map +1 -0
  7. package/dist/cli/config-selector.js +31 -0
  8. package/dist/cli/config-selector.js.map +1 -0
  9. package/dist/cli/file-processor.d.ts +15 -0
  10. package/dist/cli/file-processor.d.ts.map +1 -0
  11. package/dist/cli/file-processor.js +82 -0
  12. package/dist/cli/file-processor.js.map +1 -0
  13. package/dist/cli/initial-message.d.ts +18 -0
  14. package/dist/cli/initial-message.d.ts.map +1 -0
  15. package/dist/cli/initial-message.js +22 -0
  16. package/dist/cli/initial-message.js.map +1 -0
  17. package/dist/cli/list-models.d.ts +9 -0
  18. package/dist/cli/list-models.d.ts.map +1 -0
  19. package/dist/cli/list-models.js +98 -0
  20. package/dist/cli/list-models.js.map +1 -0
  21. package/dist/cli/session-picker.d.ts +9 -0
  22. package/dist/cli/session-picker.d.ts.map +1 -0
  23. package/dist/cli/session-picker.js +35 -0
  24. package/dist/cli/session-picker.js.map +1 -0
  25. package/dist/cli.d.ts +3 -0
  26. package/dist/cli.d.ts.map +1 -0
  27. package/dist/cli.js +18 -0
  28. package/dist/cli.js.map +1 -0
  29. package/dist/config.d.ts +92 -0
  30. package/dist/config.d.ts.map +1 -0
  31. package/dist/config.js +428 -0
  32. package/dist/config.js.map +1 -0
  33. package/dist/core/agent-session-runtime.d.ts +117 -0
  34. package/dist/core/agent-session-runtime.d.ts.map +1 -0
  35. package/dist/core/agent-session-runtime.js +300 -0
  36. package/dist/core/agent-session-runtime.js.map +1 -0
  37. package/dist/core/agent-session-services.d.ts +87 -0
  38. package/dist/core/agent-session-services.d.ts.map +1 -0
  39. package/dist/core/agent-session-services.js +119 -0
  40. package/dist/core/agent-session-services.js.map +1 -0
  41. package/dist/core/agent-session.d.ts +602 -0
  42. package/dist/core/agent-session.d.ts.map +1 -0
  43. package/dist/core/agent-session.js +2523 -0
  44. package/dist/core/agent-session.js.map +1 -0
  45. package/dist/core/auth-guidance.d.ts +5 -0
  46. package/dist/core/auth-guidance.d.ts.map +1 -0
  47. package/dist/core/auth-guidance.js +21 -0
  48. package/dist/core/auth-guidance.js.map +1 -0
  49. package/dist/core/auth-storage.d.ts +141 -0
  50. package/dist/core/auth-storage.d.ts.map +1 -0
  51. package/dist/core/auth-storage.js +442 -0
  52. package/dist/core/auth-storage.js.map +1 -0
  53. package/dist/core/bash-executor.d.ts +32 -0
  54. package/dist/core/bash-executor.d.ts.map +1 -0
  55. package/dist/core/bash-executor.js +111 -0
  56. package/dist/core/bash-executor.js.map +1 -0
  57. package/dist/core/compaction/branch-summarization.d.ts +88 -0
  58. package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
  59. package/dist/core/compaction/branch-summarization.js +243 -0
  60. package/dist/core/compaction/branch-summarization.js.map +1 -0
  61. package/dist/core/compaction/compaction.d.ts +121 -0
  62. package/dist/core/compaction/compaction.d.ts.map +1 -0
  63. package/dist/core/compaction/compaction.js +619 -0
  64. package/dist/core/compaction/compaction.js.map +1 -0
  65. package/dist/core/compaction/index.d.ts +7 -0
  66. package/dist/core/compaction/index.d.ts.map +1 -0
  67. package/dist/core/compaction/index.js +7 -0
  68. package/dist/core/compaction/index.js.map +1 -0
  69. package/dist/core/compaction/utils.d.ts +38 -0
  70. package/dist/core/compaction/utils.d.ts.map +1 -0
  71. package/dist/core/compaction/utils.js +153 -0
  72. package/dist/core/compaction/utils.js.map +1 -0
  73. package/dist/core/defaults.d.ts +3 -0
  74. package/dist/core/defaults.d.ts.map +1 -0
  75. package/dist/core/defaults.js +2 -0
  76. package/dist/core/defaults.js.map +1 -0
  77. package/dist/core/diagnostics.d.ts +15 -0
  78. package/dist/core/diagnostics.d.ts.map +1 -0
  79. package/dist/core/diagnostics.js +2 -0
  80. package/dist/core/diagnostics.js.map +1 -0
  81. package/dist/core/event-bus.d.ts +9 -0
  82. package/dist/core/event-bus.d.ts.map +1 -0
  83. package/dist/core/event-bus.js +25 -0
  84. package/dist/core/event-bus.js.map +1 -0
  85. package/dist/core/exec.d.ts +29 -0
  86. package/dist/core/exec.d.ts.map +1 -0
  87. package/dist/core/exec.js +75 -0
  88. package/dist/core/exec.js.map +1 -0
  89. package/dist/core/export-html/ansi-to-html.d.ts +22 -0
  90. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
  91. package/dist/core/export-html/ansi-to-html.js +249 -0
  92. package/dist/core/export-html/ansi-to-html.js.map +1 -0
  93. package/dist/core/export-html/index.d.ts +37 -0
  94. package/dist/core/export-html/index.d.ts.map +1 -0
  95. package/dist/core/export-html/index.js +226 -0
  96. package/dist/core/export-html/index.js.map +1 -0
  97. package/dist/core/export-html/template.css +1066 -0
  98. package/dist/core/export-html/template.html +55 -0
  99. package/dist/core/export-html/template.js +1851 -0
  100. package/dist/core/export-html/tool-renderer.d.ts +34 -0
  101. package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
  102. package/dist/core/export-html/tool-renderer.js +108 -0
  103. package/dist/core/export-html/tool-renderer.js.map +1 -0
  104. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  105. package/dist/core/export-html/vendor/marked.min.js +6 -0
  106. package/dist/core/extensions/index.d.ts +12 -0
  107. package/dist/core/extensions/index.d.ts.map +1 -0
  108. package/dist/core/extensions/index.js +9 -0
  109. package/dist/core/extensions/index.js.map +1 -0
  110. package/dist/core/extensions/loader.d.ts +24 -0
  111. package/dist/core/extensions/loader.d.ts.map +1 -0
  112. package/dist/core/extensions/loader.js +481 -0
  113. package/dist/core/extensions/loader.js.map +1 -0
  114. package/dist/core/extensions/runner.d.ts +159 -0
  115. package/dist/core/extensions/runner.d.ts.map +1 -0
  116. package/dist/core/extensions/runner.js +830 -0
  117. package/dist/core/extensions/runner.js.map +1 -0
  118. package/dist/core/extensions/types.d.ts +1175 -0
  119. package/dist/core/extensions/types.d.ts.map +1 -0
  120. package/dist/core/extensions/types.js +45 -0
  121. package/dist/core/extensions/types.js.map +1 -0
  122. package/dist/core/extensions/wrapper.d.ts +20 -0
  123. package/dist/core/extensions/wrapper.d.ts.map +1 -0
  124. package/dist/core/extensions/wrapper.js +22 -0
  125. package/dist/core/extensions/wrapper.js.map +1 -0
  126. package/dist/core/footer-data-provider.d.ts +52 -0
  127. package/dist/core/footer-data-provider.d.ts.map +1 -0
  128. package/dist/core/footer-data-provider.js +310 -0
  129. package/dist/core/footer-data-provider.js.map +1 -0
  130. package/dist/core/http-dispatcher.d.ts +21 -0
  131. package/dist/core/http-dispatcher.d.ts.map +1 -0
  132. package/dist/core/http-dispatcher.js +48 -0
  133. package/dist/core/http-dispatcher.js.map +1 -0
  134. package/dist/core/index.d.ts +12 -0
  135. package/dist/core/index.d.ts.map +1 -0
  136. package/dist/core/index.js +12 -0
  137. package/dist/core/index.js.map +1 -0
  138. package/dist/core/keybindings.d.ts +353 -0
  139. package/dist/core/keybindings.d.ts.map +1 -0
  140. package/dist/core/keybindings.js +295 -0
  141. package/dist/core/keybindings.js.map +1 -0
  142. package/dist/core/messages.d.ts +77 -0
  143. package/dist/core/messages.d.ts.map +1 -0
  144. package/dist/core/messages.js +123 -0
  145. package/dist/core/messages.js.map +1 -0
  146. package/dist/core/model-registry.d.ts +150 -0
  147. package/dist/core/model-registry.d.ts.map +1 -0
  148. package/dist/core/model-registry.js +784 -0
  149. package/dist/core/model-registry.js.map +1 -0
  150. package/dist/core/model-resolver.d.ts +110 -0
  151. package/dist/core/model-resolver.d.ts.map +1 -0
  152. package/dist/core/model-resolver.js +495 -0
  153. package/dist/core/model-resolver.js.map +1 -0
  154. package/dist/core/output-guard.d.ts +7 -0
  155. package/dist/core/output-guard.d.ts.map +1 -0
  156. package/dist/core/output-guard.js +89 -0
  157. package/dist/core/output-guard.js.map +1 -0
  158. package/dist/core/package-manager.d.ts +204 -0
  159. package/dist/core/package-manager.d.ts.map +1 -0
  160. package/dist/core/package-manager.js +2040 -0
  161. package/dist/core/package-manager.js.map +1 -0
  162. package/dist/core/prompt-templates.d.ts +52 -0
  163. package/dist/core/prompt-templates.d.ts.map +1 -0
  164. package/dist/core/prompt-templates.js +238 -0
  165. package/dist/core/prompt-templates.js.map +1 -0
  166. package/dist/core/provider-display-names.d.ts +2 -0
  167. package/dist/core/provider-display-names.d.ts.map +1 -0
  168. package/dist/core/provider-display-names.js +33 -0
  169. package/dist/core/provider-display-names.js.map +1 -0
  170. package/dist/core/resolve-config-value.d.ts +31 -0
  171. package/dist/core/resolve-config-value.d.ts.map +1 -0
  172. package/dist/core/resolve-config-value.js +249 -0
  173. package/dist/core/resolve-config-value.js.map +1 -0
  174. package/dist/core/resource-loader.d.ts +194 -0
  175. package/dist/core/resource-loader.d.ts.map +1 -0
  176. package/dist/core/resource-loader.js +734 -0
  177. package/dist/core/resource-loader.js.map +1 -0
  178. package/dist/core/sdk.d.ts +109 -0
  179. package/dist/core/sdk.d.ts.map +1 -0
  180. package/dist/core/sdk.js +291 -0
  181. package/dist/core/sdk.js.map +1 -0
  182. package/dist/core/session-cwd.d.ts +19 -0
  183. package/dist/core/session-cwd.d.ts.map +1 -0
  184. package/dist/core/session-cwd.js +38 -0
  185. package/dist/core/session-cwd.js.map +1 -0
  186. package/dist/core/session-manager.d.ts +332 -0
  187. package/dist/core/session-manager.d.ts.map +1 -0
  188. package/dist/core/session-manager.js +1194 -0
  189. package/dist/core/session-manager.js.map +1 -0
  190. package/dist/core/settings-manager.d.ts +266 -0
  191. package/dist/core/settings-manager.d.ts.map +1 -0
  192. package/dist/core/settings-manager.js +800 -0
  193. package/dist/core/settings-manager.js.map +1 -0
  194. package/dist/core/skills.d.ts +60 -0
  195. package/dist/core/skills.d.ts.map +1 -0
  196. package/dist/core/skills.js +387 -0
  197. package/dist/core/skills.js.map +1 -0
  198. package/dist/core/slash-commands.d.ts +14 -0
  199. package/dist/core/slash-commands.d.ts.map +1 -0
  200. package/dist/core/slash-commands.js +25 -0
  201. package/dist/core/slash-commands.js.map +1 -0
  202. package/dist/core/source-info.d.ts +18 -0
  203. package/dist/core/source-info.d.ts.map +1 -0
  204. package/dist/core/source-info.js +19 -0
  205. package/dist/core/source-info.js.map +1 -0
  206. package/dist/core/system-prompt.d.ts +30 -0
  207. package/dist/core/system-prompt.d.ts.map +1 -0
  208. package/dist/core/system-prompt.js +117 -0
  209. package/dist/core/system-prompt.js.map +1 -0
  210. package/dist/core/telemetry.d.ts +3 -0
  211. package/dist/core/telemetry.d.ts.map +1 -0
  212. package/dist/core/telemetry.js +9 -0
  213. package/dist/core/telemetry.js.map +1 -0
  214. package/dist/core/timings.d.ts +8 -0
  215. package/dist/core/timings.d.ts.map +1 -0
  216. package/dist/core/timings.js +31 -0
  217. package/dist/core/timings.js.map +1 -0
  218. package/dist/core/tools/bash.d.ts +68 -0
  219. package/dist/core/tools/bash.d.ts.map +1 -0
  220. package/dist/core/tools/bash.js +337 -0
  221. package/dist/core/tools/bash.js.map +1 -0
  222. package/dist/core/tools/edit-diff.d.ts +87 -0
  223. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  224. package/dist/core/tools/edit-diff.js +345 -0
  225. package/dist/core/tools/edit-diff.js.map +1 -0
  226. package/dist/core/tools/edit.d.ts +51 -0
  227. package/dist/core/tools/edit.d.ts.map +1 -0
  228. package/dist/core/tools/edit.js +287 -0
  229. package/dist/core/tools/edit.js.map +1 -0
  230. package/dist/core/tools/file-mutation-queue.d.ts +6 -0
  231. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
  232. package/dist/core/tools/file-mutation-queue.js +52 -0
  233. package/dist/core/tools/file-mutation-queue.js.map +1 -0
  234. package/dist/core/tools/find.d.ts +35 -0
  235. package/dist/core/tools/find.d.ts.map +1 -0
  236. package/dist/core/tools/find.js +297 -0
  237. package/dist/core/tools/find.js.map +1 -0
  238. package/dist/core/tools/grep.d.ts +37 -0
  239. package/dist/core/tools/grep.d.ts.map +1 -0
  240. package/dist/core/tools/grep.js +304 -0
  241. package/dist/core/tools/grep.js.map +1 -0
  242. package/dist/core/tools/index.d.ts +40 -0
  243. package/dist/core/tools/index.d.ts.map +1 -0
  244. package/dist/core/tools/index.js +112 -0
  245. package/dist/core/tools/index.js.map +1 -0
  246. package/dist/core/tools/ls.d.ts +37 -0
  247. package/dist/core/tools/ls.d.ts.map +1 -0
  248. package/dist/core/tools/ls.js +169 -0
  249. package/dist/core/tools/ls.js.map +1 -0
  250. package/dist/core/tools/output-accumulator.d.ts +52 -0
  251. package/dist/core/tools/output-accumulator.d.ts.map +1 -0
  252. package/dist/core/tools/output-accumulator.js +184 -0
  253. package/dist/core/tools/output-accumulator.js.map +1 -0
  254. package/dist/core/tools/path-utils.d.ts +10 -0
  255. package/dist/core/tools/path-utils.d.ts.map +1 -0
  256. package/dist/core/tools/path-utils.js +99 -0
  257. package/dist/core/tools/path-utils.js.map +1 -0
  258. package/dist/core/tools/read.d.ts +35 -0
  259. package/dist/core/tools/read.d.ts.map +1 -0
  260. package/dist/core/tools/read.js +290 -0
  261. package/dist/core/tools/read.js.map +1 -0
  262. package/dist/core/tools/render-utils.d.ts +21 -0
  263. package/dist/core/tools/render-utils.d.ts.map +1 -0
  264. package/dist/core/tools/render-utils.js +49 -0
  265. package/dist/core/tools/render-utils.js.map +1 -0
  266. package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
  267. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  268. package/dist/core/tools/tool-definition-wrapper.js +34 -0
  269. package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
  270. package/dist/core/tools/truncate.d.ts +70 -0
  271. package/dist/core/tools/truncate.d.ts.map +1 -0
  272. package/dist/core/tools/truncate.js +215 -0
  273. package/dist/core/tools/truncate.js.map +1 -0
  274. package/dist/core/tools/worker.d.ts +23 -0
  275. package/dist/core/tools/worker.d.ts.map +1 -0
  276. package/dist/core/tools/worker.js +150 -0
  277. package/dist/core/tools/worker.js.map +1 -0
  278. package/dist/core/tools/write.d.ts +26 -0
  279. package/dist/core/tools/write.d.ts.map +1 -0
  280. package/dist/core/tools/write.js +198 -0
  281. package/dist/core/tools/write.js.map +1 -0
  282. package/dist/core/worker-integration.d.ts +79 -0
  283. package/dist/core/worker-integration.d.ts.map +1 -0
  284. package/dist/core/worker-integration.js +108 -0
  285. package/dist/core/worker-integration.js.map +1 -0
  286. package/dist/index.d.ts +29 -0
  287. package/dist/index.d.ts.map +1 -0
  288. package/dist/index.js +42 -0
  289. package/dist/index.js.map +1 -0
  290. package/dist/main.d.ts +12 -0
  291. package/dist/main.d.ts.map +1 -0
  292. package/dist/main.js +623 -0
  293. package/dist/main.js.map +1 -0
  294. package/dist/migrations.d.ts +33 -0
  295. package/dist/migrations.d.ts.map +1 -0
  296. package/dist/migrations.js +398 -0
  297. package/dist/migrations.js.map +1 -0
  298. package/dist/modes/index.d.ts +9 -0
  299. package/dist/modes/index.d.ts.map +1 -0
  300. package/dist/modes/index.js +8 -0
  301. package/dist/modes/index.js.map +1 -0
  302. package/dist/modes/interactive/assets/clankolas.png +0 -0
  303. package/dist/modes/interactive/components/armin.d.ts +34 -0
  304. package/dist/modes/interactive/components/armin.d.ts.map +1 -0
  305. package/dist/modes/interactive/components/armin.js +333 -0
  306. package/dist/modes/interactive/components/armin.js.map +1 -0
  307. package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
  308. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
  309. package/dist/modes/interactive/components/assistant-message.js +121 -0
  310. package/dist/modes/interactive/components/assistant-message.js.map +1 -0
  311. package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
  312. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
  313. package/dist/modes/interactive/components/bash-execution.js +175 -0
  314. package/dist/modes/interactive/components/bash-execution.js.map +1 -0
  315. package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
  316. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  317. package/dist/modes/interactive/components/bordered-loader.js +54 -0
  318. package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
  319. package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
  320. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  321. package/dist/modes/interactive/components/branch-summary-message.js +44 -0
  322. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
  323. package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  324. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  325. package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
  326. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
  327. package/dist/modes/interactive/components/config-selector.d.ts +71 -0
  328. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
  329. package/dist/modes/interactive/components/config-selector.js +506 -0
  330. package/dist/modes/interactive/components/config-selector.js.map +1 -0
  331. package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
  332. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  333. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  334. package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
  335. package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
  336. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
  337. package/dist/modes/interactive/components/custom-editor.js +70 -0
  338. package/dist/modes/interactive/components/custom-editor.js.map +1 -0
  339. package/dist/modes/interactive/components/custom-message.d.ts +20 -0
  340. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
  341. package/dist/modes/interactive/components/custom-message.js +79 -0
  342. package/dist/modes/interactive/components/custom-message.js.map +1 -0
  343. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  344. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  345. package/dist/modes/interactive/components/daxnuts.js +140 -0
  346. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  347. package/dist/modes/interactive/components/diff.d.ts +12 -0
  348. package/dist/modes/interactive/components/diff.d.ts.map +1 -0
  349. package/dist/modes/interactive/components/diff.js +133 -0
  350. package/dist/modes/interactive/components/diff.js.map +1 -0
  351. package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
  352. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  353. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  354. package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
  355. package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
  356. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  357. package/dist/modes/interactive/components/earendil-announcement.js +40 -0
  358. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
  359. package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
  360. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
  361. package/dist/modes/interactive/components/extension-editor.js +119 -0
  362. package/dist/modes/interactive/components/extension-editor.js.map +1 -0
  363. package/dist/modes/interactive/components/extension-input.d.ts +23 -0
  364. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
  365. package/dist/modes/interactive/components/extension-input.js +61 -0
  366. package/dist/modes/interactive/components/extension-input.js.map +1 -0
  367. package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
  368. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
  369. package/dist/modes/interactive/components/extension-selector.js +83 -0
  370. package/dist/modes/interactive/components/extension-selector.js.map +1 -0
  371. package/dist/modes/interactive/components/footer.d.ts +28 -0
  372. package/dist/modes/interactive/components/footer.d.ts.map +1 -0
  373. package/dist/modes/interactive/components/footer.js +210 -0
  374. package/dist/modes/interactive/components/footer.js.map +1 -0
  375. package/dist/modes/interactive/components/index.d.ts +32 -0
  376. package/dist/modes/interactive/components/index.d.ts.map +1 -0
  377. package/dist/modes/interactive/components/index.js +33 -0
  378. package/dist/modes/interactive/components/index.js.map +1 -0
  379. package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
  380. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  381. package/dist/modes/interactive/components/keybinding-hints.js +36 -0
  382. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
  383. package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
  384. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
  385. package/dist/modes/interactive/components/login-dialog.js +183 -0
  386. package/dist/modes/interactive/components/login-dialog.js.map +1 -0
  387. package/dist/modes/interactive/components/model-selector.d.ts +47 -0
  388. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
  389. package/dist/modes/interactive/components/model-selector.js +278 -0
  390. package/dist/modes/interactive/components/model-selector.js.map +1 -0
  391. package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
  392. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  393. package/dist/modes/interactive/components/oauth-selector.js +165 -0
  394. package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
  395. package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
  396. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  397. package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
  398. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
  399. package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
  400. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  401. package/dist/modes/interactive/components/session-selector-search.js +155 -0
  402. package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
  403. package/dist/modes/interactive/components/session-selector.d.ts +96 -0
  404. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
  405. package/dist/modes/interactive/components/session-selector.js +861 -0
  406. package/dist/modes/interactive/components/session-selector.js.map +1 -0
  407. package/dist/modes/interactive/components/settings-selector.d.ts +69 -0
  408. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
  409. package/dist/modes/interactive/components/settings-selector.js +390 -0
  410. package/dist/modes/interactive/components/settings-selector.js.map +1 -0
  411. package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
  412. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  413. package/dist/modes/interactive/components/show-images-selector.js +39 -0
  414. package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
  415. package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  416. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  417. package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
  418. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
  419. package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
  420. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
  421. package/dist/modes/interactive/components/theme-selector.js +50 -0
  422. package/dist/modes/interactive/components/theme-selector.js.map +1 -0
  423. package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
  424. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  425. package/dist/modes/interactive/components/thinking-selector.js +51 -0
  426. package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
  427. package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
  428. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
  429. package/dist/modes/interactive/components/tool-execution.js +295 -0
  430. package/dist/modes/interactive/components/tool-execution.js.map +1 -0
  431. package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
  432. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
  433. package/dist/modes/interactive/components/tree-selector.js +1093 -0
  434. package/dist/modes/interactive/components/tree-selector.js.map +1 -0
  435. package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
  436. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  437. package/dist/modes/interactive/components/user-message-selector.js +114 -0
  438. package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
  439. package/dist/modes/interactive/components/user-message.d.ts +10 -0
  440. package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
  441. package/dist/modes/interactive/components/user-message.js +29 -0
  442. package/dist/modes/interactive/components/user-message.js.map +1 -0
  443. package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
  444. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  445. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  446. package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
  447. package/dist/modes/interactive/components/worker-status.d.ts +23 -0
  448. package/dist/modes/interactive/components/worker-status.d.ts.map +1 -0
  449. package/dist/modes/interactive/components/worker-status.js +77 -0
  450. package/dist/modes/interactive/components/worker-status.js.map +1 -0
  451. package/dist/modes/interactive/interactive-mode.d.ts +370 -0
  452. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
  453. package/dist/modes/interactive/interactive-mode.js +4674 -0
  454. package/dist/modes/interactive/interactive-mode.js.map +1 -0
  455. package/dist/modes/interactive/theme/dark.json +86 -0
  456. package/dist/modes/interactive/theme/light.json +85 -0
  457. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  458. package/dist/modes/interactive/theme/theme.d.ts +100 -0
  459. package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
  460. package/dist/modes/interactive/theme/theme.js +1034 -0
  461. package/dist/modes/interactive/theme/theme.js.map +1 -0
  462. package/dist/modes/interactive/worker-ui-integration.d.ts +102 -0
  463. package/dist/modes/interactive/worker-ui-integration.d.ts.map +1 -0
  464. package/dist/modes/interactive/worker-ui-integration.js +147 -0
  465. package/dist/modes/interactive/worker-ui-integration.js.map +1 -0
  466. package/dist/modes/print-mode.d.ts +28 -0
  467. package/dist/modes/print-mode.d.ts.map +1 -0
  468. package/dist/modes/print-mode.js +131 -0
  469. package/dist/modes/print-mode.js.map +1 -0
  470. package/dist/modes/rpc/jsonl.d.ts +17 -0
  471. package/dist/modes/rpc/jsonl.d.ts.map +1 -0
  472. package/dist/modes/rpc/jsonl.js +49 -0
  473. package/dist/modes/rpc/jsonl.js.map +1 -0
  474. package/dist/modes/rpc/rpc-client.d.ts +227 -0
  475. package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
  476. package/dist/modes/rpc/rpc-client.js +467 -0
  477. package/dist/modes/rpc/rpc-client.js.map +1 -0
  478. package/dist/modes/rpc/rpc-mode.d.ts +20 -0
  479. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
  480. package/dist/modes/rpc/rpc-mode.js +615 -0
  481. package/dist/modes/rpc/rpc-mode.js.map +1 -0
  482. package/dist/modes/rpc/rpc-types.d.ts +420 -0
  483. package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
  484. package/dist/modes/rpc/rpc-types.js +8 -0
  485. package/dist/modes/rpc/rpc-types.js.map +1 -0
  486. package/dist/package-manager-cli.d.ts +4 -0
  487. package/dist/package-manager-cli.d.ts.map +1 -0
  488. package/dist/package-manager-cli.js +515 -0
  489. package/dist/package-manager-cli.js.map +1 -0
  490. package/dist/utils/ansi.d.ts +2 -0
  491. package/dist/utils/ansi.d.ts.map +1 -0
  492. package/dist/utils/ansi.js +52 -0
  493. package/dist/utils/ansi.js.map +1 -0
  494. package/dist/utils/changelog.d.ts +21 -0
  495. package/dist/utils/changelog.d.ts.map +1 -0
  496. package/dist/utils/changelog.js +87 -0
  497. package/dist/utils/changelog.js.map +1 -0
  498. package/dist/utils/child-process.d.ts +15 -0
  499. package/dist/utils/child-process.d.ts.map +1 -0
  500. package/dist/utils/child-process.js +88 -0
  501. package/dist/utils/child-process.js.map +1 -0
  502. package/dist/utils/clipboard-image.d.ts +11 -0
  503. package/dist/utils/clipboard-image.d.ts.map +1 -0
  504. package/dist/utils/clipboard-image.js +245 -0
  505. package/dist/utils/clipboard-image.js.map +1 -0
  506. package/dist/utils/clipboard-native.d.ts +10 -0
  507. package/dist/utils/clipboard-native.d.ts.map +1 -0
  508. package/dist/utils/clipboard-native.js +20 -0
  509. package/dist/utils/clipboard-native.js.map +1 -0
  510. package/dist/utils/clipboard.d.ts +2 -0
  511. package/dist/utils/clipboard.d.ts.map +1 -0
  512. package/dist/utils/clipboard.js +117 -0
  513. package/dist/utils/clipboard.js.map +1 -0
  514. package/dist/utils/deprecation.d.ts +4 -0
  515. package/dist/utils/deprecation.d.ts.map +1 -0
  516. package/dist/utils/deprecation.js +13 -0
  517. package/dist/utils/deprecation.js.map +1 -0
  518. package/dist/utils/exif-orientation.d.ts +5 -0
  519. package/dist/utils/exif-orientation.d.ts.map +1 -0
  520. package/dist/utils/exif-orientation.js +158 -0
  521. package/dist/utils/exif-orientation.js.map +1 -0
  522. package/dist/utils/frontmatter.d.ts +8 -0
  523. package/dist/utils/frontmatter.d.ts.map +1 -0
  524. package/dist/utils/frontmatter.js +26 -0
  525. package/dist/utils/frontmatter.js.map +1 -0
  526. package/dist/utils/fs-watch.d.ts +5 -0
  527. package/dist/utils/fs-watch.d.ts.map +1 -0
  528. package/dist/utils/fs-watch.js +25 -0
  529. package/dist/utils/fs-watch.js.map +1 -0
  530. package/dist/utils/git.d.ts +26 -0
  531. package/dist/utils/git.d.ts.map +1 -0
  532. package/dist/utils/git.js +163 -0
  533. package/dist/utils/git.js.map +1 -0
  534. package/dist/utils/html.d.ts +7 -0
  535. package/dist/utils/html.d.ts.map +1 -0
  536. package/dist/utils/html.js +40 -0
  537. package/dist/utils/html.js.map +1 -0
  538. package/dist/utils/image-convert.d.ts +9 -0
  539. package/dist/utils/image-convert.d.ts.map +1 -0
  540. package/dist/utils/image-convert.js +39 -0
  541. package/dist/utils/image-convert.js.map +1 -0
  542. package/dist/utils/image-resize-core.d.ts +30 -0
  543. package/dist/utils/image-resize-core.d.ts.map +1 -0
  544. package/dist/utils/image-resize-core.js +124 -0
  545. package/dist/utils/image-resize-core.js.map +1 -0
  546. package/dist/utils/image-resize-worker.d.ts +2 -0
  547. package/dist/utils/image-resize-worker.d.ts.map +1 -0
  548. package/dist/utils/image-resize-worker.js +31 -0
  549. package/dist/utils/image-resize-worker.js.map +1 -0
  550. package/dist/utils/image-resize.d.ts +16 -0
  551. package/dist/utils/image-resize.d.ts.map +1 -0
  552. package/dist/utils/image-resize.js +97 -0
  553. package/dist/utils/image-resize.js.map +1 -0
  554. package/dist/utils/json.d.ts +3 -0
  555. package/dist/utils/json.d.ts.map +1 -0
  556. package/dist/utils/json.js +7 -0
  557. package/dist/utils/json.js.map +1 -0
  558. package/dist/utils/leaf-user-agent.d.ts +2 -0
  559. package/dist/utils/leaf-user-agent.d.ts.map +1 -0
  560. package/dist/utils/leaf-user-agent.js +5 -0
  561. package/dist/utils/leaf-user-agent.js.map +1 -0
  562. package/dist/utils/mime.d.ts +3 -0
  563. package/dist/utils/mime.d.ts.map +1 -0
  564. package/dist/utils/mime.js +69 -0
  565. package/dist/utils/mime.js.map +1 -0
  566. package/dist/utils/paths.d.ts +31 -0
  567. package/dist/utils/paths.d.ts.map +1 -0
  568. package/dist/utils/paths.js +92 -0
  569. package/dist/utils/paths.js.map +1 -0
  570. package/dist/utils/photon.d.ts +21 -0
  571. package/dist/utils/photon.d.ts.map +1 -0
  572. package/dist/utils/photon.js +121 -0
  573. package/dist/utils/photon.js.map +1 -0
  574. package/dist/utils/shell.d.ts +30 -0
  575. package/dist/utils/shell.d.ts.map +1 -0
  576. package/dist/utils/shell.js +195 -0
  577. package/dist/utils/shell.js.map +1 -0
  578. package/dist/utils/sleep.d.ts +5 -0
  579. package/dist/utils/sleep.d.ts.map +1 -0
  580. package/dist/utils/sleep.js +17 -0
  581. package/dist/utils/sleep.js.map +1 -0
  582. package/dist/utils/syntax-highlight.d.ts +12 -0
  583. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  584. package/dist/utils/syntax-highlight.js +118 -0
  585. package/dist/utils/syntax-highlight.js.map +1 -0
  586. package/dist/utils/tools-manager.d.ts +3 -0
  587. package/dist/utils/tools-manager.d.ts.map +1 -0
  588. package/dist/utils/tools-manager.js +328 -0
  589. package/dist/utils/tools-manager.js.map +1 -0
  590. package/dist/utils/version-check.d.ts +15 -0
  591. package/dist/utils/version-check.d.ts.map +1 -0
  592. package/dist/utils/version-check.js +82 -0
  593. package/dist/utils/version-check.js.map +1 -0
  594. package/dist/utils/windows-self-update.d.ts +3 -0
  595. package/dist/utils/windows-self-update.d.ts.map +1 -0
  596. package/dist/utils/windows-self-update.js +77 -0
  597. package/dist/utils/windows-self-update.js.map +1 -0
  598. package/package.json +100 -0
@@ -0,0 +1,198 @@
1
+ import { Container, Text } from "@looze/leaf-tui";
2
+ import { mkdir as fsMkdir, writeFile as fsWriteFile } from "fs/promises";
3
+ import { dirname } from "path";
4
+ import { Type } from "typebox";
5
+ import { keyHint } from "../../modes/interactive/components/keybinding-hints.js";
6
+ import { getLanguageFromPath, highlightCode } from "../../modes/interactive/theme/theme.js";
7
+ import { withFileMutationQueue } from "./file-mutation-queue.js";
8
+ import { resolveToCwd } from "./path-utils.js";
9
+ import { invalidArgText, normalizeDisplayText, replaceTabs, shortenPath, str } from "./render-utils.js";
10
+ import { wrapToolDefinition } from "./tool-definition-wrapper.js";
11
+ const writeSchema = Type.Object({
12
+ path: Type.String({ description: "Path to the file to write (relative or absolute)" }),
13
+ content: Type.String({ description: "Content to write to the file" }),
14
+ });
15
+ const defaultWriteOperations = {
16
+ writeFile: (path, content) => fsWriteFile(path, content, "utf-8"),
17
+ mkdir: (dir) => fsMkdir(dir, { recursive: true }).then(() => { }),
18
+ };
19
+ class WriteCallRenderComponent extends Text {
20
+ cache;
21
+ constructor() {
22
+ super("", 0, 0);
23
+ }
24
+ }
25
+ const WRITE_PARTIAL_FULL_HIGHLIGHT_LINES = 50;
26
+ function highlightSingleLine(line, lang) {
27
+ const highlighted = highlightCode(line, lang);
28
+ return highlighted[0] ?? "";
29
+ }
30
+ function refreshWriteHighlightPrefix(cache) {
31
+ const prefixCount = Math.min(WRITE_PARTIAL_FULL_HIGHLIGHT_LINES, cache.normalizedLines.length);
32
+ if (prefixCount === 0)
33
+ return;
34
+ const prefixSource = cache.normalizedLines.slice(0, prefixCount).join("\n");
35
+ const prefixHighlighted = highlightCode(prefixSource, cache.lang);
36
+ for (let i = 0; i < prefixCount; i++) {
37
+ cache.highlightedLines[i] =
38
+ prefixHighlighted[i] ?? highlightSingleLine(cache.normalizedLines[i] ?? "", cache.lang);
39
+ }
40
+ }
41
+ function rebuildWriteHighlightCacheFull(rawPath, fileContent) {
42
+ const lang = rawPath ? getLanguageFromPath(rawPath) : undefined;
43
+ if (!lang)
44
+ return undefined;
45
+ const displayContent = normalizeDisplayText(fileContent);
46
+ const normalized = replaceTabs(displayContent);
47
+ return {
48
+ rawPath,
49
+ lang,
50
+ rawContent: fileContent,
51
+ normalizedLines: normalized.split("\n"),
52
+ highlightedLines: highlightCode(normalized, lang),
53
+ };
54
+ }
55
+ function updateWriteHighlightCacheIncremental(cache, rawPath, fileContent) {
56
+ const lang = rawPath ? getLanguageFromPath(rawPath) : undefined;
57
+ if (!lang)
58
+ return undefined;
59
+ if (!cache)
60
+ return rebuildWriteHighlightCacheFull(rawPath, fileContent);
61
+ if (cache.lang !== lang || cache.rawPath !== rawPath)
62
+ return rebuildWriteHighlightCacheFull(rawPath, fileContent);
63
+ if (!fileContent.startsWith(cache.rawContent))
64
+ return rebuildWriteHighlightCacheFull(rawPath, fileContent);
65
+ if (fileContent.length === cache.rawContent.length)
66
+ return cache;
67
+ const deltaRaw = fileContent.slice(cache.rawContent.length);
68
+ const deltaDisplay = normalizeDisplayText(deltaRaw);
69
+ const deltaNormalized = replaceTabs(deltaDisplay);
70
+ cache.rawContent = fileContent;
71
+ if (cache.normalizedLines.length === 0) {
72
+ cache.normalizedLines.push("");
73
+ cache.highlightedLines.push("");
74
+ }
75
+ const segments = deltaNormalized.split("\n");
76
+ const lastIndex = cache.normalizedLines.length - 1;
77
+ cache.normalizedLines[lastIndex] += segments[0];
78
+ cache.highlightedLines[lastIndex] = highlightSingleLine(cache.normalizedLines[lastIndex], cache.lang);
79
+ for (let i = 1; i < segments.length; i++) {
80
+ cache.normalizedLines.push(segments[i]);
81
+ cache.highlightedLines.push(highlightSingleLine(segments[i], cache.lang));
82
+ }
83
+ refreshWriteHighlightPrefix(cache);
84
+ return cache;
85
+ }
86
+ function trimTrailingEmptyLines(lines) {
87
+ let end = lines.length;
88
+ while (end > 0 && lines[end - 1] === "") {
89
+ end--;
90
+ }
91
+ return lines.slice(0, end);
92
+ }
93
+ function formatWriteCall(args, options, theme, cache) {
94
+ const rawPath = str(args?.file_path ?? args?.path);
95
+ const fileContent = str(args?.content);
96
+ const path = rawPath !== null ? shortenPath(rawPath) : null;
97
+ const invalidArg = invalidArgText(theme);
98
+ let text = `${theme.fg("toolTitle", theme.bold("write"))} ${path === null ? invalidArg : path ? theme.fg("accent", path) : theme.fg("toolOutput", "...")}`;
99
+ if (fileContent === null) {
100
+ text += `\n\n${theme.fg("error", "[invalid content arg - expected string]")}`;
101
+ }
102
+ else if (fileContent) {
103
+ const lang = rawPath ? getLanguageFromPath(rawPath) : undefined;
104
+ const renderedLines = lang
105
+ ? (cache?.highlightedLines ?? highlightCode(replaceTabs(normalizeDisplayText(fileContent)), lang))
106
+ : normalizeDisplayText(fileContent).split("\n");
107
+ const lines = trimTrailingEmptyLines(renderedLines);
108
+ const totalLines = lines.length;
109
+ const maxLines = options.expanded ? lines.length : 10;
110
+ const displayLines = lines.slice(0, maxLines);
111
+ const remaining = lines.length - maxLines;
112
+ text += `\n\n${displayLines.map((line) => (lang ? line : theme.fg("toolOutput", replaceTabs(line)))).join("\n")}`;
113
+ if (remaining > 0) {
114
+ text += `${theme.fg("muted", `\n... (${remaining} more lines, ${totalLines} total,`)} ${keyHint("app.tools.expand", "to expand")})`;
115
+ }
116
+ }
117
+ return text;
118
+ }
119
+ function formatWriteResult(result, theme) {
120
+ if (!result.isError) {
121
+ return undefined;
122
+ }
123
+ const output = result.content
124
+ .filter((c) => c.type === "text")
125
+ .map((c) => c.text || "")
126
+ .join("\n");
127
+ if (!output) {
128
+ return undefined;
129
+ }
130
+ return `\n${theme.fg("error", output)}`;
131
+ }
132
+ export function createWriteToolDefinition(cwd, options) {
133
+ const ops = options?.operations ?? defaultWriteOperations;
134
+ return {
135
+ name: "write",
136
+ label: "write",
137
+ description: "Write content to a file. Creates the file if it doesn't exist, overwrites if it does. Automatically creates parent directories.",
138
+ promptSnippet: "Create or overwrite files",
139
+ promptGuidelines: ["Use write only for new files or complete rewrites."],
140
+ parameters: writeSchema,
141
+ async execute(_toolCallId, { path, content }, signal, _onUpdate, _ctx) {
142
+ const absolutePath = resolveToCwd(path, cwd);
143
+ const dir = dirname(absolutePath);
144
+ return withFileMutationQueue(absolutePath, async () => {
145
+ // Do not reject from an abort event listener here: that would release the
146
+ // mutation queue while an in-flight filesystem operation may still finish.
147
+ // Checking signal.aborted after each await observes the same aborts while
148
+ // keeping the queue locked until the current operation has settled.
149
+ const throwIfAborted = () => {
150
+ if (signal?.aborted)
151
+ throw new Error("Operation aborted");
152
+ };
153
+ throwIfAborted();
154
+ // Create parent directories if needed.
155
+ await ops.mkdir(dir);
156
+ throwIfAborted();
157
+ // Write the file contents.
158
+ await ops.writeFile(absolutePath, content);
159
+ throwIfAborted();
160
+ return {
161
+ content: [{ type: "text", text: `Successfully wrote ${content.length} bytes to ${path}` }],
162
+ details: undefined,
163
+ };
164
+ });
165
+ },
166
+ renderCall(args, theme, context) {
167
+ const renderArgs = args;
168
+ const rawPath = str(renderArgs?.file_path ?? renderArgs?.path);
169
+ const fileContent = str(renderArgs?.content);
170
+ const component = context.lastComponent ?? new WriteCallRenderComponent();
171
+ if (fileContent !== null) {
172
+ component.cache = context.argsComplete
173
+ ? rebuildWriteHighlightCacheFull(rawPath, fileContent)
174
+ : updateWriteHighlightCacheIncremental(component.cache, rawPath, fileContent);
175
+ }
176
+ else {
177
+ component.cache = undefined;
178
+ }
179
+ component.setText(formatWriteCall(renderArgs, { expanded: context.expanded, isPartial: context.isPartial }, theme, component.cache));
180
+ return component;
181
+ },
182
+ renderResult(result, _options, theme, context) {
183
+ const output = formatWriteResult({ ...result, isError: context.isError }, theme);
184
+ if (!output) {
185
+ const component = context.lastComponent ?? new Container();
186
+ component.clear();
187
+ return component;
188
+ }
189
+ const text = context.lastComponent ?? new Text("", 0, 0);
190
+ text.setText(output);
191
+ return text;
192
+ },
193
+ };
194
+ }
195
+ export function createWriteTool(cwd, options) {
196
+ return wrapToolDefinition(createWriteToolDefinition(cwd, options));
197
+ }
198
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../src/core/tools/write.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentTool } from \"@looze/leaf-agent-core\";\nimport { Container, Text } from \"@looze/leaf-tui\";\nimport { mkdir as fsMkdir, writeFile as fsWriteFile } from \"fs/promises\";\nimport { dirname } from \"path\";\nimport { type Static, Type } from \"typebox\";\nimport { keyHint } from \"../../modes/interactive/components/keybinding-hints.ts\";\nimport { getLanguageFromPath, highlightCode } from \"../../modes/interactive/theme/theme.ts\";\nimport type { ToolDefinition, ToolRenderResultOptions } from \"../extensions/types.ts\";\nimport { withFileMutationQueue } from \"./file-mutation-queue.ts\";\nimport { resolveToCwd } from \"./path-utils.ts\";\nimport { invalidArgText, normalizeDisplayText, replaceTabs, shortenPath, str } from \"./render-utils.ts\";\nimport { wrapToolDefinition } from \"./tool-definition-wrapper.ts\";\n\nconst writeSchema = Type.Object({\n\tpath: Type.String({ description: \"Path to the file to write (relative or absolute)\" }),\n\tcontent: Type.String({ description: \"Content to write to the file\" }),\n});\n\nexport type WriteToolInput = Static<typeof writeSchema>;\n\n/**\n * Pluggable operations for the write tool.\n * Override these to delegate file writing to remote systems (for example SSH).\n */\nexport interface WriteOperations {\n\t/** Write content to a file */\n\twriteFile: (absolutePath: string, content: string) => Promise<void>;\n\t/** Create directory recursively */\n\tmkdir: (dir: string) => Promise<void>;\n}\n\nconst defaultWriteOperations: WriteOperations = {\n\twriteFile: (path, content) => fsWriteFile(path, content, \"utf-8\"),\n\tmkdir: (dir) => fsMkdir(dir, { recursive: true }).then(() => {}),\n};\n\nexport interface WriteToolOptions {\n\t/** Custom operations for file writing. Default: local filesystem */\n\toperations?: WriteOperations;\n}\n\ntype WriteHighlightCache = {\n\trawPath: string | null;\n\tlang: string;\n\trawContent: string;\n\tnormalizedLines: string[];\n\thighlightedLines: string[];\n};\n\nclass WriteCallRenderComponent extends Text {\n\tcache?: WriteHighlightCache;\n\n\tconstructor() {\n\t\tsuper(\"\", 0, 0);\n\t}\n}\n\nconst WRITE_PARTIAL_FULL_HIGHLIGHT_LINES = 50;\n\nfunction highlightSingleLine(line: string, lang: string): string {\n\tconst highlighted = highlightCode(line, lang);\n\treturn highlighted[0] ?? \"\";\n}\n\nfunction refreshWriteHighlightPrefix(cache: WriteHighlightCache): void {\n\tconst prefixCount = Math.min(WRITE_PARTIAL_FULL_HIGHLIGHT_LINES, cache.normalizedLines.length);\n\tif (prefixCount === 0) return;\n\tconst prefixSource = cache.normalizedLines.slice(0, prefixCount).join(\"\\n\");\n\tconst prefixHighlighted = highlightCode(prefixSource, cache.lang);\n\tfor (let i = 0; i < prefixCount; i++) {\n\t\tcache.highlightedLines[i] =\n\t\t\tprefixHighlighted[i] ?? highlightSingleLine(cache.normalizedLines[i] ?? \"\", cache.lang);\n\t}\n}\n\nfunction rebuildWriteHighlightCacheFull(rawPath: string | null, fileContent: string): WriteHighlightCache | undefined {\n\tconst lang = rawPath ? getLanguageFromPath(rawPath) : undefined;\n\tif (!lang) return undefined;\n\tconst displayContent = normalizeDisplayText(fileContent);\n\tconst normalized = replaceTabs(displayContent);\n\treturn {\n\t\trawPath,\n\t\tlang,\n\t\trawContent: fileContent,\n\t\tnormalizedLines: normalized.split(\"\\n\"),\n\t\thighlightedLines: highlightCode(normalized, lang),\n\t};\n}\n\nfunction updateWriteHighlightCacheIncremental(\n\tcache: WriteHighlightCache | undefined,\n\trawPath: string | null,\n\tfileContent: string,\n): WriteHighlightCache | undefined {\n\tconst lang = rawPath ? getLanguageFromPath(rawPath) : undefined;\n\tif (!lang) return undefined;\n\tif (!cache) return rebuildWriteHighlightCacheFull(rawPath, fileContent);\n\tif (cache.lang !== lang || cache.rawPath !== rawPath) return rebuildWriteHighlightCacheFull(rawPath, fileContent);\n\tif (!fileContent.startsWith(cache.rawContent)) return rebuildWriteHighlightCacheFull(rawPath, fileContent);\n\tif (fileContent.length === cache.rawContent.length) return cache;\n\n\tconst deltaRaw = fileContent.slice(cache.rawContent.length);\n\tconst deltaDisplay = normalizeDisplayText(deltaRaw);\n\tconst deltaNormalized = replaceTabs(deltaDisplay);\n\tcache.rawContent = fileContent;\n\tif (cache.normalizedLines.length === 0) {\n\t\tcache.normalizedLines.push(\"\");\n\t\tcache.highlightedLines.push(\"\");\n\t}\n\n\tconst segments = deltaNormalized.split(\"\\n\");\n\tconst lastIndex = cache.normalizedLines.length - 1;\n\tcache.normalizedLines[lastIndex] += segments[0];\n\tcache.highlightedLines[lastIndex] = highlightSingleLine(cache.normalizedLines[lastIndex], cache.lang);\n\tfor (let i = 1; i < segments.length; i++) {\n\t\tcache.normalizedLines.push(segments[i]);\n\t\tcache.highlightedLines.push(highlightSingleLine(segments[i], cache.lang));\n\t}\n\trefreshWriteHighlightPrefix(cache);\n\treturn cache;\n}\n\nfunction trimTrailingEmptyLines(lines: string[]): string[] {\n\tlet end = lines.length;\n\twhile (end > 0 && lines[end - 1] === \"\") {\n\t\tend--;\n\t}\n\treturn lines.slice(0, end);\n}\n\nfunction formatWriteCall(\n\targs: { path?: string; file_path?: string; content?: string } | undefined,\n\toptions: ToolRenderResultOptions,\n\ttheme: typeof import(\"../../modes/interactive/theme/theme.ts\").theme,\n\tcache: WriteHighlightCache | undefined,\n): string {\n\tconst rawPath = str(args?.file_path ?? args?.path);\n\tconst fileContent = str(args?.content);\n\tconst path = rawPath !== null ? shortenPath(rawPath) : null;\n\tconst invalidArg = invalidArgText(theme);\n\tlet text = `${theme.fg(\"toolTitle\", theme.bold(\"write\"))} ${path === null ? invalidArg : path ? theme.fg(\"accent\", path) : theme.fg(\"toolOutput\", \"...\")}`;\n\n\tif (fileContent === null) {\n\t\ttext += `\\n\\n${theme.fg(\"error\", \"[invalid content arg - expected string]\")}`;\n\t} else if (fileContent) {\n\t\tconst lang = rawPath ? getLanguageFromPath(rawPath) : undefined;\n\t\tconst renderedLines = lang\n\t\t\t? (cache?.highlightedLines ?? highlightCode(replaceTabs(normalizeDisplayText(fileContent)), lang))\n\t\t\t: normalizeDisplayText(fileContent).split(\"\\n\");\n\t\tconst lines = trimTrailingEmptyLines(renderedLines);\n\t\tconst totalLines = lines.length;\n\t\tconst maxLines = options.expanded ? lines.length : 10;\n\t\tconst displayLines = lines.slice(0, maxLines);\n\t\tconst remaining = lines.length - maxLines;\n\t\ttext += `\\n\\n${displayLines.map((line) => (lang ? line : theme.fg(\"toolOutput\", replaceTabs(line)))).join(\"\\n\")}`;\n\t\tif (remaining > 0) {\n\t\t\ttext += `${theme.fg(\"muted\", `\\n... (${remaining} more lines, ${totalLines} total,`)} ${keyHint(\"app.tools.expand\", \"to expand\")})`;\n\t\t}\n\t}\n\n\treturn text;\n}\n\nfunction formatWriteResult(\n\tresult: { content: Array<{ type: string; text?: string; data?: string; mimeType?: string }>; isError?: boolean },\n\ttheme: typeof import(\"../../modes/interactive/theme/theme.ts\").theme,\n): string | undefined {\n\tif (!result.isError) {\n\t\treturn undefined;\n\t}\n\tconst output = result.content\n\t\t.filter((c) => c.type === \"text\")\n\t\t.map((c) => c.text || \"\")\n\t\t.join(\"\\n\");\n\tif (!output) {\n\t\treturn undefined;\n\t}\n\treturn `\\n${theme.fg(\"error\", output)}`;\n}\n\nexport function createWriteToolDefinition(\n\tcwd: string,\n\toptions?: WriteToolOptions,\n): ToolDefinition<typeof writeSchema, undefined> {\n\tconst ops = options?.operations ?? defaultWriteOperations;\n\treturn {\n\t\tname: \"write\",\n\t\tlabel: \"write\",\n\t\tdescription:\n\t\t\t\"Write content to a file. Creates the file if it doesn't exist, overwrites if it does. Automatically creates parent directories.\",\n\t\tpromptSnippet: \"Create or overwrite files\",\n\t\tpromptGuidelines: [\"Use write only for new files or complete rewrites.\"],\n\t\tparameters: writeSchema,\n\t\tasync execute(\n\t\t\t_toolCallId,\n\t\t\t{ path, content }: { path: string; content: string },\n\t\t\tsignal?: AbortSignal,\n\t\t\t_onUpdate?,\n\t\t\t_ctx?,\n\t\t) {\n\t\t\tconst absolutePath = resolveToCwd(path, cwd);\n\t\t\tconst dir = dirname(absolutePath);\n\t\t\treturn withFileMutationQueue(absolutePath, async () => {\n\t\t\t\t// Do not reject from an abort event listener here: that would release the\n\t\t\t\t// mutation queue while an in-flight filesystem operation may still finish.\n\t\t\t\t// Checking signal.aborted after each await observes the same aborts while\n\t\t\t\t// keeping the queue locked until the current operation has settled.\n\t\t\t\tconst throwIfAborted = (): void => {\n\t\t\t\t\tif (signal?.aborted) throw new Error(\"Operation aborted\");\n\t\t\t\t};\n\n\t\t\t\tthrowIfAborted();\n\t\t\t\t// Create parent directories if needed.\n\t\t\t\tawait ops.mkdir(dir);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\t// Write the file contents.\n\t\t\t\tawait ops.writeFile(absolutePath, content);\n\t\t\t\tthrowIfAborted();\n\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: `Successfully wrote ${content.length} bytes to ${path}` }],\n\t\t\t\t\tdetails: undefined,\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\trenderCall(args, theme, context) {\n\t\t\tconst renderArgs = args as { path?: string; file_path?: string; content?: string } | undefined;\n\t\t\tconst rawPath = str(renderArgs?.file_path ?? renderArgs?.path);\n\t\t\tconst fileContent = str(renderArgs?.content);\n\t\t\tconst component =\n\t\t\t\t(context.lastComponent as WriteCallRenderComponent | undefined) ?? new WriteCallRenderComponent();\n\t\t\tif (fileContent !== null) {\n\t\t\t\tcomponent.cache = context.argsComplete\n\t\t\t\t\t? rebuildWriteHighlightCacheFull(rawPath, fileContent)\n\t\t\t\t\t: updateWriteHighlightCacheIncremental(component.cache, rawPath, fileContent);\n\t\t\t} else {\n\t\t\t\tcomponent.cache = undefined;\n\t\t\t}\n\t\t\tcomponent.setText(\n\t\t\t\tformatWriteCall(\n\t\t\t\t\trenderArgs,\n\t\t\t\t\t{ expanded: context.expanded, isPartial: context.isPartial },\n\t\t\t\t\ttheme,\n\t\t\t\t\tcomponent.cache,\n\t\t\t\t),\n\t\t\t);\n\t\t\treturn component;\n\t\t},\n\t\trenderResult(result, _options, theme, context) {\n\t\t\tconst output = formatWriteResult({ ...result, isError: context.isError }, theme);\n\t\t\tif (!output) {\n\t\t\t\tconst component = (context.lastComponent as Container | undefined) ?? new Container();\n\t\t\t\tcomponent.clear();\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tconst text = (context.lastComponent as Text | undefined) ?? new Text(\"\", 0, 0);\n\t\t\ttext.setText(output);\n\t\t\treturn text;\n\t\t},\n\t};\n}\n\nexport function createWriteTool(cwd: string, options?: WriteToolOptions): AgentTool<typeof writeSchema> {\n\treturn wrapToolDefinition(createWriteToolDefinition(cwd, options));\n}\n"]}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Worker 集成模块
3
+ *
4
+ * 负责将 Worker 模块集成到 Agent Session 中
5
+ */
6
+ import type { AgentSession } from "./agent-session.ts";
7
+ import type { ExtensionRunner } from "./extensions/runner.ts";
8
+ import type { ModelRegistry } from "./model-registry.ts";
9
+ /**
10
+ * Worker 集成配置
11
+ */
12
+ export interface WorkerIntegrationConfig {
13
+ /** 工作目录 */
14
+ cwd: string;
15
+ /** Agent Session */
16
+ agentSession: AgentSession;
17
+ /** 扩展运行器 */
18
+ extensionRunner: ExtensionRunner;
19
+ /** 模型注册表 */
20
+ modelRegistry: ModelRegistry;
21
+ }
22
+ /**
23
+ * Worker 集成类
24
+ *
25
+ * 负责:
26
+ * 1. 注册 Worker Tool
27
+ * 2. 管理 Worker 生命周期
28
+ * 3. 提供 Worker 状态查询
29
+ */
30
+ export declare class WorkerIntegration {
31
+ private config;
32
+ private workerManager;
33
+ constructor(config: WorkerIntegrationConfig);
34
+ /**
35
+ * 初始化 Worker 集成
36
+ */
37
+ initialize(): Promise<void>;
38
+ /**
39
+ * 注册 Worker Tool
40
+ */
41
+ private registerWorkerTool;
42
+ /**
43
+ * 注册扩展命令
44
+ */
45
+ private registerCommands;
46
+ /**
47
+ * 获取 Worker 状态
48
+ */
49
+ getWorkerStatus(): Array<{
50
+ id: string;
51
+ status: string;
52
+ task: string;
53
+ }>;
54
+ /**
55
+ * 获取 Worker 进度
56
+ */
57
+ getWorkerProgress(): {
58
+ completed: number;
59
+ total: number;
60
+ percentage: number;
61
+ };
62
+ /**
63
+ * 中止所有 Worker
64
+ */
65
+ abortAllWorkers(): Promise<void>;
66
+ /**
67
+ * 检查是否有 Worker 正在运行
68
+ */
69
+ hasRunningWorkers(): boolean;
70
+ /**
71
+ * 清理资源
72
+ */
73
+ cleanup(): Promise<void>;
74
+ }
75
+ /**
76
+ * 创建 Worker 集成
77
+ */
78
+ export declare function createWorkerIntegration(config: WorkerIntegrationConfig): WorkerIntegration;
79
+ //# sourceMappingURL=worker-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-integration.d.ts","sourceRoot":"","sources":["../../src/core/worker-integration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAW;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,sBAAY;IACZ,eAAe,EAAE,eAAe,CAAC;IACjC,sBAAY;IACZ,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,aAAa,CAAM;IAE3B,YAAY,MAAM,EAAE,uBAAuB,EAE1C;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAUhC;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAKrE;IAED;;OAEG;IACH,iBAAiB,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAK5E;IAED;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAIrC;IAED;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAK3B;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7B;CACF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAE1F","sourcesContent":["/**\n * Worker 集成模块\n * \n * 负责将 Worker 模块集成到 Agent Session 中\n */\n\nimport type { AgentSession } from \"./agent-session.ts\";\nimport { createWorkerToolDefinition } from \"./tools/worker.ts\";\nimport type { ExtensionRunner } from \"./extensions/runner.ts\";\nimport type { ModelRegistry } from \"./model-registry.ts\";\n\n/**\n * Worker 集成配置\n */\nexport interface WorkerIntegrationConfig {\n /** 工作目录 */\n cwd: string;\n /** Agent Session */\n agentSession: AgentSession;\n /** 扩展运行器 */\n extensionRunner: ExtensionRunner;\n /** 模型注册表 */\n modelRegistry: ModelRegistry;\n}\n\n/**\n * Worker 集成类\n * \n * 负责:\n * 1. 注册 Worker Tool\n * 2. 管理 Worker 生命周期\n * 3. 提供 Worker 状态查询\n */\nexport class WorkerIntegration {\n private config: WorkerIntegrationConfig;\n private workerManager: any; // WorkerManager 实例\n \n constructor(config: WorkerIntegrationConfig) {\n this.config = config;\n }\n \n /**\n * 初始化 Worker 集成\n */\n async initialize(): Promise<void> {\n console.log(\"[WorkerIntegration] 初始化 Worker 集成\");\n \n // 注册 Worker Tool\n this.registerWorkerTool();\n \n // 注册扩展命令\n this.registerCommands();\n \n console.log(\"[WorkerIntegration] Worker 集成初始化完成\");\n }\n \n /**\n * 注册 Worker Tool\n */\n private registerWorkerTool(): void {\n const workerTool = createWorkerToolDefinition(this.config.cwd);\n \n // 注册到扩展运行器\n this.config.extensionRunner.getAllRegisteredTools().push({\n definition: workerTool,\n sourceInfo: {\n path: \"builtin:worker\",\n source: \"builtin\",\n scope: \"temporary\",\n origin: \"top-level\",\n },\n });\n \n console.log(\"[WorkerIntegration] Worker Tool 已注册\");\n }\n \n /**\n * 注册扩展命令\n */\n private registerCommands(): void {\n // 注册 /worker 命令\n this.config.extensionRunner.getCommand(\"worker\");\n \n console.log(\"[WorkerIntegration] Worker 命令已注册\");\n }\n \n /**\n * 获取 Worker 状态\n */\n getWorkerStatus(): Array<{ id: string; status: string; task: string }> {\n if (!this.workerManager) {\n return [];\n }\n return this.workerManager.getWorkerStatus();\n }\n \n /**\n * 获取 Worker 进度\n */\n getWorkerProgress(): { completed: number; total: number; percentage: number } {\n if (!this.workerManager) {\n return { completed: 0, total: 0, percentage: 0 };\n }\n return this.workerManager.getProgress();\n }\n \n /**\n * 中止所有 Worker\n */\n async abortAllWorkers(): Promise<void> {\n if (this.workerManager) {\n await this.workerManager.abortAll();\n }\n }\n \n /**\n * 检查是否有 Worker 正在运行\n */\n hasRunningWorkers(): boolean {\n if (!this.workerManager) {\n return false;\n }\n return !this.workerManager.isAllCompleted();\n }\n \n /**\n * 清理资源\n */\n async cleanup(): Promise<void> {\n if (this.workerManager) {\n await this.workerManager.abortAll();\n this.workerManager = null;\n }\n }\n}\n\n/**\n * 创建 Worker 集成\n */\nexport function createWorkerIntegration(config: WorkerIntegrationConfig): WorkerIntegration {\n return new WorkerIntegration(config);\n}\n"]}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Worker 集成模块
3
+ *
4
+ * 负责将 Worker 模块集成到 Agent Session 中
5
+ */
6
+ import { createWorkerToolDefinition } from "./tools/worker.js";
7
+ /**
8
+ * Worker 集成类
9
+ *
10
+ * 负责:
11
+ * 1. 注册 Worker Tool
12
+ * 2. 管理 Worker 生命周期
13
+ * 3. 提供 Worker 状态查询
14
+ */
15
+ export class WorkerIntegration {
16
+ config;
17
+ workerManager; // WorkerManager 实例
18
+ constructor(config) {
19
+ this.config = config;
20
+ }
21
+ /**
22
+ * 初始化 Worker 集成
23
+ */
24
+ async initialize() {
25
+ console.log("[WorkerIntegration] 初始化 Worker 集成");
26
+ // 注册 Worker Tool
27
+ this.registerWorkerTool();
28
+ // 注册扩展命令
29
+ this.registerCommands();
30
+ console.log("[WorkerIntegration] Worker 集成初始化完成");
31
+ }
32
+ /**
33
+ * 注册 Worker Tool
34
+ */
35
+ registerWorkerTool() {
36
+ const workerTool = createWorkerToolDefinition(this.config.cwd);
37
+ // 注册到扩展运行器
38
+ this.config.extensionRunner.getAllRegisteredTools().push({
39
+ definition: workerTool,
40
+ sourceInfo: {
41
+ path: "builtin:worker",
42
+ source: "builtin",
43
+ scope: "temporary",
44
+ origin: "top-level",
45
+ },
46
+ });
47
+ console.log("[WorkerIntegration] Worker Tool 已注册");
48
+ }
49
+ /**
50
+ * 注册扩展命令
51
+ */
52
+ registerCommands() {
53
+ // 注册 /worker 命令
54
+ this.config.extensionRunner.getCommand("worker");
55
+ console.log("[WorkerIntegration] Worker 命令已注册");
56
+ }
57
+ /**
58
+ * 获取 Worker 状态
59
+ */
60
+ getWorkerStatus() {
61
+ if (!this.workerManager) {
62
+ return [];
63
+ }
64
+ return this.workerManager.getWorkerStatus();
65
+ }
66
+ /**
67
+ * 获取 Worker 进度
68
+ */
69
+ getWorkerProgress() {
70
+ if (!this.workerManager) {
71
+ return { completed: 0, total: 0, percentage: 0 };
72
+ }
73
+ return this.workerManager.getProgress();
74
+ }
75
+ /**
76
+ * 中止所有 Worker
77
+ */
78
+ async abortAllWorkers() {
79
+ if (this.workerManager) {
80
+ await this.workerManager.abortAll();
81
+ }
82
+ }
83
+ /**
84
+ * 检查是否有 Worker 正在运行
85
+ */
86
+ hasRunningWorkers() {
87
+ if (!this.workerManager) {
88
+ return false;
89
+ }
90
+ return !this.workerManager.isAllCompleted();
91
+ }
92
+ /**
93
+ * 清理资源
94
+ */
95
+ async cleanup() {
96
+ if (this.workerManager) {
97
+ await this.workerManager.abortAll();
98
+ this.workerManager = null;
99
+ }
100
+ }
101
+ }
102
+ /**
103
+ * 创建 Worker 集成
104
+ */
105
+ export function createWorkerIntegration(config) {
106
+ return new WorkerIntegration(config);
107
+ }
108
+ //# sourceMappingURL=worker-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-integration.js","sourceRoot":"","sources":["../../src/core/worker-integration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAkB/D;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAA0B;IAChC,aAAa,CAAM,CAAC,uBAAmB;IAE/C,YAAY,MAA+B,EAAE;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAAA,CACtB;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,GAAkB;QAChC,OAAO,CAAC,GAAG,CAAC,6CAAmC,CAAC,CAAC;QAEjD,qBAAiB;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,qBAAS;QACT,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,OAAO,CAAC,GAAG,CAAC,kDAAoC,CAAC,CAAC;IAAA,CACnD;IAED;;OAEG;IACK,kBAAkB,GAAS;QACjC,MAAM,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/D,2BAAW;QACX,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;YACvD,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE;gBACV,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,WAAW;aACpB;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,2CAAqC,CAAC,CAAC;IAAA,CACpD;IAED;;OAEG;IACK,gBAAgB,GAAS;QAC/B,wBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,4CAAkC,CAAC,CAAC;IAAA,CACjD;IAED;;OAEG;IACH,eAAe,GAAwD;QACrE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;IAAA,CAC7C;IAED;;OAEG;IACH,iBAAiB,GAA6D;QAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;IAAA,CACzC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,GAAkB;QACrC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;IAAA,CACF;IAED;;OAEG;IACH,iBAAiB,GAAY;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAAA,CAC7C;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,GAAkB;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IAAA,CACF;CACF;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA+B,EAAqB;IAC1F,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAAA,CACtC","sourcesContent":["/**\n * Worker 集成模块\n * \n * 负责将 Worker 模块集成到 Agent Session 中\n */\n\nimport type { AgentSession } from \"./agent-session.ts\";\nimport { createWorkerToolDefinition } from \"./tools/worker.ts\";\nimport type { ExtensionRunner } from \"./extensions/runner.ts\";\nimport type { ModelRegistry } from \"./model-registry.ts\";\n\n/**\n * Worker 集成配置\n */\nexport interface WorkerIntegrationConfig {\n /** 工作目录 */\n cwd: string;\n /** Agent Session */\n agentSession: AgentSession;\n /** 扩展运行器 */\n extensionRunner: ExtensionRunner;\n /** 模型注册表 */\n modelRegistry: ModelRegistry;\n}\n\n/**\n * Worker 集成类\n * \n * 负责:\n * 1. 注册 Worker Tool\n * 2. 管理 Worker 生命周期\n * 3. 提供 Worker 状态查询\n */\nexport class WorkerIntegration {\n private config: WorkerIntegrationConfig;\n private workerManager: any; // WorkerManager 实例\n \n constructor(config: WorkerIntegrationConfig) {\n this.config = config;\n }\n \n /**\n * 初始化 Worker 集成\n */\n async initialize(): Promise<void> {\n console.log(\"[WorkerIntegration] 初始化 Worker 集成\");\n \n // 注册 Worker Tool\n this.registerWorkerTool();\n \n // 注册扩展命令\n this.registerCommands();\n \n console.log(\"[WorkerIntegration] Worker 集成初始化完成\");\n }\n \n /**\n * 注册 Worker Tool\n */\n private registerWorkerTool(): void {\n const workerTool = createWorkerToolDefinition(this.config.cwd);\n \n // 注册到扩展运行器\n this.config.extensionRunner.getAllRegisteredTools().push({\n definition: workerTool,\n sourceInfo: {\n path: \"builtin:worker\",\n source: \"builtin\",\n scope: \"temporary\",\n origin: \"top-level\",\n },\n });\n \n console.log(\"[WorkerIntegration] Worker Tool 已注册\");\n }\n \n /**\n * 注册扩展命令\n */\n private registerCommands(): void {\n // 注册 /worker 命令\n this.config.extensionRunner.getCommand(\"worker\");\n \n console.log(\"[WorkerIntegration] Worker 命令已注册\");\n }\n \n /**\n * 获取 Worker 状态\n */\n getWorkerStatus(): Array<{ id: string; status: string; task: string }> {\n if (!this.workerManager) {\n return [];\n }\n return this.workerManager.getWorkerStatus();\n }\n \n /**\n * 获取 Worker 进度\n */\n getWorkerProgress(): { completed: number; total: number; percentage: number } {\n if (!this.workerManager) {\n return { completed: 0, total: 0, percentage: 0 };\n }\n return this.workerManager.getProgress();\n }\n \n /**\n * 中止所有 Worker\n */\n async abortAllWorkers(): Promise<void> {\n if (this.workerManager) {\n await this.workerManager.abortAll();\n }\n }\n \n /**\n * 检查是否有 Worker 正在运行\n */\n hasRunningWorkers(): boolean {\n if (!this.workerManager) {\n return false;\n }\n return !this.workerManager.isAllCompleted();\n }\n \n /**\n * 清理资源\n */\n async cleanup(): Promise<void> {\n if (this.workerManager) {\n await this.workerManager.abortAll();\n this.workerManager = null;\n }\n }\n}\n\n/**\n * 创建 Worker 集成\n */\nexport function createWorkerIntegration(config: WorkerIntegrationConfig): WorkerIntegration {\n return new WorkerIntegration(config);\n}\n"]}
@@ -0,0 +1,29 @@
1
+ export { getAgentDir, VERSION } from "./config.ts";
2
+ export { AgentSession, type AgentSessionConfig, type AgentSessionEvent, type AgentSessionEventListener, type ModelCycleResult, type ParsedSkillBlock, type PromptOptions, parseSkillBlock, type SessionStats, } from "./core/agent-session.ts";
3
+ export { type ApiKeyCredential, type AuthCredential, type AuthStatus, AuthStorage, type AuthStorageBackend, FileAuthStorageBackend, InMemoryAuthStorageBackend, type OAuthCredential, } from "./core/auth-storage.ts";
4
+ export { type BranchPreparation, type BranchSummaryResult, type CollectEntriesResult, type CompactionResult, type CutPointResult, calculateContextTokens, collectEntriesForBranchSummary, compact, DEFAULT_COMPACTION_SETTINGS, estimateTokens, type FileOperations, findCutPoint, findTurnStartIndex, type GenerateBranchSummaryOptions, generateBranchSummary, generateSummary, getLastAssistantUsage, prepareBranchEntries, serializeConversation, shouldCompact, } from "./core/compaction/index.ts";
5
+ export { createEventBus, type EventBus, type EventBusController } from "./core/event-bus.ts";
6
+ export type { AgentEndEvent, AgentStartEvent, AgentToolResult, AgentToolUpdateCallback, AppKeybinding, AutocompleteProviderFactory, BashToolCallEvent, BeforeAgentStartEvent, BeforeAgentStartEventResult, BeforeProviderRequestEvent, BeforeProviderRequestEventResult, BuildSystemPromptOptions, CompactOptions, ContextEvent, ContextUsage, CustomToolCallEvent, EditToolCallEvent, ExecOptions, ExecResult, Extension, ExtensionActions, ExtensionAPI, ExtensionCommandContext, ExtensionCommandContextActions, ExtensionContext, ExtensionContextActions, ExtensionError, ExtensionEvent, ExtensionFactory, ExtensionFlag, ExtensionHandler, ExtensionRuntime, ExtensionShortcut, ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetOptions, FindToolCallEvent, GrepToolCallEvent, InputEvent, InputEventResult, InputSource, KeybindingsManager, LoadExtensionsResult, LsToolCallEvent, MessageRenderer, MessageRenderOptions, ProviderConfig, ProviderModelConfig, ReadToolCallEvent, RegisteredCommand, RegisteredTool, ResolvedCommand, SessionBeforeCompactEvent, SessionBeforeForkEvent, SessionBeforeSwitchEvent, SessionBeforeTreeEvent, SessionCompactEvent, SessionShutdownEvent, SessionStartEvent, SessionTreeEvent, SlashCommandInfo, SlashCommandSource, SourceInfo, TerminalInputHandler, ToolCallEvent, ToolCallEventResult, ToolDefinition, ToolExecutionMode, ToolInfo, ToolRenderResultOptions, ToolResultEvent, TurnEndEvent, TurnStartEvent, UserBashEvent, UserBashEventResult, WidgetPlacement, WorkingIndicatorOptions, WriteToolCallEvent, } from "./core/extensions/index.ts";
7
+ export { createExtensionRuntime, defineTool, discoverAndLoadExtensions, ExtensionRunner, isBashToolResult, isEditToolResult, isFindToolResult, isGrepToolResult, isLsToolResult, isReadToolResult, isToolCallEventType, isWriteToolResult, wrapRegisteredTool, wrapRegisteredTools, } from "./core/extensions/index.ts";
8
+ export type { ReadonlyFooterDataProvider } from "./core/footer-data-provider.ts";
9
+ export { convertToLlm } from "./core/messages.ts";
10
+ export { ModelRegistry } from "./core/model-registry.ts";
11
+ export type { PackageManager, PathMetadata, ProgressCallback, ProgressEvent, ResolvedPaths, ResolvedResource, } from "./core/package-manager.ts";
12
+ export { DefaultPackageManager } from "./core/package-manager.ts";
13
+ export type { ResourceCollision, ResourceDiagnostic, ResourceLoader } from "./core/resource-loader.ts";
14
+ export { DefaultResourceLoader, loadProjectContextFiles } from "./core/resource-loader.ts";
15
+ export { AgentSessionRuntime, type AgentSessionRuntimeDiagnostic, type AgentSessionServices, type CreateAgentSessionFromServicesOptions, type CreateAgentSessionOptions, type CreateAgentSessionResult, type CreateAgentSessionRuntimeFactory, type CreateAgentSessionRuntimeResult, type CreateAgentSessionServicesOptions, createAgentSession, createAgentSessionFromServices, createAgentSessionRuntime, createAgentSessionServices, createBashTool, createCodingTools, createEditTool, createFindTool, createGrepTool, createLsTool, createReadOnlyTools, createReadTool, createWriteTool, type PromptTemplate, } from "./core/sdk.ts";
16
+ export { type BranchSummaryEntry, buildSessionContext, type CompactionEntry, CURRENT_SESSION_VERSION, type CustomEntry, type CustomMessageEntry, type FileEntry, getLatestCompactionEntry, type ModelChangeEntry, migrateSessionEntries, type NewSessionOptions, parseSessionEntries, type SessionContext, type SessionEntry, type SessionEntryBase, type SessionHeader, type SessionInfo, type SessionInfoEntry, SessionManager, type SessionMessageEntry, type ThinkingLevelChangeEntry, } from "./core/session-manager.ts";
17
+ export { type CompactionSettings, type ImageSettings, type PackageSource, type RetrySettings, SettingsManager, } from "./core/settings-manager.ts";
18
+ export { formatSkillsForPrompt, type LoadSkillsFromDirOptions, type LoadSkillsResult, loadSkills, loadSkillsFromDir, type Skill, type SkillFrontmatter, } from "./core/skills.ts";
19
+ export { createSyntheticSourceInfo } from "./core/source-info.ts";
20
+ export { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLocalBashOperations, createLsToolDefinition, createReadToolDefinition, createWriteToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, type EditOperations, type EditToolDetails, type EditToolInput, type EditToolOptions, type FindOperations, type FindToolDetails, type FindToolInput, type FindToolOptions, formatSize, type GrepOperations, type GrepToolDetails, type GrepToolInput, type GrepToolOptions, type LsOperations, type LsToolDetails, type LsToolInput, type LsToolOptions, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, type ToolsOptions, type TruncationOptions, type TruncationResult, truncateHead, truncateLine, truncateTail, type WriteOperations, type WriteToolInput, type WriteToolOptions, withFileMutationQueue, } from "./core/tools/index.ts";
21
+ export { type MainOptions, main } from "./main.ts";
22
+ export { InteractiveMode, type InteractiveModeOptions, type ModelInfo, type PrintModeOptions, RpcClient, type RpcClientOptions, type RpcCommand, type RpcEventListener, type RpcResponse, type RpcSessionState, runPrintMode, runRpcMode, } from "./modes/index.ts";
23
+ export { ArminComponent, AssistantMessageComponent, BashExecutionComponent, BorderedLoader, BranchSummaryMessageComponent, CompactionSummaryMessageComponent, CustomEditor, CustomMessageComponent, DynamicBorder, ExtensionEditorComponent, ExtensionInputComponent, ExtensionSelectorComponent, FooterComponent, keyHint, keyText, LoginDialogComponent, ModelSelectorComponent, OAuthSelectorComponent, type RenderDiffOptions, rawKeyHint, renderDiff, SessionSelectorComponent, type SettingsCallbacks, type SettingsConfig, SettingsSelectorComponent, ShowImagesSelectorComponent, SkillInvocationMessageComponent, ThemeSelectorComponent, ThinkingSelectorComponent, ToolExecutionComponent, type ToolExecutionOptions, TreeSelectorComponent, truncateToVisualLines, UserMessageComponent, UserMessageSelectorComponent, type VisualTruncateResult, } from "./modes/interactive/components/index.ts";
24
+ export { getLanguageFromPath, getMarkdownTheme, getSelectListTheme, getSettingsListTheme, highlightCode, initTheme, Theme, type ThemeColor, } from "./modes/interactive/theme/theme.ts";
25
+ export { copyToClipboard } from "./utils/clipboard.ts";
26
+ export { parseFrontmatter, stripFrontmatter } from "./utils/frontmatter.ts";
27
+ export { formatDimensionNote, type ResizedImage, resizeImage } from "./utils/image-resize.ts";
28
+ export { getShellConfig } from "./utils/shell.ts";
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Core session management\n\n// Config paths\nexport { getAgentDir, VERSION } from \"./config.ts\";\nexport {\n\tAgentSession,\n\ttype AgentSessionConfig,\n\ttype AgentSessionEvent,\n\ttype AgentSessionEventListener,\n\ttype ModelCycleResult,\n\ttype ParsedSkillBlock,\n\ttype PromptOptions,\n\tparseSkillBlock,\n\ttype SessionStats,\n} from \"./core/agent-session.ts\";\n// Auth and model registry\nexport {\n\ttype ApiKeyCredential,\n\ttype AuthCredential,\n\ttype AuthStatus,\n\tAuthStorage,\n\ttype AuthStorageBackend,\n\tFileAuthStorageBackend,\n\tInMemoryAuthStorageBackend,\n\ttype OAuthCredential,\n} from \"./core/auth-storage.ts\";\n// Compaction\nexport {\n\ttype BranchPreparation,\n\ttype BranchSummaryResult,\n\ttype CollectEntriesResult,\n\ttype CompactionResult,\n\ttype CutPointResult,\n\tcalculateContextTokens,\n\tcollectEntriesForBranchSummary,\n\tcompact,\n\tDEFAULT_COMPACTION_SETTINGS,\n\testimateTokens,\n\ttype FileOperations,\n\tfindCutPoint,\n\tfindTurnStartIndex,\n\ttype GenerateBranchSummaryOptions,\n\tgenerateBranchSummary,\n\tgenerateSummary,\n\tgetLastAssistantUsage,\n\tprepareBranchEntries,\n\tserializeConversation,\n\tshouldCompact,\n} from \"./core/compaction/index.ts\";\nexport { createEventBus, type EventBus, type EventBusController } from \"./core/event-bus.ts\";\n// Extension system\nexport type {\n\tAgentEndEvent,\n\tAgentStartEvent,\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAppKeybinding,\n\tAutocompleteProviderFactory,\n\tBashToolCallEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEvent,\n\tBeforeProviderRequestEventResult,\n\tBuildSystemPromptOptions,\n\tCompactOptions,\n\tContextEvent,\n\tContextUsage,\n\tCustomToolCallEvent,\n\tEditToolCallEvent,\n\tExecOptions,\n\tExecResult,\n\tExtension,\n\tExtensionActions,\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionError,\n\tExtensionEvent,\n\tExtensionFactory,\n\tExtensionFlag,\n\tExtensionHandler,\n\tExtensionRuntime,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tFindToolCallEvent,\n\tGrepToolCallEvent,\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tKeybindingsManager,\n\tLoadExtensionsResult,\n\tLsToolCallEvent,\n\tMessageRenderer,\n\tMessageRenderOptions,\n\tProviderConfig,\n\tProviderModelConfig,\n\tReadToolCallEvent,\n\tRegisteredCommand,\n\tRegisteredTool,\n\tResolvedCommand,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeForkEvent,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeTreeEvent,\n\tSessionCompactEvent,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n\tSessionTreeEvent,\n\tSlashCommandInfo,\n\tSlashCommandSource,\n\tSourceInfo,\n\tTerminalInputHandler,\n\tToolCallEvent,\n\tToolCallEventResult,\n\tToolDefinition,\n\tToolExecutionMode,\n\tToolInfo,\n\tToolRenderResultOptions,\n\tToolResultEvent,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\tUserBashEvent,\n\tUserBashEventResult,\n\tWidgetPlacement,\n\tWorkingIndicatorOptions,\n\tWriteToolCallEvent,\n} from \"./core/extensions/index.ts\";\nexport {\n\tcreateExtensionRuntime,\n\tdefineTool,\n\tdiscoverAndLoadExtensions,\n\tExtensionRunner,\n\tisBashToolResult,\n\tisEditToolResult,\n\tisFindToolResult,\n\tisGrepToolResult,\n\tisLsToolResult,\n\tisReadToolResult,\n\tisToolCallEventType,\n\tisWriteToolResult,\n\twrapRegisteredTool,\n\twrapRegisteredTools,\n} from \"./core/extensions/index.ts\";\n// Footer data provider (git branch + extension statuses - data not otherwise available to extensions)\nexport type { ReadonlyFooterDataProvider } from \"./core/footer-data-provider.ts\";\nexport { convertToLlm } from \"./core/messages.ts\";\nexport { ModelRegistry } from \"./core/model-registry.ts\";\nexport type {\n\tPackageManager,\n\tPathMetadata,\n\tProgressCallback,\n\tProgressEvent,\n\tResolvedPaths,\n\tResolvedResource,\n} from \"./core/package-manager.ts\";\nexport { DefaultPackageManager } from \"./core/package-manager.ts\";\nexport type { ResourceCollision, ResourceDiagnostic, ResourceLoader } from \"./core/resource-loader.ts\";\nexport { DefaultResourceLoader, loadProjectContextFiles } from \"./core/resource-loader.ts\";\n// SDK for programmatic usage\nexport {\n\tAgentSessionRuntime,\n\ttype AgentSessionRuntimeDiagnostic,\n\ttype AgentSessionServices,\n\ttype CreateAgentSessionFromServicesOptions,\n\ttype CreateAgentSessionOptions,\n\ttype CreateAgentSessionResult,\n\ttype CreateAgentSessionRuntimeFactory,\n\ttype CreateAgentSessionRuntimeResult,\n\ttype CreateAgentSessionServicesOptions,\n\t// Factory\n\tcreateAgentSession,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionRuntime,\n\tcreateAgentSessionServices,\n\tcreateBashTool,\n\t// Tool factories (for custom cwd)\n\tcreateCodingTools,\n\tcreateEditTool,\n\tcreateFindTool,\n\tcreateGrepTool,\n\tcreateLsTool,\n\tcreateReadOnlyTools,\n\tcreateReadTool,\n\tcreateWriteTool,\n\ttype PromptTemplate,\n} from \"./core/sdk.ts\";\nexport {\n\ttype BranchSummaryEntry,\n\tbuildSessionContext,\n\ttype CompactionEntry,\n\tCURRENT_SESSION_VERSION,\n\ttype CustomEntry,\n\ttype CustomMessageEntry,\n\ttype FileEntry,\n\tgetLatestCompactionEntry,\n\ttype ModelChangeEntry,\n\tmigrateSessionEntries,\n\ttype NewSessionOptions,\n\tparseSessionEntries,\n\ttype SessionContext,\n\ttype SessionEntry,\n\ttype SessionEntryBase,\n\ttype SessionHeader,\n\ttype SessionInfo,\n\ttype SessionInfoEntry,\n\tSessionManager,\n\ttype SessionMessageEntry,\n\ttype ThinkingLevelChangeEntry,\n} from \"./core/session-manager.ts\";\nexport {\n\ttype CompactionSettings,\n\ttype ImageSettings,\n\ttype PackageSource,\n\ttype RetrySettings,\n\tSettingsManager,\n} from \"./core/settings-manager.ts\";\n// Skills\nexport {\n\tformatSkillsForPrompt,\n\ttype LoadSkillsFromDirOptions,\n\ttype LoadSkillsResult,\n\tloadSkills,\n\tloadSkillsFromDir,\n\ttype Skill,\n\ttype SkillFrontmatter,\n} from \"./core/skills.ts\";\nexport { createSyntheticSourceInfo } from \"./core/source-info.ts\";\n// Tools\nexport {\n\ttype BashOperations,\n\ttype BashSpawnContext,\n\ttype BashSpawnHook,\n\ttype BashToolDetails,\n\ttype BashToolInput,\n\ttype BashToolOptions,\n\tcreateBashToolDefinition,\n\tcreateEditToolDefinition,\n\tcreateFindToolDefinition,\n\tcreateGrepToolDefinition,\n\tcreateLocalBashOperations,\n\tcreateLsToolDefinition,\n\tcreateReadToolDefinition,\n\tcreateWriteToolDefinition,\n\tDEFAULT_MAX_BYTES,\n\tDEFAULT_MAX_LINES,\n\ttype EditOperations,\n\ttype EditToolDetails,\n\ttype EditToolInput,\n\ttype EditToolOptions,\n\ttype FindOperations,\n\ttype FindToolDetails,\n\ttype FindToolInput,\n\ttype FindToolOptions,\n\tformatSize,\n\ttype GrepOperations,\n\ttype GrepToolDetails,\n\ttype GrepToolInput,\n\ttype GrepToolOptions,\n\ttype LsOperations,\n\ttype LsToolDetails,\n\ttype LsToolInput,\n\ttype LsToolOptions,\n\ttype ReadOperations,\n\ttype ReadToolDetails,\n\ttype ReadToolInput,\n\ttype ReadToolOptions,\n\ttype ToolsOptions,\n\ttype TruncationOptions,\n\ttype TruncationResult,\n\ttruncateHead,\n\ttruncateLine,\n\ttruncateTail,\n\ttype WriteOperations,\n\ttype WriteToolInput,\n\ttype WriteToolOptions,\n\twithFileMutationQueue,\n} from \"./core/tools/index.ts\";\n// Main entry point\nexport { type MainOptions, main } from \"./main.ts\";\n// Run modes for programmatic SDK usage\nexport {\n\tInteractiveMode,\n\ttype InteractiveModeOptions,\n\ttype ModelInfo,\n\ttype PrintModeOptions,\n\tRpcClient,\n\ttype RpcClientOptions,\n\ttype RpcCommand,\n\ttype RpcEventListener,\n\ttype RpcResponse,\n\ttype RpcSessionState,\n\trunPrintMode,\n\trunRpcMode,\n} from \"./modes/index.ts\";\n// UI components for extensions\nexport {\n\tArminComponent,\n\tAssistantMessageComponent,\n\tBashExecutionComponent,\n\tBorderedLoader,\n\tBranchSummaryMessageComponent,\n\tCompactionSummaryMessageComponent,\n\tCustomEditor,\n\tCustomMessageComponent,\n\tDynamicBorder,\n\tExtensionEditorComponent,\n\tExtensionInputComponent,\n\tExtensionSelectorComponent,\n\tFooterComponent,\n\tkeyHint,\n\tkeyText,\n\tLoginDialogComponent,\n\tModelSelectorComponent,\n\tOAuthSelectorComponent,\n\ttype RenderDiffOptions,\n\trawKeyHint,\n\trenderDiff,\n\tSessionSelectorComponent,\n\ttype SettingsCallbacks,\n\ttype SettingsConfig,\n\tSettingsSelectorComponent,\n\tShowImagesSelectorComponent,\n\tSkillInvocationMessageComponent,\n\tThemeSelectorComponent,\n\tThinkingSelectorComponent,\n\tToolExecutionComponent,\n\ttype ToolExecutionOptions,\n\tTreeSelectorComponent,\n\ttruncateToVisualLines,\n\tUserMessageComponent,\n\tUserMessageSelectorComponent,\n\ttype VisualTruncateResult,\n} from \"./modes/interactive/components/index.ts\";\n// Theme utilities for custom tools and extensions\nexport {\n\tgetLanguageFromPath,\n\tgetMarkdownTheme,\n\tgetSelectListTheme,\n\tgetSettingsListTheme,\n\thighlightCode,\n\tinitTheme,\n\tTheme,\n\ttype ThemeColor,\n} from \"./modes/interactive/theme/theme.ts\";\n// Clipboard utilities\nexport { copyToClipboard } from \"./utils/clipboard.ts\";\nexport { parseFrontmatter, stripFrontmatter } from \"./utils/frontmatter.ts\";\nexport { formatDimensionNote, type ResizedImage, resizeImage } from \"./utils/image-resize.ts\";\n// Shell utilities\nexport { getShellConfig } from \"./utils/shell.ts\";\n"]}
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ // Core session management
2
+ // Config paths
3
+ export { getAgentDir, VERSION } from "./config.js";
4
+ export { AgentSession, parseSkillBlock, } from "./core/agent-session.js";
5
+ // Auth and model registry
6
+ export { AuthStorage, FileAuthStorageBackend, InMemoryAuthStorageBackend, } from "./core/auth-storage.js";
7
+ // Compaction
8
+ export { calculateContextTokens, collectEntriesForBranchSummary, compact, DEFAULT_COMPACTION_SETTINGS, estimateTokens, findCutPoint, findTurnStartIndex, generateBranchSummary, generateSummary, getLastAssistantUsage, prepareBranchEntries, serializeConversation, shouldCompact, } from "./core/compaction/index.js";
9
+ export { createEventBus } from "./core/event-bus.js";
10
+ export { createExtensionRuntime, defineTool, discoverAndLoadExtensions, ExtensionRunner, isBashToolResult, isEditToolResult, isFindToolResult, isGrepToolResult, isLsToolResult, isReadToolResult, isToolCallEventType, isWriteToolResult, wrapRegisteredTool, wrapRegisteredTools, } from "./core/extensions/index.js";
11
+ export { convertToLlm } from "./core/messages.js";
12
+ export { ModelRegistry } from "./core/model-registry.js";
13
+ export { DefaultPackageManager } from "./core/package-manager.js";
14
+ export { DefaultResourceLoader, loadProjectContextFiles } from "./core/resource-loader.js";
15
+ // SDK for programmatic usage
16
+ export { AgentSessionRuntime,
17
+ // Factory
18
+ createAgentSession, createAgentSessionFromServices, createAgentSessionRuntime, createAgentSessionServices, createBashTool,
19
+ // Tool factories (for custom cwd)
20
+ createCodingTools, createEditTool, createFindTool, createGrepTool, createLsTool, createReadOnlyTools, createReadTool, createWriteTool, } from "./core/sdk.js";
21
+ export { buildSessionContext, CURRENT_SESSION_VERSION, getLatestCompactionEntry, migrateSessionEntries, parseSessionEntries, SessionManager, } from "./core/session-manager.js";
22
+ export { SettingsManager, } from "./core/settings-manager.js";
23
+ // Skills
24
+ export { formatSkillsForPrompt, loadSkills, loadSkillsFromDir, } from "./core/skills.js";
25
+ export { createSyntheticSourceInfo } from "./core/source-info.js";
26
+ // Tools
27
+ export { createBashToolDefinition, createEditToolDefinition, createFindToolDefinition, createGrepToolDefinition, createLocalBashOperations, createLsToolDefinition, createReadToolDefinition, createWriteToolDefinition, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, truncateHead, truncateLine, truncateTail, withFileMutationQueue, } from "./core/tools/index.js";
28
+ // Main entry point
29
+ export { main } from "./main.js";
30
+ // Run modes for programmatic SDK usage
31
+ export { InteractiveMode, RpcClient, runPrintMode, runRpcMode, } from "./modes/index.js";
32
+ // UI components for extensions
33
+ export { ArminComponent, AssistantMessageComponent, BashExecutionComponent, BorderedLoader, BranchSummaryMessageComponent, CompactionSummaryMessageComponent, CustomEditor, CustomMessageComponent, DynamicBorder, ExtensionEditorComponent, ExtensionInputComponent, ExtensionSelectorComponent, FooterComponent, keyHint, keyText, LoginDialogComponent, ModelSelectorComponent, OAuthSelectorComponent, rawKeyHint, renderDiff, SessionSelectorComponent, SettingsSelectorComponent, ShowImagesSelectorComponent, SkillInvocationMessageComponent, ThemeSelectorComponent, ThinkingSelectorComponent, ToolExecutionComponent, TreeSelectorComponent, truncateToVisualLines, UserMessageComponent, UserMessageSelectorComponent, } from "./modes/interactive/components/index.js";
34
+ // Theme utilities for custom tools and extensions
35
+ export { getLanguageFromPath, getMarkdownTheme, getSelectListTheme, getSettingsListTheme, highlightCode, initTheme, Theme, } from "./modes/interactive/theme/theme.js";
36
+ // Clipboard utilities
37
+ export { copyToClipboard } from "./utils/clipboard.js";
38
+ export { parseFrontmatter, stripFrontmatter } from "./utils/frontmatter.js";
39
+ export { formatDimensionNote, resizeImage } from "./utils/image-resize.js";
40
+ // Shell utilities
41
+ export { getShellConfig } from "./utils/shell.js";
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACN,YAAY,EAOZ,eAAe,GAEf,MAAM,yBAAyB,CAAC;AACjC,0BAA0B;AAC1B,OAAO,EAIN,WAAW,EAEX,sBAAsB,EACtB,0BAA0B,GAE1B,MAAM,wBAAwB,CAAC;AAChC,aAAa;AACb,OAAO,EAMN,sBAAsB,EACtB,8BAA8B,EAC9B,OAAO,EACP,2BAA2B,EAC3B,cAAc,EAEd,YAAY,EACZ,kBAAkB,EAElB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAA0C,MAAM,qBAAqB,CAAC;AAkF7F,OAAO,EACN,sBAAsB,EACtB,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,6BAA6B;AAC7B,OAAO,EACN,mBAAmB;AASnB,UAAU;AACV,kBAAkB,EAClB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc;AACd,kCAAkC;AAClC,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,eAAe,GAEf,MAAM,eAAe,CAAC;AACvB,OAAO,EAEN,mBAAmB,EAEnB,uBAAuB,EAIvB,wBAAwB,EAExB,qBAAqB,EAErB,mBAAmB,EAOnB,cAAc,GAGd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAKN,eAAe,GACf,MAAM,4BAA4B,CAAC;AACpC,SAAS;AACT,OAAO,EACN,qBAAqB,EAGrB,UAAU,EACV,iBAAiB,GAGjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,QAAQ;AACR,OAAO,EAON,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EASjB,UAAU,EAgBV,YAAY,EACZ,YAAY,EACZ,YAAY,EAIZ,qBAAqB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,mBAAmB;AACnB,OAAO,EAAoB,IAAI,EAAE,MAAM,WAAW,CAAC;AACnD,uCAAuC;AACvC,OAAO,EACN,eAAe,EAIf,SAAS,EAMT,YAAY,EACZ,UAAU,GACV,MAAM,kBAAkB,CAAC;AAC1B,+BAA+B;AAC/B,OAAO,EACN,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,6BAA6B,EAC7B,iCAAiC,EACjC,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,OAAO,EACP,OAAO,EACP,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EAEtB,UAAU,EACV,UAAU,EACV,wBAAwB,EAGxB,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EAEtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,GAE5B,MAAM,yCAAyC,CAAC;AACjD,kDAAkD;AAClD,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,KAAK,GAEL,MAAM,oCAAoC,CAAC;AAC5C,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAqB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9F,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["// Core session management\n\n// Config paths\nexport { getAgentDir, VERSION } from \"./config.ts\";\nexport {\n\tAgentSession,\n\ttype AgentSessionConfig,\n\ttype AgentSessionEvent,\n\ttype AgentSessionEventListener,\n\ttype ModelCycleResult,\n\ttype ParsedSkillBlock,\n\ttype PromptOptions,\n\tparseSkillBlock,\n\ttype SessionStats,\n} from \"./core/agent-session.ts\";\n// Auth and model registry\nexport {\n\ttype ApiKeyCredential,\n\ttype AuthCredential,\n\ttype AuthStatus,\n\tAuthStorage,\n\ttype AuthStorageBackend,\n\tFileAuthStorageBackend,\n\tInMemoryAuthStorageBackend,\n\ttype OAuthCredential,\n} from \"./core/auth-storage.ts\";\n// Compaction\nexport {\n\ttype BranchPreparation,\n\ttype BranchSummaryResult,\n\ttype CollectEntriesResult,\n\ttype CompactionResult,\n\ttype CutPointResult,\n\tcalculateContextTokens,\n\tcollectEntriesForBranchSummary,\n\tcompact,\n\tDEFAULT_COMPACTION_SETTINGS,\n\testimateTokens,\n\ttype FileOperations,\n\tfindCutPoint,\n\tfindTurnStartIndex,\n\ttype GenerateBranchSummaryOptions,\n\tgenerateBranchSummary,\n\tgenerateSummary,\n\tgetLastAssistantUsage,\n\tprepareBranchEntries,\n\tserializeConversation,\n\tshouldCompact,\n} from \"./core/compaction/index.ts\";\nexport { createEventBus, type EventBus, type EventBusController } from \"./core/event-bus.ts\";\n// Extension system\nexport type {\n\tAgentEndEvent,\n\tAgentStartEvent,\n\tAgentToolResult,\n\tAgentToolUpdateCallback,\n\tAppKeybinding,\n\tAutocompleteProviderFactory,\n\tBashToolCallEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEvent,\n\tBeforeProviderRequestEventResult,\n\tBuildSystemPromptOptions,\n\tCompactOptions,\n\tContextEvent,\n\tContextUsage,\n\tCustomToolCallEvent,\n\tEditToolCallEvent,\n\tExecOptions,\n\tExecResult,\n\tExtension,\n\tExtensionActions,\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionCommandContextActions,\n\tExtensionContext,\n\tExtensionContextActions,\n\tExtensionError,\n\tExtensionEvent,\n\tExtensionFactory,\n\tExtensionFlag,\n\tExtensionHandler,\n\tExtensionRuntime,\n\tExtensionShortcut,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tFindToolCallEvent,\n\tGrepToolCallEvent,\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tKeybindingsManager,\n\tLoadExtensionsResult,\n\tLsToolCallEvent,\n\tMessageRenderer,\n\tMessageRenderOptions,\n\tProviderConfig,\n\tProviderModelConfig,\n\tReadToolCallEvent,\n\tRegisteredCommand,\n\tRegisteredTool,\n\tResolvedCommand,\n\tSessionBeforeCompactEvent,\n\tSessionBeforeForkEvent,\n\tSessionBeforeSwitchEvent,\n\tSessionBeforeTreeEvent,\n\tSessionCompactEvent,\n\tSessionShutdownEvent,\n\tSessionStartEvent,\n\tSessionTreeEvent,\n\tSlashCommandInfo,\n\tSlashCommandSource,\n\tSourceInfo,\n\tTerminalInputHandler,\n\tToolCallEvent,\n\tToolCallEventResult,\n\tToolDefinition,\n\tToolExecutionMode,\n\tToolInfo,\n\tToolRenderResultOptions,\n\tToolResultEvent,\n\tTurnEndEvent,\n\tTurnStartEvent,\n\tUserBashEvent,\n\tUserBashEventResult,\n\tWidgetPlacement,\n\tWorkingIndicatorOptions,\n\tWriteToolCallEvent,\n} from \"./core/extensions/index.ts\";\nexport {\n\tcreateExtensionRuntime,\n\tdefineTool,\n\tdiscoverAndLoadExtensions,\n\tExtensionRunner,\n\tisBashToolResult,\n\tisEditToolResult,\n\tisFindToolResult,\n\tisGrepToolResult,\n\tisLsToolResult,\n\tisReadToolResult,\n\tisToolCallEventType,\n\tisWriteToolResult,\n\twrapRegisteredTool,\n\twrapRegisteredTools,\n} from \"./core/extensions/index.ts\";\n// Footer data provider (git branch + extension statuses - data not otherwise available to extensions)\nexport type { ReadonlyFooterDataProvider } from \"./core/footer-data-provider.ts\";\nexport { convertToLlm } from \"./core/messages.ts\";\nexport { ModelRegistry } from \"./core/model-registry.ts\";\nexport type {\n\tPackageManager,\n\tPathMetadata,\n\tProgressCallback,\n\tProgressEvent,\n\tResolvedPaths,\n\tResolvedResource,\n} from \"./core/package-manager.ts\";\nexport { DefaultPackageManager } from \"./core/package-manager.ts\";\nexport type { ResourceCollision, ResourceDiagnostic, ResourceLoader } from \"./core/resource-loader.ts\";\nexport { DefaultResourceLoader, loadProjectContextFiles } from \"./core/resource-loader.ts\";\n// SDK for programmatic usage\nexport {\n\tAgentSessionRuntime,\n\ttype AgentSessionRuntimeDiagnostic,\n\ttype AgentSessionServices,\n\ttype CreateAgentSessionFromServicesOptions,\n\ttype CreateAgentSessionOptions,\n\ttype CreateAgentSessionResult,\n\ttype CreateAgentSessionRuntimeFactory,\n\ttype CreateAgentSessionRuntimeResult,\n\ttype CreateAgentSessionServicesOptions,\n\t// Factory\n\tcreateAgentSession,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionRuntime,\n\tcreateAgentSessionServices,\n\tcreateBashTool,\n\t// Tool factories (for custom cwd)\n\tcreateCodingTools,\n\tcreateEditTool,\n\tcreateFindTool,\n\tcreateGrepTool,\n\tcreateLsTool,\n\tcreateReadOnlyTools,\n\tcreateReadTool,\n\tcreateWriteTool,\n\ttype PromptTemplate,\n} from \"./core/sdk.ts\";\nexport {\n\ttype BranchSummaryEntry,\n\tbuildSessionContext,\n\ttype CompactionEntry,\n\tCURRENT_SESSION_VERSION,\n\ttype CustomEntry,\n\ttype CustomMessageEntry,\n\ttype FileEntry,\n\tgetLatestCompactionEntry,\n\ttype ModelChangeEntry,\n\tmigrateSessionEntries,\n\ttype NewSessionOptions,\n\tparseSessionEntries,\n\ttype SessionContext,\n\ttype SessionEntry,\n\ttype SessionEntryBase,\n\ttype SessionHeader,\n\ttype SessionInfo,\n\ttype SessionInfoEntry,\n\tSessionManager,\n\ttype SessionMessageEntry,\n\ttype ThinkingLevelChangeEntry,\n} from \"./core/session-manager.ts\";\nexport {\n\ttype CompactionSettings,\n\ttype ImageSettings,\n\ttype PackageSource,\n\ttype RetrySettings,\n\tSettingsManager,\n} from \"./core/settings-manager.ts\";\n// Skills\nexport {\n\tformatSkillsForPrompt,\n\ttype LoadSkillsFromDirOptions,\n\ttype LoadSkillsResult,\n\tloadSkills,\n\tloadSkillsFromDir,\n\ttype Skill,\n\ttype SkillFrontmatter,\n} from \"./core/skills.ts\";\nexport { createSyntheticSourceInfo } from \"./core/source-info.ts\";\n// Tools\nexport {\n\ttype BashOperations,\n\ttype BashSpawnContext,\n\ttype BashSpawnHook,\n\ttype BashToolDetails,\n\ttype BashToolInput,\n\ttype BashToolOptions,\n\tcreateBashToolDefinition,\n\tcreateEditToolDefinition,\n\tcreateFindToolDefinition,\n\tcreateGrepToolDefinition,\n\tcreateLocalBashOperations,\n\tcreateLsToolDefinition,\n\tcreateReadToolDefinition,\n\tcreateWriteToolDefinition,\n\tDEFAULT_MAX_BYTES,\n\tDEFAULT_MAX_LINES,\n\ttype EditOperations,\n\ttype EditToolDetails,\n\ttype EditToolInput,\n\ttype EditToolOptions,\n\ttype FindOperations,\n\ttype FindToolDetails,\n\ttype FindToolInput,\n\ttype FindToolOptions,\n\tformatSize,\n\ttype GrepOperations,\n\ttype GrepToolDetails,\n\ttype GrepToolInput,\n\ttype GrepToolOptions,\n\ttype LsOperations,\n\ttype LsToolDetails,\n\ttype LsToolInput,\n\ttype LsToolOptions,\n\ttype ReadOperations,\n\ttype ReadToolDetails,\n\ttype ReadToolInput,\n\ttype ReadToolOptions,\n\ttype ToolsOptions,\n\ttype TruncationOptions,\n\ttype TruncationResult,\n\ttruncateHead,\n\ttruncateLine,\n\ttruncateTail,\n\ttype WriteOperations,\n\ttype WriteToolInput,\n\ttype WriteToolOptions,\n\twithFileMutationQueue,\n} from \"./core/tools/index.ts\";\n// Main entry point\nexport { type MainOptions, main } from \"./main.ts\";\n// Run modes for programmatic SDK usage\nexport {\n\tInteractiveMode,\n\ttype InteractiveModeOptions,\n\ttype ModelInfo,\n\ttype PrintModeOptions,\n\tRpcClient,\n\ttype RpcClientOptions,\n\ttype RpcCommand,\n\ttype RpcEventListener,\n\ttype RpcResponse,\n\ttype RpcSessionState,\n\trunPrintMode,\n\trunRpcMode,\n} from \"./modes/index.ts\";\n// UI components for extensions\nexport {\n\tArminComponent,\n\tAssistantMessageComponent,\n\tBashExecutionComponent,\n\tBorderedLoader,\n\tBranchSummaryMessageComponent,\n\tCompactionSummaryMessageComponent,\n\tCustomEditor,\n\tCustomMessageComponent,\n\tDynamicBorder,\n\tExtensionEditorComponent,\n\tExtensionInputComponent,\n\tExtensionSelectorComponent,\n\tFooterComponent,\n\tkeyHint,\n\tkeyText,\n\tLoginDialogComponent,\n\tModelSelectorComponent,\n\tOAuthSelectorComponent,\n\ttype RenderDiffOptions,\n\trawKeyHint,\n\trenderDiff,\n\tSessionSelectorComponent,\n\ttype SettingsCallbacks,\n\ttype SettingsConfig,\n\tSettingsSelectorComponent,\n\tShowImagesSelectorComponent,\n\tSkillInvocationMessageComponent,\n\tThemeSelectorComponent,\n\tThinkingSelectorComponent,\n\tToolExecutionComponent,\n\ttype ToolExecutionOptions,\n\tTreeSelectorComponent,\n\ttruncateToVisualLines,\n\tUserMessageComponent,\n\tUserMessageSelectorComponent,\n\ttype VisualTruncateResult,\n} from \"./modes/interactive/components/index.ts\";\n// Theme utilities for custom tools and extensions\nexport {\n\tgetLanguageFromPath,\n\tgetMarkdownTheme,\n\tgetSelectListTheme,\n\tgetSettingsListTheme,\n\thighlightCode,\n\tinitTheme,\n\tTheme,\n\ttype ThemeColor,\n} from \"./modes/interactive/theme/theme.ts\";\n// Clipboard utilities\nexport { copyToClipboard } from \"./utils/clipboard.ts\";\nexport { parseFrontmatter, stripFrontmatter } from \"./utils/frontmatter.ts\";\nexport { formatDimensionNote, type ResizedImage, resizeImage } from \"./utils/image-resize.ts\";\n// Shell utilities\nexport { getShellConfig } from \"./utils/shell.ts\";\n"]}
package/dist/main.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Main entry point for the coding agent CLI.
3
+ *
4
+ * This file handles CLI argument parsing and translates them into
5
+ * createAgentSession() options. The SDK does the heavy lifting.
6
+ */
7
+ import type { ExtensionFactory } from "./core/extensions/types.ts";
8
+ export interface MainOptions {
9
+ extensionFactories?: ExtensionFactory[];
10
+ }
11
+ export declare function main(args: string[], options?: MainOptions): Promise<void>;
12
+ //# sourceMappingURL=main.d.ts.map