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,13 @@
1
+ var j=Object.defineProperty;var w=(a,i)=>j(a,"name",{value:i,configurable:!0});import{Type as f}from"@sinclair/typebox";import{Container as b,Text as p}from"@catui/tui";import{PLAN_CUSTOM_TYPE as P}from"./types.js";import{handlePlanModeExit as y}from"./plan-permissions.js";import{getPlanFilePath as I,getPlan as R,getPlansDirectory as A,serializePlanSessionState as h,writePlan as F}from"./plan-file-manager.js";import{getExitPlanModeApprovedResult as C}from"./plan-workflow-prompt.js";import{validatePlan as U,formatValidationMessage as _}from"./plan-validation.js";import{setPendingClearContextPlan as q}from"./clear-context-state.js";import{isInTeammateContext as k,submitPlanToLeader as N,formatPlanSubmittedMessage as W}from"./teammate-approval.js";const B=f.Object({plan:f.Optional(f.String({description:"Edited plan content from external editor (optional)"})),forceExit:f.Optional(f.Boolean({description:"Force exit even if plan validation fails (for trivial changes)"})),allowedPrompts:f.Optional(f.Array(f.Object({tool:f.String({description:"Tool name (e.g. 'Bash')"}),prompt:f.String({description:"Semantic description of the permitted action"})}),{description:"Pre-approved tool permission rules for the implementation phase"}))});function D(a,i){const t=new b;t.addChild(new p(i.fg("toolTitle",i.bold("ExitPlanMode")),0,0));const s=a,o="plan"in s&&typeof s.plan=="string"?s.plan:void 0;if(o){t.addChild(new p("",0,0)),t.addChild(new p(i.fg("accent","Plan preview:")+(o.length>1200?i.fg("muted"," (truncated)"):""),0,0));const d=o.slice(0,1200);for(const e of d.split(`
2
+ `))t.addChild(new p(i.fg("text",` ${e}`),0,0))}else t.addChild(new p(i.fg("muted"," Requesting plan approval..."),0,0));const c="allowedPrompts"in s&&Array.isArray(s.allowedPrompts)?s.allowedPrompts:void 0;if(c&&c.length>0){t.addChild(new p("",0,0)),t.addChild(new p(i.fg("accent","Requested permissions:"),0,0));for(const d of c)t.addChild(new p(i.fg("toolOutput",` - ${d.tool}: ${d.prompt}`),0,0))}return t}w(D,"renderCallForExitPlanMode");function K(a,i,t){const s=new b,o=a.isError===!0,c=a.content?.filter(d=>d.type==="text").map(d=>d.type==="text"?d.text:"").join(`
3
+ `);if(c)if(o)s.addChild(new p(t.fg("error",c),0,0));else{s.addChild(new p(t.fg("success","Plan approved"),0,0));const d=c.length>300?c.slice(0,300)+"...":c;s.addChild(new p(t.fg("toolOutput",d),0,0))}return s}w(K,"renderResultForExitPlanMode");function ee(a,i,t){return{name:"ExitPlanMode",label:"Exit Plan Mode",description:"Present your plan for approval and start coding. Only usable in plan mode after writing a plan.",parameters:B,renderCall:D,renderResult:K,execute:w(async(s,o,c,d,e)=>{A(e.getSettings().plansDirectory,e.cwd);const r=i();if(r.state.mode!=="plan")return{content:[{type:"text",text:"You are not in plan mode. This tool is only for exiting plan mode after writing a plan. If your plan was already approved, continue with implementation."}],isError:!0,details:null};const x="plan"in o&&typeof o.plan=="string"?o.plan:void 0,S="forceExit"in o&&o.forceExit===!0,m=I(a.events),M=R(a.events),n=x??M,v=x!==void 0;if(v&&n!==null&&await F(a.events,n),r.state.planSnapshot=n??void 0,!S){const l=U(n||"");if(!l.valid)return{content:[{type:"text",text:`Plan validation failed:
4
+
5
+ ${_(l)}
6
+
7
+ Please add the missing sections and try again, or use forceExit: true for trivial changes.`}],isError:!0,details:null}}if(k()){if(!n||n.trim().length===0)throw new Error(`No plan file found at ${m}. Please write your plan to this file before calling ExitPlanMode.`);try{const{requestId:l}=await N(m,n||""),E=W(l,m);return r.state.mode="plan",a.appendEntry(P,h(r)),e.abort(),{content:[{type:"text",text:E}],details:null}}catch(l){console.error(`Failed to submit plan to leader: ${l}`)}}if(!e.hasUI)throw e.abort(),new Error("ExitPlanMode requires user approval, but no interactive UI is available. Stay in plan mode and ask the user to approve from an interactive session.");const u="allowedPrompts"in o&&Array.isArray(o.allowedPrompts)?o.allowedPrompts:void 0,T=n&&n.trim().length>0?n.trim().slice(0,1200):"No plan content was written.",O=u&&u.length>0?`
8
+ Requested permissions:
9
+ ${u.map(l=>` - ${l.tool}: ${l.prompt}`).join(`
10
+ `)}
11
+ `:"",g=await e.ui.select(["Plan ready for review:",`Plan file: ${m}`,"",T,n&&n.length>1200?`
12
+ ...(truncated)`:"",O,"Choose next action:"].join(`
13
+ `),["Execute plan (standard)","Execute plan (elevated mode)","Execute plan (clear context + elevated)","Keep planning","Reject plan"]);if(g==="Keep planning")throw e.abort(),new Error("User chose to keep planning. Stay in plan mode, revise the plan file, and call ExitPlanMode again when ready.");if(g==="Reject plan")throw e.abort(),new Error("User rejected the plan. Stay in plan mode and revise the plan based on user feedback.");if(u&&(r.state.lastAllowedPrompts=u),g==="Execute plan (clear context + elevated)"){y(r),r.state.mode="bypassPermissions",a.appendEntry(P,h(r)),e.ui.setStatus("plan",void 0),e.ui.setWidget("plan-mode",void 0);const l=n?n.trim().slice(0,8e3):"(no plan content)";return q(l),await a.executeCommand("/new"),e.ui.notify("Plan approved. Starting fresh context with elevated permissions.","info"),{content:[{type:"text",text:"Plan approved. New context started with elevated permissions. The plan has been injected as the initial message."}],details:null}}if(g==="Execute plan (elevated mode)"){y(r),r.state.mode="bypassPermissions",a.appendEntry(P,h(r)),e.ui.setStatus("plan",void 0),e.ui.setWidget("plan-mode",void 0);const l=C(n,m,v,t(),u);return e.ui.notify("Plan approved. Elevated mode active.","info"),{content:[{type:"text",text:l}],details:null}}y(r),a.appendEntry(P,h(r)),e.ui.setStatus("plan",void 0),e.ui.setWidget("plan-mode",void 0);const $=C(n,m,v,t(),u);return e.ui.notify("Plan approved. Implementation mode active.","info"),{content:[{type:"text",text:$}],details:null}},"execute")}}w(ee,"createExitPlanModeTool");export{ee as createExitPlanModeTool};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * [WHO]: planExtension - registers /plan command, EnterPlanMode/ExitPlanMode tools, plan mode state management, permission gating, and workflow prompt injection
3
+ * [FROM]: Depends on core/extensions-host/types, ./types, ./plan-file-manager, ./plan-permissions, ./plan-workflow-prompt, ./enter-plan-mode-tool, ./exit-plan-mode-tool, ./plan-agents
4
+ * [TO]: Auto-loaded by builtin-extensions.ts as a default extension
5
+ * [HERE]: extensions/builtin/plan/index.ts - main plan mode extension entry point
6
+ */
7
+ import type { ExtensionAPI } from "../../../core/extensions-host/types.js";
8
+ export default function planExtension(api: ExtensionAPI): Promise<void>;
@@ -0,0 +1,24 @@
1
+ var U=Object.defineProperty;var u=(e,t)=>U(e,"name",{value:t,configurable:!0});import{getPlanSessionState as L,getPlanFilePath as h,getPlan as P,writePlan as M,getPlansDirectory as D,serializePlanSessionState as q}from"./plan-file-manager.js";import{handlePlanModeTransition as j,shouldAllowToolCall as V}from"./plan-permissions.js";import{getPlanModeInstructions as R,getPlanModeExitInstructions as H,getPlanModeReentryInstructions as b}from"./plan-workflow-prompt.js";import{createEnterPlanModeTool as W}from"./enter-plan-mode-tool.js";import{createExitPlanModeTool as k}from"./exit-plan-mode-tool.js";import{getAndClearPendingPlan as B}from"./clear-context-state.js";import{PLAN_CUSTOM_TYPE as J}from"./types.js";const $={TURNS_BETWEEN_ATTACHMENTS:3,FULL_REMINDER_EVERY_N:3},Y=[{value:"open",label:"open",description:"Edit the current plan"},{value:"exit",label:"exit",description:"Ask to leave plan mode"},{value:"validate",label:"validate",description:"Check the current plan"},{value:"approve",label:"approve",description:"Approve a teammate plan"}];function z(e,t){if(t&&t.tokenIndex>0)return null;const d=e.trim().toLowerCase(),p=Y.filter(m=>m.value.startsWith(d));return p.length>0?p.map(m=>({...m})):null}u(z,"getPlanArgumentCompletions");function G(e){return e.sessionManager.getBranch().filter(t=>{if(t.type!=="message"||t.message.role!=="user")return!1;const d=t.message.content;return typeof d=="string"?d.trim().length>0:d.some(p=>p.type==="text"&&p.text.trim().length>0)}).length}u(G,"countHumanTurns");function T(e){const t=e.getSettings();D(t.plansDirectory,e.cwd)}u(T,"preparePlansDirectory");function f(e,t){return L(e.events,t?.sessionManager.getSessionId(),t?.sessionManager.getEntries())}u(f,"getSessionState");function y(e,t){e.appendEntry(J,q(t))}u(y,"persistPlanState");function I(e,t){const d=h(t.events);e.ui.setStatus("plan","Plan mode"),e.ui.setWidget("plan-mode",["PLAN MODE",`Plan: ${d}`,"Read-only except the plan file","Use /plan open to edit; /plan exit requests approval"],{placement:"aboveEditor"})}u(I,"setPlanModeUi");async function K(e,t,d){T(t);const p=f(e,t),m=p.state.mode;j(p),p.state.prePlanMode=m,p.state.mode="plan",I(t,e),y(e,p),t.ui.notify("Enabled plan mode. Read-only except the plan file.","info"),d&&e.sendUserMessage(d,{deliverAs:"followUp"})}u(K,"enterPlanMode");function O(e,t){return e.getActiveTools().includes(t)}u(O,"hasTool");function Q(e,t){T(t);const d=h(e.events),p=P(e.events);if(!p){t.ui.notify("Already in plan mode. No plan written yet.","warning");return}const m=["Current Plan",`Path: ${d}`,"",p,"",process.env.VISUAL||process.env.EDITOR?`Use /plan open to edit this plan in ${process.env.VISUAL||process.env.EDITOR}.`:"Use /plan open to edit this plan."];t.ui.notify(m.join(`
2
+ `),"info")}u(Q,"displayPlan");async function X(e){const t=W(e,()=>f(e),()=>!1),d=k(e,()=>f(e),()=>O(e,"Agent")||O(e,"Task"));e.registerTool(t),e.registerTool(d);const p=u(async(a,n)=>{if(T(n),f(e,n).state.mode!=="plan"){const s=a.trim(),i=s.length>0&&s!=="open"&&s!=="exit"?s:"";await K(e,n,i);return}const l=a.trim();if(l==="open"){const s=h(e.events);if(P(e.events)||await M(e.events,""),process.env.VISUAL||process.env.EDITOR){if(await n.ui.openExternalEditor(s,"Edit Plan")){const c=f(e,n);c.state.planSnapshot=P(e.events)??void 0,y(e,c),n.ui.notify(`Opened plan in editor: ${s}`,"info")}else n.ui.notify("Failed to open plan in external editor.","warning");return}const i=await n.ui.editor("Edit Plan",P(e.events)||"");if(i===void 0){n.ui.notify("Plan editing cancelled.","info");return}await M(e.events,i);const v=f(e,n);v.state.planSnapshot=i,y(e,v),n.ui.notify(`Plan saved to: ${s}`,"info");return}if(l==="exit"){try{await d.execute("plan-exit",{forceExit:!0},void 0,void 0,n)}catch(s){const i=s instanceof Error?s.message:String(s);n.ui.notify(i,"warning")}return}Q(e,n)},"handlePlanCommand"),m=u(async(a,n)=>{const{validatePlan:r,formatValidationMessage:o}=await import("./plan-validation.js"),l=h(e.events),s=P(e.events);if(!s){n.ui.notify("No plan found. Write a plan first using the write tool.","warning");return}const i=r(s),v=o(i);i.valid?n.ui.notify(`Plan validation passed:
3
+ ${v}`,"info"):n.ui.notify(`Plan validation failed:
4
+ ${v}`,"warning")},"handlePlanValidateCommand");e.registerCommand("plan:validate",{description:"Validate the current plan structure",handler:m});const N=u(async(a,n)=>{const r=await import("node:fs"),o=await import("node:os"),l=await import("node:path"),s=l.join(o.homedir(),".catui","agent","team-mail"),i=a.trim();if(!i){if(!r.existsSync(s)){n.ui.notify("No pending plan approval requests.","info");return}const w=r.readdirSync(s).filter(S=>S.startsWith("plan_approval-")&&S.endsWith(".json"));if(w.length===0){n.ui.notify("No pending plan approval requests.","info");return}const F=w.map(S=>{const A=r.readFileSync(l.join(s,S),"utf-8"),C=JSON.parse(A);return`- Request ID: ${C.requestId}
5
+ From: ${C.from}
6
+ Time: ${new Date(C.timestamp).toLocaleString()}`});n.ui.notify(`Pending plan approval requests:
7
+
8
+ `+F.join(`
9
+
10
+ `)+"\n\nUse `/plan:approve <request-id>` to approve.","info");return}const v=l.join(s,`${i}.json`);if(!r.existsSync(v)){n.ui.notify(`Request not found: ${i}`,"error");return}const g=r.readFileSync(v,"utf-8"),c=JSON.parse(g),E={type:"plan_approval_response",requestId:i,approved:!0,approvedBy:"leader",timestamp:new Date().toISOString()},_=l.join(s,`response-${i}.json`);r.writeFileSync(_,JSON.stringify(E,null,2),"utf-8"),n.ui.notify(`Plan approved for ${c.from}.
11
+
12
+ Plan content:
13
+ \`\`\`
14
+ ${c.planContent.slice(0,500)}${c.planContent.length>500?`
15
+ ...(truncated)`:""}
16
+ \`\`\`
17
+
18
+ The teammate can now proceed with implementation.`,"info")},"handlePlanApproveCommand");e.registerCommand("plan:approve",{description:"Approve a teammate's plan (for team leaders)",handler:N}),e.registerCommand("plan",{description:"Plan, edit, validate, approve, or exit the current session plan",getArgumentCompletions:z,handler:u(async(a,n)=>{const[r,...o]=a.trim().split(/\s+/);if(r==="validate"){await m("",n);return}if(r==="approve"){await N(o.join(" "),n);return}await p(a,n)},"handler")}),e.on("tool_call",a=>{if(f(e).state.mode!=="plan")return;const r={toolName:a.toolName,toolCallId:a.toolCallId,input:a.input},o=h(e.events),l=V(r,o,e.cwd);if(!l.allowed)return{block:!0,reason:l.reason}}),e.on("before_agent_start",async(a,n)=>{const r=B();if(r)return{appendSystemPrompt:`## Plan to Implement
19
+
20
+ The user approved the following plan in a previous context. Implement it now:
21
+
22
+ ${r}`};T(n);const o=f(e,n),{mode:l,needsPlanModeExitAttachment:s,hasExitedPlanModeInSession:i,planAttachmentCount:v}=o.state;if(l!=="plan"&&s){o.state.needsPlanModeExitAttachment=!1,y(e,o);const g=h(e.events),c=P(e.events)!==null;return{appendSystemPrompt:H(g,c,o.state.lastAllowedPrompts)}}if(l==="plan"){I(n,e);const g=h(e.events),c=P(e.events),E=G(n);if(o.state.lastPlanAttachmentHumanTurn!==void 0&&E-o.state.lastPlanAttachmentHumanTurn<$.TURNS_BETWEEN_ATTACHMENTS)return;if(i&&c!==null){o.state.hasExitedPlanModeInSession=!1,o.state.lastPlanAttachmentHumanTurn=E,y(e,o);const S=b(g),A=R(o,g,c,"full");return{appendSystemPrompt:S+`
23
+
24
+ `+A}}const w=v%$.FULL_REMINDER_EVERY_N===0?"full":"sparse";return o.state.planAttachmentCount+=1,o.state.lastPlanAttachmentHumanTurn=E,o.state.planSnapshot=c??void 0,y(e,o),{appendSystemPrompt:R(o,g,c,w)}}}),e.registerShortcut("alt+g",{description:"Open plan file in external editor",handler:u(async a=>{if(f(e,a).state.mode!=="plan"){a.ui.notify("Not in plan mode.","info");return}const r=h(e.events);if(P(e.events)||await M(e.events,""),process.env.VISUAL||process.env.EDITOR)if(await a.ui.openExternalEditor(r,"Edit Plan")){const l=f(e,a);l.state.planSnapshot=P(e.events)??void 0,y(e,l),a.ui.notify(`Opened plan in editor: ${r}`,"info")}else a.ui.notify("Failed to open plan in external editor.","warning");else a.ui.notify("No $VISUAL or $EDITOR set. Cannot open external editor.","warning")},"handler")}),e.on("session_start",(a,n)=>{T(n),f(e,n).state.mode==="plan"&&I(n,e)}),e.on("session_shutdown",()=>{})}u(X,"planExtension");export{X as default};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * [WHO]: createExploreAgentSpec(), createPlanAgentSpec(), getExploreAgentCount(), getPlanAgentCount()
3
+ * [FROM]: No external dependencies
4
+ * [TO]: Consumed by model during plan mode workflow (via subagent spawning)
5
+ * [HERE]: extensions/builtin/plan/plan-agents.ts - Explore/Plan subagent definitions for plan mode
6
+ */
7
+ export declare function getExploreAgentCount(): number;
8
+ export declare function getPlanAgentCount(): number;
9
+ /**
10
+ * Prompt for the Explore subagent.
11
+ * Focuses on codebase search and pattern identification.
12
+ */
13
+ export declare function getExploreAgentPrompt(taskDescription: string, searchFocus: string): string;
14
+ /**
15
+ * Prompt for the Plan subagent.
16
+ * Focuses on implementation design based on exploration results.
17
+ */
18
+ export declare function getPlanAgentPrompt(taskDescription: string, explorationResults: string, contextFiles: string): string;
19
+ /**
20
+ * List of tool names available to Explore/Plan subagents.
21
+ * Restricted to read-only operations.
22
+ */
23
+ export declare const PLAN_SUBAGENT_TOOLS: string[];
@@ -0,0 +1,43 @@
1
+ var s=Object.defineProperty;var o=(t,e)=>s(t,"name",{value:e,configurable:!0});function r(){const t=process.env.CATUI_PLAN_EXPLORE_AGENT_COUNT??process.env.NANOPENCIL_PLAN_EXPLORE_AGENT_COUNT;if(t){const e=parseInt(t,10);if(!isNaN(e)&&e>=1&&e<=10)return e}return 3}o(r,"getExploreAgentCount");function a(){const t=process.env.CATUI_PLAN_AGENT_COUNT??process.env.NANOPENCIL_PLAN_AGENT_COUNT;if(t){const e=parseInt(t,10);if(!isNaN(e)&&e>=1&&e<=10)return e}return 1}o(a,"getPlanAgentCount");function c(t,e){return`You are an Explore agent. Your job is to search the codebase to understand how to implement the following task:
2
+
3
+ **Task**: ${t}
4
+
5
+ **Your specific focus**: ${e}
6
+
7
+ Instructions:
8
+ 1. Use read, grep, find, ls, and time tools to search the codebase
9
+ 2. Look for existing functions, tools, patterns, and architectural approaches that can be reused
10
+ 3. Search for related components, utilities, and modules
11
+ 4. Report your findings with specific file paths and function names
12
+ 5. Do NOT write or edit any files
13
+ 6. Do NOT run bash commands that modify the filesystem
14
+ 7. Do NOT call ExitPlanMode or EnterPlanMode
15
+ 8. Do NOT spawn other agents
16
+
17
+ Be thorough but focused on your specific search area. Report concrete findings with file paths.`}o(c,"getExploreAgentPrompt");function p(t,e,n){return`You are a Plan agent (software architect). Your job is to design an implementation approach for the following task:
18
+
19
+ **Task**: ${t}
20
+
21
+ ## Exploration Results from Phase 1:
22
+ ${e}
23
+
24
+ ## Relevant Context Files:
25
+ ${n}
26
+
27
+ Instructions:
28
+ 1. Design a concrete implementation approach based on the exploration results
29
+ 2. Identify the key files that need to be modified
30
+ 3. Describe the approach step by step
31
+ 4. Reference specific existing functions and utilities that should be reused
32
+ 5. Consider trade-offs and potential risks
33
+ 6. Do NOT write or edit any files
34
+ 7. Do NOT run bash commands that modify the filesystem
35
+ 8. Do NOT call ExitPlanMode or EnterPlanMode
36
+ 9. Do NOT spawn other agents
37
+
38
+ Your output should include:
39
+ - Recommended approach with rationale
40
+ - List of critical files to modify
41
+ - Existing code to reuse
42
+ - Step-by-step implementation strategy
43
+ - Verification approach`}o(p,"getPlanAgentPrompt");const l=["read","grep","find","ls","time"];export{l as PLAN_SUBAGENT_TOOLS,r as getExploreAgentCount,c as getExploreAgentPrompt,a as getPlanAgentCount,p as getPlanAgentPrompt};
@@ -0,0 +1,26 @@
1
+ /**
2
+ * [WHO]: PlanFileManager class, getPlansDirectory(), getPlanFilePath(), getPlan(), getPlanSlug()
3
+ * [FROM]: Depends on node:fs, node:path, node:os, node:crypto, proper-lockfile, core/extensions-host/types (EventBus)
4
+ * [TO]: Consumed by plan extension tools, workflow prompts, permission gating
5
+ * [HERE]: extensions/builtin/plan/plan-file-manager.ts - plan file path management and I/O
6
+ */
7
+ import { type PlanSessionState, type PlanStateEntryData } from "./types.js";
8
+ import type { SessionEntry } from "../../../core/session/session-manager.js";
9
+ export declare function getPlanSessionState(bus: unknown, sessionId?: string, entries?: SessionEntry[]): PlanSessionState;
10
+ export declare function hydratePlanSessionState(sessionState: PlanSessionState, sessionId: string, entries: SessionEntry[]): void;
11
+ export declare function serializePlanSessionState(sessionState: PlanSessionState): PlanStateEntryData;
12
+ export declare function generatePlanSlug(): string;
13
+ export declare function getPlansDirectory(settingsPlansDir?: string, cwd?: string): string;
14
+ export declare function resetPlansDirectoryCache(): void;
15
+ export declare function getPlanSlug(bus: unknown): string;
16
+ export declare function setPlanSlug(bus: unknown, slug: string): void;
17
+ export declare function clearPlanSlug(bus: unknown): void;
18
+ export declare function clearAllPlanSlugs(): void;
19
+ export declare function getPlanFilePath(bus: unknown, agentId?: string): string;
20
+ export declare function getPlan(bus: unknown, agentId?: string): string | null;
21
+ export declare function writePlan(bus: unknown, content: string, agentId?: string): Promise<boolean>;
22
+ export declare function planExists(bus: unknown, agentId?: string): boolean;
23
+ export declare function copyPlanForResume(sourceBus: unknown, targetBus: unknown): Promise<boolean>;
24
+ export declare function copyPlanForFork(sourceBus: unknown, targetBus: unknown): Promise<boolean>;
25
+ export declare function copyPlanFileToNewSlug(bus: unknown): Promise<boolean>;
26
+ export declare function copyPlanFile(sourcePath: string, targetPath: string): boolean;
@@ -0,0 +1 @@
1
+ var E=Object.defineProperty;var r=(e,t)=>E(e,"name",{value:t,configurable:!0});import{copyFileSync as b,existsSync as k,mkdirSync as i,readFileSync as w,renameSync as C,writeFileSync as T}from"node:fs";import{homedir as $}from"node:os";import{dirname as g,join as c,resolve as F,sep as I}from"node:path";import{PLAN_CUSTOM_TYPE as j}from"./types.js";const s=["gentle","swift","bright","calm","deep","eager","fair","grand","keen","light","bold","warm","wise","free","pure","rich","safe","sure","tall","vast","wild","zany","noble","proud","brave","clever","daring","elegant","fierce","graceful","humble","nimble","rapid","sharp","silent","solid","steady","strong","subtle","super","vivid","witty","active","agile","ample","brisk","cosmic","curious","digital","distant","divine","epic","famous","fancy","flying","galactic","golden","happy","holy","huge","jolly","jumpy","lively","lucky","magic","major","merry","mighty","modern","mystic","native","orange","peaceful","perfect","pink","polar","polite","prime","purple","quick","quiet","random","rare","real","red","royal","sacred","shiny","simple","sleek","smart","smooth","soft","sparse","speedy","stellar","sunny","sweet","tender","tiny","top","ultra","unique","urban","vital","white","wonder","young"],y=["engelbart","hopper","lovelace","turing","knuth","dijkstra","pascal","bayes","fourier","gauss","hilbert","neumann","boole","shannon","pearl","minsky","mccarthy","ritchie","thompson","torvalds","berners-lee","hamilton","lampson","kay","gosling","wall","matz","ikea","nova","echo","flux","prism","orbit","pulse","spark","drift","crest","peak","tide","wave","breeze","stone","forge","bridge","canyon","delta","ember","falcon","grove","harbor","ivory","jewel","knot","lunar","maple","nexus","oasis","phoenix","quest","raven","summit","trail","unity","vertex","willow","atlas","beacon","comet","dusk","eagle","flame","globe","horizon","iris","jade","kite","lotus","meteor","nebula","oak","panda","quartz","reef","star","tiger","umbra","vortex","wolf","zenith"],d=c($(),".catui","plans"),z=10,P=new WeakMap,x=new Set;function f(e,t,a){const n=e;let o=P.get(n);return o||(o={state:{mode:"default",prePlanMode:"default",needsPlanModeExitAttachment:!1,hasExitedPlanModeInSession:!1,planAttachmentCount:0,sessionId:t},planSlugCache:void 0},P.set(n,o),x.add(o)),t&&o.state.hydratedSessionId!==t&&N(o,t,a??[]),o}r(f,"getPlanSessionState");function N(e,t,a){e.state.hydratedSessionId=t,e.state.sessionId=t;for(let n=a.length-1;n>=0;n--){const o=a[n];if(o.type!=="custom"||o.customType!==j)continue;const l=o.data;if(!(!l||l.version!==1)&&!(l.sessionId&&l.sessionId!==t)){e.state.mode=l.mode??"default",e.state.prePlanMode=l.prePlanMode??"default",e.state.needsPlanModeExitAttachment=l.needsPlanModeExitAttachment??!1,e.state.hasExitedPlanModeInSession=l.hasExitedPlanModeInSession??!1,e.state.planAttachmentCount=l.planAttachmentCount??0,e.state.lastPlanAttachmentHumanTurn=l.lastPlanAttachmentHumanTurn,e.state.planSlug=l.planSlug,e.state.planSnapshot=l.planSnapshot,e.state.lastAllowedPrompts=l.lastAllowedPrompts,e.planSlugCache=l.planSlug;return}}e.state.mode="default",e.state.prePlanMode="default",e.state.needsPlanModeExitAttachment=!1,e.state.hasExitedPlanModeInSession=!1,e.state.planAttachmentCount=0,e.state.lastPlanAttachmentHumanTurn=void 0,e.state.planSlug=void 0,e.state.planSnapshot=void 0,e.state.lastAllowedPrompts=void 0,e.planSlugCache=void 0}r(N,"hydratePlanSessionState");function O(e){return{version:1,sessionId:e.state.sessionId,mode:e.state.mode,prePlanMode:e.state.prePlanMode,needsPlanModeExitAttachment:e.state.needsPlanModeExitAttachment,hasExitedPlanModeInSession:e.state.hasExitedPlanModeInSession,planAttachmentCount:e.state.planAttachmentCount,lastPlanAttachmentHumanTurn:e.state.lastPlanAttachmentHumanTurn,planSlug:e.planSlugCache??e.state.planSlug,planSnapshot:e.state.planSnapshot,lastAllowedPrompts:e.state.lastAllowedPrompts}}r(O,"serializePlanSessionState");function D(){const e=s[Math.floor(Math.random()*s.length)],t=s[Math.floor(Math.random()*s.length)],a=y[Math.floor(Math.random()*y.length)];return`${e}-${t}-${a}`}r(D,"generatePlanSlug");let u,m;function S(e,t){const a=`${t??""}\0${e??""}`;if(u&&!e&&!t||u&&m===a)return u;if(e&&t){const n=F(t,e);!n.startsWith(t+I)&&n!==t?(i(d,{recursive:!0}),u=d):(i(n,{recursive:!0}),u=n)}else i(d,{recursive:!0}),u=d;return m=a,u}r(S,"getPlansDirectory");function W(){u=void 0,m=void 0}r(W,"resetPlansDirectoryCache");function v(e){const t=f(e);if(t.planSlugCache)return t.planSlugCache;const a=S();let n;for(let o=0;o<z;o++){n=D();const l=c(a,`${n}.md`);if(!k(l))break}return n=n,t.planSlugCache=n,t.state.planSlug=n,n}r(v,"getPlanSlug");function _(e,t){const a=f(e);a.planSlugCache=t,a.state.planSlug=t}r(_,"setPlanSlug");function A(e){const t=f(e);t.planSlugCache=void 0,t.state.planSlug=void 0}r(A,"clearPlanSlug");function G(){for(const e of x)e.planSlugCache=void 0,e.state.planSlug=void 0}r(G,"clearAllPlanSlugs");function M(e,t){const a=v(e),n=S();return t?c(n,`${a}-agent-${t}.md`):c(n,`${a}.md`)}r(M,"getPlanFilePath");function p(e,t){const a=M(e,t);try{return w(a,"utf-8")}catch(n){return n.code==="ENOENT"||console.error(`Error reading plan file: ${n}`),null}}r(p,"getPlan");async function h(e,t,a){const n=M(e,a);try{const o=g(n);i(o,{recursive:!0});const l=n+".tmp."+process.pid;return T(l,t,"utf-8"),C(l,n),!0}catch(o){return console.error(`Error writing plan file: ${o}`),!1}}r(h,"writePlan");function J(e,t){return p(e,t)!==null}r(J,"planExists");async function K(e,t){const a=v(e);_(t,a);const n=p(e);return n!==null?(await h(t,n),!0):!1}r(K,"copyPlanForResume");async function V(e,t){const a=p(e);return a===null?!1:(A(t),await h(t,a),!0)}r(V,"copyPlanForFork");async function X(e){const t=p(e);return t===null?!1:(A(e),h(e,t))}r(X,"copyPlanFileToNewSlug");function Y(e,t){try{return i(g(t),{recursive:!0}),b(e,t),!0}catch{return!1}}r(Y,"copyPlanFile");export{G as clearAllPlanSlugs,A as clearPlanSlug,Y as copyPlanFile,X as copyPlanFileToNewSlug,V as copyPlanForFork,K as copyPlanForResume,D as generatePlanSlug,p as getPlan,M as getPlanFilePath,f as getPlanSessionState,v as getPlanSlug,S as getPlansDirectory,N as hydratePlanSessionState,J as planExists,W as resetPlansDirectoryCache,O as serializePlanSessionState,_ as setPlanSlug,h as writePlan};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * [WHO]: shouldAllowToolCall(), getPlanModeToolBlockReason()
3
+ * [FROM]: Depends on node:path, ./types, ./plan-file-manager
4
+ * [TO]: Consumed by plan extension index.ts (tool_call event handler)
5
+ * [HERE]: extensions/builtin/plan/plan-permissions.ts - tool call permission gating for plan mode
6
+ */
7
+ import type { ToolCallInput, ToolPermissionResult } from "./types.js";
8
+ import type { PlanSessionState } from "./types.js";
9
+ /**
10
+ * Check if a tool call is allowed in plan mode.
11
+ * Returns { allowed: true } or { allowed: false, reason: string }.
12
+ */
13
+ export declare function shouldAllowToolCall(toolCall: ToolCallInput, planFilePath: string, cwd?: string): ToolPermissionResult;
14
+ export declare function handlePlanModeTransition(sessionState: PlanSessionState): void;
15
+ export declare function handlePlanModeExit(sessionState: PlanSessionState): void;
@@ -0,0 +1,12 @@
1
+ var l=Object.defineProperty;var o=(t,n)=>l(t,"name",{value:n,configurable:!0});import{resolve as r}from"node:path";const d=new Set(["read","grep","find","ls","time","source","LSP","AskUserQuestion"]),f=new Set(["Explore","Plan","explore","plan"]),c=new Set(["notebookEdit","NotebookEdit","write_file","edit_file","replace","create_file","delete_file"]),u=["ls ","ls ",`ls
2
+ `,"cat ","cat ","head ","head ","tail ","tail ","wc ","wc ","echo ","echo ",`echo
3
+ `,"find ","find ","grep ","grep ","rg ","rg ","stat ","stat ","file ","file ","pwd",`pwd
4
+ `,"pwd ","which ","which ","whoami",`whoami
5
+ `,"date",`date
6
+ `,"date ","uname ","uname ","git status","git log ",`git log
7
+ `,"git log ","git diff ",`git diff
8
+ `,"git diff ","git branch",`git branch
9
+ `,"git branch ","git show ",`git show
10
+ `,"git show ","git describe",`git describe
11
+ `,"tree ","tree ",`tree
12
+ `,"du ","du ","df ","df "],p=[/>/,/\brm\s+/,/\bmv\s+/,/\bcp\s+/,/\bchmod\s+/,/\bchown\s+/,/\bcurl\s.*\|.*sh/,/\bwget\s.*\|.*sh/,/\bgit\s+(commit|push|reset\s+--hard|clean\s+-f)/,/\bnpm\s+(publish|install|update|add|remove|uninstall|ci)\b/,/\bpnpm\s+(publish|install|update|add|remove|uninstall)\b/,/\byarn\s+(publish|install|add|remove|upgrade)\b/,/\byarn\s+(publish)/,/\bpip\s+install/,/\btouch\s+/,/\bmkdir\s+/,/\btee\s+/,/\bsed\s+-i\b/,/\bsudo\s+/,/\bdd\s+/];function E(t,n,s=process.cwd()){const{toolName:e,input:a}=t;if(e==="ExitPlanMode")return{allowed:!0,classification:"plan"};if(e==="EnterPlanMode")return h(a)?{allowed:!1,classification:"agent",reason:"EnterPlanMode is not allowed from agent contexts."}:{allowed:!0,classification:"plan"};if(d.has(e))return{allowed:!0,classification:"read"};if(e==="write"||e==="edit"){const i=typeof a.path=="string"?a.path:"";return i&&g(i,n,s)?{allowed:!0,classification:"write"}:{allowed:!1,classification:"write",reason:`In plan mode, ${e} is only allowed for the plan file: ${n}`}}if(e==="Agent"||e==="Task")return w(a)?{allowed:!0,classification:"agent"}:{allowed:!1,classification:"agent",reason:"In plan mode, Agent/Task is only allowed for read-only Explore or Plan agents."};if(e==="bash"){const i=typeof a.command=="string"?a.command:"";return m(i)?{allowed:!0,classification:"read"}:{allowed:!1,classification:"write",reason:`In plan mode, only read-only bash commands are allowed. Command "${i.slice(0,80)}${i.length>80?"...":""}" appears to modify the filesystem.`}}return c.has(e)?{allowed:!1,classification:"write",reason:`${e} is not allowed in plan mode.`}:{allowed:!1,classification:"unknown",reason:`In plan mode, unknown tool "${e}" is blocked unless it is explicitly classified as read-only.`}}o(E,"shouldAllowToolCall");function m(t){const n=t.trim();if(!n)return!0;for(const e of p)if(e.test(n))return!1;for(const e of u)if(n.startsWith(e))return!0;const s=["pwd","whoami","date","uname"];for(const e of s)if(n===e||n.startsWith(e+" ")||n.startsWith(e+" "))return!0;if(n.startsWith("git ")){const e=["status","log","diff","branch","show","describe","tag"];for(const a of e)if(n.startsWith(`git ${a}`))return!0;return!1}return!1}o(m,"isReadOnlyBashCommand");function g(t,n,s){if(t===n)return!0;try{const e=r(s,t),a=r(n);return e===a}catch{return!1}}o(g,"pathsMatch");function h(t){return typeof t.agentId=="string"||typeof t.parentAgentId=="string"}o(h,"isAgentContext");function w(t){const n=typeof t.agentType=="string"?t.agentType:typeof t.subagent_type=="string"?t.subagent_type:typeof t.type=="string"?t.type:"";if(n&&f.has(n))return!0;const s=typeof t.prompt=="string"?t.prompt:"";if(!s)return!1;const e=/\b(Explore|Plan) agent\b/i.test(s)||/\bread-only\b/i.test(s),a=/\b(write|edit|modify|delete|commit|apply)\b/i.test(s);return e&&!a}o(w,"isPlanSafeAgent");function A(t){t.state.needsPlanModeExitAttachment=!1,t.state.planAttachmentCount=0}o(A,"handlePlanModeTransition");function P(t){t.state.hasExitedPlanModeInSession=!0,t.state.needsPlanModeExitAttachment=!0,t.state.mode=t.state.prePlanMode,t.state.prePlanMode="default"}o(P,"handlePlanModeExit");export{P as handlePlanModeExit,A as handlePlanModeTransition,E as shouldAllowToolCall};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * [WHO]: validatePlan(), checkPlanStructure()
3
+ * [FROM]: No external dependencies
4
+ * [TO]: Consumed by exit-plan-mode-tool.ts
5
+ * [HERE]: extensions/builtin/plan/plan-validation.ts - plan content validation
6
+ */
7
+ /**
8
+ * Validate that a plan has the minimum required structure.
9
+ */
10
+ export declare function validatePlan(planContent: string): {
11
+ valid: boolean;
12
+ missingSections: string[];
13
+ suggestions: string[];
14
+ };
15
+ /**
16
+ * Generate a validation message for the user.
17
+ */
18
+ export declare function formatValidationMessage(result: ReturnType<typeof validatePlan>): string;
@@ -0,0 +1,5 @@
1
+ var g=Object.defineProperty;var n=(e,i)=>g(e,"name",{value:i,configurable:!0});const m=[/^#{1,3}\s*(Context|Background|Why)/im,/^#{1,3}\s*(Approach|Implementation|Plan)/im,/^#{1,3}\s*(Files?|Changes?|Steps?)/im,/^#{1,3}\s*(Test|Verification|Validate)/im];function l(e){if(!e||e.trim().length===0)return{valid:!1,missingSections:["Empty plan"],suggestions:["Write a plan with Context, Approach, Files, and Verification sections"]};const i=[],s=[],t=[{pattern:/^#{1,3}\s*(Context|Background|Why)/im,name:"Context"},{pattern:/^#{1,3}\s*(Approach|Implementation|Plan|Design)/im,name:"Approach"},{pattern:/^#{1,3}\s*(Files?|Changes?|Steps?|Files to Modify)/im,name:"Files to modify"},{pattern:/^#{1,3}\s*(Test|Verification|Validate|Testing)/im,name:"Verification"}];for(const{pattern:o,name:a}of t)o.test(e)||i.push(a);return e.length<200&&s.push("Plan seems too short - consider adding more detail"),(e.match(/```/g)||[]).length===0&&e.length>500&&s.push("Consider including code examples or pseudocode"),{valid:i.length===0,missingSections:i,suggestions:s}}n(l,"validatePlan");function d(e){return e.valid?e.suggestions.length>0?["Plan structure looks good!","","Suggestions:",...e.suggestions.map(i=>`- ${i}`)].join(`
2
+ `):"Plan structure is complete.":["Plan is missing required sections:",...e.missingSections.map(i=>`- ${i}`),"","Please add these sections before exiting plan mode.","",e.suggestions.length>0?`Suggestions:
3
+ `+e.suggestions.map(i=>`- ${i}`).join(`
4
+ `):""].join(`
5
+ `)}n(d,"formatValidationMessage");export{d as formatValidationMessage,l as validatePlan};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * [WHO]: getPlanModeInstructions(), getPlanModeExitInstructions(), getPlanModeReentryInstructions()
3
+ * [FROM]: Depends on ./plan-file-manager, ./types
4
+ * [TO]: Consumed by plan extension index.ts (before_agent_start event handler)
5
+ * [HERE]: extensions/builtin/plan/plan-workflow-prompt.ts - workflow prompt generation for plan mode
6
+ */
7
+ import type { PlanModeConfig, PlanSessionState } from "./types.js";
8
+ export declare function getPlanModeInstructions(sessionState: PlanSessionState, planFilePath: string, existingPlan: string | null, reminderType: "full" | "sparse", config?: PlanModeConfig): string;
9
+ export declare function getPlanModeExitInstructions(planFilePath: string, planExists: boolean, allowedPrompts?: Array<{
10
+ tool: string;
11
+ prompt: string;
12
+ }>): string;
13
+ export declare function getPlanModeReentryInstructions(planFilePath: string): string;
14
+ export declare function getEnterPlanModeToolResult(): string;
15
+ export declare function getExitPlanModeApprovedResult(plan: string | null, filePath: string, planWasEdited: boolean, hasAgentTool: boolean, allowedPrompts?: Array<{
16
+ tool: string;
17
+ prompt: string;
18
+ }>): string;
@@ -0,0 +1,102 @@
1
+ var l=Object.defineProperty;var a=(t,n)=>l(t,"name",{value:n,configurable:!0});function f(t,n,i,e,s){const o=s?.interviewPhaseEnabled||(process.env.CATUI_PLAN_INTERVIEW??process.env.NANOPENCIL_PLAN_INTERVIEW)==="true";return e==="sparse"?o?p(n,i!==null):u(n,i!==null):o?h(n,i!==null?!0:null):d(n,i!==null?!0:null)}a(f,"getPlanModeInstructions");function u(t,n){return[`Plan mode still active (see full instructions earlier in conversation). Read-only except plan file (${t}).`,n?`Continue editing your plan at ${t}.`:`Create your plan at ${t}.`,"End turns with AskUserQuestion (for clarifications) or ExitPlanMode (for plan approval). Never ask about plan approval via text or AskUserQuestion."].join(`
2
+ `)}a(u,"getSparseReminder");function d(t,n){const i=n!==null,e=[];return e.push("Plan mode is active. The user indicated that they do not want you to execute yet -- you MUST NOT make any edits (with the exception of the plan file mentioned below), run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supercedes any other instructions you have received."),i?e.push(`A plan file already exists at ${t}. You can read it and make incremental edits using FileEdit.`):e.push(`No plan file exists yet. You should create your plan at ${t} using the FileWrite tool.`),e.push(`
3
+ ## Plan Workflow
4
+
5
+ ### Phase 1: Initial Understanding
6
+ Goal: Gain a comprehensive understanding of the user's request by reading through code and asking them questions.
7
+
8
+ 1. Focus on understanding the user's request and the code associated with their request. Actively search for existing functions, utilities, and patterns that can be reused -- avoid proposing new code when suitable implementations already exist.
9
+
10
+ 2. **Launch up to 3 Explore subagents IN PARALLEL** (single message, multiple tool calls) to efficiently explore the codebase.
11
+ - Use 1 agent when the task is isolated to known files, the user provided specific file paths, or you're making a small targeted change.
12
+ - Use multiple agents when: the scope is uncertain, multiple areas of the codebase are involved, or you need to understand existing patterns before planning.
13
+ - Quality over quantity - 3 agents maximum, but try to use the minimum number of agents necessary (usually just 1)
14
+ - If using multiple agents: Provide each agent with a specific search focus. Example: One agent searches for existing implementations, another explores related components, a third investigating testing patterns`),e.push(`
15
+ ### Phase 2: Design
16
+ Goal: Design an implementation approach.
17
+
18
+ Launch Plan subagent(s) to design the implementation based on the user's intent and your exploration results from Phase 1.
19
+
20
+ You can launch up to 1 Plan subagent(s) in parallel.
21
+
22
+ **Guidelines:**
23
+ - **Default**: Launch at least 1 Plan agent for most tasks - it helps validate your understanding and consider alternatives
24
+ - **Skip agents**: Only for truly trivial tasks (typo fixes, single-line changes, simple renames)
25
+
26
+ In the agent prompt:
27
+ - Provide comprehensive background context from Phase 1 exploration including filenames and code path traces
28
+ - Describe requirements and constraints
29
+ - Request a detailed implementation plan`),e.push(`
30
+ ### Phase 3: Review
31
+ Goal: Review the plan(s) from Phase 2 and ensure alignment with the user's intentions.
32
+ 1. Read the critical files identified by agents to deepen your understanding
33
+ 2. Ensure that the plans align with the user's original request
34
+ 3. Use AskUserQuestion to clarify any remaining questions with the user`),e.push(`
35
+ ### Phase 4: Final Plan
36
+ Goal: Write your final plan to the plan file (the only file you can edit).
37
+ - Begin with a **Context** section: explain why this change is being made -- the problem or need it addresses, what prompted it, and the intended outcome
38
+ - Include only your recommended approach, not all alternatives
39
+ - Ensure that the plan file is concise enough to scan quickly, but detailed enough to execute effectively
40
+ - Include the paths of critical files to be modified
41
+ - Reference existing functions and utilities you found that should be reused, with their file paths
42
+ - Include a verification section describing how to test the changes end-to-end (run the code, use MCP tools, run tests)`),e.push(`
43
+ ### Phase 5: Call ExitPlanMode
44
+ At the very end of your turn, once you have asked the user questions and are happy with your final plan file - you should always call ExitPlanMode to indicate to the user that you are done planning.
45
+ This is critical - your turn should only end with either using the AskUserQuestion tool OR calling ExitPlanMode. Do not stop unless it's for these 2 reasons
46
+
47
+ **Important:** Use AskUserQuestion ONLY to clarify requirements or choose between approaches. Use ExitPlanMode to request plan approval. Do NOT ask about plan approval in any other way - no text questions, no AskUserQuestion. Phrases like "Is this plan okay?", "Should I proceed?", "How does this plan look?", "Any changes before we start?", or similar MUST use ExitPlanMode.
48
+
49
+ NOTE: At any point in time through this workflow you should feel free to ask the user questions or clarifications using the AskUserQuestion tool. Don't make large assumptions about user intent. The goal is to present a well researched plan to the user, and tie any loose ends before implementation begins.`),e.join(`
50
+
51
+ `)}a(d,"getFullWorkflow");function h(t,n){const i=n!==null,e=[];return e.push("Plan mode is active. The user indicated that they do not want you to execute yet -- you MUST NOT make any edits (with the exception of the plan file mentioned below), run any non-readonly tools (including changing configs or making commits), or otherwise make any changes to the system. This supercedes any other instructions you have received."),i?e.push(`A plan file already exists at ${t}. You can read it and make incremental edits using FileEdit.`):e.push(`No plan file exists yet. You should create your plan at ${t} using the FileWrite tool.`),e.push(`## Iterative Planning Workflow
52
+
53
+ You are pair-planning with the user. Explore the code to build context, ask the user questions when you hit decisions you can't make alone, and write your findings into the plan file as you go. The plan file (above) is the ONLY file you may edit -- it starts as a rough skeleton and gradually becomes the final plan.
54
+
55
+ ### The Loop
56
+
57
+ Repeat this cycle until the plan is complete:
58
+
59
+ 1. **Explore** -- Use read-only tools (Read, Grep, Find, Bash with read-only commands) to read code. Look for existing functions, utilities, and patterns to reuse. You can use the Explore agent type to parallelize complex searches without filling your context, though for straightforward queries direct tools are simpler.
60
+ 2. **Update the plan file** -- After each discovery, immediately capture what you learned. Don't wait until the end.
61
+ 3. **Ask the user** -- When you hit an ambiguity or decision you can't resolve from code alone, use AskUserQuestion. Then go back to step 1.
62
+
63
+ ### First Turn
64
+
65
+ Start by quickly scanning a few key files to form an initial understanding of the task scope. Then write a skeleton plan (headers and rough notes) and ask the user your first round of questions. Don't explore exhaustively before engaging the user.
66
+
67
+ ### Asking Good Questions
68
+
69
+ - Never ask what you could find out by reading the code
70
+ - Batch related questions together (use multi-question AskUserQuestion calls)
71
+ - Focus on things only the user can answer: requirements, preferences, tradeoffs, edge case priorities
72
+ - Scale depth to the task -- a vague feature request needs many rounds; a focused bug fix may need one or none
73
+
74
+ ### Plan File Structure
75
+
76
+ Your plan file should be divided into clear sections using markdown headers, based on the request. Fill out these sections as you go.
77
+ - Begin with a **Context** section: explain why this change is being made
78
+ - Include only your recommended approach, not all alternatives
79
+ - Ensure that the plan file is concise enough to scan quickly, but detailed enough to execute effectively
80
+ - Include the paths of critical files to be modified
81
+ - Reference existing functions and utilities you found that should be reused, with their file paths
82
+ - Include a verification section describing how to test the changes end-to-end
83
+
84
+ ### When to Converge
85
+
86
+ Your plan is ready when you've addressed all ambiguities and it covers: what to change, which files to modify, what existing code to reuse (with file paths), and how to verify the changes. Call ExitPlanMode when the plan is ready for approval.
87
+
88
+ ### Ending Your Turn
89
+
90
+ Your turn should only end by either:
91
+ - Using AskUserQuestion to gather more information
92
+ - Calling ExitPlanMode when the plan is ready for approval
93
+
94
+ **Important:** Use ExitPlanMode to request plan approval. Do NOT ask about plan approval via text or AskUserQuestion. Phrases like "Is this plan okay?", "Should I proceed?", "How does this plan look?" MUST use ExitPlanMode.`),e.join(`
95
+
96
+ `)}a(h,"getInterviewWorkflow");function p(t,n){return[`Plan mode still active (iterative workflow). Read-only except plan file (${t}).`,n?`Continue exploring codebase, updating plan, and interviewing user at ${t}.`:`Start by scanning key files, write a skeleton plan at ${t}, then ask your first questions.`,"End turns with AskUserQuestion (for clarifications) or ExitPlanMode (for plan approval). Never ask about plan approval via text or AskUserQuestion."].join(`
97
+ `)}a(p,"getInterviewSparseReminder");function g(t,n,i){const e=["## Exited Plan Mode","","You have exited plan mode. You can now make edits, run tools, and take actions."];if(n?e.push(`The plan file is located at ${t} if you need to reference it.`):e.push("No plan was written during plan mode."),i&&i.length>0){e.push(""),e.push("The following tool permissions were pre-approved by the user during plan approval:");for(const s of i)e.push(`- ${s.tool}: ${s.prompt}`)}return e.join(`
98
+ `)}a(g,"getPlanModeExitInstructions");function y(t){return["You are returning to plan mode after having previously exited it.",`A plan file exists at ${t}.`,"","Before proceeding:","1. Read existing plan","2. Compare current request with the existing plan","3. If this is a different task -> overwrite the plan file","4. If this is the same task -> modify and clean up stale parts","5. Always edit the plan file before calling ExitPlanMode"].join(`
99
+ `)}a(y,"getPlanModeReentryInstructions");function m(){return["Entered plan mode. You should now focus on exploring the codebase and designing an implementation approach.","","In plan mode, you should:","1. Thoroughly explore the codebase to understand existing patterns","2. Identify similar features and architectural approaches","3. Consider multiple approaches and their trade-offs","4. Use AskUserQuestion if you need to clarify the approach","5. Design a concrete implementation strategy","6. When ready, use ExitPlanMode to present your plan for approval","","Remember: DO NOT write or edit any files yet. This is a read-only exploration and planning phase."].join(`
100
+ `)}a(m,"getEnterPlanModeToolResult");function w(t,n,i,e,s){const o=[];if(!t||t.trim().length===0)return o.push("User has approved exiting plan mode. You can now proceed."),o.join(`
101
+ `);if(o.push("User has approved your plan. You can now start coding. Start with updating your todo list if applicable"),o.push(""),o.push(`Your plan has been saved to: ${n}`),o.push("You can refer back to it if needed during implementation."),o.push(""),o.push(i?"## Approved Plan (edited by user):":"## Approved Plan:"),o.push(t),s&&s.length>0){o.push(""),o.push("## Pre-approved permissions:");for(const r of s)o.push(`- ${r.tool}: ${r.prompt}`)}return e&&(o.push(""),o.push("You can now use Agent subagents to parallelize implementation if appropriate.")),o.join(`
102
+ `)}a(w,"getExitPlanModeApprovedResult");export{m as getEnterPlanModeToolResult,w as getExitPlanModeApprovedResult,g as getPlanModeExitInstructions,f as getPlanModeInstructions,y as getPlanModeReentryInstructions};
@@ -0,0 +1,49 @@
1
+ /**
2
+ * [WHO]: isInTeammateContext(), submitPlanToLeader(), checkPlanApproval()
3
+ * [FROM]: No external dependencies (team extension integration)
4
+ * [TO]: Consumed by exit-plan-mode-tool.ts
5
+ * [HERE]: extensions/builtin/plan/teammate-approval.ts - teammate plan approval flow
6
+ *
7
+ * @deprecated MVP implementation — uses filesystem-based mailbox (team-mail dir).
8
+ * TODO(v2): Replace with TeamMailbox.post() from team extension when stable.
9
+ */
10
+ /**
11
+ * Check if the current context is a teammate.
12
+ * This is a simplified check - in full implementation this would
13
+ * integrate with the team extension's TeamRuntime.
14
+ */
15
+ export declare function isInTeammateContext(): boolean;
16
+ /**
17
+ * Get the current teammate identity.
18
+ */
19
+ export declare function getTeammateIdentity(): {
20
+ id: string;
21
+ name: string;
22
+ } | null;
23
+ /**
24
+ * Get the team name if in a team context.
25
+ */
26
+ export declare function getTeamName(): string | null;
27
+ /**
28
+ * Submit a plan approval request to the leader.
29
+ * @deprecated MVP: uses filesystem-based mailbox. Replace with TeamMailbox.post().
30
+ */
31
+ export declare function submitPlanToLeader(planFilePath: string, planContent: string): Promise<{
32
+ requestId: string;
33
+ status: "submitted";
34
+ }>;
35
+ /**
36
+ * Check if a plan approval has been received.
37
+ */
38
+ export declare function checkPlanApproval(requestId: string): Promise<{
39
+ approved: boolean;
40
+ feedback?: string;
41
+ } | null>;
42
+ /**
43
+ * Format the message shown when plan is submitted to leader.
44
+ */
45
+ export declare function formatPlanSubmittedMessage(requestId: string, planFilePath: string): string;
46
+ /**
47
+ * Format the message shown when waiting for leader approval.
48
+ */
49
+ export declare function formatWaitingForApprovalMessage(requestId: string): string;
@@ -0,0 +1,3 @@
1
+ var m=Object.defineProperty;var n=(e,t)=>m(e,"name",{value:t,configurable:!0});function v(){return process.env.CATUI_TEAMMATE_ID!==void 0}n(v,"isInTeammateContext");function l(){const e=process.env.CATUI_TEAMMATE_ID,t=process.env.CATUI_TEAMMATE_NAME;return e?{id:e,name:t||e}:null}n(l,"getTeammateIdentity");function h(){return process.env.CATUI_TEAM_NAME||null}n(h,"getTeamName");async function I(e,t){const o=l();if(!o)throw new Error("Not in teammate context");const a=d("plan_approval",o.name),s={type:"plan_approval_request",from:o.name,timestamp:new Date().toISOString(),planFilePath:e,planContent:t,requestId:a},r=await import("node:fs"),p=await import("node:os"),i=await import("node:path"),c=i.join(p.homedir(),".catui","agent","team-mail"),u=i.join(c,`${a}.json`);return r.mkdirSync(c,{recursive:!0}),r.writeFileSync(u,JSON.stringify(s,null,2),"utf-8"),{requestId:a,status:"submitted"}}n(I,"submitPlanToLeader");async function T(e){const t=await import("node:os"),o=await import("node:path"),a=await import("node:fs"),s=o.join(t.homedir(),".catui","agent","team-mail"),r=o.join(s,`response-${e}.json`);if(!a.existsSync(r))return null;try{const p=a.readFileSync(r,"utf-8"),i=JSON.parse(p);return{approved:i.approved,feedback:i.feedback}}catch{return null}}n(T,"checkPlanApproval");function d(e,t){const o=Date.now().toString(36),a=Math.random().toString(36).slice(2,8);return`${e}-${t}-${o}-${a}`}n(d,"generateRequestId");function w(e,t){return["Your plan has been submitted to the team lead for approval.","",`Plan file: ${t}`,"","What happens next:","1. Wait for the team lead to review your plan","2. You will receive a message in your inbox with approval/rejection","3. If approved, you can proceed with implementation","4. If rejected, refine your plan based on the feedback","","Important: Do NOT proceed until you receive approval.","",`Request ID: ${e}`].join(`
2
+ `)}n(w,"formatPlanSubmittedMessage");function y(e){return["Waiting for team lead approval...",`Request ID: ${e}`,"","The leader will approve or reject via `/team:approve ${requestId}`"].join(`
3
+ `)}n(y,"formatWaitingForApprovalMessage");export{T as checkPlanApproval,w as formatPlanSubmittedMessage,y as formatWaitingForApprovalMessage,h as getTeamName,l as getTeammateIdentity,v as isInTeammateContext,I as submitPlanToLeader};
@@ -0,0 +1,133 @@
1
+ /**
2
+ * [WHO]: PlanModeState, PlanModeAttachment types, PlanModeConfig
3
+ * [FROM]: Depends on core/extensions-host/types (EventBus reference)
4
+ * [TO]: Consumed by all plan extension modules
5
+ * [HERE]: extensions/builtin/plan/types.ts - type definitions for plan mode
6
+ */
7
+ import type { EventBus } from "../../../core/runtime/event-bus.js";
8
+ export declare const PLAN_CUSTOM_TYPE = "plan_state";
9
+ export type PlanModePermissionMode = "default" | "plan" | "auto" | "acceptEdits" | "bypassPermissions";
10
+ export interface PlanModeState {
11
+ /** Current permission mode */
12
+ mode: PlanModePermissionMode;
13
+ /** Mode before entering plan mode, restored on exit */
14
+ prePlanMode: PlanModePermissionMode;
15
+ /** Whether to inject plan mode exit attachment on next turn */
16
+ needsPlanModeExitAttachment: boolean;
17
+ /** Whether the user has exited plan mode in this session (for reentry detection) */
18
+ hasExitedPlanModeInSession: boolean;
19
+ /** Count of plan mode attachments sent (for throttling) */
20
+ planAttachmentCount: number;
21
+ /** Last session id this in-memory state was hydrated from */
22
+ hydratedSessionId?: string;
23
+ /** Number of human turns seen when the last plan attachment was injected */
24
+ lastPlanAttachmentHumanTurn?: number;
25
+ /** Current session id, when available */
26
+ sessionId?: string;
27
+ /** Current plan slug, persisted for resume/fork recovery */
28
+ planSlug?: string;
29
+ /** Last known plan file snapshot for recovery */
30
+ planSnapshot?: string;
31
+ /** Pre-approved tool permissions from the last ExitPlanMode call */
32
+ lastAllowedPrompts?: Array<{
33
+ tool: string;
34
+ prompt: string;
35
+ }>;
36
+ }
37
+ export interface PlanSessionState {
38
+ state: PlanModeState;
39
+ planSlugCache: string | undefined;
40
+ }
41
+ export type PlanStateMap = WeakMap<EventBus, PlanSessionState>;
42
+ export interface PlanFileInfo {
43
+ slug: string;
44
+ path: string;
45
+ content: string | null;
46
+ exists: boolean;
47
+ }
48
+ export type PlanAttachmentType = "plan_mode" | "plan_mode_exit" | "plan_mode_reentry" | "plan_file_reference";
49
+ export interface PlanModeAttachment {
50
+ type: "plan_mode";
51
+ reminderType: "full" | "sparse";
52
+ isSubAgent: boolean;
53
+ planFilePath: string;
54
+ planExists: boolean;
55
+ }
56
+ export interface PlanModeReentryAttachment {
57
+ type: "plan_mode_reentry";
58
+ planFilePath: string;
59
+ }
60
+ export interface PlanModeExitAttachment {
61
+ type: "plan_mode_exit";
62
+ planFilePath: string;
63
+ planExists: boolean;
64
+ }
65
+ export interface PlanFileReferenceAttachment {
66
+ type: "plan_file_reference";
67
+ planFilePath: string;
68
+ planContent: string;
69
+ }
70
+ export type PlanAttachment = PlanModeAttachment | PlanModeReentryAttachment | PlanModeExitAttachment | PlanFileReferenceAttachment;
71
+ export type ToolPermissionResult = {
72
+ allowed: true;
73
+ classification?: "read" | "write" | "plan" | "agent";
74
+ } | {
75
+ allowed: false;
76
+ reason: string;
77
+ classification?: "write" | "unknown" | "agent";
78
+ };
79
+ export interface PlanStateEntryData {
80
+ version: 1;
81
+ sessionId?: string;
82
+ mode: PlanModePermissionMode;
83
+ prePlanMode: PlanModePermissionMode;
84
+ needsPlanModeExitAttachment: boolean;
85
+ hasExitedPlanModeInSession: boolean;
86
+ planAttachmentCount: number;
87
+ lastPlanAttachmentHumanTurn?: number;
88
+ planSlug?: string;
89
+ planSnapshot?: string;
90
+ lastAllowedPrompts?: Array<{
91
+ tool: string;
92
+ prompt: string;
93
+ }>;
94
+ }
95
+ export interface PlanModeConfig {
96
+ /** Plan file directory override */
97
+ plansDirectory?: string;
98
+ /** Number of turns between full plan mode reminders */
99
+ turnsBetweenFullReminder: number;
100
+ /** Every N attachments, inject a full reminder instead of sparse */
101
+ fullReminderEveryN: number;
102
+ /** Maximum number of Explore subagents */
103
+ maxExploreAgents: number;
104
+ /** Maximum number of Plan subagents */
105
+ maxPlanAgents: number;
106
+ /** Use iterative interview workflow instead of sequential 5-phase */
107
+ interviewPhaseEnabled?: boolean;
108
+ }
109
+ export declare const DEFAULT_PLAN_CONFIG: PlanModeConfig;
110
+ export interface ToolCallInput {
111
+ toolName: string;
112
+ toolCallId: string;
113
+ input: Record<string, unknown>;
114
+ }
115
+ export interface PlanApprovalRequest {
116
+ type: "plan_approval_request";
117
+ from: string;
118
+ timestamp: string;
119
+ planFilePath: string;
120
+ planContent: string;
121
+ requestId: string;
122
+ }
123
+ export interface PlanApprovalResponse {
124
+ type: "plan_approval_response";
125
+ requestId: string;
126
+ approved: boolean;
127
+ feedback?: string;
128
+ }
129
+ export interface PlanValidationResult {
130
+ valid: boolean;
131
+ missingSections: string[];
132
+ }
133
+ export declare const REQUIRED_PLAN_SECTIONS: readonly ["Context", "context"];
@@ -0,0 +1 @@
1
+ const e="plan_state",t={turnsBetweenFullReminder:3,fullReminderEveryN:3,maxExploreAgents:3,maxPlanAgents:1,interviewPhaseEnabled:!1},n=["Context","context"];export{t as DEFAULT_PLAN_CONFIG,e as PLAN_CUSTOM_TYPE,n as REQUIRED_PLAN_SECTIONS};