indusagi-coding-agent 0.1.41 → 0.1.42

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 (950) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/command-line/args.d.ts +56 -0
  5. package/dist/command-line/args.d.ts.map +1 -0
  6. package/dist/command-line/args.js.map +1 -0
  7. package/dist/command-line/config-selector.d.ts +17 -0
  8. package/dist/command-line/config-selector.d.ts.map +1 -0
  9. package/dist/command-line/config-selector.js.map +1 -0
  10. package/dist/command-line/file-processor.d.ts.map +1 -0
  11. package/dist/command-line/file-processor.js.map +1 -0
  12. package/dist/command-line/list-models.d.ts +9 -0
  13. package/dist/command-line/list-models.d.ts.map +1 -0
  14. package/dist/command-line/list-models.js.map +1 -0
  15. package/dist/command-line/login-handler.d.ts.map +1 -0
  16. package/dist/command-line/login-handler.js +746 -0
  17. package/dist/command-line/login-handler.js.map +1 -0
  18. package/dist/command-line/session-picker.d.ts.map +1 -0
  19. package/dist/command-line/session-picker.js.map +1 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +9 -5
  22. package/dist/config.js.map +1 -1
  23. package/dist/helpers/array.d.ts.map +1 -0
  24. package/dist/helpers/array.js.map +1 -0
  25. package/dist/helpers/changelog.d.ts.map +1 -0
  26. package/dist/helpers/changelog.js.map +1 -0
  27. package/dist/helpers/clipboard-image.d.ts.map +1 -0
  28. package/dist/helpers/clipboard-image.js.map +1 -0
  29. package/dist/helpers/clipboard.d.ts.map +1 -0
  30. package/dist/helpers/clipboard.js.map +1 -0
  31. package/dist/helpers/color-formatter.d.ts.map +1 -0
  32. package/dist/helpers/color-formatter.js.map +1 -0
  33. package/dist/helpers/data-transformer.d.ts.map +1 -0
  34. package/dist/helpers/data-transformer.js.map +1 -0
  35. package/dist/helpers/date-formatter.d.ts.map +1 -0
  36. package/dist/helpers/date-formatter.js.map +1 -0
  37. package/dist/helpers/error-handler.d.ts.map +1 -0
  38. package/dist/helpers/error-handler.js.map +1 -0
  39. package/dist/helpers/file-operations.d.ts.map +1 -0
  40. package/dist/helpers/file-operations.js.map +1 -0
  41. package/dist/helpers/frontmatter.d.ts.map +1 -0
  42. package/dist/helpers/frontmatter.js.map +1 -0
  43. package/dist/helpers/git.d.ts.map +1 -0
  44. package/dist/helpers/git.js.map +1 -0
  45. package/dist/helpers/image-convert.d.ts.map +1 -0
  46. package/dist/helpers/image-convert.js.map +1 -0
  47. package/dist/helpers/image-resize.d.ts.map +1 -0
  48. package/dist/helpers/image-resize.js.map +1 -0
  49. package/dist/helpers/json-formatter.d.ts.map +1 -0
  50. package/dist/helpers/json-formatter.js.map +1 -0
  51. package/dist/helpers/logger.d.ts.map +1 -0
  52. package/dist/helpers/logger.js.map +1 -0
  53. package/dist/helpers/markdown-formatter.d.ts.map +1 -0
  54. package/dist/helpers/markdown-formatter.js.map +1 -0
  55. package/dist/helpers/mime.d.ts.map +1 -0
  56. package/dist/helpers/mime.js.map +1 -0
  57. package/dist/helpers/path-validator.d.ts.map +1 -0
  58. package/dist/helpers/path-validator.js.map +1 -0
  59. package/dist/helpers/photon.d.ts.map +1 -0
  60. package/dist/helpers/photon.js.map +1 -0
  61. package/dist/helpers/shell.d.ts.map +1 -0
  62. package/dist/helpers/shell.js +142 -0
  63. package/dist/helpers/shell.js.map +1 -0
  64. package/dist/helpers/sleep.d.ts.map +1 -0
  65. package/dist/helpers/sleep.js.map +1 -0
  66. package/dist/helpers/string-formatter.d.ts.map +1 -0
  67. package/dist/helpers/string-formatter.js.map +1 -0
  68. package/dist/helpers/tools-manager.d.ts.map +1 -0
  69. package/dist/helpers/tools-manager.js.map +1 -0
  70. package/dist/helpers/type-guards.d.ts.map +1 -0
  71. package/dist/helpers/type-guards.js.map +1 -0
  72. package/dist/index.d.ts +34 -34
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +34 -34
  75. package/dist/index.js.map +1 -1
  76. package/dist/interfaces/index.d.ts +16 -0
  77. package/dist/interfaces/index.d.ts.map +1 -0
  78. package/dist/interfaces/index.js +14 -0
  79. package/dist/interfaces/index.js.map +1 -0
  80. package/dist/interfaces/print-mode.d.ts +561 -0
  81. package/dist/interfaces/print-mode.d.ts.map +1 -0
  82. package/dist/interfaces/print-mode.js.map +1 -0
  83. package/dist/interfaces/service-api/rpc-client.d.ts +1129 -0
  84. package/dist/interfaces/service-api/rpc-client.d.ts.map +1 -0
  85. package/dist/interfaces/service-api/rpc-client.js.map +1 -0
  86. package/dist/interfaces/service-api/rpc-mode.d.ts +813 -0
  87. package/dist/interfaces/service-api/rpc-mode.d.ts.map +1 -0
  88. package/dist/interfaces/service-api/rpc-mode.js +1229 -0
  89. package/dist/interfaces/service-api/rpc-mode.js.map +1 -0
  90. package/dist/interfaces/service-api/rpc-types.d.ts +392 -0
  91. package/dist/interfaces/service-api/rpc-types.d.ts.map +1 -0
  92. package/dist/interfaces/service-api/rpc-types.js.map +1 -0
  93. package/dist/interfaces/shared.d.ts.map +1 -0
  94. package/dist/interfaces/shared.js.map +1 -0
  95. package/dist/interfaces/terminal-ui/components/armin.d.ts.map +1 -0
  96. package/dist/interfaces/terminal-ui/components/armin.js.map +1 -0
  97. package/dist/interfaces/terminal-ui/components/assistant-message.d.ts.map +1 -0
  98. package/dist/interfaces/terminal-ui/components/assistant-message.js.map +1 -0
  99. package/dist/interfaces/terminal-ui/components/bash-execution.d.ts.map +1 -0
  100. package/dist/interfaces/terminal-ui/components/bash-execution.js.map +1 -0
  101. package/dist/interfaces/terminal-ui/components/bordered-loader.d.ts.map +1 -0
  102. package/dist/interfaces/terminal-ui/components/bordered-loader.js.map +1 -0
  103. package/dist/interfaces/terminal-ui/components/branch-summary-message.d.ts +16 -0
  104. package/dist/interfaces/terminal-ui/components/branch-summary-message.d.ts.map +1 -0
  105. package/dist/interfaces/terminal-ui/components/branch-summary-message.js.map +1 -0
  106. package/dist/interfaces/terminal-ui/components/compaction-summary-message.d.ts +16 -0
  107. package/dist/interfaces/terminal-ui/components/compaction-summary-message.d.ts.map +1 -0
  108. package/dist/interfaces/terminal-ui/components/compaction-summary-message.js.map +1 -0
  109. package/dist/interfaces/terminal-ui/components/config-selector.d.ts +71 -0
  110. package/dist/interfaces/terminal-ui/components/config-selector.d.ts.map +1 -0
  111. package/dist/interfaces/terminal-ui/components/config-selector.js.map +1 -0
  112. package/dist/interfaces/terminal-ui/components/countdown-timer.d.ts.map +1 -0
  113. package/dist/interfaces/terminal-ui/components/countdown-timer.js.map +1 -0
  114. package/dist/interfaces/terminal-ui/components/custom-editor.d.ts +17 -0
  115. package/dist/interfaces/terminal-ui/components/custom-editor.d.ts.map +1 -0
  116. package/dist/interfaces/terminal-ui/components/custom-editor.js.map +1 -0
  117. package/dist/interfaces/terminal-ui/components/custom-message.d.ts +19 -0
  118. package/dist/interfaces/terminal-ui/components/custom-message.d.ts.map +1 -0
  119. package/dist/interfaces/terminal-ui/components/custom-message.js.map +1 -0
  120. package/dist/interfaces/terminal-ui/components/diff.d.ts.map +1 -0
  121. package/dist/interfaces/terminal-ui/components/diff.js.map +1 -0
  122. package/dist/interfaces/terminal-ui/components/dynamic-border.d.ts.map +1 -0
  123. package/dist/interfaces/terminal-ui/components/dynamic-border.js.map +1 -0
  124. package/dist/interfaces/terminal-ui/components/extension-editor.d.ts +13 -0
  125. package/dist/interfaces/terminal-ui/components/extension-editor.d.ts.map +1 -0
  126. package/dist/interfaces/terminal-ui/components/extension-editor.js.map +1 -0
  127. package/dist/interfaces/terminal-ui/components/extension-input.d.ts.map +1 -0
  128. package/dist/interfaces/terminal-ui/components/extension-input.js.map +1 -0
  129. package/dist/interfaces/terminal-ui/components/extension-selector.d.ts.map +1 -0
  130. package/dist/interfaces/terminal-ui/components/extension-selector.js.map +1 -0
  131. package/dist/interfaces/terminal-ui/components/footer.d.ts +17 -0
  132. package/dist/interfaces/terminal-ui/components/footer.d.ts.map +1 -0
  133. package/dist/interfaces/terminal-ui/components/footer.js.map +1 -0
  134. package/dist/interfaces/terminal-ui/components/index.d.ts.map +1 -0
  135. package/dist/interfaces/terminal-ui/components/index.js.map +1 -0
  136. package/dist/interfaces/terminal-ui/components/keybinding-hints.d.ts +23 -0
  137. package/dist/interfaces/terminal-ui/components/keybinding-hints.d.ts.map +1 -0
  138. package/dist/interfaces/terminal-ui/components/keybinding-hints.js.map +1 -0
  139. package/dist/interfaces/terminal-ui/components/login-dialog.d.ts.map +1 -0
  140. package/dist/interfaces/terminal-ui/components/login-dialog.js.map +1 -0
  141. package/dist/interfaces/terminal-ui/components/model-selector.d.ts +43 -0
  142. package/dist/interfaces/terminal-ui/components/model-selector.d.ts.map +1 -0
  143. package/dist/interfaces/terminal-ui/components/model-selector.js.map +1 -0
  144. package/dist/interfaces/terminal-ui/components/oauth-selector.d.ts +75 -0
  145. package/dist/interfaces/terminal-ui/components/oauth-selector.d.ts.map +1 -0
  146. package/dist/interfaces/terminal-ui/components/oauth-selector.js.map +1 -0
  147. package/dist/interfaces/terminal-ui/components/scoped-models-selector.d.ts.map +1 -0
  148. package/dist/interfaces/terminal-ui/components/scoped-models-selector.js.map +1 -0
  149. package/dist/interfaces/terminal-ui/components/session-selector-search.d.ts +21 -0
  150. package/dist/interfaces/terminal-ui/components/session-selector-search.d.ts.map +1 -0
  151. package/dist/interfaces/terminal-ui/components/session-selector-search.js.map +1 -0
  152. package/dist/interfaces/terminal-ui/components/session-selector.d.ts +85 -0
  153. package/dist/interfaces/terminal-ui/components/session-selector.d.ts.map +1 -0
  154. package/dist/interfaces/terminal-ui/components/session-selector.js.map +1 -0
  155. package/dist/interfaces/terminal-ui/components/settings-selector.d.ts.map +1 -0
  156. package/dist/interfaces/terminal-ui/components/settings-selector.js.map +1 -0
  157. package/dist/interfaces/terminal-ui/components/show-images-selector.d.ts.map +1 -0
  158. package/dist/interfaces/terminal-ui/components/show-images-selector.js.map +1 -0
  159. package/dist/interfaces/terminal-ui/components/skill-invocation-message.d.ts +17 -0
  160. package/dist/interfaces/terminal-ui/components/skill-invocation-message.d.ts.map +1 -0
  161. package/dist/interfaces/terminal-ui/components/skill-invocation-message.js.map +1 -0
  162. package/dist/interfaces/terminal-ui/components/theme-selector.d.ts.map +1 -0
  163. package/dist/interfaces/terminal-ui/components/theme-selector.js.map +1 -0
  164. package/dist/interfaces/terminal-ui/components/thinking-selector.d.ts.map +1 -0
  165. package/dist/interfaces/terminal-ui/components/thinking-selector.js.map +1 -0
  166. package/dist/interfaces/terminal-ui/components/tool-execution.d.ts +72 -0
  167. package/dist/interfaces/terminal-ui/components/tool-execution.d.ts.map +1 -0
  168. package/dist/interfaces/terminal-ui/components/tool-execution.js +1001 -0
  169. package/dist/interfaces/terminal-ui/components/tool-execution.js.map +1 -0
  170. package/dist/interfaces/terminal-ui/components/tree-selector.d.ts +62 -0
  171. package/dist/interfaces/terminal-ui/components/tree-selector.d.ts.map +1 -0
  172. package/dist/interfaces/terminal-ui/components/tree-selector.js.map +1 -0
  173. package/dist/interfaces/terminal-ui/components/user-message-selector.d.ts.map +1 -0
  174. package/dist/interfaces/terminal-ui/components/user-message-selector.js.map +1 -0
  175. package/dist/interfaces/terminal-ui/components/user-message.d.ts.map +1 -0
  176. package/dist/interfaces/terminal-ui/components/user-message.js.map +1 -0
  177. package/dist/interfaces/terminal-ui/components/visual-truncate.d.ts.map +1 -0
  178. package/dist/interfaces/terminal-ui/components/visual-truncate.js.map +1 -0
  179. package/dist/interfaces/terminal-ui/interactive-mode.d.ts +1931 -0
  180. package/dist/interfaces/terminal-ui/interactive-mode.d.ts.map +1 -0
  181. package/dist/interfaces/terminal-ui/interactive-mode.js +5733 -0
  182. package/dist/interfaces/terminal-ui/interactive-mode.js.map +1 -0
  183. package/dist/interfaces/terminal-ui/theme/theme.d.ts.map +1 -0
  184. package/dist/interfaces/terminal-ui/theme/theme.js.map +1 -0
  185. package/dist/main.d.ts.map +1 -1
  186. package/dist/main.js +21 -21
  187. package/dist/main.js.map +1 -1
  188. package/dist/migrations.d.ts.map +1 -1
  189. package/dist/migrations.js.map +1 -1
  190. package/dist/runtime/agent-session.d.ts +936 -0
  191. package/dist/runtime/agent-session.d.ts.map +1 -0
  192. package/dist/runtime/agent-session.js +2737 -0
  193. package/dist/runtime/agent-session.js.map +1 -0
  194. package/dist/runtime/auth-storage.d.ts.map +1 -0
  195. package/dist/runtime/auth-storage.js.map +1 -0
  196. package/dist/runtime/bash-executor.d.ts.map +1 -0
  197. package/dist/runtime/bash-executor.js.map +1 -0
  198. package/dist/runtime/context-compression/branch-summarization.d.ts.map +1 -0
  199. package/dist/runtime/context-compression/branch-summarization.js.map +1 -0
  200. package/dist/runtime/context-compression/compaction.d.ts.map +1 -0
  201. package/dist/runtime/context-compression/compaction.js.map +1 -0
  202. package/dist/runtime/context-compression/index.d.ts.map +1 -0
  203. package/dist/runtime/context-compression/index.js.map +1 -0
  204. package/dist/runtime/context-compression/utils.d.ts.map +1 -0
  205. package/dist/runtime/context-compression/utils.js.map +1 -0
  206. package/dist/runtime/diagnostics.d.ts.map +1 -0
  207. package/dist/runtime/diagnostics.js.map +1 -0
  208. package/dist/runtime/discover-packages.d.ts.map +1 -0
  209. package/dist/runtime/discover-packages.js.map +1 -0
  210. package/dist/runtime/event-bus.d.ts.map +1 -0
  211. package/dist/runtime/event-bus.js.map +1 -0
  212. package/dist/runtime/exec.d.ts.map +1 -0
  213. package/dist/runtime/exec.js.map +1 -0
  214. package/dist/runtime/footer-data-provider.d.ts.map +1 -0
  215. package/dist/runtime/footer-data-provider.js.map +1 -0
  216. package/dist/runtime/html-export/ansi-to-html.d.ts.map +1 -0
  217. package/dist/runtime/html-export/ansi-to-html.js.map +1 -0
  218. package/dist/runtime/html-export/index.d.ts.map +1 -0
  219. package/dist/runtime/html-export/index.js +350 -0
  220. package/dist/runtime/html-export/index.js.map +1 -0
  221. package/dist/runtime/html-export/index.ts +433 -0
  222. package/dist/runtime/html-export/tool-renderer.d.ts +18 -0
  223. package/dist/runtime/html-export/tool-renderer.d.ts.map +1 -0
  224. package/dist/runtime/html-export/tool-renderer.js.map +1 -0
  225. package/dist/runtime/html-export/tool-renderer.ts +80 -0
  226. package/dist/runtime/index.d.ts +30 -0
  227. package/dist/runtime/index.d.ts.map +1 -0
  228. package/dist/runtime/index.js +30 -0
  229. package/dist/runtime/index.js.map +1 -0
  230. package/dist/runtime/keybindings.d.ts.map +1 -0
  231. package/dist/runtime/keybindings.js.map +1 -0
  232. package/dist/runtime/lifecycle/index.d.ts.map +1 -0
  233. package/dist/runtime/lifecycle/index.js.map +1 -0
  234. package/dist/runtime/lifecycle/loader.d.ts.map +1 -0
  235. package/dist/runtime/lifecycle/loader.js.map +1 -0
  236. package/dist/runtime/lifecycle/runner.d.ts.map +1 -0
  237. package/dist/runtime/lifecycle/runner.js.map +1 -0
  238. package/dist/runtime/lifecycle/types.d.ts.map +1 -0
  239. package/dist/runtime/lifecycle/types.js.map +1 -0
  240. package/dist/runtime/messages.d.ts.map +1 -0
  241. package/dist/runtime/messages.js.map +1 -0
  242. package/dist/runtime/model-registry.d.ts.map +1 -0
  243. package/dist/runtime/model-registry.js.map +1 -0
  244. package/dist/runtime/model-resolver.d.ts.map +1 -0
  245. package/dist/runtime/model-resolver.js +227 -0
  246. package/dist/runtime/model-resolver.js.map +1 -0
  247. package/dist/runtime/package-manager.d.ts.map +1 -0
  248. package/dist/runtime/package-manager.js.map +1 -0
  249. package/dist/runtime/plugins/index.d.ts.map +1 -0
  250. package/dist/runtime/plugins/index.js.map +1 -0
  251. package/dist/runtime/plugins/loader.d.ts.map +1 -0
  252. package/dist/runtime/plugins/loader.js.map +1 -0
  253. package/dist/runtime/plugins/runner.d.ts.map +1 -0
  254. package/dist/runtime/plugins/runner.js +468 -0
  255. package/dist/runtime/plugins/runner.js.map +1 -0
  256. package/dist/runtime/plugins/types.d.ts +859 -0
  257. package/dist/runtime/plugins/types.d.ts.map +1 -0
  258. package/dist/runtime/plugins/types.js.map +1 -0
  259. package/dist/runtime/plugins/wrapper.d.ts +29 -0
  260. package/dist/runtime/plugins/wrapper.d.ts.map +1 -0
  261. package/dist/runtime/plugins/wrapper.js.map +1 -0
  262. package/dist/runtime/prompt-templates.d.ts.map +1 -0
  263. package/dist/runtime/prompt-templates.js +203 -0
  264. package/dist/runtime/prompt-templates.js.map +1 -0
  265. package/dist/runtime/resource-loader.d.ts +180 -0
  266. package/dist/runtime/resource-loader.d.ts.map +1 -0
  267. package/dist/runtime/resource-loader.js +530 -0
  268. package/dist/runtime/resource-loader.js.map +1 -0
  269. package/dist/runtime/sdk.d.ts +49 -0
  270. package/dist/runtime/sdk.d.ts.map +1 -0
  271. package/dist/runtime/sdk.js +306 -0
  272. package/dist/runtime/sdk.js.map +1 -0
  273. package/dist/runtime/session-manager.d.ts.map +1 -0
  274. package/dist/runtime/session-manager.js.map +1 -0
  275. package/dist/runtime/settings-manager.d.ts.map +1 -0
  276. package/dist/runtime/settings-manager.js.map +1 -0
  277. package/dist/runtime/skills.d.ts.map +1 -0
  278. package/dist/runtime/skills.js +277 -0
  279. package/dist/runtime/skills.js.map +1 -0
  280. package/dist/runtime/subagents.d.ts.map +1 -0
  281. package/dist/runtime/subagents.js +163 -0
  282. package/dist/runtime/subagents.js.map +1 -0
  283. package/dist/runtime/system-prompt.d.ts.map +1 -0
  284. package/dist/runtime/system-prompt.js.map +1 -0
  285. package/dist/runtime/task-session-manager.d.ts.map +1 -0
  286. package/dist/runtime/task-session-manager.js.map +1 -0
  287. package/dist/runtime/timings.d.ts.map +1 -0
  288. package/dist/runtime/timings.js.map +1 -0
  289. package/dist/runtime/todo-store.d.ts.map +1 -0
  290. package/dist/runtime/todo-store.js.map +1 -0
  291. package/dist/runtime/tooling/bash.d.ts.map +1 -0
  292. package/dist/runtime/tooling/bash.js.map +1 -0
  293. package/dist/runtime/tooling/bg-process.d.ts.map +1 -0
  294. package/dist/runtime/tooling/bg-process.js.map +1 -0
  295. package/dist/runtime/tooling/edit-diff.d.ts.map +1 -0
  296. package/dist/runtime/tooling/edit-diff.js.map +1 -0
  297. package/dist/runtime/tooling/edit.d.ts.map +1 -0
  298. package/dist/runtime/tooling/edit.js.map +1 -0
  299. package/dist/runtime/tooling/find.d.ts.map +1 -0
  300. package/dist/runtime/tooling/find.js.map +1 -0
  301. package/dist/runtime/tooling/grep.d.ts.map +1 -0
  302. package/dist/runtime/tooling/grep.js.map +1 -0
  303. package/dist/runtime/tooling/index.d.ts +208 -0
  304. package/dist/runtime/tooling/index.d.ts.map +1 -0
  305. package/dist/runtime/tooling/index.js.map +1 -0
  306. package/dist/runtime/tooling/ls.d.ts.map +1 -0
  307. package/dist/runtime/tooling/ls.js.map +1 -0
  308. package/dist/runtime/tooling/memory.d.ts.map +1 -0
  309. package/dist/runtime/tooling/memory.js.map +1 -0
  310. package/dist/runtime/tooling/path-utils.d.ts.map +1 -0
  311. package/dist/runtime/tooling/path-utils.js.map +1 -0
  312. package/dist/runtime/tooling/read.d.ts.map +1 -0
  313. package/dist/runtime/tooling/read.js.map +1 -0
  314. package/dist/runtime/tooling/registry.d.ts.map +1 -0
  315. package/dist/runtime/tooling/registry.js.map +1 -0
  316. package/dist/runtime/tooling/task.d.ts.map +1 -0
  317. package/dist/runtime/tooling/task.js.map +1 -0
  318. package/dist/runtime/tooling/todo.d.ts.map +1 -0
  319. package/dist/runtime/tooling/todo.js.map +1 -0
  320. package/dist/runtime/tooling/truncate.d.ts.map +1 -0
  321. package/dist/runtime/tooling/truncate.js.map +1 -0
  322. package/dist/runtime/tooling/webfetch.d.ts.map +1 -0
  323. package/dist/runtime/tooling/webfetch.js.map +1 -0
  324. package/dist/runtime/tooling/websearch.d.ts.map +1 -0
  325. package/dist/runtime/tooling/websearch.js.map +1 -0
  326. package/dist/runtime/tooling/write.d.ts.map +1 -0
  327. package/dist/runtime/tooling/write.js.map +1 -0
  328. package/dist/telemetry/core/config.d.ts.map +1 -0
  329. package/dist/telemetry/core/config.js.map +1 -0
  330. package/dist/telemetry/core/event-bus.d.ts.map +1 -0
  331. package/dist/telemetry/core/event-bus.js.map +1 -0
  332. package/dist/telemetry/core/index.d.ts.map +1 -0
  333. package/dist/telemetry/core/index.js.map +1 -0
  334. package/dist/telemetry/core/observability.d.ts.map +1 -0
  335. package/dist/telemetry/core/observability.js.map +1 -0
  336. package/dist/telemetry/core/span.d.ts.map +1 -0
  337. package/dist/telemetry/core/span.js.map +1 -0
  338. package/dist/telemetry/core/tracer.d.ts.map +1 -0
  339. package/dist/telemetry/core/tracer.js.map +1 -0
  340. package/dist/telemetry/core/types.d.ts.map +1 -0
  341. package/dist/telemetry/core/types.js.map +1 -0
  342. package/dist/telemetry/exporters/base-exporter.d.ts.map +1 -0
  343. package/dist/telemetry/exporters/base-exporter.js.map +1 -0
  344. package/dist/telemetry/exporters/console-exporter.d.ts.map +1 -0
  345. package/dist/telemetry/exporters/console-exporter.js.map +1 -0
  346. package/dist/telemetry/exporters/file-exporter.d.ts.map +1 -0
  347. package/dist/telemetry/exporters/file-exporter.js.map +1 -0
  348. package/dist/telemetry/exporters/index.d.ts.map +1 -0
  349. package/dist/telemetry/exporters/index.js.map +1 -0
  350. package/dist/telemetry/exporters/langfuse-exporter.d.ts.map +1 -0
  351. package/dist/telemetry/exporters/langfuse-exporter.js.map +1 -0
  352. package/dist/telemetry/exporters/sentry-exporter.d.ts.map +1 -0
  353. package/dist/telemetry/exporters/sentry-exporter.js.map +1 -0
  354. package/dist/telemetry/index.d.ts.map +1 -0
  355. package/dist/telemetry/index.js.map +1 -0
  356. package/package.json +7 -7
  357. package/dist/cli/args.d.ts +0 -56
  358. package/dist/cli/args.d.ts.map +0 -1
  359. package/dist/cli/args.js.map +0 -1
  360. package/dist/cli/config-selector.d.ts +0 -17
  361. package/dist/cli/config-selector.d.ts.map +0 -1
  362. package/dist/cli/config-selector.js.map +0 -1
  363. package/dist/cli/file-processor.d.ts.map +0 -1
  364. package/dist/cli/file-processor.js.map +0 -1
  365. package/dist/cli/list-models.d.ts +0 -9
  366. package/dist/cli/list-models.d.ts.map +0 -1
  367. package/dist/cli/list-models.js.map +0 -1
  368. package/dist/cli/login-handler.d.ts.map +0 -1
  369. package/dist/cli/login-handler.js +0 -746
  370. package/dist/cli/login-handler.js.map +0 -1
  371. package/dist/cli/session-picker.d.ts.map +0 -1
  372. package/dist/cli/session-picker.js.map +0 -1
  373. package/dist/core/agent-session.d.ts +0 -936
  374. package/dist/core/agent-session.d.ts.map +0 -1
  375. package/dist/core/agent-session.js +0 -2737
  376. package/dist/core/agent-session.js.map +0 -1
  377. package/dist/core/auth-storage.d.ts.map +0 -1
  378. package/dist/core/auth-storage.js.map +0 -1
  379. package/dist/core/bash-executor.d.ts.map +0 -1
  380. package/dist/core/bash-executor.js.map +0 -1
  381. package/dist/core/compaction/branch-summarization.d.ts.map +0 -1
  382. package/dist/core/compaction/branch-summarization.js.map +0 -1
  383. package/dist/core/compaction/compaction.d.ts.map +0 -1
  384. package/dist/core/compaction/compaction.js.map +0 -1
  385. package/dist/core/compaction/index.d.ts.map +0 -1
  386. package/dist/core/compaction/index.js.map +0 -1
  387. package/dist/core/compaction/utils.d.ts.map +0 -1
  388. package/dist/core/compaction/utils.js.map +0 -1
  389. package/dist/core/diagnostics.d.ts.map +0 -1
  390. package/dist/core/diagnostics.js.map +0 -1
  391. package/dist/core/discover-packages.d.ts.map +0 -1
  392. package/dist/core/discover-packages.js.map +0 -1
  393. package/dist/core/event-bus.d.ts.map +0 -1
  394. package/dist/core/event-bus.js.map +0 -1
  395. package/dist/core/exec.d.ts.map +0 -1
  396. package/dist/core/exec.js.map +0 -1
  397. package/dist/core/export-html/ansi-to-html.d.ts.map +0 -1
  398. package/dist/core/export-html/ansi-to-html.js.map +0 -1
  399. package/dist/core/export-html/index.d.ts.map +0 -1
  400. package/dist/core/export-html/index.js +0 -350
  401. package/dist/core/export-html/index.js.map +0 -1
  402. package/dist/core/export-html/index.ts +0 -433
  403. package/dist/core/export-html/tool-renderer.d.ts +0 -18
  404. package/dist/core/export-html/tool-renderer.d.ts.map +0 -1
  405. package/dist/core/export-html/tool-renderer.js.map +0 -1
  406. package/dist/core/export-html/tool-renderer.ts +0 -80
  407. package/dist/core/extensions/index.d.ts.map +0 -1
  408. package/dist/core/extensions/index.js.map +0 -1
  409. package/dist/core/extensions/loader.d.ts.map +0 -1
  410. package/dist/core/extensions/loader.js.map +0 -1
  411. package/dist/core/extensions/runner.d.ts.map +0 -1
  412. package/dist/core/extensions/runner.js +0 -468
  413. package/dist/core/extensions/runner.js.map +0 -1
  414. package/dist/core/extensions/types.d.ts +0 -859
  415. package/dist/core/extensions/types.d.ts.map +0 -1
  416. package/dist/core/extensions/types.js.map +0 -1
  417. package/dist/core/extensions/wrapper.d.ts +0 -29
  418. package/dist/core/extensions/wrapper.d.ts.map +0 -1
  419. package/dist/core/extensions/wrapper.js.map +0 -1
  420. package/dist/core/footer-data-provider.d.ts.map +0 -1
  421. package/dist/core/footer-data-provider.js.map +0 -1
  422. package/dist/core/hooks/index.d.ts.map +0 -1
  423. package/dist/core/hooks/index.js.map +0 -1
  424. package/dist/core/hooks/loader.d.ts.map +0 -1
  425. package/dist/core/hooks/loader.js.map +0 -1
  426. package/dist/core/hooks/runner.d.ts.map +0 -1
  427. package/dist/core/hooks/runner.js.map +0 -1
  428. package/dist/core/hooks/types.d.ts.map +0 -1
  429. package/dist/core/hooks/types.js.map +0 -1
  430. package/dist/core/index.d.ts +0 -30
  431. package/dist/core/index.d.ts.map +0 -1
  432. package/dist/core/index.js +0 -30
  433. package/dist/core/index.js.map +0 -1
  434. package/dist/core/keybindings.d.ts.map +0 -1
  435. package/dist/core/keybindings.js.map +0 -1
  436. package/dist/core/messages.d.ts.map +0 -1
  437. package/dist/core/messages.js.map +0 -1
  438. package/dist/core/model-registry.d.ts.map +0 -1
  439. package/dist/core/model-registry.js.map +0 -1
  440. package/dist/core/model-resolver.d.ts.map +0 -1
  441. package/dist/core/model-resolver.js +0 -227
  442. package/dist/core/model-resolver.js.map +0 -1
  443. package/dist/core/package-manager.d.ts.map +0 -1
  444. package/dist/core/package-manager.js.map +0 -1
  445. package/dist/core/prompt-templates.d.ts.map +0 -1
  446. package/dist/core/prompt-templates.js +0 -203
  447. package/dist/core/prompt-templates.js.map +0 -1
  448. package/dist/core/resource-loader.d.ts +0 -180
  449. package/dist/core/resource-loader.d.ts.map +0 -1
  450. package/dist/core/resource-loader.js +0 -530
  451. package/dist/core/resource-loader.js.map +0 -1
  452. package/dist/core/sdk.d.ts +0 -49
  453. package/dist/core/sdk.d.ts.map +0 -1
  454. package/dist/core/sdk.js +0 -306
  455. package/dist/core/sdk.js.map +0 -1
  456. package/dist/core/session-manager.d.ts.map +0 -1
  457. package/dist/core/session-manager.js.map +0 -1
  458. package/dist/core/settings-manager.d.ts.map +0 -1
  459. package/dist/core/settings-manager.js.map +0 -1
  460. package/dist/core/skills.d.ts.map +0 -1
  461. package/dist/core/skills.js +0 -277
  462. package/dist/core/skills.js.map +0 -1
  463. package/dist/core/subagents.d.ts.map +0 -1
  464. package/dist/core/subagents.js +0 -163
  465. package/dist/core/subagents.js.map +0 -1
  466. package/dist/core/system-prompt.d.ts.map +0 -1
  467. package/dist/core/system-prompt.js.map +0 -1
  468. package/dist/core/task-session-manager.d.ts.map +0 -1
  469. package/dist/core/task-session-manager.js.map +0 -1
  470. package/dist/core/timings.d.ts.map +0 -1
  471. package/dist/core/timings.js.map +0 -1
  472. package/dist/core/todo-store.d.ts.map +0 -1
  473. package/dist/core/todo-store.js.map +0 -1
  474. package/dist/core/tools/bash.d.ts.map +0 -1
  475. package/dist/core/tools/bash.js.map +0 -1
  476. package/dist/core/tools/bg-process.d.ts.map +0 -1
  477. package/dist/core/tools/bg-process.js.map +0 -1
  478. package/dist/core/tools/edit-diff.d.ts.map +0 -1
  479. package/dist/core/tools/edit-diff.js.map +0 -1
  480. package/dist/core/tools/edit.d.ts.map +0 -1
  481. package/dist/core/tools/edit.js.map +0 -1
  482. package/dist/core/tools/find.d.ts.map +0 -1
  483. package/dist/core/tools/find.js.map +0 -1
  484. package/dist/core/tools/grep.d.ts.map +0 -1
  485. package/dist/core/tools/grep.js.map +0 -1
  486. package/dist/core/tools/index.d.ts +0 -208
  487. package/dist/core/tools/index.d.ts.map +0 -1
  488. package/dist/core/tools/index.js.map +0 -1
  489. package/dist/core/tools/ls.d.ts.map +0 -1
  490. package/dist/core/tools/ls.js.map +0 -1
  491. package/dist/core/tools/memory.d.ts.map +0 -1
  492. package/dist/core/tools/memory.js.map +0 -1
  493. package/dist/core/tools/path-utils.d.ts.map +0 -1
  494. package/dist/core/tools/path-utils.js.map +0 -1
  495. package/dist/core/tools/read.d.ts.map +0 -1
  496. package/dist/core/tools/read.js.map +0 -1
  497. package/dist/core/tools/registry.d.ts.map +0 -1
  498. package/dist/core/tools/registry.js.map +0 -1
  499. package/dist/core/tools/task.d.ts.map +0 -1
  500. package/dist/core/tools/task.js.map +0 -1
  501. package/dist/core/tools/todo.d.ts.map +0 -1
  502. package/dist/core/tools/todo.js.map +0 -1
  503. package/dist/core/tools/truncate.d.ts.map +0 -1
  504. package/dist/core/tools/truncate.js.map +0 -1
  505. package/dist/core/tools/webfetch.d.ts.map +0 -1
  506. package/dist/core/tools/webfetch.js.map +0 -1
  507. package/dist/core/tools/websearch.d.ts.map +0 -1
  508. package/dist/core/tools/websearch.js.map +0 -1
  509. package/dist/core/tools/write.d.ts.map +0 -1
  510. package/dist/core/tools/write.js.map +0 -1
  511. package/dist/modes/index.d.ts +0 -16
  512. package/dist/modes/index.d.ts.map +0 -1
  513. package/dist/modes/index.js +0 -14
  514. package/dist/modes/index.js.map +0 -1
  515. package/dist/modes/interactive/components/armin.d.ts.map +0 -1
  516. package/dist/modes/interactive/components/armin.js.map +0 -1
  517. package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  518. package/dist/modes/interactive/components/assistant-message.js.map +0 -1
  519. package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  520. package/dist/modes/interactive/components/bash-execution.js.map +0 -1
  521. package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  522. package/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  523. package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  524. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  525. package/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  526. package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  527. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  528. package/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  529. package/dist/modes/interactive/components/config-selector.d.ts +0 -71
  530. package/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  531. package/dist/modes/interactive/components/config-selector.js.map +0 -1
  532. package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  533. package/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  534. package/dist/modes/interactive/components/custom-editor.d.ts +0 -17
  535. package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  536. package/dist/modes/interactive/components/custom-editor.js.map +0 -1
  537. package/dist/modes/interactive/components/custom-message.d.ts +0 -19
  538. package/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  539. package/dist/modes/interactive/components/custom-message.js.map +0 -1
  540. package/dist/modes/interactive/components/diff.d.ts.map +0 -1
  541. package/dist/modes/interactive/components/diff.js.map +0 -1
  542. package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  543. package/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  544. package/dist/modes/interactive/components/extension-editor.d.ts +0 -13
  545. package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  546. package/dist/modes/interactive/components/extension-editor.js.map +0 -1
  547. package/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  548. package/dist/modes/interactive/components/extension-input.js.map +0 -1
  549. package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  550. package/dist/modes/interactive/components/extension-selector.js.map +0 -1
  551. package/dist/modes/interactive/components/footer.d.ts +0 -17
  552. package/dist/modes/interactive/components/footer.d.ts.map +0 -1
  553. package/dist/modes/interactive/components/footer.js.map +0 -1
  554. package/dist/modes/interactive/components/index.d.ts.map +0 -1
  555. package/dist/modes/interactive/components/index.js.map +0 -1
  556. package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -23
  557. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  558. package/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  559. package/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  560. package/dist/modes/interactive/components/login-dialog.js.map +0 -1
  561. package/dist/modes/interactive/components/model-selector.d.ts +0 -43
  562. package/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  563. package/dist/modes/interactive/components/model-selector.js.map +0 -1
  564. package/dist/modes/interactive/components/oauth-selector.d.ts +0 -75
  565. package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  566. package/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  567. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  568. package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  569. package/dist/modes/interactive/components/session-selector-search.d.ts +0 -21
  570. package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  571. package/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  572. package/dist/modes/interactive/components/session-selector.d.ts +0 -85
  573. package/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  574. package/dist/modes/interactive/components/session-selector.js.map +0 -1
  575. package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  576. package/dist/modes/interactive/components/settings-selector.js.map +0 -1
  577. package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  578. package/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  579. package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  580. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  581. package/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  582. package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  583. package/dist/modes/interactive/components/theme-selector.js.map +0 -1
  584. package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  585. package/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  586. package/dist/modes/interactive/components/tool-execution.d.ts +0 -72
  587. package/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  588. package/dist/modes/interactive/components/tool-execution.js +0 -1001
  589. package/dist/modes/interactive/components/tool-execution.js.map +0 -1
  590. package/dist/modes/interactive/components/tree-selector.d.ts +0 -62
  591. package/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  592. package/dist/modes/interactive/components/tree-selector.js.map +0 -1
  593. package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  594. package/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  595. package/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  596. package/dist/modes/interactive/components/user-message.js.map +0 -1
  597. package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  598. package/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  599. package/dist/modes/interactive/interactive-mode.d.ts +0 -1931
  600. package/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  601. package/dist/modes/interactive/interactive-mode.js +0 -5733
  602. package/dist/modes/interactive/interactive-mode.js.map +0 -1
  603. package/dist/modes/interactive/theme/theme.d.ts.map +0 -1
  604. package/dist/modes/interactive/theme/theme.js.map +0 -1
  605. package/dist/modes/print-mode.d.ts +0 -561
  606. package/dist/modes/print-mode.d.ts.map +0 -1
  607. package/dist/modes/print-mode.js.map +0 -1
  608. package/dist/modes/rpc/rpc-client.d.ts +0 -1129
  609. package/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  610. package/dist/modes/rpc/rpc-client.js.map +0 -1
  611. package/dist/modes/rpc/rpc-mode.d.ts +0 -813
  612. package/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  613. package/dist/modes/rpc/rpc-mode.js +0 -1229
  614. package/dist/modes/rpc/rpc-mode.js.map +0 -1
  615. package/dist/modes/rpc/rpc-types.d.ts +0 -392
  616. package/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  617. package/dist/modes/rpc/rpc-types.js.map +0 -1
  618. package/dist/modes/shared.d.ts.map +0 -1
  619. package/dist/modes/shared.js.map +0 -1
  620. package/dist/observability/core/config.d.ts.map +0 -1
  621. package/dist/observability/core/config.js.map +0 -1
  622. package/dist/observability/core/event-bus.d.ts.map +0 -1
  623. package/dist/observability/core/event-bus.js.map +0 -1
  624. package/dist/observability/core/index.d.ts.map +0 -1
  625. package/dist/observability/core/index.js.map +0 -1
  626. package/dist/observability/core/observability.d.ts.map +0 -1
  627. package/dist/observability/core/observability.js.map +0 -1
  628. package/dist/observability/core/span.d.ts.map +0 -1
  629. package/dist/observability/core/span.js.map +0 -1
  630. package/dist/observability/core/tracer.d.ts.map +0 -1
  631. package/dist/observability/core/tracer.js.map +0 -1
  632. package/dist/observability/core/types.d.ts.map +0 -1
  633. package/dist/observability/core/types.js.map +0 -1
  634. package/dist/observability/exporters/base-exporter.d.ts.map +0 -1
  635. package/dist/observability/exporters/base-exporter.js.map +0 -1
  636. package/dist/observability/exporters/console-exporter.d.ts.map +0 -1
  637. package/dist/observability/exporters/console-exporter.js.map +0 -1
  638. package/dist/observability/exporters/file-exporter.d.ts.map +0 -1
  639. package/dist/observability/exporters/file-exporter.js.map +0 -1
  640. package/dist/observability/exporters/index.d.ts.map +0 -1
  641. package/dist/observability/exporters/index.js.map +0 -1
  642. package/dist/observability/exporters/langfuse-exporter.d.ts.map +0 -1
  643. package/dist/observability/exporters/langfuse-exporter.js.map +0 -1
  644. package/dist/observability/exporters/sentry-exporter.d.ts.map +0 -1
  645. package/dist/observability/exporters/sentry-exporter.js.map +0 -1
  646. package/dist/observability/index.d.ts.map +0 -1
  647. package/dist/observability/index.js.map +0 -1
  648. package/dist/utils/array.d.ts.map +0 -1
  649. package/dist/utils/array.js.map +0 -1
  650. package/dist/utils/changelog.d.ts.map +0 -1
  651. package/dist/utils/changelog.js.map +0 -1
  652. package/dist/utils/clipboard-image.d.ts.map +0 -1
  653. package/dist/utils/clipboard-image.js.map +0 -1
  654. package/dist/utils/clipboard.d.ts.map +0 -1
  655. package/dist/utils/clipboard.js.map +0 -1
  656. package/dist/utils/color-formatter.d.ts.map +0 -1
  657. package/dist/utils/color-formatter.js.map +0 -1
  658. package/dist/utils/data-transformer.d.ts.map +0 -1
  659. package/dist/utils/data-transformer.js.map +0 -1
  660. package/dist/utils/date-formatter.d.ts.map +0 -1
  661. package/dist/utils/date-formatter.js.map +0 -1
  662. package/dist/utils/error-handler.d.ts.map +0 -1
  663. package/dist/utils/error-handler.js.map +0 -1
  664. package/dist/utils/file-operations.d.ts.map +0 -1
  665. package/dist/utils/file-operations.js.map +0 -1
  666. package/dist/utils/frontmatter.d.ts.map +0 -1
  667. package/dist/utils/frontmatter.js.map +0 -1
  668. package/dist/utils/git.d.ts.map +0 -1
  669. package/dist/utils/git.js.map +0 -1
  670. package/dist/utils/image-convert.d.ts.map +0 -1
  671. package/dist/utils/image-convert.js.map +0 -1
  672. package/dist/utils/image-resize.d.ts.map +0 -1
  673. package/dist/utils/image-resize.js.map +0 -1
  674. package/dist/utils/json-formatter.d.ts.map +0 -1
  675. package/dist/utils/json-formatter.js.map +0 -1
  676. package/dist/utils/logger.d.ts.map +0 -1
  677. package/dist/utils/logger.js.map +0 -1
  678. package/dist/utils/markdown-formatter.d.ts.map +0 -1
  679. package/dist/utils/markdown-formatter.js.map +0 -1
  680. package/dist/utils/mime.d.ts.map +0 -1
  681. package/dist/utils/mime.js.map +0 -1
  682. package/dist/utils/path-validator.d.ts.map +0 -1
  683. package/dist/utils/path-validator.js.map +0 -1
  684. package/dist/utils/photon.d.ts.map +0 -1
  685. package/dist/utils/photon.js.map +0 -1
  686. package/dist/utils/shell.d.ts.map +0 -1
  687. package/dist/utils/shell.js +0 -142
  688. package/dist/utils/shell.js.map +0 -1
  689. package/dist/utils/sleep.d.ts.map +0 -1
  690. package/dist/utils/sleep.js.map +0 -1
  691. package/dist/utils/string-formatter.d.ts.map +0 -1
  692. package/dist/utils/string-formatter.js.map +0 -1
  693. package/dist/utils/tools-manager.d.ts.map +0 -1
  694. package/dist/utils/tools-manager.js.map +0 -1
  695. package/dist/utils/type-guards.d.ts.map +0 -1
  696. package/dist/utils/type-guards.js.map +0 -1
  697. /package/{examples → demos}/README.md +0 -0
  698. /package/dist/{cli → command-line}/args.js +0 -0
  699. /package/dist/{cli → command-line}/config-selector.js +0 -0
  700. /package/dist/{cli → command-line}/file-processor.d.ts +0 -0
  701. /package/dist/{cli → command-line}/file-processor.js +0 -0
  702. /package/dist/{cli → command-line}/list-models.js +0 -0
  703. /package/dist/{cli → command-line}/login-handler.d.ts +0 -0
  704. /package/dist/{cli → command-line}/session-picker.d.ts +0 -0
  705. /package/dist/{cli → command-line}/session-picker.js +0 -0
  706. /package/dist/{utils → helpers}/array.d.ts +0 -0
  707. /package/dist/{utils → helpers}/array.js +0 -0
  708. /package/dist/{utils → helpers}/changelog.d.ts +0 -0
  709. /package/dist/{utils → helpers}/changelog.js +0 -0
  710. /package/dist/{utils → helpers}/clipboard-image.d.ts +0 -0
  711. /package/dist/{utils → helpers}/clipboard-image.js +0 -0
  712. /package/dist/{utils → helpers}/clipboard.d.ts +0 -0
  713. /package/dist/{utils → helpers}/clipboard.js +0 -0
  714. /package/dist/{utils → helpers}/color-formatter.d.ts +0 -0
  715. /package/dist/{utils → helpers}/color-formatter.js +0 -0
  716. /package/dist/{utils → helpers}/data-transformer.d.ts +0 -0
  717. /package/dist/{utils → helpers}/data-transformer.js +0 -0
  718. /package/dist/{utils → helpers}/date-formatter.d.ts +0 -0
  719. /package/dist/{utils → helpers}/date-formatter.js +0 -0
  720. /package/dist/{utils → helpers}/error-handler.d.ts +0 -0
  721. /package/dist/{utils → helpers}/error-handler.js +0 -0
  722. /package/dist/{utils → helpers}/file-operations.d.ts +0 -0
  723. /package/dist/{utils → helpers}/file-operations.js +0 -0
  724. /package/dist/{utils → helpers}/frontmatter.d.ts +0 -0
  725. /package/dist/{utils → helpers}/frontmatter.js +0 -0
  726. /package/dist/{utils → helpers}/git.d.ts +0 -0
  727. /package/dist/{utils → helpers}/git.js +0 -0
  728. /package/dist/{utils → helpers}/image-convert.d.ts +0 -0
  729. /package/dist/{utils → helpers}/image-convert.js +0 -0
  730. /package/dist/{utils → helpers}/image-resize.d.ts +0 -0
  731. /package/dist/{utils → helpers}/image-resize.js +0 -0
  732. /package/dist/{utils → helpers}/json-formatter.d.ts +0 -0
  733. /package/dist/{utils → helpers}/json-formatter.js +0 -0
  734. /package/dist/{utils → helpers}/logger.d.ts +0 -0
  735. /package/dist/{utils → helpers}/logger.js +0 -0
  736. /package/dist/{utils → helpers}/markdown-formatter.d.ts +0 -0
  737. /package/dist/{utils → helpers}/markdown-formatter.js +0 -0
  738. /package/dist/{utils → helpers}/mime.d.ts +0 -0
  739. /package/dist/{utils → helpers}/mime.js +0 -0
  740. /package/dist/{utils → helpers}/path-validator.d.ts +0 -0
  741. /package/dist/{utils → helpers}/path-validator.js +0 -0
  742. /package/dist/{utils → helpers}/photon.d.ts +0 -0
  743. /package/dist/{utils → helpers}/photon.js +0 -0
  744. /package/dist/{utils → helpers}/shell.d.ts +0 -0
  745. /package/dist/{utils → helpers}/sleep.d.ts +0 -0
  746. /package/dist/{utils → helpers}/sleep.js +0 -0
  747. /package/dist/{utils → helpers}/string-formatter.d.ts +0 -0
  748. /package/dist/{utils → helpers}/string-formatter.js +0 -0
  749. /package/dist/{utils → helpers}/tools-manager.d.ts +0 -0
  750. /package/dist/{utils → helpers}/tools-manager.js +0 -0
  751. /package/dist/{utils → helpers}/type-guards.d.ts +0 -0
  752. /package/dist/{utils → helpers}/type-guards.js +0 -0
  753. /package/dist/{modes → interfaces}/print-mode.js +0 -0
  754. /package/dist/{modes/rpc → interfaces/service-api}/rpc-client.js +0 -0
  755. /package/dist/{modes/rpc → interfaces/service-api}/rpc-types.js +0 -0
  756. /package/dist/{modes → interfaces}/shared.d.ts +0 -0
  757. /package/dist/{modes → interfaces}/shared.js +0 -0
  758. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/armin.d.ts +0 -0
  759. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/armin.js +0 -0
  760. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/assistant-message.d.ts +0 -0
  761. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/assistant-message.js +0 -0
  762. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/bash-execution.d.ts +0 -0
  763. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/bash-execution.js +0 -0
  764. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/bordered-loader.d.ts +0 -0
  765. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/bordered-loader.js +0 -0
  766. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/branch-summary-message.js +0 -0
  767. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/compaction-summary-message.js +0 -0
  768. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/config-selector.js +0 -0
  769. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/countdown-timer.d.ts +0 -0
  770. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/countdown-timer.js +0 -0
  771. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/custom-editor.js +0 -0
  772. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/custom-message.js +0 -0
  773. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/diff.d.ts +0 -0
  774. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/diff.js +0 -0
  775. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/dynamic-border.d.ts +0 -0
  776. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/dynamic-border.js +0 -0
  777. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/extension-editor.js +0 -0
  778. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/extension-input.d.ts +0 -0
  779. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/extension-input.js +0 -0
  780. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/extension-selector.d.ts +0 -0
  781. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/extension-selector.js +0 -0
  782. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/footer.js +0 -0
  783. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/index.d.ts +0 -0
  784. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/index.js +0 -0
  785. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/keybinding-hints.js +0 -0
  786. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/login-dialog.d.ts +0 -0
  787. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/login-dialog.js +0 -0
  788. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/model-selector.js +0 -0
  789. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/oauth-selector.js +0 -0
  790. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/scoped-models-selector.d.ts +0 -0
  791. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/scoped-models-selector.js +0 -0
  792. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/session-selector-search.js +0 -0
  793. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/session-selector.js +0 -0
  794. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/settings-selector.d.ts +0 -0
  795. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/settings-selector.js +0 -0
  796. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/show-images-selector.d.ts +0 -0
  797. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/show-images-selector.js +0 -0
  798. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/skill-invocation-message.js +0 -0
  799. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/theme-selector.d.ts +0 -0
  800. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/theme-selector.js +0 -0
  801. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/thinking-selector.d.ts +0 -0
  802. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/thinking-selector.js +0 -0
  803. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/tree-selector.js +0 -0
  804. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/user-message-selector.d.ts +0 -0
  805. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/user-message-selector.js +0 -0
  806. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/user-message.d.ts +0 -0
  807. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/user-message.js +0 -0
  808. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/visual-truncate.d.ts +0 -0
  809. /package/dist/{modes/interactive → interfaces/terminal-ui}/components/visual-truncate.js +0 -0
  810. /package/dist/{modes/interactive → interfaces/terminal-ui}/theme/dark.json +0 -0
  811. /package/dist/{modes/interactive → interfaces/terminal-ui}/theme/light.json +0 -0
  812. /package/dist/{modes/interactive → interfaces/terminal-ui}/theme/theme-schema.json +0 -0
  813. /package/dist/{modes/interactive → interfaces/terminal-ui}/theme/theme.d.ts +0 -0
  814. /package/dist/{modes/interactive → interfaces/terminal-ui}/theme/theme.js +0 -0
  815. /package/dist/{core → runtime}/auth-storage.d.ts +0 -0
  816. /package/dist/{core → runtime}/auth-storage.js +0 -0
  817. /package/dist/{core → runtime}/bash-executor.d.ts +0 -0
  818. /package/dist/{core → runtime}/bash-executor.js +0 -0
  819. /package/dist/{core/compaction → runtime/context-compression}/branch-summarization.d.ts +0 -0
  820. /package/dist/{core/compaction → runtime/context-compression}/branch-summarization.js +0 -0
  821. /package/dist/{core/compaction → runtime/context-compression}/compaction.d.ts +0 -0
  822. /package/dist/{core/compaction → runtime/context-compression}/compaction.js +0 -0
  823. /package/dist/{core/compaction → runtime/context-compression}/index.d.ts +0 -0
  824. /package/dist/{core/compaction → runtime/context-compression}/index.js +0 -0
  825. /package/dist/{core/compaction → runtime/context-compression}/utils.d.ts +0 -0
  826. /package/dist/{core/compaction → runtime/context-compression}/utils.js +0 -0
  827. /package/dist/{core → runtime}/diagnostics.d.ts +0 -0
  828. /package/dist/{core → runtime}/diagnostics.js +0 -0
  829. /package/dist/{core → runtime}/discover-packages.d.ts +0 -0
  830. /package/dist/{core → runtime}/discover-packages.js +0 -0
  831. /package/dist/{core → runtime}/event-bus.d.ts +0 -0
  832. /package/dist/{core → runtime}/event-bus.js +0 -0
  833. /package/dist/{core → runtime}/exec.d.ts +0 -0
  834. /package/dist/{core → runtime}/exec.js +0 -0
  835. /package/dist/{core → runtime}/footer-data-provider.d.ts +0 -0
  836. /package/dist/{core → runtime}/footer-data-provider.js +0 -0
  837. /package/dist/{core/export-html → runtime/html-export}/ansi-to-html.d.ts +0 -0
  838. /package/dist/{core/export-html → runtime/html-export}/ansi-to-html.js +0 -0
  839. /package/dist/{core/export-html → runtime/html-export}/ansi-to-html.ts +0 -0
  840. /package/dist/{core/export-html → runtime/html-export}/index.d.ts +0 -0
  841. /package/dist/{core/export-html → runtime/html-export}/template.css +0 -0
  842. /package/dist/{core/export-html → runtime/html-export}/template.html +0 -0
  843. /package/dist/{core/export-html → runtime/html-export}/template.js +0 -0
  844. /package/dist/{core/export-html → runtime/html-export}/tool-renderer.js +0 -0
  845. /package/dist/{core/export-html → runtime/html-export}/vendor/highlight.min.js +0 -0
  846. /package/dist/{core/export-html → runtime/html-export}/vendor/marked.min.js +0 -0
  847. /package/dist/{core → runtime}/keybindings.d.ts +0 -0
  848. /package/dist/{core → runtime}/keybindings.js +0 -0
  849. /package/dist/{core/hooks → runtime/lifecycle}/index.d.ts +0 -0
  850. /package/dist/{core/hooks → runtime/lifecycle}/index.js +0 -0
  851. /package/dist/{core/hooks → runtime/lifecycle}/loader.d.ts +0 -0
  852. /package/dist/{core/hooks → runtime/lifecycle}/loader.js +0 -0
  853. /package/dist/{core/hooks → runtime/lifecycle}/runner.d.ts +0 -0
  854. /package/dist/{core/hooks → runtime/lifecycle}/runner.js +0 -0
  855. /package/dist/{core/hooks → runtime/lifecycle}/types.d.ts +0 -0
  856. /package/dist/{core/hooks → runtime/lifecycle}/types.js +0 -0
  857. /package/dist/{core → runtime}/messages.d.ts +0 -0
  858. /package/dist/{core → runtime}/messages.js +0 -0
  859. /package/dist/{core → runtime}/model-registry.d.ts +0 -0
  860. /package/dist/{core → runtime}/model-registry.js +0 -0
  861. /package/dist/{core → runtime}/model-resolver.d.ts +0 -0
  862. /package/dist/{core → runtime}/package-manager.d.ts +0 -0
  863. /package/dist/{core → runtime}/package-manager.js +0 -0
  864. /package/dist/{core/extensions → runtime/plugins}/index.d.ts +0 -0
  865. /package/dist/{core/extensions → runtime/plugins}/index.js +0 -0
  866. /package/dist/{core/extensions → runtime/plugins}/loader.d.ts +0 -0
  867. /package/dist/{core/extensions → runtime/plugins}/loader.js +0 -0
  868. /package/dist/{core/extensions → runtime/plugins}/runner.d.ts +0 -0
  869. /package/dist/{core/extensions → runtime/plugins}/types.js +0 -0
  870. /package/dist/{core/extensions → runtime/plugins}/wrapper.js +0 -0
  871. /package/dist/{core → runtime}/prompt-templates.d.ts +0 -0
  872. /package/dist/{core → runtime}/session-manager.d.ts +0 -0
  873. /package/dist/{core → runtime}/session-manager.js +0 -0
  874. /package/dist/{core → runtime}/settings-manager.d.ts +0 -0
  875. /package/dist/{core → runtime}/settings-manager.js +0 -0
  876. /package/dist/{core → runtime}/skills.d.ts +0 -0
  877. /package/dist/{core → runtime}/subagents.d.ts +0 -0
  878. /package/dist/{core → runtime}/system-prompt.d.ts +0 -0
  879. /package/dist/{core → runtime}/system-prompt.js +0 -0
  880. /package/dist/{core → runtime}/task-session-manager.d.ts +0 -0
  881. /package/dist/{core → runtime}/task-session-manager.js +0 -0
  882. /package/dist/{core → runtime}/timings.d.ts +0 -0
  883. /package/dist/{core → runtime}/timings.js +0 -0
  884. /package/dist/{core → runtime}/todo-store.d.ts +0 -0
  885. /package/dist/{core → runtime}/todo-store.js +0 -0
  886. /package/dist/{core/tools → runtime/tooling}/bash.d.ts +0 -0
  887. /package/dist/{core/tools → runtime/tooling}/bash.js +0 -0
  888. /package/dist/{core/tools → runtime/tooling}/bg-process.d.ts +0 -0
  889. /package/dist/{core/tools → runtime/tooling}/bg-process.js +0 -0
  890. /package/dist/{core/tools → runtime/tooling}/edit-diff.d.ts +0 -0
  891. /package/dist/{core/tools → runtime/tooling}/edit-diff.js +0 -0
  892. /package/dist/{core/tools → runtime/tooling}/edit.d.ts +0 -0
  893. /package/dist/{core/tools → runtime/tooling}/edit.js +0 -0
  894. /package/dist/{core/tools → runtime/tooling}/find.d.ts +0 -0
  895. /package/dist/{core/tools → runtime/tooling}/find.js +0 -0
  896. /package/dist/{core/tools → runtime/tooling}/grep.d.ts +0 -0
  897. /package/dist/{core/tools → runtime/tooling}/grep.js +0 -0
  898. /package/dist/{core/tools → runtime/tooling}/index.js +0 -0
  899. /package/dist/{core/tools → runtime/tooling}/ls.d.ts +0 -0
  900. /package/dist/{core/tools → runtime/tooling}/ls.js +0 -0
  901. /package/dist/{core/tools → runtime/tooling}/memory.d.ts +0 -0
  902. /package/dist/{core/tools → runtime/tooling}/memory.js +0 -0
  903. /package/dist/{core/tools → runtime/tooling}/path-utils.d.ts +0 -0
  904. /package/dist/{core/tools → runtime/tooling}/path-utils.js +0 -0
  905. /package/dist/{core/tools → runtime/tooling}/read.d.ts +0 -0
  906. /package/dist/{core/tools → runtime/tooling}/read.js +0 -0
  907. /package/dist/{core/tools → runtime/tooling}/registry.d.ts +0 -0
  908. /package/dist/{core/tools → runtime/tooling}/registry.js +0 -0
  909. /package/dist/{core/tools → runtime/tooling}/task.d.ts +0 -0
  910. /package/dist/{core/tools → runtime/tooling}/task.js +0 -0
  911. /package/dist/{core/tools → runtime/tooling}/todo.d.ts +0 -0
  912. /package/dist/{core/tools → runtime/tooling}/todo.js +0 -0
  913. /package/dist/{core/tools → runtime/tooling}/truncate.d.ts +0 -0
  914. /package/dist/{core/tools → runtime/tooling}/truncate.js +0 -0
  915. /package/dist/{core/tools → runtime/tooling}/webfetch.d.ts +0 -0
  916. /package/dist/{core/tools → runtime/tooling}/webfetch.js +0 -0
  917. /package/dist/{core/tools → runtime/tooling}/websearch.d.ts +0 -0
  918. /package/dist/{core/tools → runtime/tooling}/websearch.js +0 -0
  919. /package/dist/{core/tools → runtime/tooling}/write.d.ts +0 -0
  920. /package/dist/{core/tools → runtime/tooling}/write.js +0 -0
  921. /package/dist/{observability → telemetry}/core/config.d.ts +0 -0
  922. /package/dist/{observability → telemetry}/core/config.js +0 -0
  923. /package/dist/{observability → telemetry}/core/event-bus.d.ts +0 -0
  924. /package/dist/{observability → telemetry}/core/event-bus.js +0 -0
  925. /package/dist/{observability → telemetry}/core/index.d.ts +0 -0
  926. /package/dist/{observability → telemetry}/core/index.js +0 -0
  927. /package/dist/{observability → telemetry}/core/observability.d.ts +0 -0
  928. /package/dist/{observability → telemetry}/core/observability.js +0 -0
  929. /package/dist/{observability → telemetry}/core/span.d.ts +0 -0
  930. /package/dist/{observability → telemetry}/core/span.js +0 -0
  931. /package/dist/{observability → telemetry}/core/tracer.d.ts +0 -0
  932. /package/dist/{observability → telemetry}/core/tracer.js +0 -0
  933. /package/dist/{observability → telemetry}/core/types.d.ts +0 -0
  934. /package/dist/{observability → telemetry}/core/types.js +0 -0
  935. /package/dist/{observability → telemetry}/exporters/base-exporter.d.ts +0 -0
  936. /package/dist/{observability → telemetry}/exporters/base-exporter.js +0 -0
  937. /package/dist/{observability → telemetry}/exporters/console-exporter.d.ts +0 -0
  938. /package/dist/{observability → telemetry}/exporters/console-exporter.js +0 -0
  939. /package/dist/{observability → telemetry}/exporters/file-exporter.d.ts +0 -0
  940. /package/dist/{observability → telemetry}/exporters/file-exporter.js +0 -0
  941. /package/dist/{observability → telemetry}/exporters/index.d.ts +0 -0
  942. /package/dist/{observability → telemetry}/exporters/index.js +0 -0
  943. /package/dist/{observability → telemetry}/exporters/langfuse-exporter.d.ts +0 -0
  944. /package/dist/{observability → telemetry}/exporters/langfuse-exporter.js +0 -0
  945. /package/dist/{observability → telemetry}/exporters/sentry-exporter.d.ts +0 -0
  946. /package/dist/{observability → telemetry}/exporters/sentry-exporter.js +0 -0
  947. /package/dist/{observability → telemetry}/index.d.ts +0 -0
  948. /package/dist/{observability → telemetry}/index.js +0 -0
  949. /package/{docs → guides}/PI_MONO_MIT_REMOVAL_GUIDE.md +0 -0
  950. /package/{docs → guides}/SAME_TO_SAME_PARITY_REPORT.md +0 -0
@@ -0,0 +1,1229 @@
1
+ /**
2
+ * RPC Mode - Network API for programmatic access to the coding agent
3
+ *
4
+ * ============================================================================
5
+ * PURPOSE
6
+ * ============================================================================
7
+ *
8
+ * Provides a headless JSON-RPC 2.0 interface for embedding the agent in
9
+ * other applications or accessing it via network. Enables programmatic
10
+ * control of the agent without terminal UI, suitable for:
11
+ *
12
+ * - IDE plugins and editor extensions
13
+ * - Web applications and dashboards
14
+ * - Automated workflows and orchestration
15
+ * - Mobile or desktop app backends
16
+ * - Testing and development tools
17
+ * - Multi-client session management
18
+ *
19
+ * ============================================================================
20
+ * PROTOCOL: JSON-RPC 2.0 WITH EXTENSIONS
21
+ * ============================================================================
22
+ *
23
+ * Communication Model:
24
+ * - Stdin: JSON lines with RpcCommand objects
25
+ * - Stdout: JSON lines with RpcResponse and AgentSessionEvent objects
26
+ * - Bidirectional: Client sends commands, server sends responses/events
27
+ * - Asynchronous: Events streamed independently of command responses
28
+ *
29
+ * Command Format:
30
+ * {
31
+ * "id": "req-123", // Optional correlation ID (string or number)
32
+ * "type": "prompt", // Command type
33
+ * "message": "What is 2+2?", // Command-specific fields
34
+ * "images": [...] // Optional images
35
+ * }
36
+ *
37
+ * Response Format:
38
+ * {
39
+ * "id": "req-123", // Matches command ID
40
+ * "type": "response",
41
+ * "command": "prompt", // Which command this responds to
42
+ * "success": true,
43
+ * "data": {...} // Optional success data
44
+ * }
45
+ * OR
46
+ * {
47
+ * "id": "req-123",
48
+ * "type": "response",
49
+ * "command": "prompt",
50
+ * "success": false,
51
+ * "error": "Model not found"
52
+ * }
53
+ *
54
+ * Event Format (streamed asynchronously):
55
+ * {
56
+ * "type": "agent_start",
57
+ * "model": {...}
58
+ * }
59
+ * {
60
+ * "type": "message",
61
+ * "role": "assistant",
62
+ * "content": [...]
63
+ * }
64
+ * {
65
+ * "type": "tool_call",
66
+ * "toolName": "bash",
67
+ * "toolInput": {"command": "ls"}
68
+ * }
69
+ * ... More events ...
70
+ *
71
+ * Extension UI Request Format:
72
+ * {
73
+ * "type": "extension_ui_request",
74
+ * "id": "ui-456",
75
+ * "method": "select", // UI method: select, confirm, input, etc.
76
+ * "title": "Select option",
77
+ * "options": ["Option 1", "Option 2"]
78
+ * }
79
+ *
80
+ * Extension UI Response Format (client must send):
81
+ * {
82
+ * "type": "extension_ui_response",
83
+ * "id": "ui-456",
84
+ * "value": "Option 1" // Response depends on method
85
+ * }
86
+ * OR (for cancelled dialogs):
87
+ * {
88
+ * "type": "extension_ui_response",
89
+ * "id": "ui-456",
90
+ * "cancelled": true
91
+ * }
92
+ *
93
+ * ============================================================================
94
+ * SERVER LIFECYCLE
95
+ * ============================================================================
96
+ *
97
+ * Startup Phase:
98
+ * 1. Process starts in RPC mode (via --mode rpc flag)
99
+ * 2. AgentSession initialized (loads model, tools, extensions)
100
+ * 3. Extensions initialized with RPC-based ExtensionUIContext
101
+ * 4. Event subscription set up
102
+ * 5. Readline interface starts listening on stdin
103
+ * 6. Server ready to accept commands
104
+ *
105
+ * Command Processing Loop:
106
+ * 1. Read JSON line from stdin
107
+ * 2. If extension_ui_response: resolve pending extension UI request
108
+ * 3. If RpcCommand: validate, route to handler, send response
109
+ * 4. Continue listening for next command
110
+ *
111
+ * Streaming Events:
112
+ * - As agent processes commands, events streamed to stdout asynchronously
113
+ * - Client receives both responses (for correlation) and events (for updates)
114
+ * - No ordering guarantee between events from different commands (if sent quickly)
115
+ *
116
+ * Shutdown Phase:
117
+ * - Extension sends session_shutdown event (optional)
118
+ * - Extension shutdown handlers run
119
+ * - Process exits with code 0
120
+ * - Client should close readline interface
121
+ *
122
+ * ============================================================================
123
+ * AVAILABLE COMMANDS
124
+ * ============================================================================
125
+ *
126
+ * Prompting Commands:
127
+ * prompt(message, images, streamingBehavior)
128
+ * → Executes agent loop with prompt
129
+ * → Returns success or error
130
+ * → Streams events asynchronously
131
+ *
132
+ * steer(message)
133
+ * → Queue message to steer current agent response
134
+ * → Only valid while agent streaming
135
+ *
136
+ * follow_up(message)
137
+ * → Queue follow-up prompt for after current response
138
+ * → Buffers until current response complete
139
+ *
140
+ * abort()
141
+ * → Cancel current streaming/processing
142
+ * → Cleans up pending operations
143
+ *
144
+ * State Commands:
145
+ * get_state()
146
+ * → Returns current session state
147
+ * → Includes model, messages count, streaming status
148
+ *
149
+ * get_messages()
150
+ * → Returns all messages in session
151
+ *
152
+ * Model Commands:
153
+ * set_model(provider, modelId)
154
+ * → Switch to different model
155
+ *
156
+ * cycle_model()
157
+ * → Switch to next scoped model or available model
158
+ *
159
+ * get_available_models()
160
+ * → List all available models
161
+ *
162
+ * Thinking Commands:
163
+ * set_thinking_level(level)
164
+ * → Set thinking budget: "none", "auto", "max"
165
+ *
166
+ * cycle_thinking_level()
167
+ * → Cycle through thinking levels
168
+ *
169
+ * Queue Mode Commands:
170
+ * set_steering_mode(mode)
171
+ * → Set steering behavior: "immediate", "queued"
172
+ *
173
+ * set_follow_up_mode(mode)
174
+ * → Set follow-up behavior: "immediate", "queued"
175
+ *
176
+ * Compaction Commands:
177
+ * compact(customInstructions)
178
+ * → Manually compact session context
179
+ * → Returns compaction summary
180
+ *
181
+ * set_auto_compaction(enabled)
182
+ * → Enable/disable auto compaction
183
+ *
184
+ * Bash Commands:
185
+ * bash(command)
186
+ * → Execute bash command synchronously
187
+ * → Returns stdout, stderr, exit code
188
+ *
189
+ * abort_bash()
190
+ * → Kill running bash command
191
+ *
192
+ * Session Commands:
193
+ * get_session_stats()
194
+ * → Returns token usage, message count, etc.
195
+ *
196
+ * export_html(outputPath)
197
+ * → Export session to HTML file
198
+ *
199
+ * switch_session(sessionPath)
200
+ * → Load different session file
201
+ *
202
+ * fork(entryId)
203
+ * → Create new session from branch point
204
+ *
205
+ * ============================================================================
206
+ * ERROR HANDLING
207
+ * ============================================================================
208
+ *
209
+ * Response Errors:
210
+ * All errors returned in success: false responses with error field
211
+ * No exceptions thrown (graceful error handling)
212
+ *
213
+ * Error Categories:
214
+ * - Invalid command/arguments → success: false
215
+ * - Model not found → success: false
216
+ * - Session not found → success: false
217
+ * - Tool execution error → returned in event
218
+ * - API error → returned in stop_reason: "error" event
219
+ *
220
+ * Extension UI Errors:
221
+ * - Dialog timeout → default value returned
222
+ * - Signal abort → default value returned
223
+ * - Client disconnect → no response (pending request hangs)
224
+ *
225
+ * ============================================================================
226
+ * EXTENSION SYSTEM IN RPC MODE
227
+ * ============================================================================
228
+ *
229
+ * Extension UI Context:
230
+ * - Dialog methods (select, confirm, input) emit extension_ui_request
231
+ * - Client must respond with extension_ui_response
232
+ * - Supports timeouts and abort signals
233
+ *
234
+ * Supported UI Methods:
235
+ * - select(title, options, opts) → option value or undefined
236
+ * - confirm(title, message, opts) → boolean
237
+ * - input(title, placeholder, opts) → string or undefined
238
+ * - notify(message, type) → fire-and-forget
239
+ * - setStatus(key, text) → fire-and-forget
240
+ * - setWidget(key, content) → fire-and-forget (string arrays only)
241
+ * - setTitle(title) → fire-and-forget
242
+ * - editor(title, prefill) → edited text or undefined
243
+ *
244
+ * Unsupported UI Methods (RPC mode limitations):
245
+ * - setWorkingMessage() → no TUI loader access
246
+ * - setWidget(factory) → factory functions not supported
247
+ * - setFooter(factory) → requires TUI access
248
+ * - setHeader(factory) → requires TUI access
249
+ * - custom() → requires TUI access
250
+ * - setEditorComponent() → requires TUI access
251
+ * - Theme switching → read-only access only
252
+ *
253
+ * Extension Hooks:
254
+ * - before_prompt: Runs before agent execution
255
+ * - after_prompt: Runs after agent execution
256
+ * - session_shutdown: Runs on shutdown signal
257
+ * - on_error: Extension error handler
258
+ *
259
+ * ============================================================================
260
+ * CLIENT IMPLEMENTATION EXAMPLE
261
+ * ============================================================================
262
+ *
263
+ * const { spawn } = require('child_process');
264
+ *
265
+ * const server = spawn('indusagi', ['--mode', 'rpc']);
266
+ * const readline = require('readline').createInterface({
267
+ * input: server.stdout,
268
+ * output: process.stdout,
269
+ * terminal: false
270
+ * });
271
+ *
272
+ * let nextId = 1;
273
+ * const pending = new Map();
274
+ *
275
+ * readline.on('line', (line) => {
276
+ * const obj = JSON.parse(line);
277
+ * if (obj.type === 'response') {
278
+ * const resolve = pending.get(obj.id);
279
+ * if (resolve) {
280
+ * resolve(obj);
281
+ * pending.delete(obj.id);
282
+ * }
283
+ * } else if (obj.type === 'extension_ui_request') {
284
+ * // Handle UI request from extension
285
+ * server.stdin.write(JSON.stringify({
286
+ * type: 'extension_ui_response',
287
+ * id: obj.id,
288
+ * value: 'user selection'
289
+ * }) + '\n');
290
+ * } else {
291
+ * // Handle event (agent_start, message, tool_call, etc.)
292
+ * console.log('Event:', obj.type);
293
+ * }
294
+ * });
295
+ *
296
+ * // Send a prompt
297
+ * const id = String(nextId++);
298
+ * server.stdin.write(JSON.stringify({
299
+ * id,
300
+ * type: 'prompt',
301
+ * message: 'What is 2+2?'
302
+ * }) + '\n');
303
+ *
304
+ * pending.set(id, (response) => {
305
+ * console.log('Response:', response);
306
+ * });
307
+ *
308
+ * ============================================================================
309
+ * BASED ON RPC SERVER IMPLEMENTATION
310
+ * ============================================================================
311
+ *
312
+ * This RPC mode provides a robust, JSON-based interface for programmatic
313
+ * access to the agent. It follows JSON-RPC 2.0 conventions with extensions
314
+ * for streaming events and asynchronous extension UI.
315
+ *
316
+ * Use cases:
317
+ * - Backend API for web applications
318
+ * - IDE plugin integration
319
+ * - Workflow orchestration
320
+ * - Multi-tenant agent service
321
+ * - Development and testing
322
+ */
323
+ import * as crypto from "node:crypto";
324
+ import * as readline from "readline";
325
+ import { theme } from "../terminal-ui/theme/theme.js";
326
+ import { isRpcExtensionUiResponse, } from "./rpc-types.js";
327
+ /**
328
+ * Run in RPC (Remote Procedure Call) mode.
329
+ * Establishes a JSON-RPC 2.0 based server for programmatic access to the coding agent.
330
+ * Listens for JSON commands on stdin, outputs events and responses on stdout.
331
+ *
332
+ * ============================================================================
333
+ * FUNCTION SIGNATURE
334
+ * ============================================================================
335
+ *
336
+ * async runRpcMode(session: AgentSession): Promise<never>
337
+ *
338
+ * Note: Never returns - process loop runs indefinitely until stdin closes.
339
+ *
340
+ * ============================================================================
341
+ * COMMAND PROCESSING LOOP
342
+ * ============================================================================
343
+ *
344
+ * Overview:
345
+ * 1. Initialize server and set up event subscriptions
346
+ * 2. Create readline interface on stdin
347
+ * 3. For each line:
348
+ * a. Parse JSON to get command or extension UI response
349
+ * b. If extension_ui_response: resolve pending UI request
350
+ * c. If RpcCommand: route to handler, send response
351
+ * d. Continue listening (no blocking)
352
+ * 4. Events stream continuously as agent processes
353
+ * 5. Check for shutdown signal after each command
354
+ *
355
+ * Processing Model:
356
+ * - Commands are fire-and-forget (response sent, then events stream)
357
+ * - No ordering guarantee between different commands' events
358
+ * - Multiple commands can be queued and processed serially
359
+ * - Events stream asynchronously throughout processing
360
+ *
361
+ * ============================================================================
362
+ * STARTUP INITIALIZATION
363
+ * ============================================================================
364
+ *
365
+ * Extension Setup:
366
+ * 1. Check if extensionRunner exists in session
367
+ * 2. Create RPC-based ExtensionUIContext (emits ui_request events)
368
+ * 3. Bind extensions with:
369
+ * - Custom UI context (no TUI access - dialogs via RPC)
370
+ * - Command context actions (session control)
371
+ * - Error handlers (logged, not fatal)
372
+ * - Shutdown handler (sets shutdownRequested flag)
373
+ *
374
+ * Session Subscription:
375
+ * 1. Subscribe to all session events
376
+ * 2. Forward all events to client via output()
377
+ * 3. Enables client to reconstruct session state
378
+ *
379
+ * Readline Setup:
380
+ * 1. Create interface on process.stdin
381
+ * 2. Set terminal: false (don't read from TTY)
382
+ * 3. Listen for 'line' events
383
+ * 4. Stay alive indefinitely (Promise never resolves)
384
+ *
385
+ * ============================================================================
386
+ * COMMAND HANDLERS (30+ Commands)
387
+ * ============================================================================
388
+ *
389
+ * PROMPTING COMMANDS (4 handlers)
390
+ * ──────────────────────────────────────────────────────────────────────
391
+ *
392
+ * prompt(message: string, images?: ImageContent[], streamingBehavior?: "steer" | "followUp")
393
+ * Purpose: Send a new prompt to the agent
394
+ * Input:
395
+ * - message (required): The prompt text
396
+ * - images (optional): Array of image content (PNG, JPEG, GIF, WebP)
397
+ * - streamingBehavior: "steer" (interrupt), "followUp" (queue after)
398
+ * Response: { success: true } immediately
399
+ * Events: agent_start → messages → tool_calls → agent_end (streamed)
400
+ * Exit Code on Error: 1
401
+ * Example:
402
+ * Client: {"id":"1","type":"prompt","message":"What is 2+2?"}
403
+ * Server: {"id":"1","type":"response","command":"prompt","success":true}
404
+ * Server: {"type":"agent_start",...}
405
+ * Server: {"type":"message","role":"assistant",...}
406
+ * Server: {"type":"agent_end"}
407
+ *
408
+ * steer(message: string)
409
+ * Purpose: Interrupt current streaming response and steer it
410
+ * Input:
411
+ * - message (required): Steering instruction
412
+ * Response: { success: true }
413
+ * Behavior: Only valid while agent streaming (otherwise queued)
414
+ * Use Case: "Stop using bash, use node instead"
415
+ * Example:
416
+ * Client: {"id":"2","type":"steer","message":"Use Python instead"}
417
+ * Server: {"id":"2","type":"response","command":"steer","success":true}
418
+ *
419
+ * follow_up(message: string)
420
+ * Purpose: Queue message to be processed after current response
421
+ * Input:
422
+ * - message (required): Follow-up prompt
423
+ * Response: { success: true }
424
+ * Behavior: Buffered, processed when agent becomes idle
425
+ * Use Case: Pipelining multiple prompts without waiting
426
+ * Example:
427
+ * Client: {"id":"3","type":"follow_up","message":"Now optimize it"}
428
+ * Server: {"id":"3","type":"response","command":"follow_up","success":true}
429
+ *
430
+ * abort()
431
+ * Purpose: Cancel current operation
432
+ * Response: { success: true }
433
+ * Effect: Stops streaming, cleans up pending operations
434
+ * Use Case: User hit Ctrl+C or timeout reached
435
+ * Example:
436
+ * Client: {"id":"4","type":"abort"}
437
+ * Server: {"id":"4","type":"response","command":"abort","success":true}
438
+ *
439
+ * new_session(parentSession?: string)
440
+ * Purpose: Start new session, optionally tracking parent
441
+ * Input:
442
+ * - parentSession (optional): Path to parent session for lineage
443
+ * Response: { success: true, data: { cancelled: boolean } }
444
+ * Effect: Creates new session file, clears message history
445
+ * Use Case: Starting fresh conversation branch
446
+ * Example:
447
+ * Client: {"id":"5","type":"new_session"}
448
+ * Server: {"id":"5","type":"response","command":"new_session","success":true,"data":{"cancelled":false}}
449
+ *
450
+ * STATE COMMANDS (3 handlers)
451
+ * ──────────────────────────────────────────────────────────────────────
452
+ *
453
+ * get_state()
454
+ * Purpose: Query current session state snapshot
455
+ * Response: { success: true, data: RpcSessionState }
456
+ * Returns:
457
+ * - model: Current model info (provider, id, context window)
458
+ * - thinkingLevel: "none" | "auto" | "max"
459
+ * - isStreaming: Agent currently processing
460
+ * - isCompacting: Auto-compaction in progress
461
+ * - steeringMode: "all" | "one-at-a-time"
462
+ * - followUpMode: "all" | "one-at-a-time"
463
+ * - sessionFile: Full path to session JSONL
464
+ * - sessionId: Short session ID
465
+ * - autoCompactionEnabled: Auto-compact setting
466
+ * - messageCount: Total messages in session
467
+ * - pendingMessageCount: Queued but not processed
468
+ * Use Case: Client UI state display, status checks
469
+ * Example:
470
+ * Client: {"id":"6","type":"get_state"}
471
+ * Server: {"id":"6","type":"response","command":"get_state","success":true,"data":{...}}
472
+ *
473
+ * get_messages()
474
+ * Purpose: Retrieve all messages in conversation
475
+ * Response: { success: true, data: { messages: AgentMessage[] } }
476
+ * Returns: Complete message history with content, roles, stop reasons
477
+ * Use Case: Reconstructing session state, exporting conversation
478
+ * Note: Use carefully if session is very large (many tokens)
479
+ * Example:
480
+ * Client: {"id":"7","type":"get_messages"}
481
+ * Server: {"id":"7","type":"response","command":"get_messages","success":true,"data":{...}}
482
+ *
483
+ * get_last_assistant_text()
484
+ * Purpose: Quick access to most recent assistant response
485
+ * Response: { success: true, data: { text: string | null } }
486
+ * Returns: Only text content (ignores images/tool use)
487
+ * Use Case: Getting latest response without full state
488
+ * Example:
489
+ * Client: {"id":"8","type":"get_last_assistant_text"}
490
+ * Server: {"id":"8","type":"response",...,"data":{"text":"The answer is 4"}}
491
+ *
492
+ * MODEL COMMANDS (3 handlers)
493
+ * ──────────────────────────────────────────────────────────────────────
494
+ *
495
+ * set_model(provider: string, modelId: string)
496
+ * Purpose: Switch to specific model
497
+ * Input:
498
+ * - provider: "anthropic", "openai", "google", etc.
499
+ * - modelId: Model identifier ("claude-3-5-sonnet", "gpt-4", etc.)
500
+ * Response: { success: true, data: Model } on success
501
+ * OR { success: false, error: "Model not found" }
502
+ * Effect: Changes active model for subsequent prompts
503
+ * Validation: Checks model exists in registry
504
+ * Use Case: Programmatic model selection based on capability
505
+ * Example:
506
+ * Client: {"id":"9","type":"set_model","provider":"anthropic","modelId":"claude-3-5-sonnet"}
507
+ * Server: {"id":"9","type":"response",...,"success":true,"data":{"provider":"anthropic",...}}
508
+ *
509
+ * cycle_model()
510
+ * Purpose: Switch to next scoped model or available model
511
+ * Response: { success: true, data: Model } if cycled
512
+ * OR { success: true, data: null } if only one model
513
+ * Use Case: User cycles through available options
514
+ * Example:
515
+ * Client: {"id":"10","type":"cycle_model"}
516
+ * Server: {"id":"10","type":"response",...,"data":{"model":{...},"thinkingLevel":"auto"}}
517
+ *
518
+ * get_available_models()
519
+ * Purpose: List all models available to user
520
+ * Response: { success: true, data: { models: Model[] } }
521
+ * Returns: Array of all models from provider registry
522
+ * Use Case: Client UI model selector, capability checking
523
+ * Example:
524
+ * Client: {"id":"11","type":"get_available_models"}
525
+ * Server: {"id":"11","type":"response",...,"data":{"models":[...]}}
526
+ *
527
+ * THINKING COMMANDS (2 handlers)
528
+ * ──────────────────────────────────────────────────────────────────────
529
+ *
530
+ * set_thinking_level(level: ThinkingLevel)
531
+ * Purpose: Control model reasoning/thinking
532
+ * Input:
533
+ * - level: "none" (no thinking) | "auto" (adaptive) | "max" (max budget)
534
+ * Response: { success: true }
535
+ * Effect: Changes thinking for subsequent prompts
536
+ * Supported Models: Only models with reasoning capability
537
+ * Use Case: Trading latency for reasoning quality
538
+ * Example:
539
+ * Client: {"id":"12","type":"set_thinking_level","level":"max"}
540
+ * Server: {"id":"12","type":"response","command":"set_thinking_level","success":true}
541
+ *
542
+ * cycle_thinking_level()
543
+ * Purpose: Rotate through thinking levels
544
+ * Cycle: "none" → "auto" → "max" → "none" ...
545
+ * Response: { success: true, data: { level: ThinkingLevel } } or null if unsupported
546
+ * Example:
547
+ * Client: {"id":"13","type":"cycle_thinking_level"}
548
+ * Server: {"id":"13","type":"response",...,"data":{"level":"auto"}}
549
+ *
550
+ * QUEUE MODE COMMANDS (2 handlers)
551
+ * ──────────────────────────────────────────────────────────────────────
552
+ *
553
+ * set_steering_mode(mode: "all" | "one-at-a-time")
554
+ * Purpose: Configure how steering messages are processed
555
+ * Input:
556
+ * - "all": Process all steering messages as queue
557
+ * - "one-at-a-time": Process steering sequentially
558
+ * Response: { success: true }
559
+ * Example:
560
+ * Client: {"id":"14","type":"set_steering_mode","mode":"all"}
561
+ * Server: {"id":"14","type":"response","command":"set_steering_mode","success":true}
562
+ *
563
+ * set_follow_up_mode(mode: "all" | "one-at-a-time")
564
+ * Purpose: Configure how follow-up messages are processed
565
+ * Input:
566
+ * - "all": Process all follow-ups in sequence
567
+ * - "one-at-a-time": Process one, then wait
568
+ * Response: { success: true }
569
+ * Example:
570
+ * Client: {"id":"15","type":"set_follow_up_mode","mode":"one-at-a-time"}
571
+ * Server: {"id":"15","type":"response","command":"set_follow_up_mode","success":true}
572
+ *
573
+ * COMPACTION COMMANDS (2 handlers)
574
+ * ──────────────────────────────────────────────────────────────────────
575
+ *
576
+ * compact(customInstructions?: string)
577
+ * Purpose: Manually trigger context compaction
578
+ * Input:
579
+ * - customInstructions (optional): Special instructions for compaction
580
+ * Response: { success: true, data: CompactionResult }
581
+ * Returns:
582
+ * - removedMessages: Count of messages removed
583
+ * - summary: Summarized context
584
+ * - tokensRecovered: Token count freed
585
+ * Effect: Summarizes old messages, frees context for new content
586
+ * Use Case: Manual compaction when approaching context limit
587
+ * Example:
588
+ * Client: {"id":"16","type":"compact","customInstructions":"Keep technical details"}
589
+ * Server: {"id":"16","type":"response",...,"data":{"removedMessages":5,"summary":"..."}}
590
+ *
591
+ * set_auto_compaction(enabled: boolean)
592
+ * Purpose: Enable/disable automatic compaction
593
+ * Response: { success: true }
594
+ * Effect: When enabled, auto-compacts when approaching context limit
595
+ * Default: Typically enabled
596
+ * Example:
597
+ * Client: {"id":"17","type":"set_auto_compaction","enabled":true}
598
+ * Server: {"id":"17","type":"response","command":"set_auto_compaction","success":true}
599
+ *
600
+ * RETRY COMMANDS (2 handlers)
601
+ * ──────────────────────────────────────────────────────────────────────
602
+ *
603
+ * set_auto_retry(enabled: boolean)
604
+ * Purpose: Enable/disable automatic retry on error
605
+ * Response: { success: true }
606
+ * Effect: When enabled, automatically retries failed operations
607
+ * Example:
608
+ * Client: {"id":"18","type":"set_auto_retry","enabled":true}
609
+ * Server: {"id":"18","type":"response","command":"set_auto_retry","success":true}
610
+ *
611
+ * abort_retry()
612
+ * Purpose: Cancel in-flight retry operation
613
+ * Response: { success: true }
614
+ * Example:
615
+ * Client: {"id":"19","type":"abort_retry"}
616
+ * Server: {"id":"19","type":"response","command":"abort_retry","success":true}
617
+ *
618
+ * BASH COMMANDS (2 handlers)
619
+ * ──────────────────────────────────────────────────────────────────────
620
+ *
621
+ * bash(command: string)
622
+ * Purpose: Execute shell command directly (outside agent)
623
+ * Input:
624
+ * - command: Shell command to execute
625
+ * Response: { success: true, data: BashResult }
626
+ * Returns:
627
+ * - stdout: Standard output
628
+ * - stderr: Standard error output
629
+ * - exitCode: Exit code (0 = success)
630
+ * - timedOut: Whether execution timed out
631
+ * Execution: Synchronous, waits for completion
632
+ * Use Case: Direct shell access from client, utility operations
633
+ * Example:
634
+ * Client: {"id":"20","type":"bash","command":"ls -la"}
635
+ * Server: {"id":"20","type":"response",...,"data":{"stdout":"...","stderr":"","exitCode":0}}
636
+ *
637
+ * abort_bash()
638
+ * Purpose: Kill running bash command
639
+ * Response: { success: true }
640
+ * Effect: Immediately terminates bash subprocess
641
+ * Example:
642
+ * Client: {"id":"21","type":"abort_bash"}
643
+ * Server: {"id":"21","type":"response","command":"abort_bash","success":true}
644
+ *
645
+ * SESSION MANAGEMENT COMMANDS (7 handlers)
646
+ * ──────────────────────────────────────────────────────────────────────
647
+ *
648
+ * get_session_stats()
649
+ * Purpose: Get detailed session statistics
650
+ * Response: { success: true, data: SessionStats }
651
+ * Returns:
652
+ * - messageCount: Total messages
653
+ * - totalTokensUsed: Cumulative token usage
654
+ * - estimatedCost: Cost estimate
655
+ * - sessionDuration: Time since creation
656
+ * - toolUsageCount: Tool invocations
657
+ * Use Case: Usage tracking, monitoring, billing
658
+ * Example:
659
+ * Client: {"id":"22","type":"get_session_stats"}
660
+ * Server: {"id":"22","type":"response",...,"data":{"messageCount":42,...}}
661
+ *
662
+ * export_html(outputPath?: string)
663
+ * Purpose: Export session to HTML file
664
+ * Input:
665
+ * - outputPath (optional): Where to save HTML (default: auto-generated)
666
+ * Response: { success: true, data: { path: string } }
667
+ * Returns: Path where HTML was written
668
+ * Use Case: Sharing conversations, archiving, documentation
669
+ * Example:
670
+ * Client: {"id":"23","type":"export_html","outputPath":"/tmp/session.html"}
671
+ * Server: {"id":"23","type":"response",...,"data":{"path":"/tmp/session.html"}}
672
+ *
673
+ * switch_session(sessionPath: string)
674
+ * Purpose: Load different session file
675
+ * Input:
676
+ * - sessionPath: Path to .jsonl session file
677
+ * Response: { success: true, data: { cancelled: boolean } }
678
+ * Effect: Closes current session, loads new one
679
+ * Validation: File must exist and be valid session JSONL
680
+ * Example:
681
+ * Client: {"id":"24","type":"switch_session","sessionPath":"~/.indusagi/sessions/old.jsonl"}
682
+ * Server: {"id":"24","type":"response",...,"data":{"cancelled":false}}
683
+ *
684
+ * fork(entryId: string)
685
+ * Purpose: Create new session from branch point
686
+ * Input:
687
+ * - entryId: Message ID to branch from
688
+ * Response: { success: true, data: { text: string, cancelled: boolean } }
689
+ * Returns: Text at branch point
690
+ * Effect: New session created with messages up to branch point
691
+ * Use Case: Exploring alternative conversation paths
692
+ * Example:
693
+ * Client: {"id":"25","type":"fork","entryId":"msg-42"}
694
+ * Server: {"id":"25","type":"response",...,"data":{"text":"...","cancelled":false}}
695
+ *
696
+ * get_fork_messages()
697
+ * Purpose: Get messages available for branching
698
+ * Response: { success: true, data: { messages: Array<{entryId, text}> } }
699
+ * Returns: List of message IDs and summaries
700
+ * Use Case: UI showing available branch points
701
+ * Example:
702
+ * Client: {"id":"26","type":"get_fork_messages"}
703
+ * Server: {"id":"26","type":"response",...,"data":{"messages":[...]}}
704
+ *
705
+ * ============================================================================
706
+ * EXTENSION UI REQUEST/RESPONSE HANDLING
707
+ * ============================================================================
708
+ *
709
+ * When extensions request user input, the protocol uses bidirectional
710
+ * extension_ui_request/response messages:
711
+ *
712
+ * Server sends extension_ui_request when extension needs input:
713
+ * {
714
+ * "type": "extension_ui_request",
715
+ * "id": "ui-uuid",
716
+ * "method": "select" | "confirm" | "input" | "editor" | "notify" | ...
717
+ * ...method-specific fields...
718
+ * }
719
+ *
720
+ * Client responds with extension_ui_response:
721
+ * {
722
+ * "type": "extension_ui_response",
723
+ * "id": "ui-uuid",
724
+ * "value": "..." // or "confirmed": true or "cancelled": true
725
+ * }
726
+ *
727
+ * Supported Methods:
728
+ * - select(title, options): User picks option
729
+ * - confirm(title, message): Yes/no confirmation
730
+ * - input(title, placeholder): Text input
731
+ * - editor(title, prefill): Multi-line editor
732
+ * - notify(message, type): Info/warning/error notification (no response)
733
+ * - setStatus(key, text): Update status line (no response)
734
+ * - setWidget(key, lines): Update widget display (no response)
735
+ * - setTitle(title): Set terminal title (no response)
736
+ * - setEditorText(text): Set editor content (no response)
737
+ *
738
+ * Timeout Handling:
739
+ * - If client doesn't respond within timeout, default value used
740
+ * - Dialog cancelled, handler receives undefined/false
741
+ * - Server continues processing
742
+ *
743
+ * ============================================================================
744
+ * SHUTDOWN PROTOCOL
745
+ * ============================================================================
746
+ *
747
+ * Graceful Shutdown:
748
+ * 1. Extension sends "shutdown_requested" signal (internal)
749
+ * 2. After next idle point (between commands)
750
+ * 3. Server emits session_shutdown event (via extension runner)
751
+ * 4. Readline closed, process exits cleanly with code 0
752
+ *
753
+ * Abnormal Shutdown:
754
+ * - Stdin closes: readline 'close' event triggers process exit
755
+ * - Ctrl+C: SIGINT handler stops server
756
+ * - SIGTERM: Server performs cleanup then exits
757
+ *
758
+ * ============================================================================
759
+ * ERROR HANDLING STRATEGIES
760
+ * ============================================================================
761
+ *
762
+ * Command Errors:
763
+ * - All caught and returned as { success: false, error: "message" }
764
+ * - No exceptions thrown to client
765
+ * - Process continues, ready for next command
766
+ *
767
+ * Extension Errors:
768
+ * - Logged to stderr with format: "Extension error (path): message"
769
+ * - Emitted as hook_error or extension_error event
770
+ * - Don't crash server, handler registered errors
771
+ *
772
+ * Async Event Errors:
773
+ * - Agent events from streaming: included in events
774
+ * - Stop reason "error" in message event
775
+ * - Client can subscribe to events for error details
776
+ *
777
+ * Unrecoverable Errors:
778
+ * - Process exits with code 1
779
+ * - Client should detect process termination
780
+ * - Reconnect and start new session
781
+ *
782
+ * ============================================================================
783
+ * IMPLEMENTATION NOTES
784
+ * ============================================================================
785
+ *
786
+ * Event Emission:
787
+ * - Subscription set up at startup
788
+ * - All events output via output() function
789
+ * - Events stream even during command processing
790
+ * - No backpressure or queuing (stdout assumed fast)
791
+ *
792
+ * Request Correlation:
793
+ * - Each command gets unique ID (optional, generated if missing)
794
+ * - Response includes same ID for correlation
795
+ * - Client can match responses to requests by ID
796
+ * - Extension UI requests also use UUID for correlation
797
+ *
798
+ * State Safety:
799
+ * - Session state is thread-safe (no multi-threading)
800
+ * - Readline ensures single-threaded execution
801
+ * - Events stream after response to ensure ordering
802
+ *
803
+ * ============================================================================
804
+ * BASED ON RPC SERVER IMPLEMENTATION
805
+ * ============================================================================
806
+ *
807
+ * This function implements the complete JSON-RPC 2.0 protocol with
808
+ * extensions for streaming events and asynchronous extension UI.
809
+ * It provides a robust, type-safe interface for programmatic access.
810
+ *
811
+ * Use with RpcClient for type-safe client implementation.
812
+ * Or implement custom client using the protocol specification.
813
+ */
814
+ export async function runRpcMode(session) {
815
+ const output = (obj) => {
816
+ console.log(JSON.stringify(obj));
817
+ };
818
+ const success = (id, command, data) => {
819
+ if (data === undefined) {
820
+ return { id, type: "response", command, success: true };
821
+ }
822
+ return { id, type: "response", command, success: true, data };
823
+ };
824
+ const error = (id, command, message) => {
825
+ return { id, type: "response", command, success: false, error: message };
826
+ };
827
+ // Pending extension UI requests waiting for response
828
+ const pendingExtensionRequests = new Map();
829
+ // Shutdown request flag
830
+ let shutdownRequested = false;
831
+ const nextUiRequestId = () => crypto.randomUUID();
832
+ const emitUiRequest = (request) => {
833
+ const id = nextUiRequestId();
834
+ output({ type: "extension_ui_request", id, ...request });
835
+ return id;
836
+ };
837
+ const resolveExtensionUiResponse = (response) => {
838
+ const pending = pendingExtensionRequests.get(response.id);
839
+ if (!pending) {
840
+ return false;
841
+ }
842
+ pendingExtensionRequests.delete(response.id);
843
+ pending.resolve(response);
844
+ return true;
845
+ };
846
+ /** Helper for dialog methods with signal/timeout support */
847
+ function createDialogPromise(opts, defaultValue, request, parseResponse) {
848
+ if (opts?.signal?.aborted)
849
+ return Promise.resolve(defaultValue);
850
+ const id = nextUiRequestId();
851
+ return new Promise((resolve, reject) => {
852
+ let timeoutId;
853
+ const cleanup = () => {
854
+ if (timeoutId)
855
+ clearTimeout(timeoutId);
856
+ opts?.signal?.removeEventListener("abort", onAbort);
857
+ pendingExtensionRequests.delete(id);
858
+ };
859
+ const onAbort = () => {
860
+ cleanup();
861
+ resolve(defaultValue);
862
+ };
863
+ opts?.signal?.addEventListener("abort", onAbort, { once: true });
864
+ if (opts?.timeout) {
865
+ timeoutId = setTimeout(() => {
866
+ cleanup();
867
+ resolve(defaultValue);
868
+ }, opts.timeout);
869
+ }
870
+ pendingExtensionRequests.set(id, {
871
+ resolve: (response) => {
872
+ cleanup();
873
+ resolve(parseResponse(response));
874
+ },
875
+ reject,
876
+ });
877
+ output({ type: "extension_ui_request", id, ...request });
878
+ });
879
+ }
880
+ /**
881
+ * Create an extension UI context that uses the RPC protocol.
882
+ */
883
+ const createExtensionUIContext = () => ({
884
+ 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),
885
+ 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),
886
+ 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),
887
+ notify(message, type) {
888
+ emitUiRequest({ method: "notify", message, notifyType: type });
889
+ },
890
+ setStatus(key, text) {
891
+ emitUiRequest({ method: "setStatus", statusKey: key, statusText: text });
892
+ },
893
+ setWorkingMessage(_message) {
894
+ // Working message not supported in RPC mode - requires TUI loader access
895
+ },
896
+ setWidget(key, content, options) {
897
+ if (content === undefined || Array.isArray(content)) {
898
+ emitUiRequest({
899
+ method: "setWidget",
900
+ widgetKey: key,
901
+ widgetLines: content,
902
+ widgetPlacement: options?.placement,
903
+ });
904
+ }
905
+ },
906
+ setFooter(_factory) {
907
+ // Custom footer not supported in RPC mode - requires TUI access
908
+ },
909
+ setHeader(_factory) {
910
+ // Custom header not supported in RPC mode - requires TUI access
911
+ },
912
+ setTitle(title) {
913
+ emitUiRequest({ method: "setTitle", title });
914
+ },
915
+ async custom() {
916
+ // Custom UI not supported in RPC mode
917
+ return undefined;
918
+ },
919
+ setEditorText(text) {
920
+ emitUiRequest({ method: "set_editor_text", text });
921
+ },
922
+ getEditorText() {
923
+ // Synchronous method can't wait for RPC response
924
+ // Host should track editor state locally if needed
925
+ return "";
926
+ },
927
+ async editor(title, prefill) {
928
+ const id = crypto.randomUUID();
929
+ return new Promise((resolve, reject) => {
930
+ pendingExtensionRequests.set(id, {
931
+ resolve: (response) => {
932
+ if ("cancelled" in response && response.cancelled) {
933
+ resolve(undefined);
934
+ }
935
+ else if ("value" in response) {
936
+ resolve(response.value);
937
+ }
938
+ else {
939
+ resolve(undefined);
940
+ }
941
+ },
942
+ reject,
943
+ });
944
+ output({ type: "extension_ui_request", id, method: "editor", title, prefill });
945
+ });
946
+ },
947
+ setEditorComponent() {
948
+ // Custom editor components not supported in RPC mode
949
+ },
950
+ get theme() {
951
+ return theme;
952
+ },
953
+ getAllThemes() {
954
+ return [];
955
+ },
956
+ getTheme(_name) {
957
+ return undefined;
958
+ },
959
+ setTheme(_theme) {
960
+ // Theme switching not supported in RPC mode
961
+ return { success: false, error: "Theme switching not supported in RPC mode" };
962
+ },
963
+ });
964
+ // Set up extensions with RPC-based UI context
965
+ const extensionRunner = session.extensionRunner;
966
+ if (extensionRunner) {
967
+ await session.bindExtensions({
968
+ uiContext: createExtensionUIContext(),
969
+ commandContextActions: {
970
+ waitForIdle: () => session.agent.waitForIdle(),
971
+ newSession: async (options) => {
972
+ const success = await session.newSession({ parentSession: options?.parentSession });
973
+ if (success && options?.setup) {
974
+ await options.setup(session.sessionManager);
975
+ }
976
+ return { cancelled: !success };
977
+ },
978
+ fork: async (entryId) => {
979
+ const result = await session.fork(entryId);
980
+ return { cancelled: result.cancelled };
981
+ },
982
+ navigateTree: async (targetId, options) => {
983
+ const result = await session.navigateTree(targetId, {
984
+ summarize: options?.summarize,
985
+ customInstructions: options?.customInstructions,
986
+ replaceInstructions: options?.replaceInstructions,
987
+ label: options?.label,
988
+ });
989
+ return { cancelled: result.cancelled };
990
+ },
991
+ },
992
+ shutdownHandler: () => {
993
+ shutdownRequested = true;
994
+ },
995
+ onError: (err) => {
996
+ output({ type: "extension_error", extensionPath: err.extensionPath, event: err.event, error: err.error });
997
+ },
998
+ onHookError: (err) => {
999
+ output({
1000
+ type: "hook_error",
1001
+ hookPath: err.hookPath,
1002
+ hookName: err.hookName,
1003
+ error: err.error,
1004
+ stack: err.stack,
1005
+ });
1006
+ },
1007
+ });
1008
+ }
1009
+ // Output all agent events as JSON
1010
+ session.subscribe((event) => {
1011
+ output(event);
1012
+ });
1013
+ // Handle a single command
1014
+ const handleCommand = async (command) => {
1015
+ const id = command.id;
1016
+ switch (command.type) {
1017
+ // =================================================================
1018
+ // Prompting
1019
+ // =================================================================
1020
+ case "prompt": {
1021
+ // Don't await - events will stream
1022
+ // Extension commands are executed immediately, file prompt templates are expanded
1023
+ // If streaming and streamingBehavior specified, queues via steer/followUp
1024
+ session
1025
+ .prompt(command.message, {
1026
+ images: command.images,
1027
+ streamingBehavior: command.streamingBehavior,
1028
+ source: "rpc",
1029
+ })
1030
+ .catch((e) => output(error(id, "prompt", e.message)));
1031
+ return success(id, "prompt");
1032
+ }
1033
+ case "steer": {
1034
+ await session.steer(command.message);
1035
+ return success(id, "steer");
1036
+ }
1037
+ case "follow_up": {
1038
+ await session.followUp(command.message);
1039
+ return success(id, "follow_up");
1040
+ }
1041
+ case "abort": {
1042
+ await session.abort();
1043
+ return success(id, "abort");
1044
+ }
1045
+ case "new_session": {
1046
+ const options = command.parentSession ? { parentSession: command.parentSession } : undefined;
1047
+ const cancelled = !(await session.newSession(options));
1048
+ return success(id, "new_session", { cancelled });
1049
+ }
1050
+ // =================================================================
1051
+ // State
1052
+ // =================================================================
1053
+ case "get_state": {
1054
+ const state = {
1055
+ model: session.model,
1056
+ thinkingLevel: session.thinkingLevel,
1057
+ isStreaming: session.isStreaming,
1058
+ isCompacting: session.isCompacting,
1059
+ steeringMode: session.steeringMode,
1060
+ followUpMode: session.followUpMode,
1061
+ sessionFile: session.sessionFile,
1062
+ sessionId: session.sessionId,
1063
+ autoCompactionEnabled: session.autoCompactionEnabled,
1064
+ messageCount: session.messages.length,
1065
+ pendingMessageCount: session.pendingMessageCount,
1066
+ };
1067
+ return success(id, "get_state", state);
1068
+ }
1069
+ // =================================================================
1070
+ // Model
1071
+ // =================================================================
1072
+ case "set_model": {
1073
+ const models = await session.modelRegistry.getAvailable();
1074
+ const model = models.find((m) => m.provider === command.provider && m.id === command.modelId);
1075
+ if (!model) {
1076
+ return error(id, "set_model", `Model not found: ${command.provider}/${command.modelId}`);
1077
+ }
1078
+ await session.setModel(model);
1079
+ return success(id, "set_model", model);
1080
+ }
1081
+ case "cycle_model": {
1082
+ const result = await session.cycleModel();
1083
+ if (!result) {
1084
+ return success(id, "cycle_model", null);
1085
+ }
1086
+ return success(id, "cycle_model", result);
1087
+ }
1088
+ case "get_available_models": {
1089
+ const models = await session.modelRegistry.getAvailable();
1090
+ return success(id, "get_available_models", { models });
1091
+ }
1092
+ // =================================================================
1093
+ // Thinking
1094
+ // =================================================================
1095
+ case "set_thinking_level": {
1096
+ session.setThinkingLevel(command.level);
1097
+ return success(id, "set_thinking_level");
1098
+ }
1099
+ case "cycle_thinking_level": {
1100
+ const level = session.cycleThinkingLevel();
1101
+ if (!level) {
1102
+ return success(id, "cycle_thinking_level", null);
1103
+ }
1104
+ return success(id, "cycle_thinking_level", { level });
1105
+ }
1106
+ // =================================================================
1107
+ // Queue Modes
1108
+ // =================================================================
1109
+ case "set_steering_mode": {
1110
+ session.setSteeringMode(command.mode);
1111
+ return success(id, "set_steering_mode");
1112
+ }
1113
+ case "set_follow_up_mode": {
1114
+ session.setFollowUpMode(command.mode);
1115
+ return success(id, "set_follow_up_mode");
1116
+ }
1117
+ // =================================================================
1118
+ // Compaction
1119
+ // =================================================================
1120
+ case "compact": {
1121
+ const result = await session.compact(command.customInstructions);
1122
+ return success(id, "compact", result);
1123
+ }
1124
+ case "set_auto_compaction": {
1125
+ session.setAutoCompactionEnabled(command.enabled);
1126
+ return success(id, "set_auto_compaction");
1127
+ }
1128
+ // =================================================================
1129
+ // Retry
1130
+ // =================================================================
1131
+ case "set_auto_retry": {
1132
+ session.setAutoRetryEnabled(command.enabled);
1133
+ return success(id, "set_auto_retry");
1134
+ }
1135
+ case "abort_retry": {
1136
+ session.abortRetry();
1137
+ return success(id, "abort_retry");
1138
+ }
1139
+ // =================================================================
1140
+ // Bash
1141
+ // =================================================================
1142
+ case "bash": {
1143
+ const result = await session.executeBash(command.command);
1144
+ return success(id, "bash", result);
1145
+ }
1146
+ case "abort_bash": {
1147
+ session.abortBash();
1148
+ return success(id, "abort_bash");
1149
+ }
1150
+ // =================================================================
1151
+ // Session
1152
+ // =================================================================
1153
+ case "get_session_stats": {
1154
+ const stats = session.getSessionStats();
1155
+ return success(id, "get_session_stats", stats);
1156
+ }
1157
+ case "export_html": {
1158
+ const path = await session.exportToHtml(command.outputPath);
1159
+ return success(id, "export_html", { path });
1160
+ }
1161
+ case "switch_session": {
1162
+ const cancelled = !(await session.switchSession(command.sessionPath));
1163
+ return success(id, "switch_session", { cancelled });
1164
+ }
1165
+ case "fork": {
1166
+ const result = await session.fork(command.entryId);
1167
+ return success(id, "fork", { text: result.selectedText, cancelled: result.cancelled });
1168
+ }
1169
+ case "get_fork_messages": {
1170
+ const messages = session.getUserMessagesForForking();
1171
+ return success(id, "get_fork_messages", { messages });
1172
+ }
1173
+ case "get_last_assistant_text": {
1174
+ const text = session.getLastAssistantText();
1175
+ return success(id, "get_last_assistant_text", { text });
1176
+ }
1177
+ // =================================================================
1178
+ // Messages
1179
+ // =================================================================
1180
+ case "get_messages": {
1181
+ return success(id, "get_messages", { messages: session.messages });
1182
+ }
1183
+ default: {
1184
+ const unknownCommand = command;
1185
+ return error(undefined, unknownCommand.type, `Unknown command: ${unknownCommand.type}`);
1186
+ }
1187
+ }
1188
+ };
1189
+ /**
1190
+ * Check if shutdown was requested and perform shutdown if so.
1191
+ * Called after handling each command when waiting for the next command.
1192
+ */
1193
+ async function checkShutdownRequested() {
1194
+ if (!shutdownRequested)
1195
+ return;
1196
+ const currentRunner = session.extensionRunner;
1197
+ if (currentRunner?.hasHandlers("session_shutdown")) {
1198
+ await currentRunner.emit({ type: "session_shutdown" });
1199
+ }
1200
+ // Close readline interface to stop waiting for input
1201
+ rl.close();
1202
+ process.exit(0);
1203
+ }
1204
+ // Listen for JSON input
1205
+ const rl = readline.createInterface({
1206
+ input: process.stdin,
1207
+ output: process.stdout,
1208
+ terminal: false,
1209
+ });
1210
+ rl.on("line", async (line) => {
1211
+ try {
1212
+ const parsed = JSON.parse(line);
1213
+ if (isRpcExtensionUiResponse(parsed)) {
1214
+ resolveExtensionUiResponse(parsed);
1215
+ return;
1216
+ }
1217
+ const command = parsed;
1218
+ const response = await handleCommand(command);
1219
+ output(response);
1220
+ await checkShutdownRequested();
1221
+ }
1222
+ catch (e) {
1223
+ output(error(undefined, "parse", `Failed to parse command: ${e.message}`));
1224
+ }
1225
+ });
1226
+ // Keep process alive forever
1227
+ return new Promise(() => { });
1228
+ }
1229
+ //# sourceMappingURL=rpc-mode.js.map