@openeryc/pi-coding-agent 0.75.11 → 0.75.13

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 (591) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  3. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  4. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  5. package/examples/extensions/sandbox/package-lock.json +2 -2
  6. package/examples/extensions/sandbox/package.json +1 -1
  7. package/examples/extensions/with-deps/package-lock.json +2 -2
  8. package/examples/extensions/with-deps/package.json +1 -1
  9. package/npm-shrinkwrap.json +12 -12
  10. package/package.json +4 -4
  11. package/dist/bun/cli.d.ts +0 -3
  12. package/dist/bun/cli.d.ts.map +0 -1
  13. package/dist/bun/cli.js +0 -9
  14. package/dist/bun/cli.js.map +0 -1
  15. package/dist/bun/register-bedrock.d.ts +0 -2
  16. package/dist/bun/register-bedrock.d.ts.map +0 -1
  17. package/dist/bun/register-bedrock.js +0 -4
  18. package/dist/bun/register-bedrock.js.map +0 -1
  19. package/dist/bun/restore-sandbox-env.d.ts +0 -13
  20. package/dist/bun/restore-sandbox-env.d.ts.map +0 -1
  21. package/dist/bun/restore-sandbox-env.js +0 -32
  22. package/dist/bun/restore-sandbox-env.js.map +0 -1
  23. package/dist/cli/args.d.ts +0 -53
  24. package/dist/cli/args.d.ts.map +0 -1
  25. package/dist/cli/args.js +0 -341
  26. package/dist/cli/args.js.map +0 -1
  27. package/dist/cli/config-selector.d.ts +0 -14
  28. package/dist/cli/config-selector.d.ts.map +0 -1
  29. package/dist/cli/config-selector.js +0 -31
  30. package/dist/cli/config-selector.js.map +0 -1
  31. package/dist/cli/file-processor.d.ts +0 -15
  32. package/dist/cli/file-processor.d.ts.map +0 -1
  33. package/dist/cli/file-processor.js +0 -83
  34. package/dist/cli/file-processor.js.map +0 -1
  35. package/dist/cli/initial-message.d.ts +0 -18
  36. package/dist/cli/initial-message.d.ts.map +0 -1
  37. package/dist/cli/initial-message.js +0 -22
  38. package/dist/cli/initial-message.js.map +0 -1
  39. package/dist/cli/list-models.d.ts +0 -9
  40. package/dist/cli/list-models.d.ts.map +0 -1
  41. package/dist/cli/list-models.js +0 -98
  42. package/dist/cli/list-models.js.map +0 -1
  43. package/dist/cli/session-picker.d.ts +0 -9
  44. package/dist/cli/session-picker.d.ts.map +0 -1
  45. package/dist/cli/session-picker.js +0 -35
  46. package/dist/cli/session-picker.js.map +0 -1
  47. package/dist/cli.d.ts +0 -3
  48. package/dist/cli.d.ts.map +0 -1
  49. package/dist/cli.js +0 -18
  50. package/dist/cli.js.map +0 -1
  51. package/dist/config.d.ts +0 -92
  52. package/dist/config.d.ts.map +0 -1
  53. package/dist/config.js +0 -422
  54. package/dist/config.js.map +0 -1
  55. package/dist/core/agent-session-runtime.d.ts +0 -117
  56. package/dist/core/agent-session-runtime.d.ts.map +0 -1
  57. package/dist/core/agent-session-runtime.js +0 -299
  58. package/dist/core/agent-session-runtime.js.map +0 -1
  59. package/dist/core/agent-session-services.d.ts +0 -86
  60. package/dist/core/agent-session-services.d.ts.map +0 -1
  61. package/dist/core/agent-session-services.js +0 -117
  62. package/dist/core/agent-session-services.js.map +0 -1
  63. package/dist/core/agent-session.d.ts +0 -605
  64. package/dist/core/agent-session.d.ts.map +0 -1
  65. package/dist/core/agent-session.js +0 -2519
  66. package/dist/core/agent-session.js.map +0 -1
  67. package/dist/core/auth-guidance.d.ts +0 -5
  68. package/dist/core/auth-guidance.d.ts.map +0 -1
  69. package/dist/core/auth-guidance.js +0 -21
  70. package/dist/core/auth-guidance.js.map +0 -1
  71. package/dist/core/auth-storage.d.ts +0 -141
  72. package/dist/core/auth-storage.d.ts.map +0 -1
  73. package/dist/core/auth-storage.js +0 -441
  74. package/dist/core/auth-storage.js.map +0 -1
  75. package/dist/core/bash-executor.d.ts +0 -32
  76. package/dist/core/bash-executor.d.ts.map +0 -1
  77. package/dist/core/bash-executor.js +0 -111
  78. package/dist/core/bash-executor.js.map +0 -1
  79. package/dist/core/compaction/branch-summarization.d.ts +0 -88
  80. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  81. package/dist/core/compaction/branch-summarization.js +0 -243
  82. package/dist/core/compaction/branch-summarization.js.map +0 -1
  83. package/dist/core/compaction/compaction.d.ts +0 -121
  84. package/dist/core/compaction/compaction.d.ts.map +0 -1
  85. package/dist/core/compaction/compaction.js +0 -638
  86. package/dist/core/compaction/compaction.js.map +0 -1
  87. package/dist/core/compaction/index.d.ts +0 -7
  88. package/dist/core/compaction/index.d.ts.map +0 -1
  89. package/dist/core/compaction/index.js +0 -7
  90. package/dist/core/compaction/index.js.map +0 -1
  91. package/dist/core/compaction/utils.d.ts +0 -38
  92. package/dist/core/compaction/utils.d.ts.map +0 -1
  93. package/dist/core/compaction/utils.js +0 -153
  94. package/dist/core/compaction/utils.js.map +0 -1
  95. package/dist/core/defaults.d.ts +0 -3
  96. package/dist/core/defaults.d.ts.map +0 -1
  97. package/dist/core/defaults.js +0 -2
  98. package/dist/core/defaults.js.map +0 -1
  99. package/dist/core/diagnostics.d.ts +0 -15
  100. package/dist/core/diagnostics.d.ts.map +0 -1
  101. package/dist/core/diagnostics.js +0 -2
  102. package/dist/core/diagnostics.js.map +0 -1
  103. package/dist/core/event-bus.d.ts +0 -9
  104. package/dist/core/event-bus.d.ts.map +0 -1
  105. package/dist/core/event-bus.js +0 -25
  106. package/dist/core/event-bus.js.map +0 -1
  107. package/dist/core/exec.d.ts +0 -29
  108. package/dist/core/exec.d.ts.map +0 -1
  109. package/dist/core/exec.js +0 -75
  110. package/dist/core/exec.js.map +0 -1
  111. package/dist/core/export-html/ansi-to-html.d.ts +0 -22
  112. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  113. package/dist/core/export-html/ansi-to-html.js +0 -249
  114. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  115. package/dist/core/export-html/index.d.ts +0 -37
  116. package/dist/core/export-html/index.d.ts.map +0 -1
  117. package/dist/core/export-html/index.js +0 -224
  118. package/dist/core/export-html/index.js.map +0 -1
  119. package/dist/core/export-html/template.css +0 -1066
  120. package/dist/core/export-html/template.html +0 -55
  121. package/dist/core/export-html/template.js +0 -1848
  122. package/dist/core/export-html/tool-renderer.d.ts +0 -34
  123. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  124. package/dist/core/export-html/tool-renderer.js +0 -108
  125. package/dist/core/export-html/tool-renderer.js.map +0 -1
  126. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  127. package/dist/core/export-html/vendor/marked.min.js +0 -6
  128. package/dist/core/extensions/index.d.ts +0 -12
  129. package/dist/core/extensions/index.d.ts.map +0 -1
  130. package/dist/core/extensions/index.js +0 -9
  131. package/dist/core/extensions/index.js.map +0 -1
  132. package/dist/core/extensions/loader.d.ts +0 -24
  133. package/dist/core/extensions/loader.d.ts.map +0 -1
  134. package/dist/core/extensions/loader.js +0 -508
  135. package/dist/core/extensions/loader.js.map +0 -1
  136. package/dist/core/extensions/runner.d.ts +0 -159
  137. package/dist/core/extensions/runner.d.ts.map +0 -1
  138. package/dist/core/extensions/runner.js +0 -826
  139. package/dist/core/extensions/runner.js.map +0 -1
  140. package/dist/core/extensions/types.d.ts +0 -1181
  141. package/dist/core/extensions/types.d.ts.map +0 -1
  142. package/dist/core/extensions/types.js +0 -45
  143. package/dist/core/extensions/types.js.map +0 -1
  144. package/dist/core/extensions/wrapper.d.ts +0 -20
  145. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  146. package/dist/core/extensions/wrapper.js +0 -22
  147. package/dist/core/extensions/wrapper.js.map +0 -1
  148. package/dist/core/footer-data-provider.d.ts +0 -52
  149. package/dist/core/footer-data-provider.d.ts.map +0 -1
  150. package/dist/core/footer-data-provider.js +0 -310
  151. package/dist/core/footer-data-provider.js.map +0 -1
  152. package/dist/core/http-dispatcher.d.ts +0 -21
  153. package/dist/core/http-dispatcher.d.ts.map +0 -1
  154. package/dist/core/http-dispatcher.js +0 -48
  155. package/dist/core/http-dispatcher.js.map +0 -1
  156. package/dist/core/index.d.ts +0 -12
  157. package/dist/core/index.d.ts.map +0 -1
  158. package/dist/core/index.js +0 -12
  159. package/dist/core/index.js.map +0 -1
  160. package/dist/core/keybindings.d.ts +0 -353
  161. package/dist/core/keybindings.d.ts.map +0 -1
  162. package/dist/core/keybindings.js +0 -295
  163. package/dist/core/keybindings.js.map +0 -1
  164. package/dist/core/messages.d.ts +0 -77
  165. package/dist/core/messages.d.ts.map +0 -1
  166. package/dist/core/messages.js +0 -123
  167. package/dist/core/messages.js.map +0 -1
  168. package/dist/core/model-registry.d.ts +0 -150
  169. package/dist/core/model-registry.d.ts.map +0 -1
  170. package/dist/core/model-registry.js +0 -728
  171. package/dist/core/model-registry.js.map +0 -1
  172. package/dist/core/model-resolver.d.ts +0 -110
  173. package/dist/core/model-resolver.d.ts.map +0 -1
  174. package/dist/core/model-resolver.js +0 -495
  175. package/dist/core/model-resolver.js.map +0 -1
  176. package/dist/core/output-guard.d.ts +0 -6
  177. package/dist/core/output-guard.d.ts.map +0 -1
  178. package/dist/core/output-guard.js +0 -59
  179. package/dist/core/output-guard.js.map +0 -1
  180. package/dist/core/package-manager.d.ts +0 -203
  181. package/dist/core/package-manager.d.ts.map +0 -1
  182. package/dist/core/package-manager.js +0 -2013
  183. package/dist/core/package-manager.js.map +0 -1
  184. package/dist/core/prompt-templates.d.ts +0 -52
  185. package/dist/core/prompt-templates.d.ts.map +0 -1
  186. package/dist/core/prompt-templates.js +0 -252
  187. package/dist/core/prompt-templates.js.map +0 -1
  188. package/dist/core/provider-display-names.d.ts +0 -2
  189. package/dist/core/provider-display-names.d.ts.map +0 -1
  190. package/dist/core/provider-display-names.js +0 -33
  191. package/dist/core/provider-display-names.js.map +0 -1
  192. package/dist/core/resolve-config-value.d.ts +0 -23
  193. package/dist/core/resolve-config-value.d.ts.map +0 -1
  194. package/dist/core/resolve-config-value.js +0 -126
  195. package/dist/core/resolve-config-value.js.map +0 -1
  196. package/dist/core/resource-loader.d.ts +0 -197
  197. package/dist/core/resource-loader.d.ts.map +0 -1
  198. package/dist/core/resource-loader.js +0 -757
  199. package/dist/core/resource-loader.js.map +0 -1
  200. package/dist/core/sdk.d.ts +0 -107
  201. package/dist/core/sdk.d.ts.map +0 -1
  202. package/dist/core/sdk.js +0 -282
  203. package/dist/core/sdk.js.map +0 -1
  204. package/dist/core/session-cwd.d.ts +0 -19
  205. package/dist/core/session-cwd.d.ts.map +0 -1
  206. package/dist/core/session-cwd.js +0 -38
  207. package/dist/core/session-cwd.js.map +0 -1
  208. package/dist/core/session-manager.d.ts +0 -363
  209. package/dist/core/session-manager.d.ts.map +0 -1
  210. package/dist/core/session-manager.js +0 -1318
  211. package/dist/core/session-manager.js.map +0 -1
  212. package/dist/core/settings-manager.d.ts +0 -264
  213. package/dist/core/settings-manager.d.ts.map +0 -1
  214. package/dist/core/settings-manager.js +0 -802
  215. package/dist/core/settings-manager.js.map +0 -1
  216. package/dist/core/skills.d.ts +0 -60
  217. package/dist/core/skills.d.ts.map +0 -1
  218. package/dist/core/skills.js +0 -401
  219. package/dist/core/skills.js.map +0 -1
  220. package/dist/core/slash-commands.d.ts +0 -14
  221. package/dist/core/slash-commands.d.ts.map +0 -1
  222. package/dist/core/slash-commands.js +0 -28
  223. package/dist/core/slash-commands.js.map +0 -1
  224. package/dist/core/source-info.d.ts +0 -18
  225. package/dist/core/source-info.d.ts.map +0 -1
  226. package/dist/core/source-info.js +0 -19
  227. package/dist/core/source-info.js.map +0 -1
  228. package/dist/core/system-prompt.d.ts +0 -30
  229. package/dist/core/system-prompt.d.ts.map +0 -1
  230. package/dist/core/system-prompt.js +0 -132
  231. package/dist/core/system-prompt.js.map +0 -1
  232. package/dist/core/telemetry.d.ts +0 -3
  233. package/dist/core/telemetry.d.ts.map +0 -1
  234. package/dist/core/telemetry.js +0 -9
  235. package/dist/core/telemetry.js.map +0 -1
  236. package/dist/core/timings.d.ts +0 -8
  237. package/dist/core/timings.d.ts.map +0 -1
  238. package/dist/core/timings.js +0 -31
  239. package/dist/core/timings.js.map +0 -1
  240. package/dist/core/tools/bash.d.ts +0 -68
  241. package/dist/core/tools/bash.d.ts.map +0 -1
  242. package/dist/core/tools/bash.js +0 -336
  243. package/dist/core/tools/bash.js.map +0 -1
  244. package/dist/core/tools/edit-diff.d.ts +0 -85
  245. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  246. package/dist/core/tools/edit-diff.js +0 -338
  247. package/dist/core/tools/edit-diff.js.map +0 -1
  248. package/dist/core/tools/edit.d.ts +0 -49
  249. package/dist/core/tools/edit.d.ts.map +0 -1
  250. package/dist/core/tools/edit.js +0 -324
  251. package/dist/core/tools/edit.js.map +0 -1
  252. package/dist/core/tools/file-mutation-queue.d.ts +0 -6
  253. package/dist/core/tools/file-mutation-queue.d.ts.map +0 -1
  254. package/dist/core/tools/file-mutation-queue.js +0 -37
  255. package/dist/core/tools/file-mutation-queue.js.map +0 -1
  256. package/dist/core/tools/find.d.ts +0 -35
  257. package/dist/core/tools/find.d.ts.map +0 -1
  258. package/dist/core/tools/find.js +0 -298
  259. package/dist/core/tools/find.js.map +0 -1
  260. package/dist/core/tools/grep.d.ts +0 -37
  261. package/dist/core/tools/grep.d.ts.map +0 -1
  262. package/dist/core/tools/grep.js +0 -304
  263. package/dist/core/tools/grep.js.map +0 -1
  264. package/dist/core/tools/index.d.ts +0 -40
  265. package/dist/core/tools/index.d.ts.map +0 -1
  266. package/dist/core/tools/index.js +0 -112
  267. package/dist/core/tools/index.js.map +0 -1
  268. package/dist/core/tools/ls.d.ts +0 -37
  269. package/dist/core/tools/ls.d.ts.map +0 -1
  270. package/dist/core/tools/ls.js +0 -169
  271. package/dist/core/tools/ls.js.map +0 -1
  272. package/dist/core/tools/output-accumulator.d.ts +0 -50
  273. package/dist/core/tools/output-accumulator.d.ts.map +0 -1
  274. package/dist/core/tools/output-accumulator.js +0 -178
  275. package/dist/core/tools/output-accumulator.js.map +0 -1
  276. package/dist/core/tools/path-utils.d.ts +0 -8
  277. package/dist/core/tools/path-utils.d.ts.map +0 -1
  278. package/dist/core/tools/path-utils.js +0 -81
  279. package/dist/core/tools/path-utils.js.map +0 -1
  280. package/dist/core/tools/read.d.ts +0 -35
  281. package/dist/core/tools/read.d.ts.map +0 -1
  282. package/dist/core/tools/read.js +0 -291
  283. package/dist/core/tools/read.js.map +0 -1
  284. package/dist/core/tools/render-utils.d.ts +0 -21
  285. package/dist/core/tools/render-utils.d.ts.map +0 -1
  286. package/dist/core/tools/render-utils.js +0 -49
  287. package/dist/core/tools/render-utils.js.map +0 -1
  288. package/dist/core/tools/tool-definition-wrapper.d.ts +0 -14
  289. package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -1
  290. package/dist/core/tools/tool-definition-wrapper.js +0 -34
  291. package/dist/core/tools/tool-definition-wrapper.js.map +0 -1
  292. package/dist/core/tools/truncate.d.ts +0 -70
  293. package/dist/core/tools/truncate.d.ts.map +0 -1
  294. package/dist/core/tools/truncate.js +0 -205
  295. package/dist/core/tools/truncate.js.map +0 -1
  296. package/dist/core/tools/write.d.ts +0 -26
  297. package/dist/core/tools/write.d.ts.map +0 -1
  298. package/dist/core/tools/write.js +0 -213
  299. package/dist/core/tools/write.js.map +0 -1
  300. package/dist/index.d.ts +0 -29
  301. package/dist/index.d.ts.map +0 -1
  302. package/dist/index.js +0 -42
  303. package/dist/index.js.map +0 -1
  304. package/dist/main.d.ts +0 -12
  305. package/dist/main.d.ts.map +0 -1
  306. package/dist/main.js +0 -587
  307. package/dist/main.js.map +0 -1
  308. package/dist/migrations.d.ts +0 -33
  309. package/dist/migrations.d.ts.map +0 -1
  310. package/dist/migrations.js +0 -281
  311. package/dist/migrations.js.map +0 -1
  312. package/dist/modes/index.d.ts +0 -10
  313. package/dist/modes/index.d.ts.map +0 -1
  314. package/dist/modes/index.js +0 -9
  315. package/dist/modes/index.js.map +0 -1
  316. package/dist/modes/interactive/assets/clankolas.png +0 -0
  317. package/dist/modes/interactive/components/armin.d.ts +0 -34
  318. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  319. package/dist/modes/interactive/components/armin.js +0 -333
  320. package/dist/modes/interactive/components/armin.js.map +0 -1
  321. package/dist/modes/interactive/components/assistant-message.d.ts +0 -20
  322. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  323. package/dist/modes/interactive/components/assistant-message.js +0 -121
  324. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  325. package/dist/modes/interactive/components/bash-execution.d.ts +0 -34
  326. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  327. package/dist/modes/interactive/components/bash-execution.js +0 -175
  328. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  329. package/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  330. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  331. package/dist/modes/interactive/components/bordered-loader.js +0 -54
  332. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  333. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  334. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  335. package/dist/modes/interactive/components/branch-summary-message.js +0 -44
  336. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  337. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  338. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  339. package/dist/modes/interactive/components/compaction-summary-message.js +0 -45
  340. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  341. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  342. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  343. package/dist/modes/interactive/components/config-selector.js +0 -506
  344. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  345. package/dist/modes/interactive/components/countdown-timer.d.ts +0 -14
  346. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  347. package/dist/modes/interactive/components/countdown-timer.js +0 -33
  348. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  349. package/dist/modes/interactive/components/custom-editor.d.ts +0 -21
  350. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  351. package/dist/modes/interactive/components/custom-editor.js +0 -70
  352. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  353. package/dist/modes/interactive/components/custom-message.d.ts +0 -20
  354. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  355. package/dist/modes/interactive/components/custom-message.js +0 -79
  356. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  357. package/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  358. package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  359. package/dist/modes/interactive/components/daxnuts.js +0 -140
  360. package/dist/modes/interactive/components/daxnuts.js.map +0 -1
  361. package/dist/modes/interactive/components/diff.d.ts +0 -12
  362. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  363. package/dist/modes/interactive/components/diff.js +0 -133
  364. package/dist/modes/interactive/components/diff.js.map +0 -1
  365. package/dist/modes/interactive/components/dynamic-border.d.ts +0 -15
  366. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  367. package/dist/modes/interactive/components/dynamic-border.js +0 -21
  368. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  369. package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -5
  370. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -1
  371. package/dist/modes/interactive/components/earendil-announcement.js +0 -40
  372. package/dist/modes/interactive/components/earendil-announcement.js.map +0 -1
  373. package/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  374. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  375. package/dist/modes/interactive/components/extension-editor.js +0 -119
  376. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  377. package/dist/modes/interactive/components/extension-input.d.ts +0 -23
  378. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  379. package/dist/modes/interactive/components/extension-input.js +0 -61
  380. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  381. package/dist/modes/interactive/components/extension-selector.d.ts +0 -26
  382. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  383. package/dist/modes/interactive/components/extension-selector.js +0 -83
  384. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  385. package/dist/modes/interactive/components/footer.d.ts +0 -27
  386. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  387. package/dist/modes/interactive/components/footer.js +0 -201
  388. package/dist/modes/interactive/components/footer.js.map +0 -1
  389. package/dist/modes/interactive/components/index.d.ts +0 -32
  390. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  391. package/dist/modes/interactive/components/index.js +0 -33
  392. package/dist/modes/interactive/components/index.js.map +0 -1
  393. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -13
  394. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  395. package/dist/modes/interactive/components/keybinding-hints.js +0 -36
  396. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  397. package/dist/modes/interactive/components/login-dialog.d.ts +0 -46
  398. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  399. package/dist/modes/interactive/components/login-dialog.js +0 -160
  400. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  401. package/dist/modes/interactive/components/model-selector.d.ts +0 -47
  402. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  403. package/dist/modes/interactive/components/model-selector.js +0 -278
  404. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  405. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -31
  406. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  407. package/dist/modes/interactive/components/oauth-selector.js +0 -165
  408. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  409. package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -42
  410. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  411. package/dist/modes/interactive/components/scoped-models-selector.js +0 -290
  412. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  413. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -23
  414. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  415. package/dist/modes/interactive/components/session-selector-search.js +0 -155
  416. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  417. package/dist/modes/interactive/components/session-selector.d.ts +0 -96
  418. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  419. package/dist/modes/interactive/components/session-selector.js +0 -861
  420. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  421. package/dist/modes/interactive/components/settings-selector.d.ts +0 -69
  422. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  423. package/dist/modes/interactive/components/settings-selector.js +0 -390
  424. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  425. package/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  426. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  427. package/dist/modes/interactive/components/show-images-selector.js +0 -39
  428. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  429. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  430. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  431. package/dist/modes/interactive/components/skill-invocation-message.js +0 -47
  432. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  433. package/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  434. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  435. package/dist/modes/interactive/components/theme-selector.js +0 -50
  436. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  437. package/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  438. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  439. package/dist/modes/interactive/components/thinking-selector.js +0 -51
  440. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  441. package/dist/modes/interactive/components/tool-execution.d.ts +0 -63
  442. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  443. package/dist/modes/interactive/components/tool-execution.js +0 -295
  444. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  445. package/dist/modes/interactive/components/tree-selector.d.ts +0 -89
  446. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  447. package/dist/modes/interactive/components/tree-selector.js +0 -1093
  448. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  449. package/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  450. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  451. package/dist/modes/interactive/components/user-message-selector.js +0 -114
  452. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  453. package/dist/modes/interactive/components/user-message.d.ts +0 -10
  454. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  455. package/dist/modes/interactive/components/user-message.js +0 -29
  456. package/dist/modes/interactive/components/user-message.js.map +0 -1
  457. package/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  458. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  459. package/dist/modes/interactive/components/visual-truncate.js +0 -33
  460. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  461. package/dist/modes/interactive/interactive-mode.d.ts +0 -373
  462. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  463. package/dist/modes/interactive/interactive-mode.js +0 -4750
  464. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  465. package/dist/modes/interactive/theme/dark.json +0 -86
  466. package/dist/modes/interactive/theme/light.json +0 -85
  467. package/dist/modes/interactive/theme/theme-schema.json +0 -335
  468. package/dist/modes/interactive/theme/theme.d.ts +0 -100
  469. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  470. package/dist/modes/interactive/theme/theme.js +0 -1015
  471. package/dist/modes/interactive/theme/theme.js.map +0 -1
  472. package/dist/modes/print-mode.d.ts +0 -28
  473. package/dist/modes/print-mode.d.ts.map +0 -1
  474. package/dist/modes/print-mode.js +0 -131
  475. package/dist/modes/print-mode.js.map +0 -1
  476. package/dist/modes/rpc/jsonl.d.ts +0 -17
  477. package/dist/modes/rpc/jsonl.d.ts.map +0 -1
  478. package/dist/modes/rpc/jsonl.js +0 -49
  479. package/dist/modes/rpc/jsonl.js.map +0 -1
  480. package/dist/modes/rpc/rpc-client.d.ts +0 -228
  481. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  482. package/dist/modes/rpc/rpc-client.js +0 -416
  483. package/dist/modes/rpc/rpc-client.js.map +0 -1
  484. package/dist/modes/rpc/rpc-mode.d.ts +0 -20
  485. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  486. package/dist/modes/rpc/rpc-mode.js +0 -609
  487. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  488. package/dist/modes/rpc/rpc-types.d.ts +0 -428
  489. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  490. package/dist/modes/rpc/rpc-types.js +0 -8
  491. package/dist/modes/rpc/rpc-types.js.map +0 -1
  492. package/dist/modes/web/web-mode.d.ts +0 -3
  493. package/dist/modes/web/web-mode.d.ts.map +0 -1
  494. package/dist/modes/web/web-mode.js +0 -243
  495. package/dist/modes/web/web-mode.js.map +0 -1
  496. package/dist/package-manager-cli.d.ts +0 -4
  497. package/dist/package-manager-cli.d.ts.map +0 -1
  498. package/dist/package-manager-cli.js +0 -515
  499. package/dist/package-manager-cli.js.map +0 -1
  500. package/dist/utils/ansi.d.ts +0 -2
  501. package/dist/utils/ansi.d.ts.map +0 -1
  502. package/dist/utils/ansi.js +0 -52
  503. package/dist/utils/ansi.js.map +0 -1
  504. package/dist/utils/changelog.d.ts +0 -21
  505. package/dist/utils/changelog.d.ts.map +0 -1
  506. package/dist/utils/changelog.js +0 -87
  507. package/dist/utils/changelog.js.map +0 -1
  508. package/dist/utils/child-process.d.ts +0 -15
  509. package/dist/utils/child-process.d.ts.map +0 -1
  510. package/dist/utils/child-process.js +0 -88
  511. package/dist/utils/child-process.js.map +0 -1
  512. package/dist/utils/clipboard-image.d.ts +0 -11
  513. package/dist/utils/clipboard-image.d.ts.map +0 -1
  514. package/dist/utils/clipboard-image.js +0 -245
  515. package/dist/utils/clipboard-image.js.map +0 -1
  516. package/dist/utils/clipboard-native.d.ts +0 -8
  517. package/dist/utils/clipboard-native.d.ts.map +0 -1
  518. package/dist/utils/clipboard-native.js +0 -14
  519. package/dist/utils/clipboard-native.js.map +0 -1
  520. package/dist/utils/clipboard.d.ts +0 -2
  521. package/dist/utils/clipboard.d.ts.map +0 -1
  522. package/dist/utils/clipboard.js +0 -117
  523. package/dist/utils/clipboard.js.map +0 -1
  524. package/dist/utils/exif-orientation.d.ts +0 -5
  525. package/dist/utils/exif-orientation.d.ts.map +0 -1
  526. package/dist/utils/exif-orientation.js +0 -158
  527. package/dist/utils/exif-orientation.js.map +0 -1
  528. package/dist/utils/frontmatter.d.ts +0 -8
  529. package/dist/utils/frontmatter.d.ts.map +0 -1
  530. package/dist/utils/frontmatter.js +0 -26
  531. package/dist/utils/frontmatter.js.map +0 -1
  532. package/dist/utils/fs-watch.d.ts +0 -5
  533. package/dist/utils/fs-watch.d.ts.map +0 -1
  534. package/dist/utils/fs-watch.js +0 -25
  535. package/dist/utils/fs-watch.js.map +0 -1
  536. package/dist/utils/git.d.ts +0 -26
  537. package/dist/utils/git.d.ts.map +0 -1
  538. package/dist/utils/git.js +0 -163
  539. package/dist/utils/git.js.map +0 -1
  540. package/dist/utils/html.d.ts +0 -7
  541. package/dist/utils/html.d.ts.map +0 -1
  542. package/dist/utils/html.js +0 -40
  543. package/dist/utils/html.js.map +0 -1
  544. package/dist/utils/image-convert.d.ts +0 -9
  545. package/dist/utils/image-convert.d.ts.map +0 -1
  546. package/dist/utils/image-convert.js +0 -39
  547. package/dist/utils/image-convert.js.map +0 -1
  548. package/dist/utils/image-resize.d.ts +0 -36
  549. package/dist/utils/image-resize.d.ts.map +0 -1
  550. package/dist/utils/image-resize.js +0 -137
  551. package/dist/utils/image-resize.js.map +0 -1
  552. package/dist/utils/mime.d.ts +0 -3
  553. package/dist/utils/mime.d.ts.map +0 -1
  554. package/dist/utils/mime.js +0 -69
  555. package/dist/utils/mime.js.map +0 -1
  556. package/dist/utils/paths.d.ts +0 -17
  557. package/dist/utils/paths.d.ts.map +0 -1
  558. package/dist/utils/paths.js +0 -66
  559. package/dist/utils/paths.js.map +0 -1
  560. package/dist/utils/photon.d.ts +0 -21
  561. package/dist/utils/photon.d.ts.map +0 -1
  562. package/dist/utils/photon.js +0 -121
  563. package/dist/utils/photon.js.map +0 -1
  564. package/dist/utils/pi-user-agent.d.ts +0 -2
  565. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  566. package/dist/utils/pi-user-agent.js +0 -5
  567. package/dist/utils/pi-user-agent.js.map +0 -1
  568. package/dist/utils/shell.d.ts +0 -30
  569. package/dist/utils/shell.d.ts.map +0 -1
  570. package/dist/utils/shell.js +0 -195
  571. package/dist/utils/shell.js.map +0 -1
  572. package/dist/utils/sleep.d.ts +0 -5
  573. package/dist/utils/sleep.d.ts.map +0 -1
  574. package/dist/utils/sleep.js +0 -17
  575. package/dist/utils/sleep.js.map +0 -1
  576. package/dist/utils/syntax-highlight.d.ts +0 -12
  577. package/dist/utils/syntax-highlight.d.ts.map +0 -1
  578. package/dist/utils/syntax-highlight.js +0 -118
  579. package/dist/utils/syntax-highlight.js.map +0 -1
  580. package/dist/utils/tools-manager.d.ts +0 -3
  581. package/dist/utils/tools-manager.d.ts.map +0 -1
  582. package/dist/utils/tools-manager.js +0 -328
  583. package/dist/utils/tools-manager.js.map +0 -1
  584. package/dist/utils/version-check.d.ts +0 -15
  585. package/dist/utils/version-check.d.ts.map +0 -1
  586. package/dist/utils/version-check.js +0 -82
  587. package/dist/utils/version-check.js.map +0 -1
  588. package/dist/utils/windows-self-update.d.ts +0 -3
  589. package/dist/utils/windows-self-update.d.ts.map +0 -1
  590. package/dist/utils/windows-self-update.js +0 -77
  591. package/dist/utils/windows-self-update.js.map +0 -1
@@ -1,609 +0,0 @@
1
- /**
2
- * RPC mode: Headless operation with JSON stdin/stdout protocol.
3
- *
4
- * Used for embedding the agent in other applications.
5
- * Receives commands as JSON on stdin, outputs events and responses as JSON on stdout.
6
- *
7
- * Protocol:
8
- * - Commands: JSON objects with `type` field, optional `id` for correlation
9
- * - Responses: JSON objects with `type: "response"`, `command`, `success`, and optional `data`/`error`
10
- * - Events: AgentSessionEvent objects streamed as they occur
11
- * - Extension UI: Extension UI requests are emitted, client responds with extension_ui_response
12
- */
13
- import * as crypto from "node:crypto";
14
- import { takeOverStdout, writeRawStdout } from "../../core/output-guard.js";
15
- import { killTrackedDetachedChildren } from "../../utils/shell.js";
16
- import { theme } from "../interactive/theme/theme.js";
17
- import { attachJsonlLineReader, serializeJsonLine } from "./jsonl.js";
18
- /**
19
- * Run in RPC mode.
20
- * Listens for JSON commands on stdin, outputs events and responses on stdout.
21
- */
22
- export async function runRpcMode(runtimeHost) {
23
- takeOverStdout();
24
- let session = runtimeHost.session;
25
- let unsubscribe;
26
- const output = (obj) => {
27
- writeRawStdout(serializeJsonLine(obj));
28
- };
29
- const success = (id, command, data) => {
30
- if (data === undefined) {
31
- return { id, type: "response", command, success: true };
32
- }
33
- return { id, type: "response", command, success: true, data };
34
- };
35
- const error = (id, command, message) => {
36
- return { id, type: "response", command, success: false, error: message };
37
- };
38
- // Pending extension UI requests waiting for response
39
- const pendingExtensionRequests = new Map();
40
- // Shutdown request flag
41
- let shutdownRequested = false;
42
- let shuttingDown = false;
43
- const signalCleanupHandlers = [];
44
- /** Helper for dialog methods with signal/timeout support */
45
- function createDialogPromise(opts, defaultValue, request, parseResponse) {
46
- if (opts?.signal?.aborted)
47
- return Promise.resolve(defaultValue);
48
- const id = crypto.randomUUID();
49
- return new Promise((resolve, reject) => {
50
- let timeoutId;
51
- const cleanup = () => {
52
- if (timeoutId)
53
- clearTimeout(timeoutId);
54
- opts?.signal?.removeEventListener("abort", onAbort);
55
- pendingExtensionRequests.delete(id);
56
- };
57
- const onAbort = () => {
58
- cleanup();
59
- resolve(defaultValue);
60
- };
61
- opts?.signal?.addEventListener("abort", onAbort, { once: true });
62
- if (opts?.timeout) {
63
- timeoutId = setTimeout(() => {
64
- cleanup();
65
- resolve(defaultValue);
66
- }, opts.timeout);
67
- }
68
- pendingExtensionRequests.set(id, {
69
- resolve: (response) => {
70
- cleanup();
71
- resolve(parseResponse(response));
72
- },
73
- reject,
74
- });
75
- output({ type: "extension_ui_request", id, ...request });
76
- });
77
- }
78
- /**
79
- * Create an extension UI context that uses the RPC protocol.
80
- */
81
- const createExtensionUIContext = () => ({
82
- select: (title, options, opts) => createDialogPromise(opts, undefined, { method: "select", title, options, timeout: opts?.timeout }, (r) => "cancelled" in r && r.cancelled ? undefined : "value" in r ? r.value : undefined),
83
- confirm: (title, message, opts) => createDialogPromise(opts, false, { method: "confirm", title, message, timeout: opts?.timeout }, (r) => "cancelled" in r && r.cancelled ? false : "confirmed" in r ? r.confirmed : false),
84
- input: (title, placeholder, opts) => createDialogPromise(opts, undefined, { method: "input", title, placeholder, timeout: opts?.timeout }, (r) => "cancelled" in r && r.cancelled ? undefined : "value" in r ? r.value : undefined),
85
- notify(message, type) {
86
- // Fire and forget - no response needed
87
- output({
88
- type: "extension_ui_request",
89
- id: crypto.randomUUID(),
90
- method: "notify",
91
- message,
92
- notifyType: type,
93
- });
94
- },
95
- onTerminalInput() {
96
- // Raw terminal input not supported in RPC mode
97
- return () => { };
98
- },
99
- setStatus(key, text) {
100
- // Fire and forget - no response needed
101
- output({
102
- type: "extension_ui_request",
103
- id: crypto.randomUUID(),
104
- method: "setStatus",
105
- statusKey: key,
106
- statusText: text,
107
- });
108
- },
109
- setWorkingMessage(_message) {
110
- // Working message not supported in RPC mode - requires TUI loader access
111
- },
112
- setWorkingVisible(_visible) {
113
- // Working visibility not supported in RPC mode - requires TUI loader access
114
- },
115
- setWorkingIndicator(_options) {
116
- // Working indicator customization not supported in RPC mode - requires TUI loader access
117
- },
118
- setHiddenThinkingLabel(_label) {
119
- // Hidden thinking label not supported in RPC mode - requires TUI message rendering access
120
- },
121
- setWidget(key, content, options) {
122
- // Only support string arrays in RPC mode - factory functions are ignored
123
- if (content === undefined || Array.isArray(content)) {
124
- output({
125
- type: "extension_ui_request",
126
- id: crypto.randomUUID(),
127
- method: "setWidget",
128
- widgetKey: key,
129
- widgetLines: content,
130
- widgetPlacement: options?.placement,
131
- });
132
- }
133
- // Component factories are not supported in RPC mode - would need TUI access
134
- },
135
- setFooter(_factory) {
136
- // Custom footer not supported in RPC mode - requires TUI access
137
- },
138
- setHeader(_factory) {
139
- // Custom header not supported in RPC mode - requires TUI access
140
- },
141
- setTitle(title) {
142
- // Fire and forget - host can implement terminal title control
143
- output({
144
- type: "extension_ui_request",
145
- id: crypto.randomUUID(),
146
- method: "setTitle",
147
- title,
148
- });
149
- },
150
- async custom() {
151
- // Custom UI not supported in RPC mode
152
- return undefined;
153
- },
154
- pasteToEditor(text) {
155
- // Paste handling not supported in RPC mode - falls back to setEditorText
156
- this.setEditorText(text);
157
- },
158
- setEditorText(text) {
159
- // Fire and forget - host can implement editor control
160
- output({
161
- type: "extension_ui_request",
162
- id: crypto.randomUUID(),
163
- method: "set_editor_text",
164
- text,
165
- });
166
- },
167
- getEditorText() {
168
- // Synchronous method can't wait for RPC response
169
- // Host should track editor state locally if needed
170
- return "";
171
- },
172
- async editor(title, prefill) {
173
- const id = crypto.randomUUID();
174
- return new Promise((resolve, reject) => {
175
- pendingExtensionRequests.set(id, {
176
- resolve: (response) => {
177
- if ("cancelled" in response && response.cancelled) {
178
- resolve(undefined);
179
- }
180
- else if ("value" in response) {
181
- resolve(response.value);
182
- }
183
- else {
184
- resolve(undefined);
185
- }
186
- },
187
- reject,
188
- });
189
- output({ type: "extension_ui_request", id, method: "editor", title, prefill });
190
- });
191
- },
192
- addAutocompleteProvider() {
193
- // Autocomplete provider composition is not supported in RPC mode
194
- },
195
- setEditorComponent() {
196
- // Custom editor components not supported in RPC mode
197
- },
198
- getEditorComponent() {
199
- // Custom editor components not supported in RPC mode
200
- return undefined;
201
- },
202
- get theme() {
203
- return theme;
204
- },
205
- getAllThemes() {
206
- return [];
207
- },
208
- getTheme(_name) {
209
- return undefined;
210
- },
211
- setTheme(_theme) {
212
- // Theme switching not supported in RPC mode
213
- return { success: false, error: "Theme switching not supported in RPC mode" };
214
- },
215
- getToolsExpanded() {
216
- // Tool expansion not supported in RPC mode - no TUI
217
- return false;
218
- },
219
- setToolsExpanded(_expanded) {
220
- // Tool expansion not supported in RPC mode - no TUI
221
- },
222
- });
223
- runtimeHost.setRebindSession(async () => {
224
- await rebindSession();
225
- });
226
- const rebindSession = async () => {
227
- session = runtimeHost.session;
228
- await session.bindExtensions({
229
- uiContext: createExtensionUIContext(),
230
- commandContextActions: {
231
- waitForIdle: () => session.agent.waitForIdle(),
232
- newSession: async (options) => runtimeHost.newSession(options),
233
- fork: async (entryId, forkOptions) => {
234
- const result = await runtimeHost.fork(entryId, forkOptions);
235
- return { cancelled: result.cancelled };
236
- },
237
- navigateTree: async (targetId, options) => {
238
- const result = await session.navigateTree(targetId, {
239
- summarize: options?.summarize,
240
- customInstructions: options?.customInstructions,
241
- replaceInstructions: options?.replaceInstructions,
242
- label: options?.label,
243
- });
244
- return { cancelled: result.cancelled };
245
- },
246
- switchSession: async (sessionPath, options) => {
247
- return runtimeHost.switchSession(sessionPath, options);
248
- },
249
- reload: async () => {
250
- await session.reload();
251
- },
252
- },
253
- shutdownHandler: () => {
254
- shutdownRequested = true;
255
- },
256
- onError: (err) => {
257
- output({ type: "extension_error", extensionPath: err.extensionPath, event: err.event, error: err.error });
258
- },
259
- });
260
- unsubscribe?.();
261
- unsubscribe = session.subscribe((event) => {
262
- output(event);
263
- });
264
- };
265
- const registerSignalHandlers = () => {
266
- const signals = ["SIGTERM"];
267
- if (process.platform !== "win32") {
268
- signals.push("SIGHUP");
269
- }
270
- for (const signal of signals) {
271
- const handler = () => {
272
- killTrackedDetachedChildren();
273
- void shutdown(signal === "SIGHUP" ? 129 : 143);
274
- };
275
- process.on(signal, handler);
276
- signalCleanupHandlers.push(() => process.off(signal, handler));
277
- }
278
- };
279
- await rebindSession();
280
- registerSignalHandlers();
281
- // Handle a single command
282
- const handleCommand = async (command) => {
283
- const id = command.id;
284
- switch (command.type) {
285
- // =================================================================
286
- // Prompting
287
- // =================================================================
288
- case "prompt": {
289
- // Start prompt handling immediately, but emit the authoritative response only after
290
- // prompt preflight succeeds. Queued and immediately handled prompts also count as success.
291
- let preflightSucceeded = false;
292
- void session
293
- .prompt(command.message, {
294
- images: command.images,
295
- streamingBehavior: command.streamingBehavior,
296
- source: "rpc",
297
- preflightResult: (didSucceed) => {
298
- if (didSucceed) {
299
- preflightSucceeded = true;
300
- output(success(id, "prompt"));
301
- }
302
- },
303
- })
304
- .catch((e) => {
305
- if (!preflightSucceeded) {
306
- output(error(id, "prompt", e.message));
307
- }
308
- });
309
- return undefined;
310
- }
311
- case "steer": {
312
- await session.steer(command.message, command.images);
313
- return success(id, "steer");
314
- }
315
- case "follow_up": {
316
- await session.followUp(command.message, command.images);
317
- return success(id, "follow_up");
318
- }
319
- case "abort": {
320
- await session.abort();
321
- return success(id, "abort");
322
- }
323
- case "new_session": {
324
- const options = command.parentSession ? { parentSession: command.parentSession } : undefined;
325
- const result = await runtimeHost.newSession(options);
326
- if (!result.cancelled) {
327
- await rebindSession();
328
- }
329
- return success(id, "new_session", result);
330
- }
331
- // =================================================================
332
- // State
333
- // =================================================================
334
- case "get_state": {
335
- const state = {
336
- model: session.model,
337
- thinkingLevel: session.thinkingLevel,
338
- isStreaming: session.isStreaming,
339
- isCompacting: session.isCompacting,
340
- steeringMode: session.steeringMode,
341
- followUpMode: session.followUpMode,
342
- sessionFile: session.sessionFile,
343
- sessionId: session.sessionId,
344
- sessionName: session.sessionName,
345
- autoCompactionEnabled: session.autoCompactionEnabled,
346
- messageCount: session.messages.length,
347
- pendingMessageCount: session.pendingMessageCount,
348
- };
349
- return success(id, "get_state", state);
350
- }
351
- // =================================================================
352
- // Model
353
- // =================================================================
354
- case "set_model": {
355
- const models = await session.modelRegistry.getAvailable();
356
- const model = models.find((m) => m.provider === command.provider && m.id === command.modelId);
357
- if (!model) {
358
- return error(id, "set_model", `Model not found: ${command.provider}/${command.modelId}`);
359
- }
360
- await session.setModel(model);
361
- return success(id, "set_model", model);
362
- }
363
- case "cycle_model": {
364
- const result = await session.cycleModel();
365
- if (!result) {
366
- return success(id, "cycle_model", null);
367
- }
368
- return success(id, "cycle_model", result);
369
- }
370
- case "get_available_models": {
371
- const models = await session.modelRegistry.getAvailable();
372
- return success(id, "get_available_models", { models });
373
- }
374
- // =================================================================
375
- // Thinking
376
- // =================================================================
377
- case "set_thinking_level": {
378
- session.setThinkingLevel(command.level);
379
- return success(id, "set_thinking_level");
380
- }
381
- case "cycle_thinking_level": {
382
- const level = session.cycleThinkingLevel();
383
- if (!level) {
384
- return success(id, "cycle_thinking_level", null);
385
- }
386
- return success(id, "cycle_thinking_level", { level });
387
- }
388
- // =================================================================
389
- // Queue Modes
390
- // =================================================================
391
- case "set_steering_mode": {
392
- session.setSteeringMode(command.mode);
393
- return success(id, "set_steering_mode");
394
- }
395
- case "set_follow_up_mode": {
396
- session.setFollowUpMode(command.mode);
397
- return success(id, "set_follow_up_mode");
398
- }
399
- // =================================================================
400
- // Compaction
401
- // =================================================================
402
- case "compact": {
403
- const result = await session.compact(command.customInstructions);
404
- return success(id, "compact", result);
405
- }
406
- case "set_auto_compaction": {
407
- session.setAutoCompactionEnabled(command.enabled);
408
- return success(id, "set_auto_compaction");
409
- }
410
- // =================================================================
411
- // Retry
412
- // =================================================================
413
- case "set_auto_retry": {
414
- session.setAutoRetryEnabled(command.enabled);
415
- return success(id, "set_auto_retry");
416
- }
417
- case "abort_retry": {
418
- session.abortRetry();
419
- return success(id, "abort_retry");
420
- }
421
- // =================================================================
422
- // Bash
423
- // =================================================================
424
- case "bash": {
425
- const result = await session.executeBash(command.command);
426
- return success(id, "bash", result);
427
- }
428
- case "abort_bash": {
429
- session.abortBash();
430
- return success(id, "abort_bash");
431
- }
432
- // =================================================================
433
- // Session
434
- // =================================================================
435
- case "get_session_stats": {
436
- const stats = session.getSessionStats();
437
- return success(id, "get_session_stats", stats);
438
- }
439
- case "export_html": {
440
- const path = await session.exportToHtml(command.outputPath);
441
- return success(id, "export_html", { path });
442
- }
443
- case "switch_session": {
444
- const result = await runtimeHost.switchSession(command.sessionPath);
445
- if (!result.cancelled) {
446
- await rebindSession();
447
- }
448
- return success(id, "switch_session", result);
449
- }
450
- case "fork": {
451
- const result = await runtimeHost.fork(command.entryId);
452
- if (!result.cancelled) {
453
- await rebindSession();
454
- }
455
- return success(id, "fork", { text: result.selectedText, cancelled: result.cancelled });
456
- }
457
- case "clone": {
458
- const leafId = session.sessionManager.getLeafId();
459
- if (!leafId) {
460
- return error(id, "clone", "Cannot clone session: no current entry selected");
461
- }
462
- const result = await runtimeHost.fork(leafId, { position: "at" });
463
- if (!result.cancelled) {
464
- await rebindSession();
465
- }
466
- return success(id, "clone", { cancelled: result.cancelled });
467
- }
468
- case "get_fork_messages": {
469
- const messages = session.getUserMessagesForForking();
470
- return success(id, "get_fork_messages", { messages });
471
- }
472
- case "get_last_assistant_text": {
473
- const text = session.getLastAssistantText();
474
- return success(id, "get_last_assistant_text", { text });
475
- }
476
- case "set_session_name": {
477
- const name = command.name.trim();
478
- if (!name) {
479
- return error(id, "set_session_name", "Session name cannot be empty");
480
- }
481
- session.setSessionName(name);
482
- return success(id, "set_session_name");
483
- }
484
- case "set_session_goal": {
485
- const goal = command.goal.trim();
486
- if (!goal) {
487
- return error(id, "set_session_goal", "Session goal cannot be empty");
488
- }
489
- session.setSessionGoal(goal);
490
- return success(id, "set_session_goal");
491
- }
492
- // =================================================================
493
- // Messages
494
- // =================================================================
495
- case "get_messages": {
496
- return success(id, "get_messages", { messages: session.messages });
497
- }
498
- // =================================================================
499
- // Commands (available for invocation via prompt)
500
- // =================================================================
501
- case "get_commands": {
502
- const commands = [];
503
- for (const command of session.extensionRunner.getRegisteredCommands()) {
504
- commands.push({
505
- name: command.invocationName,
506
- description: command.description,
507
- source: "extension",
508
- sourceInfo: command.sourceInfo,
509
- });
510
- }
511
- for (const template of session.promptTemplates) {
512
- commands.push({
513
- name: template.name,
514
- description: template.description,
515
- source: "prompt",
516
- sourceInfo: template.sourceInfo,
517
- });
518
- }
519
- for (const skill of session.resourceLoader.getSkills().skills) {
520
- commands.push({
521
- name: `skill:${skill.name}`,
522
- description: skill.description,
523
- source: "skill",
524
- sourceInfo: skill.sourceInfo,
525
- });
526
- }
527
- return success(id, "get_commands", { commands });
528
- }
529
- default: {
530
- const unknownCommand = command;
531
- return error(undefined, unknownCommand.type, `Unknown command: ${unknownCommand.type}`);
532
- }
533
- }
534
- };
535
- /**
536
- * Check if shutdown was requested and perform shutdown if so.
537
- * Called after handling each command when waiting for the next command.
538
- */
539
- let detachInput = () => { };
540
- async function shutdown(exitCode = 0) {
541
- if (shuttingDown) {
542
- process.exit(exitCode);
543
- }
544
- shuttingDown = true;
545
- for (const cleanup of signalCleanupHandlers) {
546
- cleanup();
547
- }
548
- unsubscribe?.();
549
- await runtimeHost.dispose();
550
- detachInput();
551
- process.stdin.pause();
552
- process.exit(exitCode);
553
- }
554
- async function checkShutdownRequested() {
555
- if (!shutdownRequested)
556
- return;
557
- await shutdown();
558
- }
559
- const handleInputLine = async (line) => {
560
- let parsed;
561
- try {
562
- parsed = JSON.parse(line);
563
- }
564
- catch (parseError) {
565
- output(error(undefined, "parse", `Failed to parse command: ${parseError instanceof Error ? parseError.message : String(parseError)}`));
566
- return;
567
- }
568
- // Handle extension UI responses
569
- if (typeof parsed === "object" &&
570
- parsed !== null &&
571
- "type" in parsed &&
572
- parsed.type === "extension_ui_response") {
573
- const response = parsed;
574
- const pending = pendingExtensionRequests.get(response.id);
575
- if (pending) {
576
- pendingExtensionRequests.delete(response.id);
577
- pending.resolve(response);
578
- }
579
- return;
580
- }
581
- const command = parsed;
582
- try {
583
- const response = await handleCommand(command);
584
- if (response) {
585
- output(response);
586
- }
587
- await checkShutdownRequested();
588
- }
589
- catch (commandError) {
590
- output(error(command.id, command.type, commandError instanceof Error ? commandError.message : String(commandError)));
591
- }
592
- };
593
- const onInputEnd = () => {
594
- void shutdown();
595
- };
596
- process.stdin.on("end", onInputEnd);
597
- detachInput = (() => {
598
- const detachJsonl = attachJsonlLineReader(process.stdin, (line) => {
599
- void handleInputLine(line);
600
- });
601
- return () => {
602
- detachJsonl();
603
- process.stdin.off("end", onInputEnd);
604
- };
605
- })();
606
- // Keep process alive forever
607
- return new Promise(() => { });
608
- }
609
- //# sourceMappingURL=rpc-mode.js.map