catui-agent 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1274) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +267 -0
  3. package/dist/build-meta.json +6 -0
  4. package/dist/builtin-extensions.d.ts +47 -0
  5. package/dist/builtin-extensions.js +1 -0
  6. package/dist/catui-defaults.d.ts +555 -0
  7. package/dist/catui-defaults.js +22 -0
  8. package/dist/cli/args.d.ts +70 -0
  9. package/dist/cli/args.js +158 -0
  10. package/dist/cli/config-selector.d.ts +10 -0
  11. package/dist/cli/config-selector.js +1 -0
  12. package/dist/cli/file-processor.d.ts +11 -0
  13. package/dist/cli/file-processor.js +6 -0
  14. package/dist/cli/list-models.d.ts +12 -0
  15. package/dist/cli/list-models.js +2 -0
  16. package/dist/cli/session-picker.d.ts +5 -0
  17. package/dist/cli/session-picker.js +1 -0
  18. package/dist/cli.d.ts +2 -0
  19. package/dist/cli.js +2 -0
  20. package/dist/config.d.ts +103 -0
  21. package/dist/config.js +1 -0
  22. package/dist/core/agent-dir/agent-dir-context.d.ts +60 -0
  23. package/dist/core/agent-dir/agent-dir-context.js +1 -0
  24. package/dist/core/agent-dir/agent-metadata.d.ts +48 -0
  25. package/dist/core/agent-dir/agent-metadata.js +1 -0
  26. package/dist/core/agent-dir/migration-tool.d.ts +40 -0
  27. package/dist/core/agent-dir/migration-tool.js +7 -0
  28. package/dist/core/export-html/AGENT.md +12 -0
  29. package/dist/core/export-html/ansi-to-html.d.ts +9 -0
  30. package/dist/core/export-html/ansi-to-html.js +2 -0
  31. package/dist/core/export-html/index.d.ts +39 -0
  32. package/dist/core/export-html/index.js +2 -0
  33. package/dist/core/export-html/template.css +971 -0
  34. package/dist/core/export-html/template.html +54 -0
  35. package/dist/core/export-html/template.js +66 -0
  36. package/dist/core/export-html/tool-renderer.d.ts +28 -0
  37. package/dist/core/export-html/tool-renderer.js +1 -0
  38. package/dist/core/export-html/vendor/highlight.min.js +4 -0
  39. package/dist/core/export-html/vendor/marked.min.js +56 -0
  40. package/dist/core/extensions-host/index.d.ts +13 -0
  41. package/dist/core/extensions-host/index.js +1 -0
  42. package/dist/core/extensions-host/loader.d.ts +21 -0
  43. package/dist/core/extensions-host/loader.js +1 -0
  44. package/dist/core/extensions-host/runner.d.ts +233 -0
  45. package/dist/core/extensions-host/runner.js +3 -0
  46. package/dist/core/extensions-host/types.d.ts +1079 -0
  47. package/dist/core/extensions-host/types.js +1 -0
  48. package/dist/core/extensions-host/wrapper.d.ts +29 -0
  49. package/dist/core/extensions-host/wrapper.js +2 -0
  50. package/dist/core/index.d.ts +17 -0
  51. package/dist/core/index.js +1 -0
  52. package/dist/core/lib/agent-core/src/agent-loop-continuations.d.ts +17 -0
  53. package/dist/core/lib/agent-core/src/agent-loop-continuations.js +1 -0
  54. package/dist/core/lib/agent-core/src/agent-loop-stream-events.d.ts +19 -0
  55. package/dist/core/lib/agent-core/src/agent-loop-stream-events.js +1 -0
  56. package/dist/core/lib/agent-core/src/agent-loop-tool-results.d.ts +10 -0
  57. package/dist/core/lib/agent-core/src/agent-loop-tool-results.js +3 -0
  58. package/dist/core/lib/agent-core/src/agent-loop-tool-summaries.d.ts +22 -0
  59. package/dist/core/lib/agent-core/src/agent-loop-tool-summaries.js +1 -0
  60. package/dist/core/lib/agent-core/src/agent-loop.d.ts +26 -0
  61. package/dist/core/lib/agent-core/src/agent-loop.js +4 -0
  62. package/dist/core/lib/agent-core/src/agent-run-result.d.ts +9 -0
  63. package/dist/core/lib/agent-core/src/agent-run-result.js +1 -0
  64. package/dist/core/lib/agent-core/src/agent.d.ts +215 -0
  65. package/dist/core/lib/agent-core/src/agent.js +1 -0
  66. package/dist/core/lib/agent-core/src/errors.d.ts +62 -0
  67. package/dist/core/lib/agent-core/src/errors.js +1 -0
  68. package/dist/core/lib/agent-core/src/index.d.ts +14 -0
  69. package/dist/core/lib/agent-core/src/index.js +1 -0
  70. package/dist/core/lib/agent-core/src/proxy.d.ts +91 -0
  71. package/dist/core/lib/agent-core/src/proxy.js +2 -0
  72. package/dist/core/lib/agent-core/src/structured-adaptive-agent-loop.d.ts +15 -0
  73. package/dist/core/lib/agent-core/src/structured-adaptive-agent-loop.js +2 -0
  74. package/dist/core/lib/agent-core/src/structured-adaptive-streaming-tool-executor.d.ts +33 -0
  75. package/dist/core/lib/agent-core/src/structured-adaptive-streaming-tool-executor.js +1 -0
  76. package/dist/core/lib/agent-core/src/structured-adaptive-tool-orchestration.d.ts +35 -0
  77. package/dist/core/lib/agent-core/src/structured-adaptive-tool-orchestration.js +3 -0
  78. package/dist/core/lib/agent-core/src/types.d.ts +417 -0
  79. package/dist/core/lib/agent-core/src/types.js +1 -0
  80. package/dist/core/lib/ai/src/api-registry.d.ts +27 -0
  81. package/dist/core/lib/ai/src/api-registry.js +1 -0
  82. package/dist/core/lib/ai/src/config-path.d.ts +1 -0
  83. package/dist/core/lib/ai/src/config-path.js +1 -0
  84. package/dist/core/lib/ai/src/debug-logger.d.ts +94 -0
  85. package/dist/core/lib/ai/src/debug-logger.js +4 -0
  86. package/dist/core/lib/ai/src/env-api-keys.d.ts +8 -0
  87. package/dist/core/lib/ai/src/env-api-keys.js +1 -0
  88. package/dist/core/lib/ai/src/env.d.ts +7 -0
  89. package/dist/core/lib/ai/src/env.js +1 -0
  90. package/dist/core/lib/ai/src/events.d.ts +8 -0
  91. package/dist/core/lib/ai/src/events.js +1 -0
  92. package/dist/core/lib/ai/src/index.d.ts +27 -0
  93. package/dist/core/lib/ai/src/index.js +1 -0
  94. package/dist/core/lib/ai/src/json.d.ts +7 -0
  95. package/dist/core/lib/ai/src/json.js +1 -0
  96. package/dist/core/lib/ai/src/models.d.ts +31 -0
  97. package/dist/core/lib/ai/src/models.generated.d.ts +15315 -0
  98. package/dist/core/lib/ai/src/models.generated.js +1 -0
  99. package/dist/core/lib/ai/src/models.js +1 -0
  100. package/dist/core/lib/ai/src/overflow.d.ts +7 -0
  101. package/dist/core/lib/ai/src/overflow.js +1 -0
  102. package/dist/core/lib/ai/src/providers/amazon-bedrock.d.ts +20 -0
  103. package/dist/core/lib/ai/src/providers/amazon-bedrock.js +1 -0
  104. package/dist/core/lib/ai/src/providers/anthropic.d.ts +38 -0
  105. package/dist/core/lib/ai/src/providers/anthropic.js +2 -0
  106. package/dist/core/lib/ai/src/providers/azure-openai-responses.d.ts +21 -0
  107. package/dist/core/lib/ai/src/providers/azure-openai-responses.js +1 -0
  108. package/dist/core/lib/ai/src/providers/github-copilot-headers.d.ts +13 -0
  109. package/dist/core/lib/ai/src/providers/github-copilot-headers.js +1 -0
  110. package/dist/core/lib/ai/src/providers/google-gemini-cli.d.ts +79 -0
  111. package/dist/core/lib/ai/src/providers/google-gemini-cli.js +2 -0
  112. package/dist/core/lib/ai/src/providers/google-shared.d.ts +70 -0
  113. package/dist/core/lib/ai/src/providers/google-shared.js +2 -0
  114. package/dist/core/lib/ai/src/providers/google-vertex.d.ts +20 -0
  115. package/dist/core/lib/ai/src/providers/google-vertex.js +1 -0
  116. package/dist/core/lib/ai/src/providers/google.d.ts +18 -0
  117. package/dist/core/lib/ai/src/providers/google.js +1 -0
  118. package/dist/core/lib/ai/src/providers/openai-codex-responses.d.ts +8 -0
  119. package/dist/core/lib/ai/src/providers/openai-codex-responses.js +7 -0
  120. package/dist/core/lib/ai/src/providers/openai-completions.d.ts +20 -0
  121. package/dist/core/lib/ai/src/providers/openai-completions.js +6 -0
  122. package/dist/core/lib/ai/src/providers/openai-responses-shared.d.ts +22 -0
  123. package/dist/core/lib/ai/src/providers/openai-responses-shared.js +10 -0
  124. package/dist/core/lib/ai/src/providers/openai-responses.d.ts +19 -0
  125. package/dist/core/lib/ai/src/providers/openai-responses.js +1 -0
  126. package/dist/core/lib/ai/src/providers/register-builtins.d.ts +8 -0
  127. package/dist/core/lib/ai/src/providers/register-builtins.js +1 -0
  128. package/dist/core/lib/ai/src/providers/simple-options.d.ts +13 -0
  129. package/dist/core/lib/ai/src/providers/simple-options.js +1 -0
  130. package/dist/core/lib/ai/src/providers/transform-messages.d.ts +13 -0
  131. package/dist/core/lib/ai/src/providers/transform-messages.js +1 -0
  132. package/dist/core/lib/ai/src/registry.d.ts +8 -0
  133. package/dist/core/lib/ai/src/registry.js +1 -0
  134. package/dist/core/lib/ai/src/schema.d.ts +10 -0
  135. package/dist/core/lib/ai/src/schema.js +1 -0
  136. package/dist/core/lib/ai/src/stream.d.ts +33 -0
  137. package/dist/core/lib/ai/src/stream.js +1 -0
  138. package/dist/core/lib/ai/src/types.d.ts +331 -0
  139. package/dist/core/lib/ai/src/types.js +0 -0
  140. package/dist/core/lib/ai/src/utils/event-stream-types.d.ts +12 -0
  141. package/dist/core/lib/ai/src/utils/event-stream-types.js +0 -0
  142. package/dist/core/lib/ai/src/utils/event-stream.d.ts +31 -0
  143. package/dist/core/lib/ai/src/utils/event-stream.js +1 -0
  144. package/dist/core/lib/ai/src/utils/http-proxy.d.ts +13 -0
  145. package/dist/core/lib/ai/src/utils/http-proxy.js +1 -0
  146. package/dist/core/lib/ai/src/utils/json-parse.d.ts +14 -0
  147. package/dist/core/lib/ai/src/utils/json-parse.js +1 -0
  148. package/dist/core/lib/ai/src/utils/oauth/anthropic.d.ts +22 -0
  149. package/dist/core/lib/ai/src/utils/oauth/anthropic.js +1 -0
  150. package/dist/core/lib/ai/src/utils/oauth/decode-credential.d.ts +12 -0
  151. package/dist/core/lib/ai/src/utils/oauth/decode-credential.js +1 -0
  152. package/dist/core/lib/ai/src/utils/oauth/github-copilot.d.ts +35 -0
  153. package/dist/core/lib/ai/src/utils/oauth/github-copilot.js +1 -0
  154. package/dist/core/lib/ai/src/utils/oauth/google-antigravity.d.ts +31 -0
  155. package/dist/core/lib/ai/src/utils/oauth/google-antigravity.js +1 -0
  156. package/dist/core/lib/ai/src/utils/oauth/google-gemini-cli.d.ts +31 -0
  157. package/dist/core/lib/ai/src/utils/oauth/google-gemini-cli.js +1 -0
  158. package/dist/core/lib/ai/src/utils/oauth/index.d.ts +60 -0
  159. package/dist/core/lib/ai/src/utils/oauth/index.js +1 -0
  160. package/dist/core/lib/ai/src/utils/oauth/openai-codex.d.ts +39 -0
  161. package/dist/core/lib/ai/src/utils/oauth/openai-codex.js +11 -0
  162. package/dist/core/lib/ai/src/utils/oauth/pkce.d.ts +18 -0
  163. package/dist/core/lib/ai/src/utils/oauth/pkce.js +1 -0
  164. package/dist/core/lib/ai/src/utils/oauth/types.d.ts +52 -0
  165. package/dist/core/lib/ai/src/utils/oauth/types.js +0 -0
  166. package/dist/core/lib/ai/src/utils/overflow.d.ts +57 -0
  167. package/dist/core/lib/ai/src/utils/overflow.js +1 -0
  168. package/dist/core/lib/ai/src/utils/sanitize-unicode.d.ts +16 -0
  169. package/dist/core/lib/ai/src/utils/sanitize-unicode.js +1 -0
  170. package/dist/core/lib/ai/src/utils/typebox-helpers.d.ts +22 -0
  171. package/dist/core/lib/ai/src/utils/typebox-helpers.js +1 -0
  172. package/dist/core/lib/ai/src/utils/validation.d.ts +23 -0
  173. package/dist/core/lib/ai/src/utils/validation.js +6 -0
  174. package/dist/core/lib/tui/src/autocomplete.d.ts +62 -0
  175. package/dist/core/lib/tui/src/autocomplete.js +2 -0
  176. package/dist/core/lib/tui/src/components/box.d.ts +27 -0
  177. package/dist/core/lib/tui/src/components/box.js +1 -0
  178. package/dist/core/lib/tui/src/components/cached-container.d.ts +42 -0
  179. package/dist/core/lib/tui/src/components/cached-container.js +1 -0
  180. package/dist/core/lib/tui/src/components/cancellable-loader.d.ts +27 -0
  181. package/dist/core/lib/tui/src/components/cancellable-loader.js +1 -0
  182. package/dist/core/lib/tui/src/components/editor.d.ts +222 -0
  183. package/dist/core/lib/tui/src/components/editor.js +21 -0
  184. package/dist/core/lib/tui/src/components/image.d.ts +33 -0
  185. package/dist/core/lib/tui/src/components/image.js +1 -0
  186. package/dist/core/lib/tui/src/components/input.d.ts +42 -0
  187. package/dist/core/lib/tui/src/components/input.js +2 -0
  188. package/dist/core/lib/tui/src/components/loader.d.ts +26 -0
  189. package/dist/core/lib/tui/src/components/loader.js +1 -0
  190. package/dist/core/lib/tui/src/components/markdown.d.ts +100 -0
  191. package/dist/core/lib/tui/src/components/markdown.js +7 -0
  192. package/dist/core/lib/tui/src/components/select-list.d.ts +37 -0
  193. package/dist/core/lib/tui/src/components/select-list.js +1 -0
  194. package/dist/core/lib/tui/src/components/settings-list.d.ts +55 -0
  195. package/dist/core/lib/tui/src/components/settings-list.js +1 -0
  196. package/dist/core/lib/tui/src/components/spacer.d.ts +17 -0
  197. package/dist/core/lib/tui/src/components/spacer.js +1 -0
  198. package/dist/core/lib/tui/src/components/text.d.ts +24 -0
  199. package/dist/core/lib/tui/src/components/text.js +1 -0
  200. package/dist/core/lib/tui/src/components/truncated-text.d.ts +18 -0
  201. package/dist/core/lib/tui/src/components/truncated-text.js +2 -0
  202. package/dist/core/lib/tui/src/editor-component.d.ts +51 -0
  203. package/dist/core/lib/tui/src/editor-component.js +0 -0
  204. package/dist/core/lib/tui/src/fuzzy.d.ts +32 -0
  205. package/dist/core/lib/tui/src/fuzzy.js +1 -0
  206. package/dist/core/lib/tui/src/index.d.ts +29 -0
  207. package/dist/core/lib/tui/src/index.js +1 -0
  208. package/dist/core/lib/tui/src/keybindings.d.ts +44 -0
  209. package/dist/core/lib/tui/src/keybindings.js +1 -0
  210. package/dist/core/lib/tui/src/keys.d.ts +149 -0
  211. package/dist/core/lib/tui/src/keys.js +5 -0
  212. package/dist/core/lib/tui/src/kill-ring.d.ts +33 -0
  213. package/dist/core/lib/tui/src/kill-ring.js +1 -0
  214. package/dist/core/lib/tui/src/stdin-buffer.d.ts +38 -0
  215. package/dist/core/lib/tui/src/stdin-buffer.js +1 -0
  216. package/dist/core/lib/tui/src/terminal-image.d.ts +73 -0
  217. package/dist/core/lib/tui/src/terminal-image.js +1 -0
  218. package/dist/core/lib/tui/src/terminal.d.ts +86 -0
  219. package/dist/core/lib/tui/src/terminal.js +1 -0
  220. package/dist/core/lib/tui/src/tui.d.ts +220 -0
  221. package/dist/core/lib/tui/src/tui.js +12 -0
  222. package/dist/core/lib/tui/src/undo-stack.d.ts +22 -0
  223. package/dist/core/lib/tui/src/undo-stack.js +1 -0
  224. package/dist/core/lib/tui/src/utils.d.ts +83 -0
  225. package/dist/core/lib/tui/src/utils.js +2 -0
  226. package/dist/core/mcp/figma-auth.d.ts +21 -0
  227. package/dist/core/mcp/figma-auth.js +22 -0
  228. package/dist/core/mcp/index.d.ts +11 -0
  229. package/dist/core/mcp/index.js +1 -0
  230. package/dist/core/mcp/mcp-adapter.d.ts +21 -0
  231. package/dist/core/mcp/mcp-adapter.js +3 -0
  232. package/dist/core/mcp/mcp-client.d.ts +91 -0
  233. package/dist/core/mcp/mcp-client.js +6 -0
  234. package/dist/core/mcp/mcp-config.d.ts +55 -0
  235. package/dist/core/mcp/mcp-config.js +1 -0
  236. package/dist/core/mcp/mcp-guidance.d.ts +52 -0
  237. package/dist/core/mcp/mcp-guidance.js +54 -0
  238. package/dist/core/mcp/mcp-manager.d.ts +51 -0
  239. package/dist/core/mcp/mcp-manager.js +1 -0
  240. package/dist/core/mcp/mcp-types.d.ts +62 -0
  241. package/dist/core/mcp/mcp-types.js +0 -0
  242. package/dist/core/messages.d.ts +77 -0
  243. package/dist/core/messages.js +17 -0
  244. package/dist/core/model/custom-providers.d.ts +34 -0
  245. package/dist/core/model/custom-providers.js +1 -0
  246. package/dist/core/model/discovery-cache.d.ts +65 -0
  247. package/dist/core/model/discovery-cache.js +1 -0
  248. package/dist/core/model/discovery-cache.test.d.ts +7 -0
  249. package/dist/core/model/discovery-cache.test.js +1 -0
  250. package/dist/core/model/discovery.d.ts +79 -0
  251. package/dist/core/model/discovery.js +1 -0
  252. package/dist/core/model/discovery.test.d.ts +7 -0
  253. package/dist/core/model/discovery.test.js +1 -0
  254. package/dist/core/model/index.d.ts +10 -0
  255. package/dist/core/model/index.js +1 -0
  256. package/dist/core/model/known-models.d.ts +65 -0
  257. package/dist/core/model/known-models.generated.d.ts +2 -0
  258. package/dist/core/model/known-models.generated.js +1 -0
  259. package/dist/core/model/known-models.js +1 -0
  260. package/dist/core/model/switcher.d.ts +80 -0
  261. package/dist/core/model/switcher.js +1 -0
  262. package/dist/core/model-registry.d.ts +186 -0
  263. package/dist/core/model-registry.js +9 -0
  264. package/dist/core/model-resolver.d.ts +106 -0
  265. package/dist/core/model-resolver.js +1 -0
  266. package/dist/core/package-manager.d.ts +156 -0
  267. package/dist/core/package-manager.js +3 -0
  268. package/dist/core/persona/persona-manager.d.ts +35 -0
  269. package/dist/core/persona/persona-manager.js +5 -0
  270. package/dist/core/platform/abort-slot.d.ts +26 -0
  271. package/dist/core/platform/abort-slot.js +1 -0
  272. package/dist/core/platform/config/auth-storage.d.ts +126 -0
  273. package/dist/core/platform/config/auth-storage.js +1 -0
  274. package/dist/core/platform/config/defaults.d.ts +8 -0
  275. package/dist/core/platform/config/defaults.js +1 -0
  276. package/dist/core/platform/config/diagnostics.d.ts +20 -0
  277. package/dist/core/platform/config/diagnostics.js +0 -0
  278. package/dist/core/platform/config/resolve-config-value.d.ts +12 -0
  279. package/dist/core/platform/config/resolve-config-value.js +1 -0
  280. package/dist/core/platform/config/resource-loader.d.ts +188 -0
  281. package/dist/core/platform/config/resource-loader.js +2 -0
  282. package/dist/core/platform/config/settings-manager.d.ts +314 -0
  283. package/dist/core/platform/config/settings-manager.js +1 -0
  284. package/dist/core/platform/exec/bash-executor.d.ts +41 -0
  285. package/dist/core/platform/exec/bash-executor.js +1 -0
  286. package/dist/core/platform/exec/exec.d.ts +25 -0
  287. package/dist/core/platform/exec/exec.js +1 -0
  288. package/dist/core/platform/i18n/index.d.ts +26 -0
  289. package/dist/core/platform/i18n/index.js +1 -0
  290. package/dist/core/platform/i18n/messages.d.ts +56 -0
  291. package/dist/core/platform/i18n/messages.js +1 -0
  292. package/dist/core/platform/i18n/messages.zh.d.ts +56 -0
  293. package/dist/core/platform/i18n/messages.zh.js +1 -0
  294. package/dist/core/platform/i18n/slash-commands.d.ts +53 -0
  295. package/dist/core/platform/i18n/slash-commands.js +1 -0
  296. package/dist/core/platform/i18n/slash-commands.zh.d.ts +53 -0
  297. package/dist/core/platform/i18n/slash-commands.zh.js +1 -0
  298. package/dist/core/platform/i18n/themes.d.ts +11 -0
  299. package/dist/core/platform/i18n/themes.js +1 -0
  300. package/dist/core/platform/i18n/themes.zh.d.ts +11 -0
  301. package/dist/core/platform/i18n/themes.zh.js +1 -0
  302. package/dist/core/platform/keybindings.d.ts +61 -0
  303. package/dist/core/platform/keybindings.js +1 -0
  304. package/dist/core/platform/listeners.d.ts +21 -0
  305. package/dist/core/platform/listeners.js +1 -0
  306. package/dist/core/platform/telemetry/batching-dispatcher.d.ts +41 -0
  307. package/dist/core/platform/telemetry/batching-dispatcher.js +1 -0
  308. package/dist/core/platform/telemetry/build-meta.d.ts +12 -0
  309. package/dist/core/platform/telemetry/build-meta.js +1 -0
  310. package/dist/core/platform/telemetry/caller-context.d.ts +32 -0
  311. package/dist/core/platform/telemetry/caller-context.js +1 -0
  312. package/dist/core/platform/telemetry/credentials.d.ts +27 -0
  313. package/dist/core/platform/telemetry/credentials.js +1 -0
  314. package/dist/core/platform/telemetry/ext-events.d.ts +89 -0
  315. package/dist/core/platform/telemetry/ext-events.js +1 -0
  316. package/dist/core/platform/telemetry/index.d.ts +13 -0
  317. package/dist/core/platform/telemetry/index.js +1 -0
  318. package/dist/core/platform/telemetry/insforge-base.d.ts +37 -0
  319. package/dist/core/platform/telemetry/insforge-base.js +1 -0
  320. package/dist/core/platform/telemetry/types.d.ts +33 -0
  321. package/dist/core/platform/telemetry/types.js +0 -0
  322. package/dist/core/platform/timings.d.ts +2 -0
  323. package/dist/core/platform/timings.js +3 -0
  324. package/dist/core/platform/utils/logger.d.ts +75 -0
  325. package/dist/core/platform/utils/logger.js +1 -0
  326. package/dist/core/platform/utils/shell.d.ts +25 -0
  327. package/dist/core/platform/utils/shell.js +9 -0
  328. package/dist/core/platform/utils/sleep.d.ts +7 -0
  329. package/dist/core/platform/utils/sleep.js +1 -0
  330. package/dist/core/platform/utils/tools-manager.d.ts +19 -0
  331. package/dist/core/platform/utils/tools-manager.js +1 -0
  332. package/dist/core/prompt/prompt-templates.d.ts +49 -0
  333. package/dist/core/prompt/prompt-templates.js +2 -0
  334. package/dist/core/prompt/system-prompt.d.ts +24 -0
  335. package/dist/core/prompt/system-prompt.js +139 -0
  336. package/dist/core/runtime/agent-session.d.ts +676 -0
  337. package/dist/core/runtime/agent-session.js +15 -0
  338. package/dist/core/runtime/bash-runner.d.ts +56 -0
  339. package/dist/core/runtime/bash-runner.js +2 -0
  340. package/dist/core/runtime/catui-agent.d.ts +182 -0
  341. package/dist/core/runtime/catui-agent.js +1 -0
  342. package/dist/core/runtime/compaction-controller.d.ts +43 -0
  343. package/dist/core/runtime/compaction-controller.js +1 -0
  344. package/dist/core/runtime/default-tools.d.ts +9 -0
  345. package/dist/core/runtime/default-tools.js +1 -0
  346. package/dist/core/runtime/event-bridge.d.ts +21 -0
  347. package/dist/core/runtime/event-bridge.js +1 -0
  348. package/dist/core/runtime/event-bus.d.ts +8 -0
  349. package/dist/core/runtime/event-bus.js +1 -0
  350. package/dist/core/runtime/export-bridge.d.ts +23 -0
  351. package/dist/core/runtime/export-bridge.js +1 -0
  352. package/dist/core/runtime/extension-core-bindings.d.ts +46 -0
  353. package/dist/core/runtime/extension-core-bindings.js +3 -0
  354. package/dist/core/runtime/model-controller.d.ts +84 -0
  355. package/dist/core/runtime/model-controller.js +1 -0
  356. package/dist/core/runtime/model-cycle.d.ts +20 -0
  357. package/dist/core/runtime/model-cycle.js +1 -0
  358. package/dist/core/runtime/prompt-assembly.d.ts +20 -0
  359. package/dist/core/runtime/prompt-assembly.js +3 -0
  360. package/dist/core/runtime/retry-coordinator.d.ts +84 -0
  361. package/dist/core/runtime/retry-coordinator.js +1 -0
  362. package/dist/core/runtime/sdk.d.ts +163 -0
  363. package/dist/core/runtime/sdk.js +1 -0
  364. package/dist/core/runtime/session-context.d.ts +155 -0
  365. package/dist/core/runtime/session-context.js +0 -0
  366. package/dist/core/runtime/session-lifecycle-controller.d.ts +42 -0
  367. package/dist/core/runtime/session-lifecycle-controller.js +1 -0
  368. package/dist/core/runtime/session-tree-controller.d.ts +40 -0
  369. package/dist/core/runtime/session-tree-controller.js +1 -0
  370. package/dist/core/runtime/slash-command-catalog.d.ts +27 -0
  371. package/dist/core/runtime/slash-command-catalog.js +1 -0
  372. package/dist/core/runtime/thinking-levels.d.ts +31 -0
  373. package/dist/core/runtime/thinking-levels.js +1 -0
  374. package/dist/core/runtime/tool-runtime-controller.d.ts +35 -0
  375. package/dist/core/runtime/tool-runtime-controller.js +1 -0
  376. package/dist/core/runtime/turn-context.d.ts +52 -0
  377. package/dist/core/runtime/turn-context.js +1 -0
  378. package/dist/core/session/compaction/branch-summarization.d.ts +85 -0
  379. package/dist/core/session/compaction/branch-summarization.js +38 -0
  380. package/dist/core/session/compaction/compaction.d.ts +120 -0
  381. package/dist/core/session/compaction/compaction.js +104 -0
  382. package/dist/core/session/compaction/index.d.ts +9 -0
  383. package/dist/core/session/compaction/index.js +1 -0
  384. package/dist/core/session/compaction/utils.d.ts +37 -0
  385. package/dist/core/session/compaction/utils.js +17 -0
  386. package/dist/core/session/session-manager.d.ts +359 -0
  387. package/dist/core/session/session-manager.js +14 -0
  388. package/dist/core/skills.d.ts +57 -0
  389. package/dist/core/skills.js +4 -0
  390. package/dist/core/slash-commands.d.ts +36 -0
  391. package/dist/core/slash-commands.js +1 -0
  392. package/dist/core/soul-integration.d.ts +77 -0
  393. package/dist/core/soul-integration.js +1 -0
  394. package/dist/core/soul-options-contract.d.ts +10 -0
  395. package/dist/core/soul-options-contract.js +0 -0
  396. package/dist/core/sub-agent/agent-definition-loader.d.ts +96 -0
  397. package/dist/core/sub-agent/agent-definition-loader.js +2 -0
  398. package/dist/core/sub-agent/agent-definition.d.ts +162 -0
  399. package/dist/core/sub-agent/agent-definition.js +6 -0
  400. package/dist/core/sub-agent/agent-handoff-safety.d.ts +39 -0
  401. package/dist/core/sub-agent/agent-handoff-safety.js +1 -0
  402. package/dist/core/sub-agent/agent-input-output.d.ts +143 -0
  403. package/dist/core/sub-agent/agent-input-output.js +1 -0
  404. package/dist/core/sub-agent/agent-output-persistence.d.ts +43 -0
  405. package/dist/core/sub-agent/agent-output-persistence.js +3 -0
  406. package/dist/core/sub-agent/agent-prompt-builder.d.ts +37 -0
  407. package/dist/core/sub-agent/agent-prompt-builder.js +2 -0
  408. package/dist/core/sub-agent/agent-registry.d.ts +145 -0
  409. package/dist/core/sub-agent/agent-registry.js +1 -0
  410. package/dist/core/sub-agent/agent-result-extractor.d.ts +28 -0
  411. package/dist/core/sub-agent/agent-result-extractor.js +3 -0
  412. package/dist/core/sub-agent/agent-telemetry.d.ts +71 -0
  413. package/dist/core/sub-agent/agent-telemetry.js +1 -0
  414. package/dist/core/sub-agent/agent-tool-filter.d.ts +89 -0
  415. package/dist/core/sub-agent/agent-tool-filter.js +2 -0
  416. package/dist/core/sub-agent/agent-tool.d.ts +69 -0
  417. package/dist/core/sub-agent/agent-tool.js +11 -0
  418. package/dist/core/sub-agent/index.d.ts +26 -0
  419. package/dist/core/sub-agent/index.js +1 -0
  420. package/dist/core/sub-agent/send-message-tool.d.ts +33 -0
  421. package/dist/core/sub-agent/send-message-tool.js +2 -0
  422. package/dist/core/sub-agent/sub-agent-backend.d.ts +26 -0
  423. package/dist/core/sub-agent/sub-agent-backend.js +7 -0
  424. package/dist/core/sub-agent/sub-agent-runtime.d.ts +34 -0
  425. package/dist/core/sub-agent/sub-agent-runtime.js +1 -0
  426. package/dist/core/sub-agent/sub-agent-types.d.ts +138 -0
  427. package/dist/core/sub-agent/sub-agent-types.js +0 -0
  428. package/dist/core/sub-agent/subprocess-backend.d.ts +35 -0
  429. package/dist/core/sub-agent/subprocess-backend.js +1 -0
  430. package/dist/core/sub-agent/subprocess-worker.d.ts +12 -0
  431. package/dist/core/sub-agent/subprocess-worker.js +1 -0
  432. package/dist/core/theme-contract.d.ts +32 -0
  433. package/dist/core/theme-contract.js +0 -0
  434. package/dist/core/tools/bash.d.ts +73 -0
  435. package/dist/core/tools/bash.js +21 -0
  436. package/dist/core/tools/edit-diff.d.ts +58 -0
  437. package/dist/core/tools/edit-diff.js +16 -0
  438. package/dist/core/tools/edit.d.ts +46 -0
  439. package/dist/core/tools/edit.js +1 -0
  440. package/dist/core/tools/file-state-cache.d.ts +30 -0
  441. package/dist/core/tools/file-state-cache.js +1 -0
  442. package/dist/core/tools/find.d.ts +46 -0
  443. package/dist/core/tools/find.js +8 -0
  444. package/dist/core/tools/grep.d.ts +58 -0
  445. package/dist/core/tools/grep.js +13 -0
  446. package/dist/core/tools/index.d.ts +116 -0
  447. package/dist/core/tools/index.js +1 -0
  448. package/dist/core/tools/input-validation.d.ts +13 -0
  449. package/dist/core/tools/input-validation.js +1 -0
  450. package/dist/core/tools/ls.d.ts +45 -0
  451. package/dist/core/tools/ls.js +4 -0
  452. package/dist/core/tools/orchestrator.d.ts +76 -0
  453. package/dist/core/tools/orchestrator.js +1 -0
  454. package/dist/core/tools/path-utils.d.ts +7 -0
  455. package/dist/core/tools/path-utils.js +1 -0
  456. package/dist/core/tools/pdf-extract.d.ts +11 -0
  457. package/dist/core/tools/pdf-extract.js +1 -0
  458. package/dist/core/tools/read.d.ts +46 -0
  459. package/dist/core/tools/read.js +11 -0
  460. package/dist/core/tools/source.d.ts +78 -0
  461. package/dist/core/tools/source.js +1 -0
  462. package/dist/core/tools/time.d.ts +19 -0
  463. package/dist/core/tools/time.js +2 -0
  464. package/dist/core/tools/truncate.d.ts +66 -0
  465. package/dist/core/tools/truncate.js +5 -0
  466. package/dist/core/tools/write-guard.d.ts +2 -0
  467. package/dist/core/tools/write-guard.js +1 -0
  468. package/dist/core/tools/write.d.ts +36 -0
  469. package/dist/core/tools/write.js +1 -0
  470. package/dist/core/workspace/index.d.ts +8 -0
  471. package/dist/core/workspace/index.js +1 -0
  472. package/dist/core/workspace/worktree-manager.d.ts +73 -0
  473. package/dist/core/workspace/worktree-manager.js +3 -0
  474. package/dist/extensions/builtin/AGENT.md +115 -0
  475. package/dist/extensions/builtin/ask-user-question/ask-user-question-tool.d.ts +9 -0
  476. package/dist/extensions/builtin/ask-user-question/ask-user-question-tool.js +4 -0
  477. package/dist/extensions/builtin/ask-user-question/index.d.ts +8 -0
  478. package/dist/extensions/builtin/ask-user-question/index.js +1 -0
  479. package/dist/extensions/builtin/ask-user-question/prompt.d.ts +14 -0
  480. package/dist/extensions/builtin/ask-user-question/prompt.js +30 -0
  481. package/dist/extensions/builtin/ask-user-question/types.d.ts +69 -0
  482. package/dist/extensions/builtin/ask-user-question/types.js +1 -0
  483. package/dist/extensions/builtin/browser/AGENT.md +17 -0
  484. package/dist/extensions/builtin/browser/agent-workspace/agent_helpers.py +12 -0
  485. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/amazon/product-search.md +198 -0
  486. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/archive-org/scraping.md +341 -0
  487. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv/scraping.md +311 -0
  488. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv-bulk/scraping.md +333 -0
  489. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/atlas/overview.md +70 -0
  490. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/booking-com/scraping.md +578 -0
  491. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/capterra/scraping.md +440 -0
  492. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/centilebrain/generate-estimates.md +110 -0
  493. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coingecko/scraping.md +325 -0
  494. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coinmarketcap/scraping.md +463 -0
  495. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coursera/scraping.md +360 -0
  496. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/craigslist/scraping.md +390 -0
  497. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/crossref/scraping.md +568 -0
  498. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/dev-to/scraping.md +323 -0
  499. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/duckduckgo/scraping.md +349 -0
  500. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/ebay/scraping.md +435 -0
  501. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/etsy/scraping.md +506 -0
  502. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/eventbrite/scraping.md +363 -0
  503. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/expedia/automation.md +168 -0
  504. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/groups.md +236 -0
  505. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/pages.md +295 -0
  506. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/framer/editor.md +108 -0
  507. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/fred/scraping.md +493 -0
  508. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/g2/scraping.md +580 -0
  509. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/genius/scraping.md +511 -0
  510. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/repo-actions.md +65 -0
  511. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/scraping.md +184 -0
  512. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/glassdoor/scraping.md +543 -0
  513. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gmail/compose.md +122 -0
  514. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/goodreads/scraping.md +461 -0
  515. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gutenberg/scraping.md +383 -0
  516. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/hackernews/scraping.md +243 -0
  517. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/howlongtobeat/scraping.md +473 -0
  518. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/imdb/scraping.md +271 -0
  519. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/itch-io/scraping.md +436 -0
  520. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/job-boards/indeed-glassdoor.md +1021 -0
  521. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/letterboxd/scraping.md +349 -0
  522. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/linkedin/invitation-manager.md +109 -0
  523. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/loom/folder-enumeration.md +170 -0
  524. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/macrotrends/scraping.md +537 -0
  525. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/article-hydration.md +120 -0
  526. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/scraping.md +414 -0
  527. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/metacritic/scraping.md +477 -0
  528. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/musicbrainz/scraping.md +478 -0
  529. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/nasa/scraping.md +339 -0
  530. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/news-aggregation/multi-source.md +205 -0
  531. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/open-library/scraping.md +472 -0
  532. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openalex/scraping.md +470 -0
  533. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openstreetmap/scraping.md +490 -0
  534. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/package-registries/npm-pypi.md +478 -0
  535. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/polymarket/scraping.md +234 -0
  536. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/producthunt/scraping.md +307 -0
  537. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/pubmed/scraping.md +421 -0
  538. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/quora/scraping.md +364 -0
  539. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rawg/scraping.md +352 -0
  540. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/reddit/scraping.md +124 -0
  541. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rest-countries/scraping.md +233 -0
  542. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/sec-edgar/scraping.md +361 -0
  543. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/README.md +36 -0
  544. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/embedded-apps.md +72 -0
  545. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/knowledge-base.md +109 -0
  546. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/polaris-inputs.md +137 -0
  547. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/soundcloud/scraping.md +362 -0
  548. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/spotify/scraping.md +339 -0
  549. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/stackoverflow/scraping.md +435 -0
  550. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/steam/scraping.md +575 -0
  551. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/substack/scraping.md +338 -0
  552. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/thetechgeeks/pricing.md +52 -0
  553. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tiktok/upload.md +107 -0
  554. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tradingview/scraping.md +309 -0
  555. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trello/boards-and-lists.md +88 -0
  556. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trustpilot/scraping.md +375 -0
  557. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/walmart/scraping.md +444 -0
  558. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wayback-machine/scraping.md +306 -0
  559. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/weather/scraping.md +398 -0
  560. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wellfound/scraping.md +596 -0
  561. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/world-bank/scraping.md +356 -0
  562. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/xiaohongshu/scraping.md +84 -0
  563. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/youtube/scraping.md +418 -0
  564. package/dist/extensions/builtin/browser/agent-workspace/domain-skills/zillow/scraping.md +433 -0
  565. package/dist/extensions/builtin/browser/browser.md +73 -0
  566. package/dist/extensions/builtin/browser/index.d.ts +8 -0
  567. package/dist/extensions/builtin/browser/index.js +15 -0
  568. package/dist/extensions/builtin/browser/install.md +142 -0
  569. package/dist/extensions/builtin/browser/interaction-skills/connection.md +48 -0
  570. package/dist/extensions/builtin/browser/interaction-skills/cookies.md +3 -0
  571. package/dist/extensions/builtin/browser/interaction-skills/cross-origin-iframes.md +3 -0
  572. package/dist/extensions/builtin/browser/interaction-skills/dialogs.md +64 -0
  573. package/dist/extensions/builtin/browser/interaction-skills/downloads.md +3 -0
  574. package/dist/extensions/builtin/browser/interaction-skills/drag-and-drop.md +3 -0
  575. package/dist/extensions/builtin/browser/interaction-skills/dropdowns.md +3 -0
  576. package/dist/extensions/builtin/browser/interaction-skills/iframes.md +3 -0
  577. package/dist/extensions/builtin/browser/interaction-skills/network-requests.md +3 -0
  578. package/dist/extensions/builtin/browser/interaction-skills/print-as-pdf.md +3 -0
  579. package/dist/extensions/builtin/browser/interaction-skills/profile-sync.md +90 -0
  580. package/dist/extensions/builtin/browser/interaction-skills/screenshots.md +17 -0
  581. package/dist/extensions/builtin/browser/interaction-skills/scrolling.md +3 -0
  582. package/dist/extensions/builtin/browser/interaction-skills/shadow-dom.md +3 -0
  583. package/dist/extensions/builtin/browser/interaction-skills/tabs.md +69 -0
  584. package/dist/extensions/builtin/browser/interaction-skills/uploads.md +1 -0
  585. package/dist/extensions/builtin/browser/interaction-skills/viewport.md +3 -0
  586. package/dist/extensions/builtin/browser/src/browser_harness/AGENT.md +15 -0
  587. package/dist/extensions/builtin/browser/src/browser_harness/__init__.py +8 -0
  588. package/dist/extensions/builtin/browser/src/browser_harness/_ipc.py +90 -0
  589. package/dist/extensions/builtin/browser/src/browser_harness/admin.py +722 -0
  590. package/dist/extensions/builtin/browser/src/browser_harness/daemon.py +328 -0
  591. package/dist/extensions/builtin/browser/src/browser_harness/helpers.py +396 -0
  592. package/dist/extensions/builtin/browser/src/browser_harness/run.py +103 -0
  593. package/dist/extensions/builtin/btw/index.d.ts +8 -0
  594. package/dist/extensions/builtin/btw/index.js +15 -0
  595. package/dist/extensions/builtin/debug/collectors.d.ts +96 -0
  596. package/dist/extensions/builtin/debug/collectors.js +7 -0
  597. package/dist/extensions/builtin/debug/index.d.ts +8 -0
  598. package/dist/extensions/builtin/debug/index.js +49 -0
  599. package/dist/extensions/builtin/diagnostics/diagnostic-buffer.d.ts +19 -0
  600. package/dist/extensions/builtin/diagnostics/diagnostic-buffer.js +1 -0
  601. package/dist/extensions/builtin/diagnostics/index.d.ts +8 -0
  602. package/dist/extensions/builtin/diagnostics/index.js +1 -0
  603. package/dist/extensions/builtin/diagnostics/redaction.d.ts +8 -0
  604. package/dist/extensions/builtin/diagnostics/redaction.js +1 -0
  605. package/dist/extensions/builtin/diagnostics/reporter.d.ts +17 -0
  606. package/dist/extensions/builtin/diagnostics/reporter.js +1 -0
  607. package/dist/extensions/builtin/diagnostics/types.d.ts +62 -0
  608. package/dist/extensions/builtin/diagnostics/types.js +1 -0
  609. package/dist/extensions/builtin/discipline/index.d.ts +8 -0
  610. package/dist/extensions/builtin/discipline/index.js +7 -0
  611. package/dist/extensions/builtin/discipline/skills/brainstorming/SKILL.md +33 -0
  612. package/dist/extensions/builtin/discipline/skills/executing-plans/SKILL.md +25 -0
  613. package/dist/extensions/builtin/discipline/skills/finishing-development-branch/SKILL.md +25 -0
  614. package/dist/extensions/builtin/discipline/skills/receiving-code-review/SKILL.md +22 -0
  615. package/dist/extensions/builtin/discipline/skills/requesting-code-review/SKILL.md +31 -0
  616. package/dist/extensions/builtin/discipline/skills/systematic-debugging/SKILL.md +28 -0
  617. package/dist/extensions/builtin/discipline/skills/test-driven-development/SKILL.md +32 -0
  618. package/dist/extensions/builtin/discipline/skills/using-git-worktrees/SKILL.md +25 -0
  619. package/dist/extensions/builtin/discipline/skills/verification-before-completion/SKILL.md +27 -0
  620. package/dist/extensions/builtin/discipline/skills/writing-plans/SKILL.md +26 -0
  621. package/dist/extensions/builtin/goal/README.md +67 -0
  622. package/dist/extensions/builtin/goal/goal-command.d.ts +13 -0
  623. package/dist/extensions/builtin/goal/goal-command.js +9 -0
  624. package/dist/extensions/builtin/goal/goal-controller.d.ts +143 -0
  625. package/dist/extensions/builtin/goal/goal-controller.js +1 -0
  626. package/dist/extensions/builtin/goal/goal-format.d.ts +52 -0
  627. package/dist/extensions/builtin/goal/goal-format.js +1 -0
  628. package/dist/extensions/builtin/goal/goal-parser.d.ts +27 -0
  629. package/dist/extensions/builtin/goal/goal-parser.js +2 -0
  630. package/dist/extensions/builtin/goal/goal-prompts.d.ts +15 -0
  631. package/dist/extensions/builtin/goal/goal-prompts.js +5 -0
  632. package/dist/extensions/builtin/goal/goal-store.d.ts +28 -0
  633. package/dist/extensions/builtin/goal/goal-store.js +1 -0
  634. package/dist/extensions/builtin/goal/goal-tools.d.ts +26 -0
  635. package/dist/extensions/builtin/goal/goal-tools.js +3 -0
  636. package/dist/extensions/builtin/goal/goal-types.d.ts +87 -0
  637. package/dist/extensions/builtin/goal/goal-types.js +1 -0
  638. package/dist/extensions/builtin/goal/index.d.ts +8 -0
  639. package/dist/extensions/builtin/goal/index.js +10 -0
  640. package/dist/extensions/builtin/grub/README.md +112 -0
  641. package/dist/extensions/builtin/grub/grub-controller.d.ts +67 -0
  642. package/dist/extensions/builtin/grub/grub-controller.js +1 -0
  643. package/dist/extensions/builtin/grub/grub-decision.d.ts +8 -0
  644. package/dist/extensions/builtin/grub/grub-decision.js +1 -0
  645. package/dist/extensions/builtin/grub/grub-feature-list.d.ts +54 -0
  646. package/dist/extensions/builtin/grub/grub-feature-list.js +2 -0
  647. package/dist/extensions/builtin/grub/grub-format.d.ts +13 -0
  648. package/dist/extensions/builtin/grub/grub-format.js +4 -0
  649. package/dist/extensions/builtin/grub/grub-harness.d.ts +9 -0
  650. package/dist/extensions/builtin/grub/grub-harness.js +3 -0
  651. package/dist/extensions/builtin/grub/grub-i18n.d.ts +166 -0
  652. package/dist/extensions/builtin/grub/grub-i18n.js +1 -0
  653. package/dist/extensions/builtin/grub/grub-parser.d.ts +24 -0
  654. package/dist/extensions/builtin/grub/grub-parser.js +2 -0
  655. package/dist/extensions/builtin/grub/grub-persistence.d.ts +17 -0
  656. package/dist/extensions/builtin/grub/grub-persistence.js +2 -0
  657. package/dist/extensions/builtin/grub/grub-prompts.d.ts +12 -0
  658. package/dist/extensions/builtin/grub/grub-prompts.js +97 -0
  659. package/dist/extensions/builtin/grub/grub-turn.d.ts +16 -0
  660. package/dist/extensions/builtin/grub/grub-turn.js +1 -0
  661. package/dist/extensions/builtin/grub/grub-types.d.ts +110 -0
  662. package/dist/extensions/builtin/grub/grub-types.js +1 -0
  663. package/dist/extensions/builtin/grub/index.d.ts +8 -0
  664. package/dist/extensions/builtin/grub/index.js +6 -0
  665. package/dist/extensions/builtin/idle-think/curiosity.d.ts +46 -0
  666. package/dist/extensions/builtin/idle-think/curiosity.js +2 -0
  667. package/dist/extensions/builtin/idle-think/idle-think-runtime.d.ts +46 -0
  668. package/dist/extensions/builtin/idle-think/idle-think-runtime.js +1 -0
  669. package/dist/extensions/builtin/idle-think/index.d.ts +15 -0
  670. package/dist/extensions/builtin/idle-think/index.js +1 -0
  671. package/dist/extensions/builtin/idle-think/insights.d.ts +27 -0
  672. package/dist/extensions/builtin/idle-think/insights.js +5 -0
  673. package/dist/extensions/builtin/idle-think/thinker.d.ts +26 -0
  674. package/dist/extensions/builtin/idle-think/thinker.js +9 -0
  675. package/dist/extensions/builtin/insights/html-report.d.ts +21 -0
  676. package/dist/extensions/builtin/insights/html-report.js +463 -0
  677. package/dist/extensions/builtin/insights/index.d.ts +24 -0
  678. package/dist/extensions/builtin/insights/index.js +2 -0
  679. package/dist/extensions/builtin/insights/insights-engine.d.ts +18 -0
  680. package/dist/extensions/builtin/insights/insights-engine.js +39 -0
  681. package/dist/extensions/builtin/insights/prompts.d.ts +17 -0
  682. package/dist/extensions/builtin/insights/prompts.js +180 -0
  683. package/dist/extensions/builtin/insights/session-scanner.d.ts +27 -0
  684. package/dist/extensions/builtin/insights/session-scanner.js +19 -0
  685. package/dist/extensions/builtin/insights/stats.d.ts +13 -0
  686. package/dist/extensions/builtin/insights/stats.js +1 -0
  687. package/dist/extensions/builtin/insights/types.d.ts +199 -0
  688. package/dist/extensions/builtin/insights/types.js +0 -0
  689. package/dist/extensions/builtin/link-world/agent-workspace/README.md +16 -0
  690. package/dist/extensions/builtin/link-world/index.d.ts +8 -0
  691. package/dist/extensions/builtin/link-world/index.js +19 -0
  692. package/dist/extensions/builtin/link-world/internet-search/internet-search.md +65 -0
  693. package/dist/extensions/builtin/link-world/link-world-agent.md +82 -0
  694. package/dist/extensions/builtin/link-world/linkworld.md +313 -0
  695. package/dist/extensions/builtin/link-world/network-routing/network-routing.md +67 -0
  696. package/dist/extensions/builtin/loop/README.md +92 -0
  697. package/dist/extensions/builtin/loop/cron/cron-parser.d.ts +56 -0
  698. package/dist/extensions/builtin/loop/cron/cron-parser.js +1 -0
  699. package/dist/extensions/builtin/loop/cron/cron-scheduler.d.ts +85 -0
  700. package/dist/extensions/builtin/loop/cron/cron-scheduler.js +10 -0
  701. package/dist/extensions/builtin/loop/cron/cron-tasks-lock.d.ts +42 -0
  702. package/dist/extensions/builtin/loop/cron/cron-tasks-lock.js +1 -0
  703. package/dist/extensions/builtin/loop/cron/cron-tasks.d.ts +200 -0
  704. package/dist/extensions/builtin/loop/cron/cron-tasks.js +2 -0
  705. package/dist/extensions/builtin/loop/cron/index.d.ts +18 -0
  706. package/dist/extensions/builtin/loop/cron/index.js +1 -0
  707. package/dist/extensions/builtin/loop/cron-tools/cron-create-tool.d.ts +35 -0
  708. package/dist/extensions/builtin/loop/cron-tools/cron-create-tool.js +1 -0
  709. package/dist/extensions/builtin/loop/cron-tools/cron-delete-tool.d.ts +29 -0
  710. package/dist/extensions/builtin/loop/cron-tools/cron-delete-tool.js +1 -0
  711. package/dist/extensions/builtin/loop/cron-tools/cron-list-tool.d.ts +25 -0
  712. package/dist/extensions/builtin/loop/cron-tools/cron-list-tool.js +2 -0
  713. package/dist/extensions/builtin/loop/cron-tools/index.d.ts +16 -0
  714. package/dist/extensions/builtin/loop/cron-tools/index.js +1 -0
  715. package/dist/extensions/builtin/loop/cron-tools/prompt.d.ts +35 -0
  716. package/dist/extensions/builtin/loop/cron-tools/prompt.js +38 -0
  717. package/dist/extensions/builtin/loop/index.d.ts +19 -0
  718. package/dist/extensions/builtin/loop/index.js +2 -0
  719. package/dist/extensions/builtin/loop/loop-skill.d.ts +18 -0
  720. package/dist/extensions/builtin/loop/loop-skill.js +58 -0
  721. package/dist/extensions/builtin/lsp/index.d.ts +8 -0
  722. package/dist/extensions/builtin/lsp/index.js +1 -0
  723. package/dist/extensions/builtin/lsp/lsp-client.d.ts +22 -0
  724. package/dist/extensions/builtin/lsp/lsp-client.js +1 -0
  725. package/dist/extensions/builtin/lsp/lsp-config.d.ts +8 -0
  726. package/dist/extensions/builtin/lsp/lsp-config.js +1 -0
  727. package/dist/extensions/builtin/lsp/lsp-formatters.d.ts +15 -0
  728. package/dist/extensions/builtin/lsp/lsp-formatters.js +18 -0
  729. package/dist/extensions/builtin/lsp/lsp-server-instance.d.ts +24 -0
  730. package/dist/extensions/builtin/lsp/lsp-server-instance.js +1 -0
  731. package/dist/extensions/builtin/lsp/lsp-server-manager.d.ts +21 -0
  732. package/dist/extensions/builtin/lsp/lsp-server-manager.js +1 -0
  733. package/dist/extensions/builtin/lsp/lsp-tool.d.ts +33 -0
  734. package/dist/extensions/builtin/lsp/lsp-tool.js +2 -0
  735. package/dist/extensions/builtin/lsp/types.d.ts +31 -0
  736. package/dist/extensions/builtin/lsp/types.js +1 -0
  737. package/dist/extensions/builtin/mcp/figma-design.md +68 -0
  738. package/dist/extensions/builtin/mcp/index.d.ts +14 -0
  739. package/dist/extensions/builtin/mcp/index.js +25 -0
  740. package/dist/extensions/builtin/mcp/mcp-management.md +85 -0
  741. package/dist/extensions/builtin/plan/clear-context-state.d.ts +8 -0
  742. package/dist/extensions/builtin/plan/clear-context-state.js +1 -0
  743. package/dist/extensions/builtin/plan/enter-plan-mode-tool.d.ts +11 -0
  744. package/dist/extensions/builtin/plan/enter-plan-mode-tool.js +2 -0
  745. package/dist/extensions/builtin/plan/exit-plan-mode-tool.d.ts +18 -0
  746. package/dist/extensions/builtin/plan/exit-plan-mode-tool.js +13 -0
  747. package/dist/extensions/builtin/plan/index.d.ts +8 -0
  748. package/dist/extensions/builtin/plan/index.js +24 -0
  749. package/dist/extensions/builtin/plan/plan-agents.d.ts +23 -0
  750. package/dist/extensions/builtin/plan/plan-agents.js +43 -0
  751. package/dist/extensions/builtin/plan/plan-file-manager.d.ts +26 -0
  752. package/dist/extensions/builtin/plan/plan-file-manager.js +1 -0
  753. package/dist/extensions/builtin/plan/plan-permissions.d.ts +15 -0
  754. package/dist/extensions/builtin/plan/plan-permissions.js +12 -0
  755. package/dist/extensions/builtin/plan/plan-validation.d.ts +18 -0
  756. package/dist/extensions/builtin/plan/plan-validation.js +5 -0
  757. package/dist/extensions/builtin/plan/plan-workflow-prompt.d.ts +18 -0
  758. package/dist/extensions/builtin/plan/plan-workflow-prompt.js +102 -0
  759. package/dist/extensions/builtin/plan/teammate-approval.d.ts +49 -0
  760. package/dist/extensions/builtin/plan/teammate-approval.js +3 -0
  761. package/dist/extensions/builtin/plan/types.d.ts +133 -0
  762. package/dist/extensions/builtin/plan/types.js +1 -0
  763. package/dist/extensions/builtin/presence/index.d.ts +40 -0
  764. package/dist/extensions/builtin/presence/index.js +15 -0
  765. package/dist/extensions/builtin/presence/presence-memory.d.ts +47 -0
  766. package/dist/extensions/builtin/presence/presence-memory.js +1 -0
  767. package/dist/extensions/builtin/recap/AGENT.md +15 -0
  768. package/dist/extensions/builtin/recap/index.d.ts +8 -0
  769. package/dist/extensions/builtin/recap/index.js +1 -0
  770. package/dist/extensions/builtin/recap/recap-budget.d.ts +24 -0
  771. package/dist/extensions/builtin/recap/recap-budget.js +1 -0
  772. package/dist/extensions/builtin/recap/recap-extractor.d.ts +34 -0
  773. package/dist/extensions/builtin/recap/recap-extractor.js +3 -0
  774. package/dist/extensions/builtin/recap/recap-renderer.d.ts +19 -0
  775. package/dist/extensions/builtin/recap/recap-renderer.js +2 -0
  776. package/dist/extensions/builtin/recap/recap-synthesizer.d.ts +51 -0
  777. package/dist/extensions/builtin/recap/recap-synthesizer.js +19 -0
  778. package/dist/extensions/builtin/recap/recap-types.d.ts +40 -0
  779. package/dist/extensions/builtin/recap/recap-types.js +1 -0
  780. package/dist/extensions/builtin/sal/README.md +72 -0
  781. package/dist/extensions/builtin/sal/anchors.d.ts +46 -0
  782. package/dist/extensions/builtin/sal/anchors.js +1 -0
  783. package/dist/extensions/builtin/sal/eval/index.d.ts +18 -0
  784. package/dist/extensions/builtin/sal/eval/index.js +1 -0
  785. package/dist/extensions/builtin/sal/eval/insforge-sink.d.ts +30 -0
  786. package/dist/extensions/builtin/sal/eval/insforge-sink.js +1 -0
  787. package/dist/extensions/builtin/sal/eval/jsonl-sink.d.ts +27 -0
  788. package/dist/extensions/builtin/sal/eval/jsonl-sink.js +3 -0
  789. package/dist/extensions/builtin/sal/eval/noop-sink.d.ts +8 -0
  790. package/dist/extensions/builtin/sal/eval/noop-sink.js +1 -0
  791. package/dist/extensions/builtin/sal/eval/types.d.ts +60 -0
  792. package/dist/extensions/builtin/sal/eval/types.js +1 -0
  793. package/dist/extensions/builtin/sal/index.d.ts +12 -0
  794. package/dist/extensions/builtin/sal/index.js +7 -0
  795. package/dist/extensions/builtin/sal/sal-config.d.ts +46 -0
  796. package/dist/extensions/builtin/sal/sal-config.js +1 -0
  797. package/dist/extensions/builtin/sal/sal-context.d.ts +11 -0
  798. package/dist/extensions/builtin/sal/sal-context.js +2 -0
  799. package/dist/extensions/builtin/sal/sal-runtime.d.ts +72 -0
  800. package/dist/extensions/builtin/sal/sal-runtime.js +0 -0
  801. package/dist/extensions/builtin/sal/sal-trace.d.ts +11 -0
  802. package/dist/extensions/builtin/sal/sal-trace.js +1 -0
  803. package/dist/extensions/builtin/sal/terrain.d.ts +73 -0
  804. package/dist/extensions/builtin/sal/terrain.js +3 -0
  805. package/dist/extensions/builtin/sal/weights.d.ts +28 -0
  806. package/dist/extensions/builtin/sal/weights.js +1 -0
  807. package/dist/extensions/builtin/security-audit/README.md +289 -0
  808. package/dist/extensions/builtin/security-audit/engine/detector.d.ts +44 -0
  809. package/dist/extensions/builtin/security-audit/engine/detector.js +1 -0
  810. package/dist/extensions/builtin/security-audit/engine/interceptor.d.ts +61 -0
  811. package/dist/extensions/builtin/security-audit/engine/interceptor.js +27 -0
  812. package/dist/extensions/builtin/security-audit/engine/logger.d.ts +65 -0
  813. package/dist/extensions/builtin/security-audit/engine/logger.js +65 -0
  814. package/dist/extensions/builtin/security-audit/index.d.ts +13 -0
  815. package/dist/extensions/builtin/security-audit/index.js +49 -0
  816. package/dist/extensions/builtin/security-audit/interface.d.ts +167 -0
  817. package/dist/extensions/builtin/security-audit/interface.js +1 -0
  818. package/dist/extensions/builtin/soul/index.d.ts +13 -0
  819. package/dist/extensions/builtin/soul/index.js +1 -0
  820. package/dist/extensions/builtin/subagent/index.d.ts +8 -0
  821. package/dist/extensions/builtin/subagent/index.js +8 -0
  822. package/dist/extensions/builtin/subagent/subagent-parser.d.ts +30 -0
  823. package/dist/extensions/builtin/subagent/subagent-parser.js +15 -0
  824. package/dist/extensions/builtin/subagent/subagent-runner.d.ts +49 -0
  825. package/dist/extensions/builtin/subagent/subagent-runner.js +8 -0
  826. package/dist/extensions/builtin/subagent/subagent-types.d.ts +57 -0
  827. package/dist/extensions/builtin/subagent/subagent-types.js +0 -0
  828. package/dist/extensions/builtin/task/index.d.ts +8 -0
  829. package/dist/extensions/builtin/task/index.js +1 -0
  830. package/dist/extensions/builtin/task/task-store.d.ts +42 -0
  831. package/dist/extensions/builtin/task/task-store.js +1 -0
  832. package/dist/extensions/builtin/task/task-tools/task-create-tool.d.ts +37 -0
  833. package/dist/extensions/builtin/task/task-tools/task-create-tool.js +40 -0
  834. package/dist/extensions/builtin/task/task-tools/task-get-tool.d.ts +31 -0
  835. package/dist/extensions/builtin/task/task-tools/task-get-tool.js +23 -0
  836. package/dist/extensions/builtin/task/task-tools/task-list-tool.d.ts +27 -0
  837. package/dist/extensions/builtin/task/task-tools/task-list-tool.js +22 -0
  838. package/dist/extensions/builtin/task/task-tools/task-output-tool.d.ts +32 -0
  839. package/dist/extensions/builtin/task/task-tools/task-output-tool.js +10 -0
  840. package/dist/extensions/builtin/task/task-tools/task-stop-tool.d.ts +31 -0
  841. package/dist/extensions/builtin/task/task-tools/task-stop-tool.js +5 -0
  842. package/dist/extensions/builtin/task/task-tools/task-update-tool.d.ts +47 -0
  843. package/dist/extensions/builtin/task/task-tools/task-update-tool.js +77 -0
  844. package/dist/extensions/builtin/task/task-tools/tool-search-tool.d.ts +34 -0
  845. package/dist/extensions/builtin/task/task-tools/tool-search-tool.js +14 -0
  846. package/dist/extensions/builtin/task/task-types.d.ts +30 -0
  847. package/dist/extensions/builtin/task/task-types.js +1 -0
  848. package/dist/extensions/builtin/teach/README.md +197 -0
  849. package/dist/extensions/builtin/teach/index.d.ts +12 -0
  850. package/dist/extensions/builtin/teach/index.js +6 -0
  851. package/dist/extensions/builtin/teach/references/analogy-library.md +153 -0
  852. package/dist/extensions/builtin/teach/references/learning-paths.md +214 -0
  853. package/dist/extensions/builtin/teach/references/source-verification.md +268 -0
  854. package/dist/extensions/builtin/teach/references/teaching-template.md +237 -0
  855. package/dist/extensions/builtin/teach/teach-format.d.ts +35 -0
  856. package/dist/extensions/builtin/teach/teach-format.js +6 -0
  857. package/dist/extensions/builtin/teach/teach-i18n.d.ts +47 -0
  858. package/dist/extensions/builtin/teach/teach-i18n.js +1 -0
  859. package/dist/extensions/builtin/teach/teach-persistence.d.ts +36 -0
  860. package/dist/extensions/builtin/teach/teach-persistence.js +35 -0
  861. package/dist/extensions/builtin/teach/teach-prompts.d.ts +52 -0
  862. package/dist/extensions/builtin/teach/teach-prompts.js +35 -0
  863. package/dist/extensions/builtin/teach/teach-runtime.d.ts +93 -0
  864. package/dist/extensions/builtin/teach/teach-runtime.js +9 -0
  865. package/dist/extensions/builtin/teach/teach-types.d.ts +81 -0
  866. package/dist/extensions/builtin/teach/teach-types.js +0 -0
  867. package/dist/extensions/builtin/team/AGENT.md +112 -0
  868. package/dist/extensions/builtin/team/TESTING.md +299 -0
  869. package/dist/extensions/builtin/team/index.d.ts +26 -0
  870. package/dist/extensions/builtin/team/index.js +11 -0
  871. package/dist/extensions/builtin/team/team-dashboard.d.ts +13 -0
  872. package/dist/extensions/builtin/team/team-dashboard.js +1 -0
  873. package/dist/extensions/builtin/team/team-harness.d.ts +35 -0
  874. package/dist/extensions/builtin/team/team-harness.js +18 -0
  875. package/dist/extensions/builtin/team/team-mailbox.d.ts +50 -0
  876. package/dist/extensions/builtin/team/team-mailbox.js +4 -0
  877. package/dist/extensions/builtin/team/team-orchestrator.d.ts +39 -0
  878. package/dist/extensions/builtin/team/team-orchestrator.js +5 -0
  879. package/dist/extensions/builtin/team/team-parser.d.ts +84 -0
  880. package/dist/extensions/builtin/team/team-parser.js +38 -0
  881. package/dist/extensions/builtin/team/team-permissions.d.ts +63 -0
  882. package/dist/extensions/builtin/team/team-permissions.js +1 -0
  883. package/dist/extensions/builtin/team/team-presets.d.ts +45 -0
  884. package/dist/extensions/builtin/team/team-presets.js +2 -0
  885. package/dist/extensions/builtin/team/team-psyche.d.ts +14 -0
  886. package/dist/extensions/builtin/team/team-psyche.js +5 -0
  887. package/dist/extensions/builtin/team/team-runtime-helpers.d.ts +48 -0
  888. package/dist/extensions/builtin/team/team-runtime-helpers.js +2 -0
  889. package/dist/extensions/builtin/team/team-runtime.d.ts +91 -0
  890. package/dist/extensions/builtin/team/team-runtime.js +3 -0
  891. package/dist/extensions/builtin/team/team-state-store.d.ts +29 -0
  892. package/dist/extensions/builtin/team/team-state-store.js +2 -0
  893. package/dist/extensions/builtin/team/team-task-store.d.ts +35 -0
  894. package/dist/extensions/builtin/team/team-task-store.js +2 -0
  895. package/dist/extensions/builtin/team/team-transcript.d.ts +31 -0
  896. package/dist/extensions/builtin/team/team-transcript.js +2 -0
  897. package/dist/extensions/builtin/team/team-types.d.ts +250 -0
  898. package/dist/extensions/builtin/team/team-types.js +0 -0
  899. package/dist/extensions/builtin/team/team-ui.d.ts +50 -0
  900. package/dist/extensions/builtin/team/team-ui.js +2 -0
  901. package/dist/extensions/builtin/token-save/README.md +56 -0
  902. package/dist/extensions/builtin/token-save/config.d.ts +8 -0
  903. package/dist/extensions/builtin/token-save/config.js +1 -0
  904. package/dist/extensions/builtin/token-save/filters.d.ts +14 -0
  905. package/dist/extensions/builtin/token-save/filters.js +24 -0
  906. package/dist/extensions/builtin/token-save/index.d.ts +8 -0
  907. package/dist/extensions/builtin/token-save/index.js +4 -0
  908. package/dist/extensions/builtin/token-save/lexer.d.ts +11 -0
  909. package/dist/extensions/builtin/token-save/lexer.js +1 -0
  910. package/dist/extensions/builtin/token-save/recovery.d.ts +1 -0
  911. package/dist/extensions/builtin/token-save/recovery.js +1 -0
  912. package/dist/extensions/builtin/token-save/rewrite.d.ts +19 -0
  913. package/dist/extensions/builtin/token-save/rewrite.js +1 -0
  914. package/dist/extensions/builtin/token-save/runner.d.ts +14 -0
  915. package/dist/extensions/builtin/token-save/runner.js +3 -0
  916. package/dist/extensions/builtin/token-save/stream.d.ts +20 -0
  917. package/dist/extensions/builtin/token-save/stream.js +1 -0
  918. package/dist/extensions/builtin/token-save/toml-dsl.d.ts +25 -0
  919. package/dist/extensions/builtin/token-save/toml-dsl.js +3 -0
  920. package/dist/extensions/builtin/token-save/tracking.d.ts +24 -0
  921. package/dist/extensions/builtin/token-save/tracking.js +8 -0
  922. package/dist/extensions/optional/AGENT.md +11 -0
  923. package/dist/extensions/optional/export-html/index.d.ts +41 -0
  924. package/dist/extensions/optional/export-html/index.js +2 -0
  925. package/dist/extensions/optional/simplify/index.d.ts +35 -0
  926. package/dist/extensions/optional/simplify/index.js +77 -0
  927. package/dist/index.d.ts +9 -0
  928. package/dist/index.js +1 -0
  929. package/dist/main.d.ts +7 -0
  930. package/dist/main.js +41 -0
  931. package/dist/migrations.d.ts +30 -0
  932. package/dist/migrations.js +4 -0
  933. package/dist/models.d.ts +7 -0
  934. package/dist/models.js +1 -0
  935. package/dist/modes/acp/acp-mode.d.ts +30 -0
  936. package/dist/modes/acp/acp-mode.js +25 -0
  937. package/dist/modes/index.d.ts +14 -0
  938. package/dist/modes/index.js +1 -0
  939. package/dist/modes/interactive/agent-loop-status.d.ts +8 -0
  940. package/dist/modes/interactive/agent-loop-status.js +1 -0
  941. package/dist/modes/interactive/components/apikey-input.d.ts +10 -0
  942. package/dist/modes/interactive/components/apikey-input.js +3 -0
  943. package/dist/modes/interactive/components/armin.d.ts +39 -0
  944. package/dist/modes/interactive/components/armin.js +1 -0
  945. package/dist/modes/interactive/components/assistant-message.d.ts +21 -0
  946. package/dist/modes/interactive/components/assistant-message.js +1 -0
  947. package/dist/modes/interactive/components/attachments-bar.d.ts +37 -0
  948. package/dist/modes/interactive/components/attachments-bar.js +1 -0
  949. package/dist/modes/interactive/components/bash-execution.d.ts +40 -0
  950. package/dist/modes/interactive/components/bash-execution.js +13 -0
  951. package/dist/modes/interactive/components/bordered-loader.d.ts +21 -0
  952. package/dist/modes/interactive/components/bordered-loader.js +1 -0
  953. package/dist/modes/interactive/components/branch-summary-message.d.ts +21 -0
  954. package/dist/modes/interactive/components/branch-summary-message.js +3 -0
  955. package/dist/modes/interactive/components/buddy/pet-sprites.d.ts +31 -0
  956. package/dist/modes/interactive/components/buddy/pet-sprites.js +1 -0
  957. package/dist/modes/interactive/components/catui-loader.d.ts +55 -0
  958. package/dist/modes/interactive/components/catui-loader.js +1 -0
  959. package/dist/modes/interactive/components/compaction-summary-message.d.ts +21 -0
  960. package/dist/modes/interactive/components/compaction-summary-message.js +3 -0
  961. package/dist/modes/interactive/components/config-selector.d.ts +76 -0
  962. package/dist/modes/interactive/components/config-selector.js +1 -0
  963. package/dist/modes/interactive/components/countdown-timer.d.ts +19 -0
  964. package/dist/modes/interactive/components/countdown-timer.js +1 -0
  965. package/dist/modes/interactive/components/custom-editor.d.ts +37 -0
  966. package/dist/modes/interactive/components/custom-editor.js +1 -0
  967. package/dist/modes/interactive/components/custom-message.d.ts +26 -0
  968. package/dist/modes/interactive/components/custom-message.js +2 -0
  969. package/dist/modes/interactive/components/daxnuts.d.ts +28 -0
  970. package/dist/modes/interactive/components/daxnuts.js +1 -0
  971. package/dist/modes/interactive/components/diff.d.ts +17 -0
  972. package/dist/modes/interactive/components/diff.js +3 -0
  973. package/dist/modes/interactive/components/dynamic-border.d.ts +20 -0
  974. package/dist/modes/interactive/components/dynamic-border.js +1 -0
  975. package/dist/modes/interactive/components/editor-buddy-layout.d.ts +17 -0
  976. package/dist/modes/interactive/components/editor-buddy-layout.js +1 -0
  977. package/dist/modes/interactive/components/extension-editor.d.ts +25 -0
  978. package/dist/modes/interactive/components/extension-editor.js +1 -0
  979. package/dist/modes/interactive/components/extension-input.d.ts +29 -0
  980. package/dist/modes/interactive/components/extension-input.js +2 -0
  981. package/dist/modes/interactive/components/extension-selector.d.ts +32 -0
  982. package/dist/modes/interactive/components/extension-selector.js +2 -0
  983. package/dist/modes/interactive/components/footer.d.ts +34 -0
  984. package/dist/modes/interactive/components/footer.js +1 -0
  985. package/dist/modes/interactive/components/index.d.ts +44 -0
  986. package/dist/modes/interactive/components/index.js +1 -0
  987. package/dist/modes/interactive/components/keybinding-hints.d.ts +46 -0
  988. package/dist/modes/interactive/components/keybinding-hints.js +1 -0
  989. package/dist/modes/interactive/components/login-dialog.d.ts +47 -0
  990. package/dist/modes/interactive/components/login-dialog.js +1 -0
  991. package/dist/modes/interactive/components/memory-stats.d.ts +14 -0
  992. package/dist/modes/interactive/components/memory-stats.js +2 -0
  993. package/dist/modes/interactive/components/model-selector.d.ts +59 -0
  994. package/dist/modes/interactive/components/model-selector.js +2 -0
  995. package/dist/modes/interactive/components/notification-queue.d.ts +49 -0
  996. package/dist/modes/interactive/components/notification-queue.js +1 -0
  997. package/dist/modes/interactive/components/oauth-selector.d.ts +30 -0
  998. package/dist/modes/interactive/components/oauth-selector.js +1 -0
  999. package/dist/modes/interactive/components/persona-selector.d.ts +24 -0
  1000. package/dist/modes/interactive/components/persona-selector.js +1 -0
  1001. package/dist/modes/interactive/components/plan-progress-panel.d.ts +24 -0
  1002. package/dist/modes/interactive/components/plan-progress-panel.js +1 -0
  1003. package/dist/modes/interactive/components/provider-selector.d.ts +25 -0
  1004. package/dist/modes/interactive/components/provider-selector.js +1 -0
  1005. package/dist/modes/interactive/components/raw-text.d.ts +19 -0
  1006. package/dist/modes/interactive/components/raw-text.js +3 -0
  1007. package/dist/modes/interactive/components/scoped-models-selector.d.ts +54 -0
  1008. package/dist/modes/interactive/components/scoped-models-selector.js +1 -0
  1009. package/dist/modes/interactive/components/session-selector-search.d.ts +28 -0
  1010. package/dist/modes/interactive/components/session-selector-search.js +1 -0
  1011. package/dist/modes/interactive/components/session-selector.d.ts +100 -0
  1012. package/dist/modes/interactive/components/session-selector.js +2 -0
  1013. package/dist/modes/interactive/components/settings-selector.d.ts +77 -0
  1014. package/dist/modes/interactive/components/settings-selector.js +1 -0
  1015. package/dist/modes/interactive/components/show-images-selector.d.ts +15 -0
  1016. package/dist/modes/interactive/components/show-images-selector.js +1 -0
  1017. package/dist/modes/interactive/components/skill-invocation-message.d.ts +22 -0
  1018. package/dist/modes/interactive/components/skill-invocation-message.js +3 -0
  1019. package/dist/modes/interactive/components/soul-stats.d.ts +15 -0
  1020. package/dist/modes/interactive/components/soul-stats.js +2 -0
  1021. package/dist/modes/interactive/components/sub-agent-panel.d.ts +24 -0
  1022. package/dist/modes/interactive/components/sub-agent-panel.js +1 -0
  1023. package/dist/modes/interactive/components/task-status-panel.d.ts +36 -0
  1024. package/dist/modes/interactive/components/task-status-panel.js +1 -0
  1025. package/dist/modes/interactive/components/theme-selector.d.ts +16 -0
  1026. package/dist/modes/interactive/components/theme-selector.js +1 -0
  1027. package/dist/modes/interactive/components/thinking-selector.d.ts +16 -0
  1028. package/dist/modes/interactive/components/thinking-selector.js +1 -0
  1029. package/dist/modes/interactive/components/tool-execution.d.ts +80 -0
  1030. package/dist/modes/interactive/components/tool-execution.js +58 -0
  1031. package/dist/modes/interactive/components/tree-selector.d.ts +73 -0
  1032. package/dist/modes/interactive/components/tree-selector.js +1 -0
  1033. package/dist/modes/interactive/components/user-message-selector.d.ts +35 -0
  1034. package/dist/modes/interactive/components/user-message-selector.js +1 -0
  1035. package/dist/modes/interactive/components/user-message.d.ts +13 -0
  1036. package/dist/modes/interactive/components/user-message.js +1 -0
  1037. package/dist/modes/interactive/components/visual-truncate.d.ts +29 -0
  1038. package/dist/modes/interactive/components/visual-truncate.js +1 -0
  1039. package/dist/modes/interactive/controllers/auth-provider-config-controller.d.ts +64 -0
  1040. package/dist/modes/interactive/controllers/auth-provider-config-controller.js +1 -0
  1041. package/dist/modes/interactive/controllers/extension-ui/custom-overlay-host.d.ts +38 -0
  1042. package/dist/modes/interactive/controllers/extension-ui/custom-overlay-host.js +1 -0
  1043. package/dist/modes/interactive/controllers/extension-ui/editor-component-adapter.d.ts +37 -0
  1044. package/dist/modes/interactive/controllers/extension-ui/editor-component-adapter.js +1 -0
  1045. package/dist/modes/interactive/controllers/extension-ui/persistent-surface-registry.d.ts +53 -0
  1046. package/dist/modes/interactive/controllers/extension-ui/persistent-surface-registry.js +1 -0
  1047. package/dist/modes/interactive/controllers/extension-ui/prompt-host.d.ts +52 -0
  1048. package/dist/modes/interactive/controllers/extension-ui/prompt-host.js +2 -0
  1049. package/dist/modes/interactive/controllers/image-pipeline-controller.d.ts +106 -0
  1050. package/dist/modes/interactive/controllers/image-pipeline-controller.js +1 -0
  1051. package/dist/modes/interactive/controllers/input-submit-controller.d.ts +80 -0
  1052. package/dist/modes/interactive/controllers/input-submit-controller.js +2 -0
  1053. package/dist/modes/interactive/controllers/interrupt-controller.d.ts +75 -0
  1054. package/dist/modes/interactive/controllers/interrupt-controller.js +1 -0
  1055. package/dist/modes/interactive/controllers/model-overlay-controller.d.ts +127 -0
  1056. package/dist/modes/interactive/controllers/model-overlay-controller.js +3 -0
  1057. package/dist/modes/interactive/controllers/self-update-controller.d.ts +71 -0
  1058. package/dist/modes/interactive/controllers/self-update-controller.js +24 -0
  1059. package/dist/modes/interactive/controllers/settings-overlay-controller.d.ts +56 -0
  1060. package/dist/modes/interactive/controllers/settings-overlay-controller.js +2 -0
  1061. package/dist/modes/interactive/controllers/slash-dispatcher-controller.d.ts +74 -0
  1062. package/dist/modes/interactive/controllers/slash-dispatcher-controller.js +1 -0
  1063. package/dist/modes/interactive/controllers/stream-render-controller.d.ts +110 -0
  1064. package/dist/modes/interactive/controllers/stream-render-controller.js +2 -0
  1065. package/dist/modes/interactive/controllers/tree-overlay-controller.d.ts +55 -0
  1066. package/dist/modes/interactive/controllers/tree-overlay-controller.js +1 -0
  1067. package/dist/modes/interactive/footer-data-provider.d.ts +32 -0
  1068. package/dist/modes/interactive/footer-data-provider.js +1 -0
  1069. package/dist/modes/interactive/interactive-mode.d.ts +303 -0
  1070. package/dist/modes/interactive/interactive-mode.js +119 -0
  1071. package/dist/modes/interactive/services/tips.d.ts +20 -0
  1072. package/dist/modes/interactive/services/tips.js +1 -0
  1073. package/dist/modes/interactive/slash-command-arguments.d.ts +28 -0
  1074. package/dist/modes/interactive/slash-command-arguments.js +1 -0
  1075. package/dist/modes/interactive/state/interactive-state.d.ts +74 -0
  1076. package/dist/modes/interactive/state/interactive-state.js +1 -0
  1077. package/dist/modes/interactive/theme/dark.json +85 -0
  1078. package/dist/modes/interactive/theme/light.json +84 -0
  1079. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  1080. package/dist/modes/interactive/theme/theme.d.ts +81 -0
  1081. package/dist/modes/interactive/theme/theme.js +16 -0
  1082. package/dist/modes/interactive/theme/warm.json +81 -0
  1083. package/dist/modes/print-mode.d.ts +38 -0
  1084. package/dist/modes/print-mode.js +2 -0
  1085. package/dist/modes/rpc/rpc-client.d.ts +221 -0
  1086. package/dist/modes/rpc/rpc-client.js +2 -0
  1087. package/dist/modes/rpc/rpc-mode.d.ts +14 -0
  1088. package/dist/modes/rpc/rpc-mode.js +1 -0
  1089. package/dist/modes/rpc/rpc-types.d.ts +449 -0
  1090. package/dist/modes/rpc/rpc-types.js +0 -0
  1091. package/dist/modes/utils/agent-loop-result-format.d.ts +10 -0
  1092. package/dist/modes/utils/agent-loop-result-format.js +1 -0
  1093. package/dist/modes/utils/clipboard-image.d.ts +10 -0
  1094. package/dist/modes/utils/clipboard-image.js +1 -0
  1095. package/dist/modes/utils/clipboard-native.d.ts +11 -0
  1096. package/dist/modes/utils/clipboard-native.js +1 -0
  1097. package/dist/modes/utils/clipboard.d.ts +1 -0
  1098. package/dist/modes/utils/clipboard.js +1 -0
  1099. package/dist/modes/utils/image-convert.d.ts +8 -0
  1100. package/dist/modes/utils/image-convert.js +1 -0
  1101. package/dist/modes/utils/image-resize.d.ts +41 -0
  1102. package/dist/modes/utils/image-resize.js +1 -0
  1103. package/dist/node_modules/@catui/agent-core/dist/agent-loop-continuations.js +1 -0
  1104. package/dist/node_modules/@catui/agent-core/dist/agent-loop-stream-events.js +1 -0
  1105. package/dist/node_modules/@catui/agent-core/dist/agent-loop-tool-results.js +3 -0
  1106. package/dist/node_modules/@catui/agent-core/dist/agent-loop-tool-summaries.js +1 -0
  1107. package/dist/node_modules/@catui/agent-core/dist/agent-loop.js +4 -0
  1108. package/dist/node_modules/@catui/agent-core/dist/agent-run-result.js +1 -0
  1109. package/dist/node_modules/@catui/agent-core/dist/agent.js +1 -0
  1110. package/dist/node_modules/@catui/agent-core/dist/errors.js +1 -0
  1111. package/dist/node_modules/@catui/agent-core/dist/index.js +1 -0
  1112. package/dist/node_modules/@catui/agent-core/dist/proxy.js +2 -0
  1113. package/dist/node_modules/@catui/agent-core/dist/structured-adaptive-agent-loop.js +2 -0
  1114. package/dist/node_modules/@catui/agent-core/dist/structured-adaptive-streaming-tool-executor.js +1 -0
  1115. package/dist/node_modules/@catui/agent-core/dist/structured-adaptive-tool-orchestration.js +3 -0
  1116. package/dist/node_modules/@catui/agent-core/dist/types.js +1 -0
  1117. package/dist/node_modules/@catui/agent-core/package.json +28 -0
  1118. package/dist/node_modules/@catui/ai/dist/api-registry.js +1 -0
  1119. package/dist/node_modules/@catui/ai/dist/cli.js +21 -0
  1120. package/dist/node_modules/@catui/ai/dist/config-path.js +1 -0
  1121. package/dist/node_modules/@catui/ai/dist/debug-logger.js +4 -0
  1122. package/dist/node_modules/@catui/ai/dist/env-api-keys.js +1 -0
  1123. package/dist/node_modules/@catui/ai/dist/env.js +1 -0
  1124. package/dist/node_modules/@catui/ai/dist/events.js +1 -0
  1125. package/dist/node_modules/@catui/ai/dist/index.js +1 -0
  1126. package/dist/node_modules/@catui/ai/dist/json.js +1 -0
  1127. package/dist/node_modules/@catui/ai/dist/models.generated.js +1 -0
  1128. package/dist/node_modules/@catui/ai/dist/models.js +1 -0
  1129. package/dist/node_modules/@catui/ai/dist/overflow.js +1 -0
  1130. package/dist/node_modules/@catui/ai/dist/providers/amazon-bedrock.js +1 -0
  1131. package/dist/node_modules/@catui/ai/dist/providers/anthropic.js +2 -0
  1132. package/dist/node_modules/@catui/ai/dist/providers/azure-openai-responses.js +1 -0
  1133. package/dist/node_modules/@catui/ai/dist/providers/github-copilot-headers.js +1 -0
  1134. package/dist/node_modules/@catui/ai/dist/providers/google-gemini-cli.js +2 -0
  1135. package/dist/node_modules/@catui/ai/dist/providers/google-shared.js +2 -0
  1136. package/dist/node_modules/@catui/ai/dist/providers/google-vertex.js +1 -0
  1137. package/dist/node_modules/@catui/ai/dist/providers/google.js +1 -0
  1138. package/dist/node_modules/@catui/ai/dist/providers/openai-codex-responses.js +7 -0
  1139. package/dist/node_modules/@catui/ai/dist/providers/openai-completions.js +6 -0
  1140. package/dist/node_modules/@catui/ai/dist/providers/openai-responses-shared.js +10 -0
  1141. package/dist/node_modules/@catui/ai/dist/providers/openai-responses.js +1 -0
  1142. package/dist/node_modules/@catui/ai/dist/providers/register-builtins.js +1 -0
  1143. package/dist/node_modules/@catui/ai/dist/providers/simple-options.js +1 -0
  1144. package/dist/node_modules/@catui/ai/dist/providers/transform-messages.js +1 -0
  1145. package/dist/node_modules/@catui/ai/dist/registry.js +1 -0
  1146. package/dist/node_modules/@catui/ai/dist/schema.js +1 -0
  1147. package/dist/node_modules/@catui/ai/dist/stream.js +1 -0
  1148. package/dist/node_modules/@catui/ai/dist/types.js +0 -0
  1149. package/dist/node_modules/@catui/ai/dist/utils/event-stream-types.js +0 -0
  1150. package/dist/node_modules/@catui/ai/dist/utils/event-stream.js +1 -0
  1151. package/dist/node_modules/@catui/ai/dist/utils/http-proxy.js +1 -0
  1152. package/dist/node_modules/@catui/ai/dist/utils/json-parse.js +1 -0
  1153. package/dist/node_modules/@catui/ai/dist/utils/oauth/anthropic.js +1 -0
  1154. package/dist/node_modules/@catui/ai/dist/utils/oauth/decode-credential.js +1 -0
  1155. package/dist/node_modules/@catui/ai/dist/utils/oauth/github-copilot.js +1 -0
  1156. package/dist/node_modules/@catui/ai/dist/utils/oauth/google-antigravity.js +1 -0
  1157. package/dist/node_modules/@catui/ai/dist/utils/oauth/google-gemini-cli.js +1 -0
  1158. package/dist/node_modules/@catui/ai/dist/utils/oauth/index.js +1 -0
  1159. package/dist/node_modules/@catui/ai/dist/utils/oauth/openai-codex.js +11 -0
  1160. package/dist/node_modules/@catui/ai/dist/utils/oauth/pkce.js +1 -0
  1161. package/dist/node_modules/@catui/ai/dist/utils/oauth/types.js +0 -0
  1162. package/dist/node_modules/@catui/ai/dist/utils/overflow.js +1 -0
  1163. package/dist/node_modules/@catui/ai/dist/utils/sanitize-unicode.js +1 -0
  1164. package/dist/node_modules/@catui/ai/dist/utils/typebox-helpers.js +1 -0
  1165. package/dist/node_modules/@catui/ai/dist/utils/validation.js +6 -0
  1166. package/dist/node_modules/@catui/ai/package.json +106 -0
  1167. package/dist/node_modules/@catui/tui/dist/autocomplete.js +2 -0
  1168. package/dist/node_modules/@catui/tui/dist/components/box.js +1 -0
  1169. package/dist/node_modules/@catui/tui/dist/components/cached-container.js +1 -0
  1170. package/dist/node_modules/@catui/tui/dist/components/cancellable-loader.js +1 -0
  1171. package/dist/node_modules/@catui/tui/dist/components/editor.js +21 -0
  1172. package/dist/node_modules/@catui/tui/dist/components/image.js +1 -0
  1173. package/dist/node_modules/@catui/tui/dist/components/input.js +2 -0
  1174. package/dist/node_modules/@catui/tui/dist/components/loader.js +1 -0
  1175. package/dist/node_modules/@catui/tui/dist/components/markdown.js +7 -0
  1176. package/dist/node_modules/@catui/tui/dist/components/select-list.js +1 -0
  1177. package/dist/node_modules/@catui/tui/dist/components/settings-list.js +1 -0
  1178. package/dist/node_modules/@catui/tui/dist/components/spacer.js +1 -0
  1179. package/dist/node_modules/@catui/tui/dist/components/text.js +1 -0
  1180. package/dist/node_modules/@catui/tui/dist/components/truncated-text.js +2 -0
  1181. package/dist/node_modules/@catui/tui/dist/editor-component.js +0 -0
  1182. package/dist/node_modules/@catui/tui/dist/fuzzy.js +1 -0
  1183. package/dist/node_modules/@catui/tui/dist/index.js +1 -0
  1184. package/dist/node_modules/@catui/tui/dist/keybindings.js +1 -0
  1185. package/dist/node_modules/@catui/tui/dist/keys.js +5 -0
  1186. package/dist/node_modules/@catui/tui/dist/kill-ring.js +1 -0
  1187. package/dist/node_modules/@catui/tui/dist/stdin-buffer.js +1 -0
  1188. package/dist/node_modules/@catui/tui/dist/terminal-image.js +1 -0
  1189. package/dist/node_modules/@catui/tui/dist/terminal.js +1 -0
  1190. package/dist/node_modules/@catui/tui/dist/tui.js +12 -0
  1191. package/dist/node_modules/@catui/tui/dist/undo-stack.js +1 -0
  1192. package/dist/node_modules/@catui/tui/dist/utils.js +2 -0
  1193. package/dist/node_modules/@catui/tui/package.json +37 -0
  1194. package/dist/packages/mem-core/src/store.d.ts +21 -0
  1195. package/dist/packages/mem-core/src/store.js +1 -0
  1196. package/dist/packages/mem-core/src/types.d.ts +329 -0
  1197. package/dist/packages/mem-core/src/types.js +0 -0
  1198. package/dist/packages/protocol/src/commands.d.ts +33 -0
  1199. package/dist/packages/protocol/src/commands.js +0 -0
  1200. package/dist/packages/protocol/src/flags.d.ts +20 -0
  1201. package/dist/packages/protocol/src/flags.js +0 -0
  1202. package/dist/packages/protocol/src/hooks.d.ts +17 -0
  1203. package/dist/packages/protocol/src/hooks.js +0 -0
  1204. package/dist/packages/protocol/src/index.d.ts +15 -0
  1205. package/dist/packages/protocol/src/index.js +1 -0
  1206. package/dist/packages/protocol/src/lifecycle.d.ts +61 -0
  1207. package/dist/packages/protocol/src/lifecycle.js +0 -0
  1208. package/dist/packages/protocol/src/tools.d.ts +77 -0
  1209. package/dist/packages/protocol/src/tools.js +0 -0
  1210. package/dist/packages/soul-core/src/config.d.ts +20 -0
  1211. package/dist/packages/soul-core/src/config.js +1 -0
  1212. package/dist/packages/soul-core/src/diagnostics.d.ts +23 -0
  1213. package/dist/packages/soul-core/src/diagnostics.js +1 -0
  1214. package/dist/packages/soul-core/src/evolution.d.ts +75 -0
  1215. package/dist/packages/soul-core/src/evolution.js +1 -0
  1216. package/dist/packages/soul-core/src/index.d.ts +13 -0
  1217. package/dist/packages/soul-core/src/index.js +1 -0
  1218. package/dist/packages/soul-core/src/injection.d.ts +35 -0
  1219. package/dist/packages/soul-core/src/injection.js +8 -0
  1220. package/dist/packages/soul-core/src/manager.d.ts +101 -0
  1221. package/dist/packages/soul-core/src/manager.js +1 -0
  1222. package/dist/packages/soul-core/src/store.d.ts +62 -0
  1223. package/dist/packages/soul-core/src/store.js +1 -0
  1224. package/dist/packages/soul-core/src/types.d.ts +317 -0
  1225. package/dist/packages/soul-core/src/types.js +0 -0
  1226. package/dist/public-config.d.ts +12 -0
  1227. package/dist/public-config.js +1 -0
  1228. package/dist/runtime.d.ts +9 -0
  1229. package/dist/runtime.js +1 -0
  1230. package/dist/session-compaction.d.ts +7 -0
  1231. package/dist/session-compaction.js +1 -0
  1232. package/dist/session.d.ts +7 -0
  1233. package/dist/session.js +1 -0
  1234. package/dist/skills.d.ts +7 -0
  1235. package/dist/skills.js +1 -0
  1236. package/dist/tools.d.ts +7 -0
  1237. package/dist/tools.js +1 -0
  1238. package/dist/utils/changelog.d.ts +20 -0
  1239. package/dist/utils/changelog.js +4 -0
  1240. package/dist/utils/diagnostics.d.ts +37 -0
  1241. package/dist/utils/diagnostics.js +1 -0
  1242. package/dist/utils/frontmatter.d.ts +7 -0
  1243. package/dist/utils/frontmatter.js +4 -0
  1244. package/dist/utils/git.d.ts +25 -0
  1245. package/dist/utils/git.js +1 -0
  1246. package/dist/utils/mime.d.ts +1 -0
  1247. package/dist/utils/mime.js +1 -0
  1248. package/dist/utils/photon.d.ts +6 -0
  1249. package/dist/utils/photon.js +1 -0
  1250. package/dist/utils/startup-profiler.d.ts +87 -0
  1251. package/dist/utils/startup-profiler.js +2 -0
  1252. package/docs/codex-goal-command-impl.md +1055 -0
  1253. package/docs/codex-goal-vs-grub.md +500 -0
  1254. package/docs/custom-provider.md +27 -0
  1255. package/docs/extensions.md +27 -0
  1256. package/docs/keybindings.md +27 -0
  1257. package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/200/273/347/273/223.md" +251 -0
  1258. package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/212/245/345/221/212.md" +123 -0
  1259. package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210.md" +1222 -0
  1260. package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/256/236/347/216/260/346/212/245/345/221/212.md" +158 -0
  1261. package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/257/271/346/257/224/345/210/206/346/236/220.md" +128 -0
  1262. package/docs/loop /351/207/215/346/236/204/350/256/241/345/210/222.md" +321 -0
  1263. package/docs/loop-usage-examples.md +215 -0
  1264. package/docs/models.md +27 -0
  1265. package/docs/packages.md +27 -0
  1266. package/docs/pi-design-philosophy.md +457 -0
  1267. package/docs/planmode.md +1987 -0
  1268. package/docs/prompt-templates.md +27 -0
  1269. package/docs/providers.md +27 -0
  1270. package/docs/sdk.md +27 -0
  1271. package/docs/skills.md +27 -0
  1272. package/docs/themes.md +27 -0
  1273. package/docs/tui.md +27 -0
  1274. package/package.json +191 -0
@@ -0,0 +1,25 @@
1
+ var v=Object.defineProperty;var r=(t,e)=>v(t,"name",{value:e,configurable:!0});import*as g from"@agentclientprotocol/sdk";import{BUILTIN_SLASH_COMMANDS as L}from"../../core/slash-commands.js";import{SessionManager as h}from"../../core/session/session-manager.js";import{randomUUID as U}from"node:crypto";import{Readable as E,Writable as F}from"node:stream";import{formatLoopPolicySummary as N,formatLoopTransitionHistory as R,formatLoopTransitionSummary as j}from"../utils/agent-loop-result-format.js";import{theme as P}from"../interactive/theme/theme.js";const A=[{id:"ask",name:"Ask before write",description:"Request permission before mutating files or running commands."},{id:"read-only",name:"Read-only",description:"Disable editing tools and command execution."},{id:"bypass",name:"Bypass permissions",description:"Allow normal coding actions without permission prompts."}],O=new Set(["edit","write","bash"]),C=new Set(L.map(t=>t.name.toLowerCase())),S=new Set(["compact","agent-loop","model","name","new","reload","resume","session","thinking","usage"]),W=new Map([["compact","Optional compaction instructions"],["agent-loop","standard or weak-model-compatible"],["model","provider/model or model id"],["name","New session name"],["resume","Session id or title"],["thinking","Thinking level"]]);function $(t){switch(t){case"read":return"read";case"edit":return"edit";case"write":return"edit";case"bash":return"execute";case"grep":return"search";case"find":return"search";case"ls":return"read";default:return"other"}}r($,"mapToolKind");function w(){return U()}r(w,"createMessageId");function p(t){return{type:"text",text:t}}r(p,"textToContent");function B(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}r(B,"asText");function M(t){if(t&&typeof t=="object"&&"content"in t&&Array.isArray(t.content)){const e=t.content.filter(s=>s?.type==="text"&&typeof s.text=="string").map(s=>s.text).join(`
2
+ `);if(e.trim())return e}return B(t)}r(M,"toolPayloadToText");function m(t){return t.trim().replace(/^\/+/,"")}r(m,"normalizeAcpCommandName");function x(t){const e=m(t).toLowerCase();return e?C.has(e)?S.has(e):!0:!1}r(x,"isAdvertisableAcpCommand");function _(t){const e=m(t).toLowerCase(),s=W.get(e);if(s)return{hint:s};if(!S.has(e))return{hint:"Enter command arguments"}}r(_,"createAvailableCommandInput");function k(t){const e=new Set;return t.filter(s=>{const n=m(s.name).toLowerCase();return!x(n)||!n||e.has(n)?!1:(e.add(n),!0)}).map(s=>({name:m(s.name),description:s.description??`Run /${s.name}`,input:_(s.name)}))}r(k,"buildAcpAvailableCommands");function D(t){return k(t.getSlashCommands())}r(D,"createSlashCommandsUpdate");function T(t){queueMicrotask(()=>{Promise.resolve().then(t).catch(e=>{const s=e instanceof Error?e.message:String(e);process.stderr.write(`[acp_session_bootstrap_error] ${s}
3
+ `)})})}r(T,"deferAcpNotification");function H(t){return t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(1)}s`}r(H,"formatAcpDuration");function I(t,e,s=`${e}s`){return`${t} ${t===1?e:s}`}r(I,"plural");function b(t){if(!t)return[];const e=[`Last loop: ${t.stopReason}, ${I(t.turnCount,"turn")}, ${I(t.toolCallCount,"tool")}, ${H(t.durationMs)}`];t.loopFramework&&e.push(`Loop framework: ${t.loopFramework}`);const s=N(t.loopPolicy);s&&e.push(`Loop policy: ${s}`);const n=R(t.transitions);return n?e.push(`Loop transitions: ${n}`):t.lastTransition&&e.push(`Loop transition: ${j(t.lastTransition)}`),t.permissionDenialCount&&t.permissionDenialCount>0&&e.push(`Tool denials: ${t.permissionDenialCount}`),(t.errorSubtype||t.errorMessage)&&e.push(`Loop error: ${t.errorSubtype??t.errorMessage}`),e}r(b,"formatAcpLoopResultLines");function y(t){return!("content"in t)||!Array.isArray(t.content)?"":t.content.map(e=>typeof e=="string"?e:"type"in e&&e.type==="text"?e.text:"").filter(e=>e.length>0).join(`
4
+ `)}r(y,"getMessageText");function q(t){return typeof t=="object"&&t!==null&&"role"in t&&t.role==="custom"&&"display"in t&&t.display===!0}r(q,"isVisibleCustomMessage");function z(t){return!!(O.has(t.name)||/^mcp_.*(?:use_figma|generate_figma_design)$/i.test(t.name))}r(z,"isMutatingTool");function V(t){throw new Error(`${t} is not available in ACP mode yet. In Zed or other ACP clients, use argument-driven commands when available, or run this command in the terminal Catui UI.`)}r(V,"unsupportedAcpUi");function J(t){return t.toFixed(4)}r(J,"formatMoney");function K(){return{__nonInteractive:!0,select:r(async t=>{const e=t?.choices??t?.options??[];return e[0]?.value??e[0]??void 0},"select"),confirm:r(async t=>t?.default??!0,"confirm"),input:r(async t=>t?.default??"","input"),editor:r(async t=>t?.default??"","editor"),openExternalEditor:r(async()=>!1,"openExternalEditor"),notify(t,e){process.stderr.write(`[${e??"info"}] ${t}
5
+ `)},setStatus(){},setWorkingMessage(){},setWidget(){},setFooter(){},setHeader(){},setTitle(){},setEditorComponent(){},pasteToEditor(){},setEditorText(){},getEditorText:r(()=>"","getEditorText"),async custom(){return V("Custom interactive UI")},onTerminalInput(){return()=>{}},get theme(){return P},getAllThemes(){return[]},getTheme(t){},setTheme(t){return{success:!1,error:"Theme not supported in ACP mode"}},getToolsExpanded(){return!1},setToolsExpanded(){}}}r(K,"createAcpExtensionUIContext");class Q{static{r(this,"CatuiAgent")}connection;session;sessions=new Map;currentSessionId;createSessionForCwd;extensionBindings;ready;constructor(e,s,n={}){this.connection=e,this.session=s,this.createSessionForCwd=n.createSessionForCwd,this.extensionBindings={uiContext:K(),commandContextActions:{waitForIdle:r(()=>this.session.agent.waitForIdle(),"waitForIdle"),newSession:r(async i=>({cancelled:!await this.session.newSession(i)}),"newSession"),fork:r(async i=>({cancelled:(await this.session.fork(i)).cancelled}),"fork"),navigateTree:r(async(i,d)=>({cancelled:(await this.session.navigateTree(i,d)).cancelled}),"navigateTree"),switchSession:r(async i=>({cancelled:!await this.session.switchSession(i)}),"switchSession"),reload:r(async()=>{await this.session.reload()},"reload")},shutdownHandler:r(()=>{(async()=>(await this.session.extensionRunner?.emit({type:"session_shutdown"}),process.exit(0)))()},"shutdownHandler"),onError:r(i=>{process.stderr.write(`[extension_error] ${i.extensionPath}: ${i.error}
6
+ `)},"onError")},this.ready=this.bindSession(this.session)}async initialize(e){return await this.ready,{protocolVersion:g.PROTOCOL_VERSION,agentInfo:{name:"Catui",version:"acp"},agentCapabilities:{loadSession:!0,sessionCapabilities:{list:{}}}}}async newSession(e){await this.ready,await this.ensureWorkspaceSession(e.cwd),await this.session.newSession();const s=this.session.sessionManager.getSessionId(),n=this.createStateFromCurrentSession(s,e.cwd);return this.sessions.set(s,n),this.currentSessionId=s,await this.applySessionMode(n),this.scheduleSessionBootstrap(s),{sessionId:s,models:this.buildModelState(),modes:this.buildModeState(n.modeId)}}async loadSession(e){await this.ready;const s=await this.findSessionInfo(e.sessionId,e.cwd);if(!s)throw new Error(`Session ${e.sessionId} not found`);if(await this.ensureWorkspaceSession(s.cwd||e.cwd),!await this.session.switchSession(s.path))throw new Error(`Failed to load session ${e.sessionId}`);const i=this.sessions.get(e.sessionId),d={sessionId:e.sessionId,sessionFile:s.path,cwd:s.cwd||e.cwd,title:s.name||s.firstMessage||i?.title,modeId:i?.modeId??"ask",abortController:null,allowAllMutations:i?.allowAllMutations??!1,rejectAllMutations:i?.rejectAllMutations??!1};return this.sessions.set(e.sessionId,d),this.currentSessionId=e.sessionId,await this.applySessionMode(d),this.scheduleSessionBootstrap(e.sessionId,{replayHistory:!0}),{models:this.buildModelState(),modes:this.buildModeState(d.modeId)}}async listSessions(e){await this.ready;const s=e.cwd?await h.list(e.cwd):await h.listAll(),n=new Map;for(const i of s)n.set(i.id,{sessionId:i.id,cwd:i.cwd,title:i.name||i.firstMessage||void 0,updatedAt:i.modified.toISOString()});for(const i of this.sessions.values())e.cwd&&i.cwd!==e.cwd||n.has(i.sessionId)||n.set(i.sessionId,{sessionId:i.sessionId,cwd:i.cwd,title:i.title,updatedAt:new Date().toISOString()});return{sessions:Array.from(n.values())}}async authenticate(e){await this.ready}async prompt(e){await this.ready;const s=this.requireSession(e.sessionId);await this.activateSession(s),s.abortController?.abort(),s.abortController=new AbortController;const n=e.prompt.filter(o=>"text"in o&&typeof o.text=="string").map(o=>o.text).join(`
7
+ `);if(await this.handleBuiltinSlashCommand(e.sessionId,s,n))return{stopReason:"end_turn"};const d=this.session.subscribe(o=>{this.mapEventToAcp(e.sessionId,o)});try{return await this.session.tryExecuteExtensionCommand(n)?(await this.emitSessionMetadata(s),{stopReason:"end_turn"}):(await this.session.prompt(n,{source:"acp"}),await this.emitSessionMetadata(s),{stopReason:"end_turn"})}catch(o){if(s.abortController.signal.aborted)return{stopReason:"cancelled"};const a=o instanceof Error?o.message:String(o);return process.stderr.write(`[error] ${a}
8
+ `),await this.sendAssistantText(e.sessionId,`Command failed: ${a}`),{stopReason:"end_turn"}}finally{d(),s.abortController=null}}async cancel(e){await this.ready;const s=this.sessions.get(e.sessionId);s&&(await this.activateSession(s),s.abortController?.abort(),await this.session.abort())}async setSessionMode(e){await this.ready;const s=this.requireSession(e.sessionId);if(!A.some(n=>n.id===e.modeId))throw new Error(`Unknown ACP mode: ${e.modeId}`);return s.modeId=e.modeId,s.allowAllMutations=!1,s.rejectAllMutations=!1,await this.activateSession(s),await this.connection.sessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"current_mode_update",currentModeId:s.modeId}}),{}}async unstable_setSessionModel(e){await this.ready;const s=this.requireSession(e.sessionId);await this.activateSession(s);const n=this.parseAcpModelId(e.modelId);if(!n)throw new Error(`Unknown model: ${e.modelId}`);return await this.session.setModel(n),await this.emitSessionMetadata(s),{}}requireSession(e){const s=this.sessions.get(e);if(!s)throw new Error(`Session ${e} not found`);return s}createStateFromCurrentSession(e,s){const n=this.session.sessionManager.getSessionFile();return{sessionId:e,sessionFile:n,cwd:s,title:this.getCurrentSessionTitle(),modeId:"ask",abortController:null,allowAllMutations:!1,rejectAllMutations:!1}}getCurrentSessionTitle(){return this.session.sessionManager.getSessionName()||this.session.agent.state.messages.find(e=>e.role==="user")?y(this.session.agent.state.messages.find(e=>e.role==="user")).slice(0,80):void 0}async findSessionInfo(e,s){const n=this.sessions.get(e);if(n?.sessionFile)return{id:n.sessionId,path:n.sessionFile,cwd:n.cwd,name:n.title,firstMessage:""};const d=(await h.list(s)).find(a=>a.id===e);return d||(await h.listAll()).find(a=>a.id===e)}async findSessionByQuery(e,s){const n=e.trim().toLowerCase();if(!n)return;const i=await h.list(s),d=await h.listAll();return[...i,...d].filter((a,l,c)=>c.findIndex(u=>u.id===a.id)===l).find(a=>{const l=(a.name||a.firstMessage||"").toLowerCase();return a.id.toLowerCase()===n||a.id.toLowerCase().startsWith(n)||l.includes(n)})}buildModeState(e){return{availableModes:A,currentModeId:e}}buildModelState(){const e=this.session.modelRegistry.getAvailable(),s=this.session.model,n=e.map(i=>({modelId:this.toAcpModelId(i),name:i.name||`${i.provider}/${i.id}`,description:`${i.provider} / ${i.id}`}));return{availableModels:n,currentModelId:s?this.toAcpModelId(s):n[0]?.modelId??"unknown/unknown"}}toAcpModelId(e){return`${e.provider}/${e.id}`}parseAcpModelId(e){const s=e.indexOf("/");if(s===-1)return;const n=e.slice(0,s),i=e.slice(s+1);return this.session.modelRegistry.find(n,i)}async emitAvailableCommands(e){await this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"available_commands_update",availableCommands:D(this.session)}})}async emitSessionMetadata(e){e.title=this.getCurrentSessionTitle()??e.title,await this.connection.sessionUpdate({sessionId:e.sessionId,update:{sessionUpdate:"session_info_update",title:e.title??null,updatedAt:new Date().toISOString()}})}scheduleSessionBootstrap(e,s={}){T(async()=>{const n=this.sessions.get(e);n&&(await this.emitSessionMetadata(n),await this.emitAvailableCommands(e),s.replayHistory&&await this.replayHistory(e))})}async replayHistory(e){for(const s of this.session.agent.state.messages){if(s.role!=="user"&&s.role!=="assistant")continue;const n=y(s);n.trim()&&await this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:s.role==="user"?"user_message_chunk":"agent_message_chunk",content:p(n),messageId:w()}})}}async activateSession(e){await this.ensureWorkspaceSession(e.cwd);const s=this.session.sessionManager.getSessionFile();if(e.sessionFile&&e.sessionFile!==s){if(!await this.session.switchSession(e.sessionFile))throw new Error(`Failed to switch to session ${e.sessionId}`);await this.session.extensionRunner?.emit({type:"session_ready"})}this.currentSessionId=e.sessionId,await this.applySessionMode(e)}async bindSession(e){await e.bindExtensions(this.extensionBindings),await e.extensionRunner?.emit({type:"session_ready"})}async ensureWorkspaceSession(e){if(!e||this.session.cwd===e||!this.createSessionForCwd)return;await this.session.extensionRunner?.emit({type:"session_shutdown"});const s=await this.createSessionForCwd(e);this.session=s,await this.bindSession(s)}async handleBuiltinSlashCommand(e,s,n){const i=n.trim();if(!i.startsWith("/"))return!1;const d=m(i.split(/\s+/,1)[0]??"").toLowerCase();if(d&&C.has(d)&&!S.has(d))return await this.sendAssistantText(e,`/${d} is not supported in ACP clients like Zed yet. Use the terminal Catui UI for this command.`),!0;if(i==="/new")return await this.session.newSession(),s.sessionFile=this.session.sessionManager.getSessionFile(),s.title=this.getCurrentSessionTitle(),await this.emitSessionMetadata(s),await this.sendAssistantText(e,"Started a new session."),!0;if(i==="/reload")return await this.session.reload(),await this.activateSession(s),await this.emitAvailableCommands(e),await this.sendAssistantText(e,"Reloaded extensions, skills, prompts, and themes."),!0;if(i==="/session"){const o=this.session.getSessionStats(),a=this.session.getContextUsage(),l=this.session.model,c=[`Session ID: ${o.sessionId}`,`Session name: ${this.session.sessionManager.getSessionName()||"(unnamed)"}`,`Session file: ${o.sessionFile??"(in-memory)"}`,`Model: ${l?`${l.provider}/${l.id}`:"none"}`,`Thinking: ${this.session.thinkingLevel}`,`Agent loop: ${this.session.agentLoopFramework}`,...b(this.session.state.lastResult),`Messages: ${o.totalMessages} total (${o.userMessages} user, ${o.assistantMessages} assistant, ${o.toolResults} tool results)`,`Tool calls: ${o.toolCalls}`];return a&&c.push(`Context: ${a.tokens??"unknown"} / ${a.contextWindow} tokens${a.percent!=null?` (${a.percent.toFixed(1)}%)`:""}`),await this.sendAssistantText(e,c.join(`
9
+ `)),!0}if(i==="/usage"){const o=this.session.getSessionStats(),a=["Usage summary",`Input tokens: ${o.tokens.input}`,`Output tokens: ${o.tokens.output}`,`Cache read: ${o.tokens.cacheRead}`,`Cache write: ${o.tokens.cacheWrite}`,`Total tokens: ${o.tokens.total}`,`Estimated cost: $${J(o.cost)}`];return await this.sendAssistantText(e,a.join(`
10
+ `)),!0}if(i==="/name"||i.startsWith("/name ")){const o=i.slice(5).trim();return o?(this.session.sessionManager.appendSessionInfo(o),s.title=o,await this.emitSessionMetadata(s),await this.sendAssistantText(e,`Session name set to "${o}".`),!0):(await this.sendAssistantText(e,`Current session name: ${this.session.sessionManager.getSessionName()||"(unnamed)"}`),!0)}if(i==="/resume"||i.startsWith("/resume ")){const o=i.slice(7).trim();if(!o){const u=(await h.list(s.cwd)).slice(0,10).map(f=>`- ${f.id} | ${f.name||f.firstMessage||"(untitled)"}`).join(`
11
+ `);return await this.sendAssistantText(e,u?`Recent sessions for this workspace:
12
+ ${u}
13
+
14
+ Use /resume <session-id-or-title>.`:"No saved sessions were found for this workspace."),!0}const a=await this.findSessionByQuery(o,s.cwd);return a?await this.session.switchSession(a.path)?(s.sessionFile=a.path,s.cwd=a.cwd,s.title=a.name||a.firstMessage||s.title,await this.emitSessionMetadata(s),await this.emitAvailableCommands(e),await this.sendAssistantText(e,`Resumed session ${a.id}${s.title?` (${s.title})`:""}. Future turns now use that saved conversation context.`),!0):(await this.sendAssistantText(e,`Failed to load session ${a.id}.`),!0):(await this.sendAssistantText(e,`No saved session matched "${o}". Use /resume with no arguments to list recent sessions.`),!0)}if(i==="/thinking"||i.startsWith("/thinking ")){const o=i.slice(9).trim().toLowerCase();if(!o){const l=this.session.getAvailableThinkingLevels().join(", ");return await this.sendAssistantText(e,`Current thinking level: ${this.session.thinkingLevel}
15
+ Available levels: ${l}`),!0}const a=this.session.getAvailableThinkingLevels();return a.includes(o)?(this.session.setThinkingLevel(o),await this.sendAssistantText(e,`Thinking level set to ${this.session.thinkingLevel}.`),!0):(await this.sendAssistantText(e,`Unknown thinking level: ${o}
16
+ Available levels: ${a.join(", ")}`),!0)}if(i==="/agent-loop"||i.startsWith("/agent-loop ")){const o=i.slice(11).trim().toLowerCase(),a=["standard","weak-model-compatible"],l=o==="high-intelligence"?"standard":o==="low-intelligence"||o==="structured-adaptive"?"weak-model-compatible":o;return o?a.includes(l)?(this.session.setAgentLoopFramework(l),await this.sendAssistantText(e,`Agent loop framework set to ${this.session.agentLoopFramework}.`),!0):(await this.sendAssistantText(e,`Unknown agent loop framework: ${o}
17
+ Available frameworks: ${a.join(", ")}`),!0):(await this.sendAssistantText(e,`Current agent loop: ${this.session.agentLoopFramework}
18
+ Available frameworks: ${a.join(", ")}`),!0)}if(i==="/model"||i.startsWith("/model ")){const o=i.slice(6).trim();if(!o){const l=this.session.model,c=this.session.modelRegistry.getAvailable().slice(0,20).map(u=>`- ${u.provider}/${u.id}`).join(`
19
+ `);return await this.sendAssistantText(e,`Current model: ${l?`${l.provider}/${l.id}`:"none"}
20
+ Available models:
21
+ ${c}`),!0}const a=this.findExactModelMatch(o);if(!a){const l=this.session.modelRegistry.getAvailable().filter(c=>`${c.provider}/${c.id}`.toLowerCase().includes(o.toLowerCase())||c.id.toLowerCase().includes(o.toLowerCase())).slice(0,10).map(c=>`- ${c.provider}/${c.id}`).join(`
22
+ `);return await this.sendAssistantText(e,l?`No exact model match for "${o}". Closest matches:
23
+ ${l}`:`No model match for "${o}".`),!0}return await this.session.setModel(a),await this.sendAssistantText(e,`Model switched to ${a.provider}/${a.id}.`),!0}if(i==="/compact"||i.startsWith("/compact ")){const o=i.slice(8).trim()||void 0,a=await this.session.compact(o);return await this.sendAssistantText(e,`Compaction completed.
24
+ First kept entry: ${a.firstKeptEntryId}
25
+ Tokens before: ${a.tokensBefore}`),!0}return!1}findExactModelMatch(e){const s=e.trim().toLowerCase();if(!s)return;let n,i=s;if(s.includes("/")){const[d,o]=s.split("/",2);n=d?.trim(),i=o?.trim()??""}if(i)return this.session.modelRegistry.getAvailable().find(d=>n&&d.provider.toLowerCase()!==n?!1:d.id.toLowerCase()===i)}async sendAssistantText(e,s){await this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:p(s),messageId:w()}})}async applySessionMode(e){const s=this.session.getAllTools().map(n=>n.name);if(e.modeId==="read-only"){const n=s.filter(i=>["read","grep","find","ls","time"].includes(i));this.session.setActiveToolsByName(n);return}if(this.session.setActiveToolsByName(s),e.modeId==="ask"){const n=this.wrapToolsForAskMode(this.session.agent.state.tools,e);this.session.agent.setTools(n)}}wrapToolsForAskMode(e,s){return e.map(n=>z(n)?{...n,execute:r(async(i,d,o,a)=>(await this.requestPermissionIfNeeded(s,n,i,d),n.execute(i,d,o,a)),"execute")}:n)}async requestPermissionIfNeeded(e,s,n,i){if(e.allowAllMutations)return;if(e.rejectAllMutations)throw new Error("Permission denied for mutating tools in this session.");const d=[{optionId:"allow_once",name:"Allow once",kind:"allow_once"},{optionId:"allow_always",name:"Always allow",kind:"allow_always"},{optionId:"reject_once",name:"Reject once",kind:"reject_once"},{optionId:"reject_always",name:"Always reject",kind:"reject_always"}],o=await this.connection.requestPermission({sessionId:e.sessionId,options:d,toolCall:{toolCallId:n,title:`Run ${s.name}`,kind:$(s.name),status:"pending",locations:[],rawInput:i}});if(o.outcome.outcome==="cancelled")throw new Error("Permission request was cancelled.");switch(o.outcome.optionId){case"allow_once":return;case"allow_always":e.allowAllMutations=!0;return;case"reject_always":throw e.rejectAllMutations=!0,new Error("Permission denied for mutating tools in this session.");default:throw new Error("Permission denied for this tool call.")}}mapEventToAcp(e,s){switch(s.type){case"message_update":{const n=s.assistantMessageEvent;switch(n.type){case"text_delta":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:p(n.delta),messageId:w()}});break;case"thinking_delta":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_thought_chunk",content:p(n.delta),messageId:w()}});break}break}case"message_end":if(q(s.message)){const n=y(s.message);n.trim()&&this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"agent_message_chunk",content:p(n),messageId:w()}})}break;case"tool_execution_start":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"tool_call",toolCallId:s.toolCallId,title:`${s.toolName}`,kind:$(s.toolName),status:"pending",locations:[],rawInput:s.args}});break;case"tool_execution_update":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"tool_call_update",toolCallId:s.toolCallId,status:"pending",content:[{type:"content",content:{type:"text",text:M(s.partialResult)}}],rawOutput:s.partialResult}});break;case"tool_execution_end":this.connection.sessionUpdate({sessionId:e,update:{sessionUpdate:"tool_call_update",toolCallId:s.toolCallId,status:s.isError?"failed":"completed",content:[{type:"content",content:{type:"text",text:M(s.result)}}],rawOutput:s.result}});break}}}async function ne(t,e={}){const s=F.toWeb(process.stdout),n=E.toWeb(process.stdin),i=g.ndJsonStream(s,n);return new g.AgentSideConnection(d=>new Q(d,t,e),i),new Promise(()=>{})}r(ne,"runAcpMode");const ie={buildAcpAvailableCommands:k,createAvailableCommandInput:_,deferAcpNotification:T,formatAcpLoopResultLines:b,isAdvertisableAcpCommand:x,normalizeAcpCommandName:m};export{ie as __testUtils,ne as runAcpMode};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * [WHO]: Barrel exports for all run modes (InteractiveMode, runPrintMode, RpcClient, runRpcMode, runAcpMode + types)
3
+ * [FROM]: Depends on interactive/, print/, rpc/, acp/ modes
4
+ * [TO]: Consumed by root index.ts for programmatic SDK usage. NOT on the CLI dispatch path: as of P6/EV02,
5
+ * main.ts dynamically imports each selected mode runner directly so startup only pays for the chosen
6
+ * mode. This barrel remains the public SDK surface (do not narrow without Q3/P8).
7
+ * [HERE]: modes/index.ts — public SDK mode surface; the CLI bypasses it via dynamic import (P6/EV02)
8
+ */
9
+ export { InteractiveMode, type InteractiveModeOptions } from "./interactive/interactive-mode.js";
10
+ export { type PrintModeOptions, runPrintMode } from "./print-mode.js";
11
+ export { type ModelInfo, RpcClient, type RpcClientOptions, type RpcEventListener } from "./rpc/rpc-client.js";
12
+ export { runRpcMode } from "./rpc/rpc-mode.js";
13
+ export { runAcpMode } from "./acp/acp-mode.js";
14
+ export type { RpcCommand, RpcResponse, RpcSessionState } from "./rpc/rpc-types.js";
@@ -0,0 +1 @@
1
+ import{InteractiveMode as e}from"./interactive/interactive-mode.js";import{runPrintMode as p}from"./print-mode.js";import{RpcClient as f}from"./rpc/rpc-client.js";import{runRpcMode as x}from"./rpc/rpc-mode.js";import{runAcpMode as d}from"./acp/acp-mode.js";export{e as InteractiveMode,f as RpcClient,d as runAcpMode,p as runPrintMode,x as runRpcMode};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * [WHO]: formatAgentLoopStatusLines()
3
+ * [FROM]: Depends on @catui/agent-core AgentRunResult and AgentLoopTransition
4
+ * [TO]: Consumed by modes/interactive/interactive-mode.ts and tests
5
+ * [HERE]: modes/interactive/agent-loop-status.ts - /status loop outcome formatting
6
+ */
7
+ import type { AgentRunResult } from "@catui/agent-core";
8
+ export declare function formatAgentLoopStatusLines(result: AgentRunResult | undefined): string[];
@@ -0,0 +1 @@
1
+ var s=Object.defineProperty;var r=(o,n)=>s(o,"name",{value:n,configurable:!0});import{formatLoopPolicySummary as m,formatLoopTransitionHistory as f,formatLoopTransitionSummary as e}from"../utils/agent-loop-result-format.js";const L=22;function i(o,n){return`${o.padEnd(L)}${n}`}r(i,"formatLine");function p(o,n,t=`${n}s`){return`${o} ${o===1?n:t}`}r(p,"plural");function u(o){return o<1e3?`${Math.round(o)}ms`:`${(o/1e3).toFixed(1)}s`}r(u,"formatDuration");function $(o){if(!o)return[];const n=[i("Last loop:",`${o.stopReason}, ${p(o.turnCount,"turn")}, ${p(o.toolCallCount,"tool")}, ${u(o.durationMs)}`)];o.loopFramework&&n.push(i("Loop framework:",o.loopFramework));const t=m(o.loopPolicy);t&&n.push(i("Loop policy:",t));const a=f(o.transitions);return a?n.push(i("Loop transitions:",a)):o.lastTransition&&n.push(i("Loop transition:",e(o.lastTransition))),o.permissionDenialCount&&o.permissionDenialCount>0&&n.push(i("Tool denials:",String(o.permissionDenialCount))),(o.errorSubtype||o.errorMessage)&&n.push(i("Loop error:",o.errorSubtype??o.errorMessage??"unknown")),n}r($,"formatAgentLoopStatusLines");export{$ as formatAgentLoopStatusLines};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * [WHO]: ApiKeyInputOptions
3
+ * [FROM]: Depends on readline
4
+ * [TO]: Consumed by modes/interactive/components/index.ts
5
+ * [HERE]: modes/interactive/components/apikey-input.ts -
6
+ */
7
+ export interface ApiKeyInputOptions {
8
+ prompt?: string;
9
+ }
10
+ export declare function promptForApiKey(options?: ApiKeyInputOptions): Promise<string | null>;
@@ -0,0 +1,3 @@
1
+ var c=Object.defineProperty;var s=(t,o)=>c(t,"name",{value:o,configurable:!0});import{createInterface as i}from"readline";async function d(t={}){const{prompt:o="Enter API key"}=t;return new Promise(n=>{const r=i({input:process.stdin,output:process.stdout});process.stdout.write(`
2
+ `),r.question(`${o}: `,p=>{r.close(),process.stdout.write(`
3
+ `);const e=p.trim();n(e||null)})})}s(d,"promptForApiKey");export{d as promptForApiKey};
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Armin says hi! A fun easter egg with animated XBM art.
3
+ */
4
+ /**
5
+ * [WHO]: ArminComponent
6
+ * [FROM]: Depends on ../theme/theme.js
7
+ * [TO]: Consumed by modes/interactive/components/index.ts
8
+ * [HERE]: modes/interactive/components/armin.ts -
9
+ */
10
+ import type { Component, TUI } from "@catui/tui";
11
+ export declare class ArminComponent implements Component {
12
+ private ui;
13
+ private interval;
14
+ private effect;
15
+ private finalGrid;
16
+ private currentGrid;
17
+ private effectState;
18
+ private cachedLines;
19
+ private cachedWidth;
20
+ private gridVersion;
21
+ private cachedVersion;
22
+ constructor(ui: TUI);
23
+ invalidate(): void;
24
+ render(width: number): string[];
25
+ private createEmptyGrid;
26
+ private initEffect;
27
+ private startAnimation;
28
+ private stopAnimation;
29
+ private tickEffect;
30
+ private tickTypewriter;
31
+ private tickScanline;
32
+ private tickRain;
33
+ private tickFade;
34
+ private tickCrt;
35
+ private tickGlitch;
36
+ private tickDissolve;
37
+ private updateDisplay;
38
+ dispose(): void;
39
+ }
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var o=(a,t)=>m(a,"name",{value:t,configurable:!0});import{theme as h}from"../theme/theme.js";const c=31,l=36,G=[255,255,255,127,255,240,255,127,255,237,255,127,255,219,255,127,255,183,255,127,255,119,254,127,63,248,254,127,223,255,254,127,223,63,252,127,159,195,251,127,111,252,244,127,247,15,247,127,247,255,247,127,247,255,227,127,247,7,232,127,239,248,103,112,15,255,187,111,241,0,208,91,253,63,236,83,193,255,239,87,159,253,238,95,159,252,174,95,31,120,172,95,63,0,80,108,127,0,220,119,255,192,63,120,255,1,248,127,255,3,156,120,255,7,140,124,255,15,206,120,255,255,207,127,255,255,207,120,255,255,223,120,255,255,223,125,255,255,63,126,255,255,255,127],g=Math.ceil(c/8),s=Math.ceil(l/2),d=["typewriter","scanline","rain","fade","crt","glitch","dissolve"];function u(a,t){if(t>=l)return!1;const e=t*g+Math.floor(a/8),i=a%8;return(G[e]>>i&1)===0}o(u,"getPixel");function M(a,t){const e=u(a,t*2),i=u(a,t*2+1);return e&&i?"\u2588":e?"\u2580":i?"\u2584":" "}o(M,"getChar");function k(){const a=[];for(let t=0;t<s;t++){const e=[];for(let i=0;i<c;i++)e.push(M(i,t));a.push(e)}return a}o(k,"buildFinalGrid");class w{static{o(this,"ArminComponent")}ui;interval=null;effect;finalGrid;currentGrid;effectState={};cachedLines=[];cachedWidth=0;gridVersion=0;cachedVersion=-1;constructor(t){this.ui=t,this.effect=d[Math.floor(Math.random()*d.length)],this.finalGrid=k(),this.currentGrid=this.createEmptyGrid(),this.initEffect(),this.startAnimation()}invalidate(){this.cachedWidth=0}render(t){if(t===this.cachedWidth&&this.cachedVersion===this.gridVersion)return this.cachedLines;const e=1,i=t-e;this.cachedLines=this.currentGrid.map(n=>{const x=n.slice(0,i).join(""),p=Math.max(0,t-e-x.length);return` ${h.fg("accent",x)}${" ".repeat(p)}`});const r="ARMIN SAYS HI",f=Math.max(0,t-e-r.length);return this.cachedLines.push(` ${h.fg("accent",r)}${" ".repeat(f)}`),this.cachedWidth=t,this.cachedVersion=this.gridVersion,this.cachedLines}createEmptyGrid(){return Array.from({length:s},()=>Array(c).fill(" "))}initEffect(){switch(this.effect){case"typewriter":this.effectState={pos:0};break;case"scanline":this.effectState={row:0};break;case"rain":this.effectState={drops:Array.from({length:c},()=>({y:-Math.floor(Math.random()*s*2),settled:0}))};break;case"fade":{const t=[];for(let e=0;e<s;e++)for(let i=0;i<c;i++)t.push([e,i]);for(let e=t.length-1;e>0;e--){const i=Math.floor(Math.random()*(e+1));[t[e],t[i]]=[t[i],t[e]]}this.effectState={positions:t,idx:0};break}case"crt":this.effectState={expansion:0};break;case"glitch":this.effectState={phase:0,glitchFrames:8};break;case"dissolve":{this.currentGrid=Array.from({length:s},()=>Array.from({length:c},()=>{const e=[" ","\u2591","\u2592","\u2593","\u2588","\u2580","\u2584"];return e[Math.floor(Math.random()*e.length)]}));const t=[];for(let e=0;e<s;e++)for(let i=0;i<c;i++)t.push([e,i]);for(let e=t.length-1;e>0;e--){const i=Math.floor(Math.random()*(e+1));[t[e],t[i]]=[t[i],t[e]]}this.effectState={positions:t,idx:0};break}}}startAnimation(){const t=this.effect==="glitch"?60:30;this.interval=setInterval(()=>{const e=this.tickEffect();this.updateDisplay(),this.ui.requestRender(),e&&this.stopAnimation()},1e3/t)}stopAnimation(){this.interval&&(clearInterval(this.interval),this.interval=null)}tickEffect(){switch(this.effect){case"typewriter":return this.tickTypewriter();case"scanline":return this.tickScanline();case"rain":return this.tickRain();case"fade":return this.tickFade();case"crt":return this.tickCrt();case"glitch":return this.tickGlitch();case"dissolve":return this.tickDissolve();default:return!0}}tickTypewriter(){const t=this.effectState,e=3;for(let i=0;i<e;i++){const r=Math.floor(t.pos/c),f=t.pos%c;if(r>=s)return!0;this.currentGrid[r][f]=this.finalGrid[r][f],t.pos++}return!1}tickScanline(){const t=this.effectState;if(t.row>=s)return!0;for(let e=0;e<c;e++)this.currentGrid[t.row][e]=this.finalGrid[t.row][e];return t.row++,!1}tickRain(){const t=this.effectState;let e=!0;this.currentGrid=this.createEmptyGrid();for(let i=0;i<c;i++){const r=t.drops[i];for(let n=s-1;n>=s-r.settled;n--)n>=0&&(this.currentGrid[n][i]=this.finalGrid[n][i]);if(r.settled>=s)continue;e=!1;let f=-1;for(let n=s-1-r.settled;n>=0;n--)if(this.finalGrid[n][i]!==" "){f=n;break}r.y++,r.y>=0&&r.y<s&&(f>=0&&r.y>=f?(r.settled=s-f,r.y=-Math.floor(Math.random()*5)-1):this.currentGrid[r.y][i]="\u2593")}return e}tickFade(){const t=this.effectState,e=15;for(let i=0;i<e;i++){if(t.idx>=t.positions.length)return!0;const[r,f]=t.positions[t.idx];this.currentGrid[r][f]=this.finalGrid[r][f],t.idx++}return!1}tickCrt(){const t=this.effectState,e=Math.floor(s/2);this.currentGrid=this.createEmptyGrid();const i=e-t.expansion,r=e+t.expansion;for(let f=Math.max(0,i);f<=Math.min(s-1,r);f++)for(let n=0;n<c;n++)this.currentGrid[f][n]=this.finalGrid[f][n];return t.expansion++,t.expansion>s}tickGlitch(){const t=this.effectState;return t.phase<t.glitchFrames?(this.currentGrid=this.finalGrid.map(e=>{const i=Math.floor(Math.random()*7)-3,r=[...e];if(Math.random()<.3)return r.slice(i).concat(r.slice(0,i)).slice(0,c);if(Math.random()<.2){const f=Math.floor(Math.random()*s);return[...this.finalGrid[f]]}return r}),t.phase++,!1):(this.currentGrid=this.finalGrid.map(e=>[...e]),!0)}tickDissolve(){const t=this.effectState,e=20;for(let i=0;i<e;i++){if(t.idx>=t.positions.length)return!0;const[r,f]=t.positions[t.idx];this.currentGrid[r][f]=this.finalGrid[r][f],t.idx++}return!1}updateDisplay(){this.gridVersion++}dispose(){this.stopAnimation()}}export{w as ArminComponent};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * [WHO]: AssistantMessageComponent
3
+ * [FROM]: Depends on @catui/tui, ../theme/theme.js
4
+ * [TO]: Consumed by modes/interactive/components/index.ts
5
+ * [HERE]: modes/interactive/components/assistant-message.ts - assistant message display
6
+ */
7
+ import type { AssistantMessage } from "@catui/ai/types";
8
+ import { Container, type MarkdownTheme } from "@catui/tui";
9
+ /**
10
+ * Component that renders a complete assistant message
11
+ */
12
+ export declare class AssistantMessageComponent extends Container {
13
+ private contentContainer;
14
+ private hideThinkingBlock;
15
+ private markdownTheme;
16
+ private lastMessage?;
17
+ constructor(message?: AssistantMessage, hideThinkingBlock?: boolean, markdownTheme?: MarkdownTheme);
18
+ invalidate(): void;
19
+ setHideThinkingBlock(hide: boolean): void;
20
+ updateContent(message: AssistantMessage): void;
21
+ }
@@ -0,0 +1 @@
1
+ var f=Object.defineProperty;var s=(d,t)=>f(d,"name",{value:t,configurable:!0});import{Container as c,Markdown as k,Spacer as o,Text as a}from"@catui/tui";import{getMarkdownTheme as g,theme as r}from"../theme/theme.js";class m extends c{static{s(this,"AssistantMessageComponent")}contentContainer;hideThinkingBlock;markdownTheme;lastMessage;constructor(t,h=!1,l=g()){super(),this.hideThinkingBlock=h,this.markdownTheme=l,this.contentContainer=new c,this.addChild(this.contentContainer),t&&this.updateContent(t)}invalidate(){super.invalidate(),this.lastMessage&&this.updateContent(this.lastMessage)}setHideThinkingBlock(t){this.hideThinkingBlock=t}updateContent(t){this.lastMessage=t,this.contentContainer.clear();const h=t.content.some(n=>n.type==="text"&&n.text.trim()||n.type==="thinking"&&n.thinking.trim());h&&this.contentContainer.addChild(new o(1));for(let n=0;n<t.content.length;n++){const e=t.content[n];if(e.type==="text"&&e.text.trim())this.contentContainer.addChild(new k(e.text.trim(),1,0,this.markdownTheme));else if(e.type==="thinking"&&e.thinking.trim()){const C=t.content.slice(n+1).some(i=>i.type==="text"&&i.text.trim()||i.type==="thinking"&&i.thinking.trim());this.hideThinkingBlock?(this.contentContainer.addChild(new a(r.italic(r.fg("thinkingText","Thinking...")),1,0)),C&&this.contentContainer.addChild(new o(1))):(this.contentContainer.addChild(new k(e.thinking.trim(),1,0,this.markdownTheme,{color:s(i=>r.fg("thinkingText",i),"color"),italic:!0})),C&&this.contentContainer.addChild(new o(1)))}}if(!t.content.some(n=>n.type==="toolCall")){if(t.stopReason==="aborted"){const n=t.errorMessage&&t.errorMessage!=="Request was aborted"?t.errorMessage:"Operation aborted";h?this.contentContainer.addChild(new o(1)):this.contentContainer.addChild(new o(1)),this.contentContainer.addChild(new a(r.fg("error",n),1,0))}else if(t.stopReason==="error"){const n=t.errorMessage||"Unknown error";this.contentContainer.addChild(new o(1)),this.contentContainer.addChild(new a(r.fg("error",`Error: ${n}`),1,0))}}}}export{m as AssistantMessageComponent};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * [WHO]: Attachment, AttachmentsBarComponent
3
+ * [FROM]: Depends on node:path, @catui/tui
4
+ * [TO]: Consumed by modes/interactive/components/index.ts
5
+ * [HERE]: modes/interactive/components/attachments-bar.ts -
6
+ */
7
+ import { Container } from "@catui/tui";
8
+ import type { Theme } from "../theme/theme.js";
9
+ export interface Attachment {
10
+ path: string;
11
+ mimeType?: string;
12
+ }
13
+ /**
14
+ * Attachments bar component for displaying clipboard image attachments.
15
+ * Shows a list of attached images with selection and deletion support.
16
+ */
17
+ export declare class AttachmentsBarComponent extends Container {
18
+ private attachments;
19
+ private selectedIndex;
20
+ private theme;
21
+ private onSelect?;
22
+ private onDelete?;
23
+ constructor(attachments: Attachment[], selectedIndex: number, theme: Theme, options?: {
24
+ onSelect?: (index: number) => void;
25
+ onDelete?: (index: number) => void;
26
+ });
27
+ private renderContent;
28
+ /**
29
+ * Update the attachments and re-render
30
+ */
31
+ update(attachments: Attachment[], selectedIndex: number): void;
32
+ /**
33
+ * Handle input for selection and deletion
34
+ */
35
+ handleInput(data: string): boolean;
36
+ invalidate(): void;
37
+ }
@@ -0,0 +1 @@
1
+ var f=Object.defineProperty;var c=(h,e)=>f(h,"name",{value:e,configurable:!0});import*as C from"node:path";import{Container as p,Spacer as g,Text as o}from"@catui/tui";class I extends p{static{c(this,"AttachmentsBarComponent")}attachments;selectedIndex;theme;onSelect;onDelete;constructor(e,n,s,t){super(),this.attachments=e,this.selectedIndex=n,this.theme=s,this.onSelect=t?.onSelect,this.onDelete=t?.onDelete,this.renderContent()}renderContent(){if(this.clear(),this.attachments.length!==0){for(let e=0;e<this.attachments.length;e++){const n=this.attachments[e],s=C.basename(n.path),t=e===this.selectedIndex,a=`[Image #${e+1}]`,i=`(${s})`,l=t?this.theme.fg("accent",a):this.theme.fg("muted",a),d=t?this.theme.fg("accent",i):this.theme.fg("dim",i),m=new o(`${l} ${d}`,0,0);if(this.addChild(m),t){const r=new o(" "+this.theme.fg("muted","(\u2191\u2193 select, Del remove)"),0,0);this.addChild(r)}}this.addChild(new g(1))}}update(e,n){this.attachments=e,this.selectedIndex=n,this.renderContent()}handleInput(e){return!1}invalidate(){this.renderContent()}}export{I as AttachmentsBarComponent};
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Component for displaying bash command execution with streaming output.
3
+ */
4
+ /**
5
+ * [WHO]: BashExecutionComponent
6
+ * [FROM]: Depends on @catui/tui, strip-ansi, ../theme/theme.js, ./dynamic-border.js, ./keybinding-hints.js
7
+ * [TO]: Consumed by modes/interactive/components/index.ts
8
+ * [HERE]: modes/interactive/components/bash-execution.ts -
9
+ */
10
+ import { Container, type TUI } from "@catui/tui";
11
+ import { type TruncationResult } from "../../../core/tools/truncate.js";
12
+ export declare class BashExecutionComponent extends Container {
13
+ private command;
14
+ private outputLines;
15
+ private status;
16
+ private exitCode;
17
+ private loader;
18
+ private truncationResult?;
19
+ private fullOutputPath?;
20
+ private expanded;
21
+ private contentContainer;
22
+ private ui;
23
+ constructor(command: string, ui: TUI, excludeFromContext?: boolean);
24
+ /**
25
+ * Set whether the output is expanded (shows full output) or collapsed (preview only).
26
+ */
27
+ setExpanded(expanded: boolean): void;
28
+ invalidate(): void;
29
+ appendOutput(chunk: string): void;
30
+ setComplete(exitCode: number | undefined, cancelled: boolean, truncationResult?: TruncationResult, fullOutputPath?: string): void;
31
+ private updateDisplay;
32
+ /**
33
+ * Get the raw output for creating BashExecutionMessage.
34
+ */
35
+ getOutput(): string;
36
+ /**
37
+ * Get the command that was executed.
38
+ */
39
+ getCommand(): string;
40
+ }
@@ -0,0 +1,13 @@
1
+ var g=Object.defineProperty;var d=(h,n)=>g(h,"name",{value:n,configurable:!0});import{Container as c,Loader as L,Spacer as x,Text as l}from"@catui/tui";import w from"strip-ansi";import{DEFAULT_MAX_BYTES as $,DEFAULT_MAX_LINES as y,truncateTail as T}from"../../../core/tools/truncate.js";import{theme as i}from"../theme/theme.js";import{DynamicBorder as p}from"./dynamic-border.js";import{editorKey as E,keyHint as m}from"./keybinding-hints.js";import{truncateToVisualLines as O}from"./visual-truncate.js";const f=20;class B extends c{static{d(this,"BashExecutionComponent")}command;outputLines=[];status="running";exitCode=void 0;loader;truncationResult;fullOutputPath;expanded=!1;contentContainer;ui;constructor(n,s,e=!1){super(),this.command=n,this.ui=s;const o=e?"dim":"bashMode",a=d(t=>i.fg(o,t),"borderColor");this.addChild(new x(1)),this.addChild(new p(a)),this.contentContainer=new c,this.addChild(this.contentContainer);const r=new l(i.fg(o,i.bold(`$ ${n}`)),1,0);this.contentContainer.addChild(r),this.loader=new L(s,t=>i.fg(o,t),t=>i.fg("muted",t),`Running... (${E("selectCancel")} to cancel)`),this.contentContainer.addChild(this.loader),this.addChild(new p(a))}setExpanded(n){this.expanded=n,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}appendOutput(n){const e=w(n).replace(/\r\n/g,`
2
+ `).replace(/\r/g,`
3
+ `).split(`
4
+ `);this.outputLines.length>0&&e.length>0?(this.outputLines[this.outputLines.length-1]+=e[0],this.outputLines.push(...e.slice(1))):this.outputLines.push(...e),this.updateDisplay()}setComplete(n,s,e,o){this.exitCode=n,this.status=s?"cancelled":n!==0&&n!==void 0&&n!==null?"error":"complete",this.truncationResult=e,this.fullOutputPath=o,this.loader.stop(),this.updateDisplay()}updateDisplay(){const n=this.outputLines.join(`
5
+ `),s=T(n,{maxLines:y,maxBytes:$}),e=s.content?s.content.split(`
6
+ `):[],o=e.slice(-f),a=e.length-o.length;this.contentContainer.clear();const r=new l(i.fg("bashMode",i.bold(`$ ${this.command}`)),1,0);if(this.contentContainer.addChild(r),e.length>0)if(this.expanded){const t=e.map(u=>i.fg("muted",u)).join(`
7
+ `);this.contentContainer.addChild(new l(`
8
+ ${t}`,1,0))}else{const t=o.map(C=>i.fg("muted",C)).join(`
9
+ `),{visualLines:u}=O(`
10
+ ${t}`,f,this.ui.terminal.columns,1);this.contentContainer.addChild({render:d(()=>u,"render"),invalidate:d(()=>{},"invalidate")})}if(this.status==="running")this.contentContainer.addChild(this.loader);else{const t=[];a>0&&(this.expanded?t.push(`(${m("expandTools","to collapse")})`):t.push(`${i.fg("muted",`... ${a} more lines`)} (${m("expandTools","to expand")})`)),this.status==="cancelled"?t.push(i.fg("warning","(cancelled)")):this.status==="error"&&t.push(i.fg("error",`(exit ${this.exitCode})`)),(this.truncationResult?.truncated||s.truncated)&&this.fullOutputPath&&t.push(i.fg("warning",`Output truncated. Full output: ${this.fullOutputPath}`)),t.length>0&&this.contentContainer.addChild(new l(`
11
+ ${t.join(`
12
+ `)}`,1,0))}}getOutput(){return this.outputLines.join(`
13
+ `)}getCommand(){return this.command}}export{B as BashExecutionComponent};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * [WHO]: BorderedLoader
3
+ * [FROM]: Depends on @catui/tui, ./dynamic-border.js, ./keybinding-hints.js
4
+ * [TO]: Consumed by modes/interactive/components/index.ts
5
+ * [HERE]: modes/interactive/components/bordered-loader.ts - loader with borders
6
+ */
7
+ import { Container, type TUI } from "@catui/tui";
8
+ import type { Theme } from "../theme/theme.js";
9
+ /** Loader wrapped with borders for extension UI */
10
+ export declare class BorderedLoader extends Container {
11
+ private loader;
12
+ private cancellable;
13
+ private signalController?;
14
+ constructor(tui: TUI, theme: Theme, message: string, options?: {
15
+ cancellable?: boolean;
16
+ });
17
+ get signal(): AbortSignal;
18
+ set onAbort(fn: (() => void) | undefined);
19
+ handleInput(data: string): void;
20
+ dispose(): void;
21
+ }
@@ -0,0 +1 @@
1
+ var c=Object.defineProperty;var i=(r,l)=>c(r,"name",{value:l,configurable:!0});import{CancellableLoader as h,Container as f,Loader as b,Spacer as t,Text as C}from"@catui/tui";import{DynamicBorder as d}from"./dynamic-border.js";import{keyHint as p}from"./keybinding-hints.js";class A extends f{static{i(this,"BorderedLoader")}loader;cancellable;signalController;constructor(l,a,n,s){super(),this.cancellable=s?.cancellable??!0;const o=i(e=>a.fg("border",e),"borderColor");this.addChild(new d(o)),this.cancellable?this.loader=new h(l,e=>a.fg("accent",e),e=>a.fg("muted",e),n):(this.signalController=new AbortController,this.loader=new b(l,e=>a.fg("accent",e),e=>a.fg("muted",e),n)),this.addChild(this.loader),this.cancellable&&(this.addChild(new t(1)),this.addChild(new C(p("selectCancel","cancel"),1,0))),this.addChild(new t(1)),this.addChild(new d(o))}get signal(){return this.cancellable?this.loader.signal:this.signalController?.signal??new AbortController().signal}set onAbort(l){this.cancellable&&(this.loader.onAbort=l)}handleInput(l){this.cancellable&&this.loader.handleInput(l)}dispose(){"dispose"in this.loader&&typeof this.loader.dispose=="function"&&this.loader.dispose()}}export{A as BorderedLoader};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * [WHO]: BranchSummaryMessageComponent
3
+ * [FROM]: Depends on @catui/tui, ../theme/theme.js, ./keybinding-hints.js
4
+ * [TO]: Consumed by modes/interactive/components/index.ts
5
+ * [HERE]: modes/interactive/components/branch-summary-message.ts -
6
+ */
7
+ import { Box, type MarkdownTheme } from "@catui/tui";
8
+ import type { BranchSummaryMessage } from "../../../core/messages.js";
9
+ /**
10
+ * Component that renders a branch summary message with collapsed/expanded state.
11
+ * Uses same background color as custom messages for visual consistency.
12
+ */
13
+ export declare class BranchSummaryMessageComponent extends Box {
14
+ private expanded;
15
+ private message;
16
+ private markdownTheme;
17
+ constructor(message: BranchSummaryMessage, markdownTheme?: MarkdownTheme);
18
+ setExpanded(expanded: boolean): void;
19
+ invalidate(): void;
20
+ private updateDisplay;
21
+ }
@@ -0,0 +1,3 @@
1
+ var o=Object.defineProperty;var d=(m,e)=>o(m,"name",{value:e,configurable:!0});import{Box as n,Markdown as r,Spacer as h,Text as i}from"@catui/tui";import{getMarkdownTheme as p,theme as s}from"../theme/theme.js";import{editorKey as l}from"./keybinding-hints.js";class f extends n{static{d(this,"BranchSummaryMessageComponent")}expanded=!1;message;markdownTheme;constructor(e,a=p()){super(1,1,t=>s.bg("customMessageBg",t)),this.message=e,this.markdownTheme=a,this.updateDisplay()}setExpanded(e){this.expanded=e,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}updateDisplay(){this.clear();const e=s.fg("customMessageLabel","\x1B[1m[branch]\x1B[22m");if(this.addChild(new i(e,0,0)),this.addChild(new h(1)),this.expanded){const a=`**Branch Summary**
2
+
3
+ `;this.addChild(new r(a+this.message.summary,0,0,this.markdownTheme,{color:d(t=>s.fg("customMessageText",t),"color")}))}else this.addChild(new i(s.fg("customMessageText","Branch summary (")+s.fg("dim",l("expandTools"))+s.fg("customMessageText"," to expand)"),0,0))}}export{f as BranchSummaryMessageComponent};
@@ -0,0 +1,31 @@
1
+ /**
2
+ * [WHO]: BuddyPetComponent, BuddySpecies, BuddyState, SpriteData
3
+ * [FROM]: Depends on @catui/tui, ../theme/theme.js
4
+ * [TO]: Consumed by modes/interactive/components/index.ts, interactive-mode.ts
5
+ * [HERE]: modes/interactive/components/buddy/pet-sprites.ts
6
+ */
7
+ import { type Component, type TUI } from "@catui/tui";
8
+ export type BuddyState = "idle" | "happy" | "working" | "sleeping" | "error" | "eating";
9
+ export interface SpriteData {
10
+ name: string;
11
+ states: Record<BuddyState, string[][]>;
12
+ }
13
+ export declare const ALL_SPRITES: SpriteData[];
14
+ export declare class BuddyPetComponent implements Component {
15
+ private tui;
16
+ private sprite;
17
+ private state;
18
+ private currentFrame;
19
+ private blinkInterval;
20
+ private blinkResetTimer;
21
+ private name;
22
+ private speechBubble;
23
+ constructor(tui: TUI, spriteIndex?: number, name?: string);
24
+ setState(state: BuddyState): void;
25
+ setSpeechBubble(text: string): void;
26
+ private clearBlinkResetTimer;
27
+ private startAnimation;
28
+ invalidate(): void;
29
+ render(width: number): string[];
30
+ dispose(): void;
31
+ }
@@ -0,0 +1 @@
1
+ var h=Object.defineProperty;var r=(i,_)=>h(i,"name",{value:_,configurable:!0});import{theme as a}from"../../theme/theme.js";function t(i,_){return{name:i,states:_}}r(t,"spriteFromStateFrames");const l=t("Mochi",{idle:[[" /|/|"," ( @ @)"," ) ^"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( - -)"," ) ^"," / |||"," / )|||_"," (_______)"]],happy:[[" /|/|"," (^ ^ )"," ) ~"," / |||"," / )|||_"," (_______)"],[" /|/|"," (^o^)"," ) ~"," / |||"," / )|||_"," (_______)"]],working:[[" /|/|"," ( o.o)"," )_|_"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( o.O)"," )_|_"," / |||"," / )|||_"," (_______)"]],sleeping:[[" /|/|"," (- -)zz"," ) ~"," / |||"," / )|||_"," (_______)"],[" /|/|"," (- -)ZZ"," ) ~"," / |||"," / )|||_"," (_______)"]],error:[[" /|/|"," ( x x)"," )___"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( X X)"," )___"," / |||"," / )|||_"," (_______)"]],eating:[[" /|/|"," ( o o)"," )_~"," / |||"," / )|||~"," (_______)"],[" /|/|"," (. .)"," )_~"," / |||"," / )|||~"," (_______)"]]}),p=t("Pip",{idle:[[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / _) |"," ,=='`.____)_)"]],happy:[[" /|_"," / ,\\"," .-' ^,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],working:[[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / _) |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],sleeping:[[" /|_"," / ,\\"," .-' z,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' Z,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],error:[[" /|_"," / ,\\"," .-' x,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' X,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"]],eating:[[" /|_"," / ,\\"," .-' ~,'"," hjw / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," hjw / _ |"," / _) |"," ,=='`.____)_)"]]}),T=t("Nori",{idle:[[" |\\/| ---- _"," =(--)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=____ \\"," c___ (______/"]],happy:[[" |\\/| ---- _"," =(^ ^)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(^o^)=_____ \\"," c___ (______/"]],working:[[" |\\/| ---- _"," =(o.O)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(o.o)=_____ \\"," c___ (______/"]],sleeping:[[" |\\/| ---- _"," =(- -)=zz___ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=ZZ___ \\"," c___ (______/"]],error:[[" |\\/| ---- _"," =(x x)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(X X)=_____ \\"," c___ (______/"]],eating:[[" |\\/| ---- _"," =(o o)=_____ \\"," c___~(_____/"],[" |\\/| ---- _"," =(. .)=_____ \\"," c___~(_____/"]]}),u=t("Boba",{idle:[[" /|/|"," ( o o)"," ) ^"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( - -)"," ) ^"," / |||"," / )|||_"," (_______)"]],happy:[[" /|/|"," (^ ^ )"," ) ~"," / |||"," / )|||_"," (_______)"],[" /|/|"," (^o^)"," ) ~"," / |||"," / )|||_"," (_______)"]],working:[[" /|/|"," ( o.o)"," )_|_"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( o.O)"," )_|_"," / |||"," / )|||_"," (_______)"]],sleeping:[[" /|/|"," (- -)zz"," ) ^"," / |||"," / )|||_"," (_______)"],[" /|/|"," (- -)ZZ"," ) ^"," / |||"," / )|||_"," (_______)"]],error:[[" /|/|"," ( x x)"," )___"," / |||"," / )|||_"," (_______)"],[" /|/|"," ( X X)"," )___"," / |||"," / )|||_"," (_______)"]],eating:[[" /|/|"," ( o o)"," )_~"," / |||"," / )|||~"," (_______)"],[" /|/|"," (. .)"," )_~"," / |||"," / )|||~"," (_______)"]]}),m=t("Miso",{idle:[[" /|_"," / ,\\"," .-' _,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," / _ |"," / _) |"," ,=='`.____)_)"]],happy:[[" /|_"," / ,\\"," .-' ^,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],working:[[" /|_"," / ,\\"," .-' _,'"," / _ |"," / _) |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' _,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],sleeping:[[" /|_"," / ,\\"," .-' z,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' Z,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],error:[[" /|_"," / ,\\"," .-' x,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' X,'"," / _ |"," / )_ |"," ,=='`.____)_)"]],eating:[[" /|_"," / ,\\"," .-' ~,'"," / _ |"," / )_ |"," ,=='`.____)_)"],[" /|_"," / ,\\"," .-' ~,'"," / _ |"," / _) |"," ,=='`.____)_)"]]}),I=t("Bean",{idle:[[" |\\/| ---- _"," =(oo)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=_____ \\"," c___ (______/"]],happy:[[" |\\/| ---- _"," =(^ ^)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(^o^)=_____ \\"," c___ (______/"]],working:[[" |\\/| ---- _"," =(o.O)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(o.o)=_____ \\"," c___ (______/"]],sleeping:[[" |\\/| ---- _"," =(- -)=zz___ \\"," c___ (______/"],[" |\\/| ---- _"," =(- -)=ZZ___ \\"," c___ (______/"]],error:[[" |\\/| ---- _"," =(x x)=_____ \\"," c___ (______/"],[" |\\/| ---- _"," =(X X)=_____ \\"," c___ (______/"]],eating:[[" |\\/| ---- _"," =(o o)=_____ \\"," c___~(_____/"],[" |\\/| ---- _"," =(. .)=_____ \\"," c___~(_____/"]]}),o=[l,p,T,u,m,I],d=2500,g=250;class w{static{r(this,"BuddyPetComponent")}tui;sprite;state="idle";currentFrame=0;blinkInterval;blinkResetTimer;name;speechBubble="";constructor(_,e=0,s){this.tui=_,this.sprite=o[e%o.length],this.name=s||this.sprite.name,this.startAnimation()}setState(_){this.state!==_&&(this.state=_,this.clearBlinkResetTimer(),this.currentFrame=0,this.tui.requestRender())}setSpeechBubble(_){this.speechBubble=_,this.tui.requestRender()}clearBlinkResetTimer(){this.blinkResetTimer&&(clearTimeout(this.blinkResetTimer),this.blinkResetTimer=void 0)}startAnimation(){const _=r(()=>{if(this.state!=="idle"||this.currentFrame!==0)return;const e=this.sprite.states.idle;!e||e.length<2||(this.currentFrame=1,this.tui.requestRender(),this.clearBlinkResetTimer(),this.blinkResetTimer=setTimeout(()=>{this.currentFrame=0,this.blinkResetTimer=void 0,this.tui.requestRender()},g))},"tick");this.blinkInterval=setInterval(_,d)}invalidate(){}render(_){const e=this.sprite.states[this.state];if(!e||e.length===0)return[];const s=e[this.currentFrame%e.length],n=[];for(const c of s)n.push(a.fg("accent",c));return n}dispose(){this.clearBlinkResetTimer(),this.blinkInterval&&(clearInterval(this.blinkInterval),this.blinkInterval=void 0)}}export{o as ALL_SPRITES,w as BuddyPetComponent};
@@ -0,0 +1,55 @@
1
+ /**
2
+ * CatuiLoader - Custom loader with rotating diamond animation
3
+ * Uses ◆◇◈ symbols for a smooth loading indicator
4
+ * Supports stalled animation (color transition to red) and tips display
5
+ */
6
+ /**
7
+ * [WHO]: CatuiLoader
8
+ * [FROM]: Depends on @catui/tui
9
+ * [TO]: Consumed by modes/interactive/components/index.ts
10
+ * [HERE]: modes/interactive/components/catui-loader.ts -
11
+ */
12
+ import { Container, type TUI } from "@catui/tui";
13
+ import type { Theme } from "../theme/theme.js";
14
+ export declare class CatuiLoader extends Container {
15
+ private tui;
16
+ private theme;
17
+ private message;
18
+ private suffix;
19
+ private interval;
20
+ private tipInterval;
21
+ private currentFrame;
22
+ private textComponent;
23
+ private tipComponent;
24
+ private isStopped;
25
+ private readonly startTime;
26
+ private lastTokenTime;
27
+ private sessionId;
28
+ private readonly STALL_THRESHOLD_MS;
29
+ private readonly frames;
30
+ constructor(tui: TUI, theme: Theme, message: string, sessionId?: string);
31
+ private getRandomTip;
32
+ private startTipRotation;
33
+ private startAnimation;
34
+ /**
35
+ * Get spinner color based on stall duration.
36
+ * Normal: accent color
37
+ * After STALL_THRESHOLD_MS: interpolates toward error red
38
+ */
39
+ private getSpinnerColor;
40
+ /**
41
+ * Get how long since last token/output (for stalled animation).
42
+ */
43
+ private getStallDuration;
44
+ /**
45
+ * Call this when new output arrives to reset the stall timer.
46
+ */
47
+ resetStallTimer(): void;
48
+ setMessage(message: string, options?: {
49
+ resetStallTimer?: boolean;
50
+ suffix?: string;
51
+ }): void;
52
+ setSessionId(sessionId: string): void;
53
+ stop(): void;
54
+ dispose(): void;
55
+ }
@@ -0,0 +1 @@
1
+ var l=Object.defineProperty;var o=(a,t)=>l(a,"name",{value:t,configurable:!0});import{Container as f,Spacer as h,Text as m}from"@catui/tui";const d=["Press Tab to autocomplete slash commands","Type /help for available commands","Ctrl+C to interrupt the current task","Drag and drop images into the terminal","Use @filename to reference files in your message","Press \u2191\u2193 to navigate command history","Type /compact to summarize and free context","Shift+Enter for a new line in the editor","Use /model to switch AI models","Type /theme to change the color theme"];class c extends f{static{o(this,"CatuiLoader")}tui;theme;message;suffix="";interval;tipInterval;currentFrame=0;textComponent;tipComponent;isStopped=!1;startTime;lastTokenTime;sessionId;STALL_THRESHOLD_MS=3e3;frames=["\u25C6","\u25C7","\u25C8"];constructor(t,i,e,s="default"){super(),this.tui=t,this.theme=i,this.message=e,this.sessionId=s,this.startTime=Date.now(),this.lastTokenTime=Date.now(),this.textComponent=new m("",0,0),this.tipComponent=new m("",1,0),this.addChild(new h(1)),this.addChild(this.textComponent),this.addChild(this.tipComponent),this.addChild(new h(1)),this.startAnimation(),this.startTipRotation()}getRandomTip(){return d[Math.floor(Math.random()*d.length)]}startTipRotation(){setTimeout(()=>{this.isStopped||(this.tipComponent.setText(this.theme.fg("dim",` \u2559 tip: ${this.getRandomTip()}`)),this.tui.requestRender())},2e3),this.tipInterval=setInterval(()=>{this.isStopped||(this.tipComponent.setText(this.theme.fg("dim",` \u2559 tip: ${this.getRandomTip()}`)),this.tui.requestRender())},6e3)}startAnimation(){const t=o(()=>{if(this.isStopped)return;const i=this.frames[this.currentFrame],s=this.getSpinnerColor()(i),n=this.suffix?` ${this.theme.fg("dim",this.suffix)}`:"",r=`${s} ${this.theme.fg("accent",this.message)}${n}`;this.textComponent.setText(r),this.tui.requestRender(),this.currentFrame=(this.currentFrame+1)%this.frames.length},"updateFrame");t(),this.interval=setInterval(t,200)}getSpinnerColor(){const t=this.getStallDuration();if(t<this.STALL_THRESHOLD_MS)return e=>this.theme.fg("accent",e);const i=Math.min((t-this.STALL_THRESHOLD_MS)/2e3,1);return e=>i>=1?this.theme.fg("error",e):i>.5?this.theme.fg("warning",e):this.theme.fg("accent",e)}getStallDuration(){return Date.now()-this.lastTokenTime}resetStallTimer(){this.lastTokenTime=Date.now()}setMessage(t,i){this.message=t,this.suffix=i?.suffix??"",i?.resetStallTimer!==!1&&this.resetStallTimer();const e=this.frames[this.currentFrame],n=this.getSpinnerColor()(e),r=this.suffix?` ${this.theme.fg("dim",this.suffix)}`:"";this.textComponent.setText(`${n} ${this.theme.fg("accent",this.message)}${r}`),this.tui.requestRender()}setSessionId(t){this.sessionId=t}stop(){this.isStopped=!0,this.interval&&(clearInterval(this.interval),this.interval=void 0),this.tipInterval&&(clearInterval(this.tipInterval),this.tipInterval=void 0)}dispose(){this.stop()}}export{c as CatuiLoader};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * [WHO]: CompactionSummaryMessageComponent
3
+ * [FROM]: Depends on @catui/tui, ../theme/theme.js, ./keybinding-hints.js
4
+ * [TO]: Consumed by modes/interactive/components/index.ts
5
+ * [HERE]: modes/interactive/components/compaction-summary-message.ts -
6
+ */
7
+ import { Box, type MarkdownTheme } from "@catui/tui";
8
+ import type { CompactionSummaryMessage } from "../../../core/messages.js";
9
+ /**
10
+ * Component that renders a compaction message with collapsed/expanded state.
11
+ * Uses same background color as custom messages for visual consistency.
12
+ */
13
+ export declare class CompactionSummaryMessageComponent extends Box {
14
+ private expanded;
15
+ private message;
16
+ private markdownTheme;
17
+ constructor(message: CompactionSummaryMessage, markdownTheme?: MarkdownTheme);
18
+ setExpanded(expanded: boolean): void;
19
+ invalidate(): void;
20
+ private updateDisplay;
21
+ }
@@ -0,0 +1,3 @@
1
+ var n=Object.defineProperty;var o=(d,e)=>n(d,"name",{value:e,configurable:!0});import{Box as r,Markdown as p,Spacer as h,Text as m}from"@catui/tui";import{getMarkdownTheme as c,theme as s}from"../theme/theme.js";import{editorKey as l}from"./keybinding-hints.js";class k extends r{static{o(this,"CompactionSummaryMessageComponent")}expanded=!1;message;markdownTheme;constructor(e,t=c()){super(1,1,a=>s.bg("customMessageBg",a)),this.message=e,this.markdownTheme=t,this.updateDisplay()}setExpanded(e){this.expanded=e,this.updateDisplay()}invalidate(){super.invalidate(),this.updateDisplay()}updateDisplay(){this.clear();const e=this.message.tokensBefore.toLocaleString(),t=s.fg("customMessageLabel","\x1B[1m[compaction]\x1B[22m");if(this.addChild(new m(t,0,0)),this.addChild(new h(1)),this.expanded){const a=`**Compacted from ${e} tokens**
2
+
3
+ `;this.addChild(new p(a+this.message.summary,0,0,this.markdownTheme,{color:o(i=>s.fg("customMessageText",i),"color")}))}else this.addChild(new m(s.fg("customMessageText",`Compacted from ${e} tokens (`)+s.fg("dim",l("expandTools"))+s.fg("customMessageText"," to expand)"),0,0))}}export{k as CompactionSummaryMessageComponent};
@@ -0,0 +1,76 @@
1
+ /**
2
+ * TUI component for managing package resources (enable/disable)
3
+ */
4
+ /**
5
+ * [WHO]: ConfigSelectorComponent
6
+ * [FROM]: Depends on node:path, ../../../config.js, ../theme/theme.js, ./dynamic-border.js, ./keybinding-hints.js
7
+ * [TO]: Consumed by modes/interactive/components/index.ts
8
+ * [HERE]: modes/interactive/components/config-selector.ts -
9
+ */
10
+ import { type Component, Container, type Focusable } from "@catui/tui";
11
+ import type { PathMetadata, ResolvedPaths } from "../../../core/package-manager.js";
12
+ import type { SettingsManager } from "../../../core/platform/config/settings-manager.js";
13
+ type ResourceType = "extensions" | "skills" | "prompts" | "themes";
14
+ interface ResourceItem {
15
+ path: string;
16
+ enabled: boolean;
17
+ metadata: PathMetadata;
18
+ resourceType: ResourceType;
19
+ displayName: string;
20
+ groupKey: string;
21
+ subgroupKey: string;
22
+ }
23
+ interface ResourceSubgroup {
24
+ type: ResourceType;
25
+ label: string;
26
+ items: ResourceItem[];
27
+ }
28
+ interface ResourceGroup {
29
+ key: string;
30
+ label: string;
31
+ scope: "user" | "project" | "temporary";
32
+ origin: "package" | "top-level";
33
+ source: string;
34
+ subgroups: ResourceSubgroup[];
35
+ }
36
+ declare class ResourceList implements Component, Focusable {
37
+ private groups;
38
+ private flatItems;
39
+ private filteredItems;
40
+ private selectedIndex;
41
+ private searchInput;
42
+ private maxVisible;
43
+ private settingsManager;
44
+ private cwd;
45
+ private agentDir;
46
+ onCancel?: () => void;
47
+ onExit?: () => void;
48
+ onToggle?: (item: ResourceItem, newEnabled: boolean) => void;
49
+ private _focused;
50
+ get focused(): boolean;
51
+ set focused(value: boolean);
52
+ constructor(groups: ResourceGroup[], settingsManager: SettingsManager, cwd: string, agentDir: string);
53
+ private buildFlatList;
54
+ private findNextItem;
55
+ private filterItems;
56
+ private selectFirstItem;
57
+ updateItem(item: ResourceItem, enabled: boolean): void;
58
+ invalidate(): void;
59
+ render(width: number): string[];
60
+ handleInput(data: string): void;
61
+ private toggleResource;
62
+ private toggleTopLevelResource;
63
+ private togglePackageResource;
64
+ private getTopLevelBaseDir;
65
+ private getResourcePattern;
66
+ private getPackageResourcePattern;
67
+ }
68
+ export declare class ConfigSelectorComponent extends Container implements Focusable {
69
+ private resourceList;
70
+ private _focused;
71
+ get focused(): boolean;
72
+ set focused(value: boolean);
73
+ constructor(resolvedPaths: ResolvedPaths, settingsManager: SettingsManager, cwd: string, agentDir: string, onClose: () => void, onExit: () => void, requestRender: () => void);
74
+ getResourceList(): ResourceList;
75
+ }
76
+ export {};