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,50 @@
1
+ /**
2
+ * [WHO]: TeamMailbox, MailboxMessage, MailboxMessageType, MailboxDirection
3
+ * [FROM]: No external deps
4
+ * [TO]: Consumed by team-runtime.ts, index.ts
5
+ * [HERE]: extensions/builtin/team/team-mailbox.ts - Phase B B.3 mailbox protocol
6
+ *
7
+ * Per refactor plan §B.3: mailbox is the single channel between the leader
8
+ * and teammates; no direct callbacks are allowed. The implementation is a
9
+ * typed append-only log with subscribe() for live observers and JSONL-backed
10
+ * replay across restarts.
11
+ */
12
+ export type MailboxMessageType = "task_request" | "task_progress" | "task_result" | "permission_request" | "permission_response" | "plan_approval_request" | "plan_approval_response" | "teammate_message" | "handoff" | "task_claim" | "task_update" | "mode_change" | "shutdown_request" | "shutdown_ack";
13
+ export type MailboxDirection = "leader_to_teammate" | "teammate_to_leader" | "teammate_to_teammate";
14
+ export interface MailboxMessage {
15
+ id: string;
16
+ teammateId: string;
17
+ teammateName: string;
18
+ targetTeammateId?: string;
19
+ targetTeammateName?: string;
20
+ type: MailboxMessageType;
21
+ direction: MailboxDirection;
22
+ payload: Record<string, unknown>;
23
+ timestamp: number;
24
+ }
25
+ export type MailboxListener = (message: MailboxMessage) => void;
26
+ /**
27
+ * Append-only typed mailbox shared by all teammates. Bounded by
28
+ * `maxMessages` to prevent unbounded growth in long-lived sessions; oldest
29
+ * messages drop first.
30
+ */
31
+ export declare class TeamMailbox {
32
+ private messages;
33
+ private listeners;
34
+ private readonly maxMessages;
35
+ private readonly filePath?;
36
+ constructor(maxMessages?: number, filePath?: string);
37
+ /** Load persisted JSONL messages. Corrupt lines are ignored. */
38
+ load(): Promise<void>;
39
+ /** Post a new message and notify listeners. */
40
+ post(message: Omit<MailboxMessage, "id" | "timestamp">): MailboxMessage;
41
+ /** All messages, optionally filtered by teammate id. */
42
+ list(teammateId?: string): MailboxMessage[];
43
+ /** Subscribe to live mailbox events. Returns an unsubscribe handle. */
44
+ subscribe(listener: MailboxListener): () => void;
45
+ /** Drop all messages owned by a teammate (called on terminate). */
46
+ clearTeammate(teammateId: string): void;
47
+ private persist;
48
+ /** Remove persisted mailbox data. Intended for tests and full team reset flows. */
49
+ clearAll(): Promise<void>;
50
+ }
@@ -0,0 +1,4 @@
1
+ var h=Object.defineProperty;var r=(a,s)=>h(a,"name",{value:s,configurable:!0});import{mkdir as n,readFile as l,rm as m,writeFile as c}from"node:fs/promises";import{dirname as o}from"node:path";class d{static{r(this,"TeamMailbox")}messages=[];listeners=new Set;maxMessages;filePath;constructor(s=1e3,t){this.maxMessages=s,this.filePath=t}async load(){if(this.filePath)try{const s=await l(this.filePath,"utf-8"),t=[];for(const e of s.split(`
2
+ `))if(e.trim())try{const i=JSON.parse(e);i?.id&&i?.type&&t.push(i)}catch{}this.messages=t.slice(-this.maxMessages)}catch{this.messages=[]}}post(s){const t={...s,id:crypto.randomUUID(),timestamp:Date.now()};this.messages.push(t),this.messages.length>this.maxMessages&&this.messages.splice(0,this.messages.length-this.maxMessages),this.persist();for(const e of this.listeners)try{e(t)}catch{}return t}list(s){return s?this.messages.filter(t=>t.teammateId===s||t.targetTeammateId===s):[...this.messages]}subscribe(s){return this.listeners.add(s),()=>this.listeners.delete(s)}clearTeammate(s){this.messages=this.messages.filter(t=>t.teammateId!==s&&t.targetTeammateId!==s),this.persist()}async persist(){if(this.filePath)try{await n(o(this.filePath),{recursive:!0});const s=this.messages.map(t=>JSON.stringify(t)).join(`
3
+ `);await c(this.filePath,s?`${s}
4
+ `:"","utf-8")}catch{}}async clearAll(){this.messages=[],this.filePath&&await m(this.filePath,{force:!0}).catch(()=>{})}}export{d as TeamMailbox};
@@ -0,0 +1,39 @@
1
+ /**
2
+ * [WHO]: Provides createTeamUtterance(), buildLeaderPlan(), parseTeamMentions(), runLeaderOrchestration()
3
+ * [FROM]: Depends on ./team-types, ./team-presets, ./team-runtime
4
+ * [TO]: Consumed by index.ts for structured speaker-stream rendering and leader-led team orchestration
5
+ * [HERE]: extensions/builtin/team/team-orchestrator.ts - leader planning, mention parsing, and handoff execution
6
+ */
7
+ import type { Model } from "@catui/ai/types";
8
+ import type { TeamRuntime, TeamRuntimeEvent } from "./team-runtime.js";
9
+ import type { Handoff, LeaderPlan, PersistedTeammate, TeamMention, TeamSpeakerRole, TeamUtterance } from "./team-types.js";
10
+ export interface TeamStreamEmitter {
11
+ emitUtterance(utterance: TeamUtterance, options?: {
12
+ streamKey?: string;
13
+ replace?: boolean;
14
+ }): void;
15
+ }
16
+ export interface LeaderOrchestrationOptions extends TeamStreamEmitter {
17
+ taskDescription: string;
18
+ baseCwd: string;
19
+ model?: Model<any>;
20
+ onRuntimeEvent?: (event: TeamRuntimeEvent) => void;
21
+ completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>;
22
+ }
23
+ export interface LeaderOrchestrationResult {
24
+ plan: LeaderPlan;
25
+ handoffs: Handoff[];
26
+ }
27
+ export declare function createTeamUtterance(input: {
28
+ speakerId: string;
29
+ speakerLabel: string;
30
+ role: TeamSpeakerRole;
31
+ text: string;
32
+ kind: TeamUtterance["kind"];
33
+ mentions?: TeamMention[];
34
+ timestamp?: number;
35
+ }): TeamUtterance;
36
+ export declare function formatUtteranceForContext(utterance: TeamUtterance): string;
37
+ export declare function parseTeamMentions(text: string, teammates: PersistedTeammate[]): TeamMention[];
38
+ export declare function buildLeaderPlan(userGoal: string, teammates: PersistedTeammate[], completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>): Promise<LeaderPlan>;
39
+ export declare function runLeaderOrchestration(runtime: TeamRuntime, options: LeaderOrchestrationOptions): Promise<LeaderOrchestrationResult>;
@@ -0,0 +1,5 @@
1
+ var S=Object.defineProperty;var c=(e,t)=>S(e,"name",{value:t,configurable:!0});import{executePreset as C,selectAutoTeamPlan as T}from"./team-presets.js";const x="leader",U="catui";function I(e){return{id:crypto.randomUUID(),speakerId:e.speakerId,speakerLabel:e.speakerLabel,role:e.role,text:e.text.trim(),kind:e.kind,mentions:e.mentions??[],timestamp:e.timestamp??Date.now()}}c(I,"createTeamUtterance");function V(e){return`${e.speakerLabel}: ${e.text}`}c(V,"formatUtteranceForContext");function M(e,t){const n=[],a=/(^|\s)@([A-Za-z][A-Za-z0-9-]*)/g;for(const i of e.matchAll(a)){const r=i[2];if(!r)continue;const d=_(r,t);if(!d)continue;const o=(i.index??0)+i[1].length+r.length+1,u=j(e,o);u&&n.push({raw:`@${r}`,targetId:d.identity.id,targetName:d.identity.name,targetLabel:d.identity.label,task:u})}return B(n)}c(M,"parseTeamMentions");async function P(e,t,n){const a=n?await E(e,t,n):void 0;return a||z(e,t)}c(P,"buildLeaderPlan");async function Q(e,t){const n=await T(t.taskDescription,t.completeSimple),i=(await C(e,n.presetName,t.taskDescription,t.baseCwd,t.model,t.onRuntimeEvent,!1)).teammates,r=await P(t.taskDescription,i,t.completeSimple),d=[],f=[],o=new Set,u=new Map(i.map(s=>[s.identity.id,s])),y=X(t.taskDescription);t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:"thought",text:H(r)})),t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:"thought",text:`A research plan named ${y} has already been created. If you would like to make any changes to this plan, please provide your input directly in the chat box.`})),r.phase="assign",r.completionState="running";const m=c(s=>{const p=`${s.target.identity.id}:${A(s.task).toLowerCase()}`;o.has(p)||(o.add(p),f.push(s))},"enqueue");for(const s of r.subtasks.filter(p=>p.dependsOn.length===0)){const p=u.get(s.ownerId);p&&m({target:p,task:s.task,title:s.title,kind:"work",subtaskId:s.id})}let l=0;const L=Math.max(6,i.length*4),D=c(async s=>{const p=s.subtaskId?r.subtasks.find(v=>v.id===s.subtaskId):void 0;p&&(p.status="in_progress"),t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:s.kind,text:q(s),mentions:[{raw:`@${s.target.identity.name}`,targetId:s.target.identity.id,targetName:s.target.identity.name,targetLabel:s.target.identity.label,task:s.task}]}));const b=await e.send(s.target.identity.name,Z(t.taskDescription,s,r,i),t.model,{onEvent:t.onRuntimeEvent}),h=b.response||b.error||"No response.",w=M(h,i);return t.emitUtterance(I({speakerId:s.target.identity.id,speakerLabel:s.target.identity.name,role:s.target.identity.role,kind:w.length>0?"handoff":b.success?"result":"work",text:h,mentions:w}),{streamKey:`team-stream:${s.target.identity.id}`,replace:!0}),p&&(p.status=b.success?"done":"blocked"),{assignment:s,subtask:p,sendResult:b,replyText:h,mentions:w}},"runAssignment");for(;f.length>0&&l<L;){const s=Math.min(f.length,L-l),p=f.splice(0,s);l+=p.length;const b=await Promise.all(p.map(h=>D(h)));for(const{assignment:h,replyText:w,mentions:v}of b){for(const k of v){const g=u.get(k.targetId);g&&(d.push({id:crypto.randomUUID(),from:h.target.identity.name,to:k.targetName,task:k.task,status:"pending",timestamp:Date.now()}),m({target:g,task:k.task,title:`Follow-up from ${h.target.identity.name}`,kind:"handoff",sourceLabel:h.target.identity.name,sourceExcerpt:w}))}for(const k of r.subtasks.filter(g=>g.status==="pending"&&g.dependsOn.length>0&&g.dependsOn.every(R=>r.subtasks.find(N=>N.id===R)?.status==="done"))){const g=u.get(k.ownerId);g&&m({target:g,task:k.task,title:k.title,kind:"work",subtaskId:k.id})}}}for(const s of d)s.status=r.subtasks.some(p=>p.ownerName===s.to&&p.status==="blocked")?"blocked":"done";return r.phase="summarize",r.completionState=r.subtasks.some(s=>s.status==="blocked")?"blocked":"completed",t.emitUtterance(I({speakerId:x,speakerLabel:U,role:"leader",kind:"result",text:F(r,d)})),r.phase="done",{plan:r,handoffs:d}}c(Q,"runLeaderOrchestration");async function E(e,t,n){try{const a=await n(["You are the leader of a terminal-native coding team.","Split the user goal into a small, dependency-aware plan for the given teammates.",'Return strict JSON only: {"subtasks":[{"owner":"Ada","title":"...","task":"...","dependsOn":["Ada"]}]}',"Use only the provided teammate names as owners.","Keep 1-6 subtasks total."].join(`
2
+ `),[`User goal: ${e}`,"Teammates:",...t.map(o=>`- ${o.identity.name}: ${o.identity.role}`)].join(`
3
+ `));if(!a)return;const i=JSON.parse(J(a));if(!Array.isArray(i.subtasks)||i.subtasks.length===0)return;const r=new Map(t.map(o=>[o.identity.name.toLowerCase(),o])),d=[];for(const o of i.subtasks.slice(0,6)){const u=o.owner?r.get(o.owner.toLowerCase()):void 0;!u||typeof o.task!="string"||typeof o.title!="string"||d.push({id:crypto.randomUUID(),ownerId:u.identity.id,ownerName:u.identity.name,ownerLabel:u.identity.label,ownerRole:u.identity.role,title:o.title.trim(),task:o.task.trim(),dependsOn:[],status:"pending"})}if(d.length===0)return;const f=new Map(d.map(o=>[o.ownerName.toLowerCase(),o.id]));for(let o=0;o<d.length;o++){const u=i.subtasks?.[o],y=d[o];!u||!y||(y.dependsOn=(u.dependsOn??[]).map(m=>f.get(String(m).toLowerCase())).filter(m=>!!m&&m!==y.id))}return O(e,d)}catch{return}}c(E,"buildLeaderPlanWithModel");function z(e,t){const n=[...t].sort((l,L)=>l.identity.createdAt-L.identity.createdAt);if(n.length===0)return O(e,[]);if(n.length===1){const l=n[0];return O(e,[{id:crypto.randomUUID(),ownerId:l.identity.id,ownerName:l.identity.name,ownerLabel:l.identity.label,ownerRole:l.identity.role,title:"Deliver the task",task:e,dependsOn:[],status:"pending"}])}const a=$(n,["pm","planner","researcher","generic"])??n[0],i=$(n.filter(l=>l.identity.id!==a.identity.id),["architect","researcher","planner","generic"])??n.find(l=>l.identity.id!==a.identity.id)??a,r=$(n.filter(l=>![a.identity.id,i.identity.id].includes(l.identity.id)),["developer","implementer"])??n.find(l=>l.identity.id!==a.identity.id&&l.identity.id!==i.identity.id)??i,d=$(n.filter(l=>![a.identity.id,i.identity.id,r.identity.id].includes(l.identity.id)),["designer","reviewer","researcher","generic"]),f=$(n.filter(l=>![a.identity.id,i.identity.id,r.identity.id,d?.identity.id].includes(l.identity.id)),["data-analyst","verifier","reviewer","generic"]),o=crypto.randomUUID(),u=crypto.randomUUID(),y=crypto.randomUUID(),m=[{id:o,ownerId:a.identity.id,ownerName:a.identity.name,ownerLabel:a.identity.label,ownerRole:a.identity.role,title:"Frame the goal and success bar",task:`Break "${e}" into the smallest practical delivery slice and hand the technical framing to @${i.identity.name}.`,dependsOn:[],status:"pending"},{id:u,ownerId:i.identity.id,ownerName:i.identity.name,ownerLabel:i.identity.label,ownerRole:i.identity.role,title:"Map files, interfaces, and approach",task:`Identify the likely modules/files and implementation shape for "${e}", then hand the concrete build step to @${r.identity.name}.`,dependsOn:[o],status:"pending"},{id:y,ownerId:r.identity.id,ownerName:r.identity.name,ownerLabel:r.identity.label,ownerRole:r.identity.role,title:"Implement the change",task:`Implement the requested change for "${e}". When useful, hand UX polish to @${d?.identity.name??i.identity.name} and evidence/risk review to @${f?.identity.name??i.identity.name}.`,dependsOn:[u],status:"pending"}];return d&&m.push({id:crypto.randomUUID(),ownerId:d.identity.id,ownerName:d.identity.name,ownerLabel:d.identity.label,ownerRole:d.identity.role,title:"Check UX, copy, and visual impact",task:"Review the change from a UX/design perspective. Call out confusing copy, weak affordances, or UI regressions.",dependsOn:[y],status:"pending"}),f&&m.push({id:crypto.randomUUID(),ownerId:f.identity.id,ownerName:f.identity.name,ownerLabel:f.identity.label,ownerRole:f.identity.role,title:"Validate evidence and risks",task:"Review the implementation for evidence, metrics, test coverage, and remaining risks. Summarize release readiness.",dependsOn:[y],status:"pending"}),O(e,m)}c(z,"buildLeaderPlanHeuristic");function O(e,t){return{userGoal:e,phase:"plan",subtasks:t,owners:Object.fromEntries(t.map(n=>[n.ownerLabel,n.ownerRole])),dependencies:Object.fromEntries(t.map(n=>[n.id,n.dependsOn])),completionState:t.length===0?"completed":"pending"}}c(O,"finalizePlan");function $(e,t){for(const n of t){const a=e.find(i=>i.identity.role===n);if(a)return a}return e[0]}c($,"pickOwner");function _(e,t){const n=e.trim(),a=n.toUpperCase();return t.find(i=>i.identity.label.toUpperCase()===a||i.identity.name.toLowerCase()===n.toLowerCase())}c(_,"resolveMentionTarget");function j(e,t){const n=e.slice(t);if(!n.trim())return"";const a=n.search(/\s@[A-Za-z][A-Za-z0-9-]*/),i=n.indexOf(`
4
+ `),r=n.search(/[。!?!?]/),d=[a,i,r].filter(u=>u>=0),f=d.length>0?Math.min(...d):n.length,o=n.slice(0,f).replace(/^[\s::,,-]+/,"").trim();return A(o)}c(j,"extractMentionTask");function B(e){const t=new Set;return e.filter(n=>{const a=`${n.targetId}:${n.task.toLowerCase()}`;return t.has(a)?!1:(t.add(a),!0)})}c(B,"dedupeMentions");function Z(e,t,n,a){const i=[`Leader goal: ${e}`,`Your assignment: ${t.task}`,"","Team roster:",...a.map(r=>`- ${r.identity.name} (${r.identity.role})`),"","Mention rules:","- Use @Name mentions only for concrete next-step handoffs.","- A mention must be followed by the task fragment for the target agent.","- Do not ping without actionable work."];return t.sourceLabel&&t.sourceExcerpt&&i.push("",`Handoff source: ${t.sourceLabel}`,`Context: ${K(A(t.sourceExcerpt),280)}`),t.subtaskId&&n.subtasks.find(d=>d.id===t.subtaskId)?.dependsOn.length&&i.push("","Dependencies are already satisfied. Build on prior team outputs rather than repeating discovery."),i.push("","Respond as yourself, not as the leader."),i.join(`
5
+ `)}c(Z,"buildAssignmentPrompt");function H(e){if(e.subtasks.length===0)return"I did not need to split the work; the task can be handled directly.";const t=e.subtasks.map(n=>`${n.ownerName} (${n.ownerRole}) handles "${n.title}"${n.dependsOn.length?" after its dependencies clear":""}`);return`I split the goal into ${e.subtasks.length} steps. ${t.join("; ")}.`}c(H,"formatLeaderPlanAnnouncement");function q(e){return e.kind==="handoff"&&e.sourceLabel?`@${e.target.identity.name} take the handoff from ${e.sourceLabel}: ${e.task}`:`@${e.target.identity.name} ${e.task}`}c(q,"formatLeaderAssignment");function F(e,t){const n=e.subtasks.filter(r=>r.status==="done").length,a=e.subtasks.filter(r=>r.status==="blocked").length,i=t.length;return a>0?`The team completed ${n}/${e.subtasks.length} planned steps. ${a} step(s) ended blocked. Handoffs observed: ${i}.`:`The team completed ${n}/${e.subtasks.length} planned steps. Handoffs observed: ${i}.`}c(F,"formatLeaderSummary");function J(e){const t=e.indexOf("{"),n=e.lastIndexOf("}");return t===-1||n===-1||n<=t?e:e.slice(t,n+1)}c(J,"extractJsonObject");function A(e){return e.replace(/\s+/g," ").trim()}c(A,"singleLine");function K(e,t){return e.length<=t?e:e.slice(e.length-t)}c(K,"tailText");function X(e){return`Team_Research_${A(e).replace(/[^A-Za-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,32)||"Plan"}`}c(X,"buildResearchPlanName");export{P as buildLeaderPlan,I as createTeamUtterance,V as formatUtteranceForContext,M as parseTeamMentions,Q as runLeaderOrchestration};
@@ -0,0 +1,84 @@
1
+ /**
2
+ * [WHO]: Team command parser - /team:* subcommands including harness/preset/dashboard/status helpers
3
+ * [FROM]: No external deps
4
+ * [TO]: Consumed by index.ts
5
+ * [HERE]: extensions/builtin/team/team-parser.ts
6
+ *
7
+ * Parses /team series commands per Phase B spec:
8
+ * /team - List teammates
9
+ * /team:spawn <role> [--name <id>] [--harness] - Create teammate
10
+ * /team:send <name> <message> - Send message to teammate
11
+ * /team:status [<name>] - Show status
12
+ * /team:preset <solo|duo|squad> <task> - Create preset team
13
+ * /team:progress [<name>] - Show harness progress
14
+ * /team:psyche [<name>] - Show psyche weights
15
+ * /team:dashboard - Toggle dashboard widget
16
+ * /team:task <add|claim|done|block|cancel|list> ... - Manage shared task list
17
+ * /team:mail <from> <to> <message> - Route a teammate-to-teammate mailbox message
18
+ * /team:allow-path <name> <path> - Grant teammate write access to a path prefix
19
+ * /team:stop <name> - Stop teammate turn
20
+ * /team:terminate <name> - Destroy teammate
21
+ * /team:approve <request-id> - Approve permission request
22
+ * /team:mode <name> <plan|execute|review> - Switch mode
23
+ */
24
+ import type { PresetName, TeammateMode, TeammateRole } from "./team-types.js";
25
+ export type TeamSubcommand = "list" | "spawn" | "send" | "status" | "stop" | "terminate" | "approve" | "mode" | "preset" | "auto" | "dashboard" | "progress" | "psyche" | "task" | "mail" | "allow-path" | "help";
26
+ export interface ParsedTeamCommand {
27
+ command: TeamSubcommand;
28
+ /** For spawn: role name */
29
+ role?: TeammateRole;
30
+ /** For spawn: optional name override */
31
+ name?: string;
32
+ /** For send/status/stop/terminate/approve/mode: target teammate name or request id */
33
+ target?: string;
34
+ /** For send: message content */
35
+ message?: string;
36
+ /** For mode: target mode */
37
+ mode?: TeammateMode;
38
+ /** For approve: request id */
39
+ requestId?: string;
40
+ /** For spawn: enable harness protocol */
41
+ harnessEnabled?: boolean;
42
+ /** For preset: preset name */
43
+ presetName?: PresetName;
44
+ /** For preset: task description */
45
+ taskDescription?: string;
46
+ /** For task: task subcommand */
47
+ taskAction?: "add" | "claim" | "done" | "block" | "cancel" | "list";
48
+ /** For task: task id */
49
+ taskId?: string;
50
+ /** For task add: title */
51
+ taskTitle?: string;
52
+ /** For mail: source teammate */
53
+ from?: string;
54
+ /** For mail: target teammate */
55
+ to?: string;
56
+ /** For allow-path: path prefix */
57
+ path?: string;
58
+ }
59
+ export declare const TEAM_ROOT_COMPLETIONS: readonly ["help", "spawn", "send", "status", "stop", "terminate", "approve", "mode", "preset", "dashboard", "progress", "psyche", "task", "mail", "allow-path"];
60
+ export declare const VALID_ROLES: TeammateRole[];
61
+ export declare const VALID_MODES: TeammateMode[];
62
+ export declare const VALID_PRESETS: PresetName[];
63
+ export declare const VALID_TASK_ACTIONS: readonly ["add", "claim", "done", "block", "cancel", "list"];
64
+ type TeamArgumentCompletionContext = {
65
+ commandName: string;
66
+ argumentText: string;
67
+ argumentPrefix: string;
68
+ tokenIndex: number;
69
+ previousTokens: string[];
70
+ };
71
+ export declare function getTeamArgumentCompletions(commandName: string, argumentPrefix: string, context?: TeamArgumentCompletionContext): Array<{
72
+ value: string;
73
+ label: string;
74
+ description?: string;
75
+ }> | null;
76
+ /**
77
+ * Parse a /team command invocation.
78
+ */
79
+ export declare function parseTeamCommand(commandName: string, args?: string): ParsedTeamCommand | null;
80
+ /**
81
+ * Build help text for /team commands.
82
+ */
83
+ export declare function buildTeamHelp(): string;
84
+ export {};
@@ -0,0 +1,38 @@
1
+ var S=Object.defineProperty;var m=(r,t)=>S(r,"name",{value:t,configurable:!0});const x=["help","spawn","send","status","stop","terminate","approve","mode","preset","dashboard","progress","psyche","task","mail","allow-path"],c=["pm","architect","developer","designer","data-analyst","researcher","reviewer","implementer","planner","verifier","generic"],l=["research","plan","execute","review"],d=["solo","duo","squad"],I=["add","claim","done","block","cancel","list"],p=["--name","--harness"],b={help:"Show team commands",spawn:"Create a teammate",send:"Send work to a teammate",status:"Show teammate status",stop:"Stop a teammate's current turn",terminate:"Remove a teammate",approve:"Approve a teammate request",mode:"Change how a teammate works",preset:"Start with a preset team shape",dashboard:"Show or hide the team panel",progress:"Show teammate progress",psyche:"Show teammate decision settings",task:"Manage shared team tasks",mail:"Send a teammate-to-teammate note","allow-path":"Allow a teammate to write in a path",pm:"Plan priorities and coordinate work",architect:"Design structure and break down trade-offs",developer:"Have a teammate write code",designer:"Review product and interaction details","data-analyst":"Check evidence, metrics, and results",researcher:"Explore read-only context",reviewer:"Review code or plans without writing",implementer:"Have a teammate write code",planner:"Have a teammate make a plan",verifier:"Check whether the work is correct",generic:"Use a flexible teammate role","--name":"Choose the teammate name","--harness":"Use structured progress tracking",research:"Read and investigate without writing",plan:"Write a plan before code changes",execute:"Allow code changes",review:"Review without writing",solo:"Use one focused teammate",duo:"Use two teammates with complementary roles",squad:"Use a larger team for broader work",add:"Add a shared task",claim:"Assign a task to a teammate",done:"Mark a task complete",block:"Mark a task blocked",cancel:"Cancel a task",list:"List shared tasks"};function T(r,t){switch(r){case"team":return!t||t.tokenIndex===0?x:[];case"team:spawn":return t?t.tokenIndex===0?c:p:[...c,...p];case"team:preset":return!t||t.tokenIndex===0?d:[];case"team:task":return!t||t.tokenIndex===0?I:[];case"team:mode":return t?.tokenIndex===1?l:[];default:return[]}}m(T,"getTeamCompletionValues");function O(r,t,e){const a=t.trim().toLowerCase(),n=T(r,e).filter(i=>i.startsWith(a));return n.length>0?n.map(i=>({value:i,label:i,description:b[i]})):null}m(O,"getTeamArgumentCompletions");function y(r,t=""){const e=t.trim();switch(r){case"team":return e?e==="help"?{command:"help"}:e.startsWith("spawn ")?u(e.slice(6)):e.startsWith("send ")?h(e.slice(5)):e.startsWith("status")?f(e.slice(6).trim()):e.startsWith("stop ")?{command:"stop",target:e.slice(5).trim()}:e.startsWith("terminate ")?{command:"terminate",target:e.slice(10).trim()}:e==="approve"?{command:"approve"}:e.startsWith("approve ")?{command:"approve",requestId:e.slice(8).trim()||void 0}:e.startsWith("mode ")?g(e.slice(5)):e.startsWith("preset ")?w(e.slice(7)):e==="dashboard"?{command:"dashboard"}:e.startsWith("progress")?o("progress",e.slice(8).trim()):e.startsWith("psyche")?o("psyche",e.slice(6).trim()):e.startsWith("task")?k(e.slice(4).trim()):e.startsWith("mail ")?A(e.slice(5)):e.startsWith("allow-path ")?v(e.slice(11)):{command:"auto",taskDescription:e}:{command:"list"};case"team:spawn":return u(e);case"team:send":return h(e);case"team:status":return f(e);case"team:stop":return e?{command:"stop",target:e}:null;case"team:terminate":return e?{command:"terminate",target:e}:null;case"team:approve":return e?{command:"approve",requestId:e}:{command:"approve"};case"team:mode":return g(e);case"team:preset":return w(e);case"team:dashboard":return{command:"dashboard"};case"team:progress":return o("progress",e);case"team:psyche":return o("psyche",e);case"team:task":return k(e);case"team:mail":return A(e);case"team:allow-path":return v(e);default:return null}}m(y,"parseTeamCommand");function u(r){const t=r.trim().split(/\s+/);if(t.length===0)return null;const e=t[0];if(!c.includes(e))return null;let a,s=!1;for(let n=1;n<t.length;n++)t[n]==="--name"&&n+1<t.length?(a=t[n+1],n++):t[n]==="--harness"&&(s=!0);return s?{command:"spawn",role:e,name:a,harnessEnabled:s}:{command:"spawn",role:e,name:a}}m(u,"parseSpawnArgs");function h(r){const t=r.trim(),e=t.indexOf(" ");if(e===-1)return null;const a=t.slice(0,e),s=t.slice(e+1).trim();return!a||!s?null:{command:"send",target:a,message:s}}m(h,"parseSendArgs");function f(r){return{command:"status",target:r.trim()||void 0}}m(f,"parseStatusArgs");function g(r){const t=r.trim().split(/\s+/);if(t.length<2)return null;const e=t[0],a=t[1];return l.includes(a)?{command:"mode",target:e,mode:a}:null}m(g,"parseModeArgs");function w(r){const t=r.trim(),e=t.indexOf(" "),a=e===-1?t:t.slice(0,e);if(!d.includes(a))return null;const s=e===-1?"":t.slice(e+1).trim();return s?{command:"preset",presetName:a,taskDescription:s}:null}m(w,"parsePresetArgs");function o(r,t){const e=t.trim();return{command:r,target:e||void 0}}m(o,"parseTargetOnly");function k(r){const t=r.trim();if(!t||t==="list")return{command:"task",taskAction:"list"};const e=t.indexOf(" "),a=e===-1?t:t.slice(0,e),s=e===-1?"":t.slice(e+1).trim();if(a==="add")return s?{command:"task",taskAction:"add",taskTitle:s}:null;if(a==="claim"){const n=s.split(/\s+/);return n[0]&&n[1]?{command:"task",taskAction:"claim",taskId:n[0],target:n[1]}:null}return(a==="done"||a==="block"||a==="cancel")&&s?{command:"task",taskAction:a,taskId:s.split(/\s+/)[0]}:null}m(k,"parseTaskArgs");function A(r){const t=r.trim(),e=t.indexOf(" ");if(e===-1)return null;const a=t.indexOf(" ",e+1);if(a===-1)return null;const s=t.slice(0,e),n=t.slice(e+1,a),i=t.slice(a+1).trim();return!s||!n||!i?null:{command:"mail",from:s,to:n,message:i}}m(A,"parseMailArgs");function v(r){const t=r.trim(),e=t.indexOf(" ");if(e===-1)return null;const a=t.slice(0,e),s=t.slice(e+1).trim();return!a||!s?null:{command:"allow-path",target:a,path:s}}m(v,"parseAllowPathArgs");function W(){return`
2
+ Team Commands (AgentTeam + Harness):
3
+ /team - List all teammates
4
+ /team <task> - Auto-select a team and start the task
5
+ /team:spawn <role> [--name <n>] [--harness] - Create a persistent teammate
6
+ /team:preset <solo|duo|squad> <task> - Create teammates from a preset
7
+ /team:send <name> <message> - Send message to a teammate
8
+ /team:status [<name>] - Show team or teammate status
9
+ /team:progress [<name>] - Show harness progress
10
+ /team:psyche [<name>] - Show psyche weights
11
+ /team:dashboard - Toggle team dashboard widget
12
+ /team:task list - Show shared team tasks
13
+ /team:task add <title> - Add a shared task
14
+ /team:task claim <id> <name> - Assign/claim task for teammate
15
+ /team:task done <id> - Mark task done
16
+ /team:task block <id> - Mark task blocked
17
+ /team:mail <from> <to> <msg> - Send teammate-to-teammate mailbox message
18
+ /team:allow-path <name> <path> - Grant teammate write access to a path prefix
19
+ /team:stop <name> - Stop teammate's current turn
20
+ /team:terminate <name> - Destroy a teammate
21
+ /team:approve <request-id> - Approve a permission request
22
+ /team:mode <name> <mode> - Switch teammate mode
23
+
24
+ Roles: pm, architect, developer, designer, data-analyst, researcher, reviewer, implementer, planner, verifier, generic
25
+ Modes: research, plan, execute, review
26
+
27
+ Examples:
28
+ /team Implement login with tests
29
+ /team:spawn implementer --name alice --harness
30
+ /team:preset solo "Implement login feature"
31
+ /team:send alice "Implement login feature"
32
+ /team:task add Implement login tests
33
+ /team:task claim T-1 alice
34
+ /team:mail alice verifier "Please review T-1 when ready"
35
+ /team:status alice
36
+ /team:mode alice execute
37
+ /team:terminate alice
38
+ `.trim()}m(W,"buildTeamHelp");export{x as TEAM_ROOT_COMPLETIONS,l as VALID_MODES,d as VALID_PRESETS,c as VALID_ROLES,I as VALID_TASK_ACTIONS,W as buildTeamHelp,O as getTeamArgumentCompletions,y as parseTeamCommand};
@@ -0,0 +1,63 @@
1
+ /**
2
+ * [WHO]: PermissionStore, PermissionRequest, PermissionAction, PermissionDecision
3
+ * [FROM]: No external deps
4
+ * [TO]: Consumed by team-runtime.ts, index.ts
5
+ * [HERE]: extensions/builtin/team/team-permissions.ts - Phase B B.4 permission model
6
+ *
7
+ * Per refactor plan §B.4: "permission must be frozen before mailbox".
8
+ *
9
+ * The permission model is the trust boundary between leader and teammate.
10
+ * Any action that mutates the world or escalates a teammate's mode goes
11
+ * through a PermissionRequest which the leader must approve via
12
+ * `/team:approve <request-id>`.
13
+ *
14
+ * Pending requests carry a `resolve` callback so the runtime side can
15
+ * `await` the leader's decision without polling.
16
+ */
17
+ export type PermissionAction = "mode_change_to_execute" | "write_path" | "bash_command";
18
+ export type PermissionStatus = "pending" | "approved" | "denied" | "expired";
19
+ export interface PermissionRequest {
20
+ id: string;
21
+ teammateId: string;
22
+ teammateName: string;
23
+ action: PermissionAction;
24
+ detail: string;
25
+ createdAt: number;
26
+ status: PermissionStatus;
27
+ }
28
+ /**
29
+ * In-memory permission store. Decisions never persist across process restarts:
30
+ * if the main session dies while a request is pending, the teammate is left
31
+ * idle and the leader must reissue the action after restart.
32
+ */
33
+ export declare class PermissionStore {
34
+ private requests;
35
+ private pathAllowlist;
36
+ /**
37
+ * File a new permission request and return a promise that resolves
38
+ * with the leader's decision (true = approved, false = denied).
39
+ */
40
+ request(teammateId: string, teammateName: string, action: PermissionAction, detail: string): {
41
+ id: string;
42
+ decision: Promise<boolean>;
43
+ };
44
+ /** Approve a pending request. Returns false if id is unknown or already resolved. */
45
+ approve(id: string): boolean;
46
+ /** Deny a pending request. */
47
+ deny(id: string): boolean;
48
+ /** All pending requests, sorted oldest first. */
49
+ listPending(): PermissionRequest[];
50
+ /** Get a request snapshot without the resolve handle. */
51
+ get(id: string): PermissionRequest | undefined;
52
+ /**
53
+ * Cancel any pending requests owned by `teammateId`. Used when the
54
+ * teammate is terminated so the awaiting promise does not leak.
55
+ */
56
+ cancelForTeammate(teammateId: string): void;
57
+ /** Grant a teammate write permission for a path prefix. */
58
+ allowPath(teammateId: string, path: string): void;
59
+ /** Check whether a teammate currently holds write access to `path`. */
60
+ isPathAllowed(teammateId: string, path: string): boolean;
61
+ /** Drop a teammate's allowlist entirely (called on terminate). */
62
+ clearPaths(teammateId: string): void;
63
+ }
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var l=(r,t)=>p(r,"name",{value:t,configurable:!0});class f{static{l(this,"PermissionStore")}requests=new Map;pathAllowlist=new Map;request(t,e,s,a){const n=crypto.randomUUID(),u=new Promise(d=>{const c={id:n,teammateId:t,teammateName:e,action:s,detail:a,createdAt:Date.now(),status:"pending",resolve:d};this.requests.set(n,c)});return{id:n,decision:u}}approve(t){const e=this.requests.get(t);return!e||e.status!=="pending"?!1:(e.status="approved",e.resolve(!0),!0)}deny(t){const e=this.requests.get(t);return!e||e.status!=="pending"?!1:(e.status="denied",e.resolve(!1),!0)}listPending(){return[...this.requests.values()].filter(t=>t.status==="pending").map(o).sort((t,e)=>t.createdAt-e.createdAt)}get(t){const e=this.requests.get(t);return e?o(e):void 0}cancelForTeammate(t){for(const e of this.requests.values())e.teammateId===t&&e.status==="pending"&&(e.status="expired",e.resolve(!1))}allowPath(t,e){let s=this.pathAllowlist.get(t);s||(s=new Set,this.pathAllowlist.set(t,s)),s.add(i(e))}isPathAllowed(t,e){const s=this.pathAllowlist.get(t);if(!s)return!1;const a=i(e);for(const n of s)if(a===n||a.startsWith(`${n}/`))return!0;return!1}clearPaths(t){this.pathAllowlist.delete(t)}}function o(r){const{resolve:t,...e}=r;return e}l(o,"stripResolve");function i(r){return r.replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()}l(i,"normalizeAllowedPath");export{f as PermissionStore};
@@ -0,0 +1,45 @@
1
+ /**
2
+ * [WHO]: Provides PRESETS, executePreset(), executeAutoTeam(), selectAutoTeamPlan(), formatPresetResult()
3
+ * [FROM]: Depends on ./team-types and ./team-runtime for spawning configured teammates
4
+ * [TO]: Consumed by index.ts for /team:preset command handling
5
+ * [HERE]: extensions/builtin/team/team-presets.ts - built-in AgentTeam preset definitions
6
+ */
7
+ import type { TeamRuntime } from "./team-runtime.js";
8
+ import type { TeamRuntimeEvent } from "./team-runtime.js";
9
+ import type { PersistedTeammate, PresetName, PsycheWeights, TeammateMode, TeammateRole } from "./team-types.js";
10
+ export interface PresetTeammateSpec {
11
+ role: TeammateRole;
12
+ name?: string;
13
+ mode?: TeammateMode;
14
+ harnessEnabled: boolean;
15
+ psycheOverrides?: Partial<PsycheWeights>;
16
+ }
17
+ export interface PresetSpec {
18
+ name: PresetName;
19
+ description: string;
20
+ teammates: PresetTeammateSpec[];
21
+ autoStart: boolean;
22
+ }
23
+ export interface PresetResult {
24
+ preset: PresetSpec;
25
+ teammates: PersistedTeammate[];
26
+ started?: {
27
+ teammateName: string;
28
+ success: boolean;
29
+ error?: string;
30
+ };
31
+ }
32
+ export interface AutoTeamPlan {
33
+ presetName: PresetName;
34
+ rationale: string;
35
+ startTargetRole: TeammateRole;
36
+ }
37
+ export interface AutoTeamResult extends PresetResult {
38
+ plan: AutoTeamPlan;
39
+ }
40
+ export declare const PRESETS: Record<PresetName, PresetSpec>;
41
+ export declare function executePreset(runtime: TeamRuntime, presetName: PresetName, taskDescription: string, baseCwd: string, model?: Parameters<TeamRuntime["send"]>[2], onEvent?: (event: TeamRuntimeEvent) => void, autoStartOverride?: boolean): Promise<PresetResult>;
42
+ export declare function executeAutoTeam(runtime: TeamRuntime, taskDescription: string, baseCwd: string, model?: Parameters<TeamRuntime["send"]>[2], onEvent?: (event: TeamRuntimeEvent) => void, completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>): Promise<AutoTeamResult>;
43
+ export declare function selectAutoTeamPlan(taskDescription: string, completeSimple?: (systemPrompt: string, userMessage: string) => Promise<string | undefined>): Promise<AutoTeamPlan>;
44
+ export declare function formatPresetResult(result: PresetResult): string[];
45
+ export declare function formatAutoTeamResult(result: AutoTeamResult): string[];
@@ -0,0 +1,2 @@
1
+ var h=Object.defineProperty;var r=(e,t)=>h(e,"name",{value:t,configurable:!0});const g={solo:{name:"solo",description:"Single developer with harness, suited for focused delivery tasks.",teammates:[{role:"developer",name:"Theo",harnessEnabled:!0}],autoStart:!0},duo:{name:"duo",description:"Architect plus developer for discovery followed by execution.",teammates:[{role:"architect",name:"Ada",mode:"plan",harnessEnabled:!1},{role:"developer",name:"Theo",harnessEnabled:!0}],autoStart:!1},squad:{name:"squad",description:"PM, architect, developer, designer, and data analyst for explicit multi-agent handoffs.",teammates:[{role:"pm",name:"Mason",mode:"plan",harnessEnabled:!1},{role:"architect",name:"Ada",mode:"plan",harnessEnabled:!1},{role:"developer",name:"Theo",harnessEnabled:!0},{role:"designer",name:"Iris",mode:"research",harnessEnabled:!1,psycheOverrides:{id:1.3,ego:1.1}},{role:"data-analyst",name:"Quinn",mode:"review",harnessEnabled:!1,psycheOverrides:{superego:1.5,id:.5}}],autoStart:!1}};async function b(e,t,a,s,i,n,l){const d=g[t],o=[];for(const m of d.teammates)o.push(await v(e,m,s));const c={preset:d,teammates:o};if((l??d.autoStart)&&o[0]){const m=await e.send(o[0].identity.name,a,i,{onEvent:n});c.started={teammateName:o[0].identity.name,success:m.success,error:m.error}}return c}r(b,"executePreset");async function R(e,t,a,s,i,n){const l=await y(t,n),d=await b(e,l.presetName,t,a,s,i,!1),o=d.teammates.find(u=>u.identity.role===l.startTargetRole)??d.teammates[0],c={...d,plan:l};if(o){const u=await e.send(o.identity.name,t,s,{onEvent:i});c.started={teammateName:o.identity.name,success:u.success,error:u.error,response:u.response}}return c}r(R,"executeAutoTeam");async function y(e,t){if(t){const a=await N(e,t);if(a){const s=p(e);return s.presetName==="squad"&&a.presetName!=="squad"&&f(e)?{...s,rationale:"Website, clone, or design delivery tasks need the full PM, architecture, development, design, and validation squad."}:a}}return p(e)}r(y,"selectAutoTeamPlan");async function v(e,t,a){const s=t.name?e.getTeammate(t.name):void 0;return s&&s.identity.role===t.role?s:e.spawn({role:t.role,name:t.name,mode:t.mode,baseCwd:a,harnessEnabled:t.harnessEnabled,psycheOverrides:t.psycheOverrides})}r(v,"getOrSpawnPresetTeammate");function T(e){const t=[`Preset "${e.preset.name}" created: ${e.preset.description}`,""];for(const a of e.teammates){const s=a.harness?.enabled?" harness:on":"";t.push(` ${a.identity.name} (${a.identity.role}, ${a.mode})${s}`)}if(e.started){const a=e.started;t.push("",a.success?`Auto-started ${a.teammateName}.`:`Auto-start for ${a.teammateName} failed: ${a.error??"Unknown error"}`),a.success&&a.response?.trim()&&t.push("",`Response from ${a.teammateName}:`,"",a.response)}return t}r(T,"formatPresetResult");function A(e){return[`Auto team selected "${e.plan.presetName}".`,`Reason: ${e.plan.rationale}`,"",...T(e)]}r(A,"formatAutoTeamResult");async function N(e,t){try{const a=await t(["You select the smallest useful AgentTeam preset for a coding task.",'Return strict JSON only: {"presetName":"solo|duo|squad","rationale":"short reason","startTargetRole":"developer|architect|pm"}',"solo: focused implementation or small/medium bugfix.","duo: implementation needs architecture reading, API mapping, or light decomposition before coding.","squad: tasks that need explicit handoff, product framing, design input, data validation, review, tests, or broader coordination.","squad: also use for websites, landing pages, website clones, browser research, design systems, frontend polish, and release-readiness checks."].join(`
2
+ `),e);if(!a)return;const s=JSON.parse(w(a));if(s.presetName==="solo"||s.presetName==="duo"||s.presetName==="squad"){const i=s.startTargetRole==="pm"&&s.presetName==="squad"?"pm":s.startTargetRole==="architect"&&(s.presetName==="duo"||s.presetName==="squad")?"architect":"developer";return{presetName:s.presetName,rationale:typeof s.rationale=="string"?s.rationale:"Selected by the current model.",startTargetRole:i}}}catch{return}}r(N,"selectAutoTeamPlanWithModel");function p(e){const t=e.toLowerCase(),a=["architecture","refactor","migration","migrate","system","multiple","end-to-end","e2e","large","\u5B8C\u6574","\u91CD\u6784","\u67B6\u6784","\u8FC1\u79FB","\u5927\u578B"],s=["website","official site","site","homepage","landing","front-end","frontend","web page","clone","rebuild","design system","visual","ux","ui","browser"],i=["test","tests","verify","review","security","auth","payment","release","bug","\u9A8C\u8BC1","\u6D4B\u8BD5","\u5B89\u5168","\u767B\u5F55","\u652F\u4ED8","\u53D1\u5E03"];return a.some(n=>t.includes(n))||s.some(n=>t.includes(n))||f(e)||e.length>240?{presetName:"squad",rationale:"Task looks broad or architectural, so PM, architect, developer, designer, and data analyst are safer.",startTargetRole:"pm"}:i.some(n=>t.includes(n))?{presetName:"squad",rationale:"Task has correctness or verification signals, so explicit PM, architecture, implementation, design, and data validation are appropriate.",startTargetRole:"pm"}:t.includes("refactor")||t.includes("api")||t.includes("investigate")||t.includes("analyze")?{presetName:"duo",rationale:"Task benefits from architecture framing before coding, so an architect plus developer is appropriate.",startTargetRole:"architect"}:{presetName:"solo",rationale:"Task appears focused enough for one harnessed developer.",startTargetRole:"developer"}}r(p,"selectAutoTeamPlanHeuristic");function f(e){return/(?:\u5b98\u7f51|\u9875\u9762|\u524d\u7aef|\u8bbe\u8ba1|\u590d\u523b|\u514b\u9686|\u89c6\u89c9|\u4ea4\u4e92)/.test(e)}r(f,"hasWebsiteOrDesignDeliverySignal");function w(e){const t=e.indexOf("{"),a=e.lastIndexOf("}");return t===-1||a===-1||a<=t?e:e.slice(t,a+1)}r(w,"extractJsonObject");export{g as PRESETS,R as executeAutoTeam,b as executePreset,A as formatAutoTeamResult,T as formatPresetResult,y as selectAutoTeamPlan};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * [WHO]: Provides computePsycheWeights(), buildPsychePrompt(), formatPsycheWeights()
3
+ * [FROM]: Depends on ./team-types for teammate roles, phases, weights, persisted teammate state
4
+ * [TO]: Consumed by team-runtime.ts, team-dashboard.ts, index.ts for phase-aware teammate prompts and status rendering
5
+ * [HERE]: extensions/builtin/team/team-psyche.ts - Freud-inspired internal prompt layer for AgentTeam harness work
6
+ */
7
+ import type { HarnessPhase, PersistedTeammate, PsycheWeights, TeammateRole } from "./team-types.js";
8
+ export type SoulTraits = Partial<Record<string, number>>;
9
+ export declare function computePsycheWeights(phase: HarnessPhase, role: TeammateRole, soulTraits?: SoulTraits, overrides?: Partial<PsycheWeights>): PsycheWeights;
10
+ export declare function buildPsychePrompt(weights: PsycheWeights, phase: HarnessPhase, teammate: PersistedTeammate): string;
11
+ export declare function buildIdLayer(weight: number, phase: HarnessPhase): string;
12
+ export declare function buildEgoLayer(weight: number, phase: HarnessPhase): string;
13
+ export declare function buildSuperegoLayer(weight: number, phase: HarnessPhase): string;
14
+ export declare function formatPsycheWeights(weights: PsycheWeights | undefined): string;
@@ -0,0 +1,5 @@
1
+ var p=Object.defineProperty;var i=(e,t)=>p(e,"name",{value:t,configurable:!0});const d={init:{id:2,ego:7,superego:1},coding:{id:5,ego:3,superego:2},verify:{id:1,ego:2,superego:7},fix:{id:4,ego:4,superego:2},complete:{id:1,ego:3,superego:6}},g={pm:{ego:1.4,superego:1.1},architect:{ego:1.4,id:.8},developer:{id:1.1},designer:{id:1.2,ego:1.1},"data-analyst":{superego:1.4,ego:1.1},implementer:{},verifier:{superego:1.5,id:.5},planner:{ego:1.3,id:.7},researcher:{ego:1.2},reviewer:{superego:1.3},generic:{}},f=[{trait:"conscientiousness",target:"superego",scale:.3},{trait:"openness",target:"id",scale:.3},{trait:"neuroticism",target:"ego",scale:.2},{trait:"explorationDrive",target:"id",scale:.2},{trait:"safetyMargin",target:"superego",scale:.2}];function $(e,t,n,o){const a={...d[e]},u=g[t]??{};for(const r of Object.keys(u))a[r]=a[r]*(u[r]??1);if(n)for(const r of f){const c=h(n[r.trait]);c!==void 0&&(a[r.target]=a[r.target]*(1+c*r.scale))}if(o)for(const r of Object.keys(o))a[r]=o[r]??a[r];return v(a)}i($,"computePsycheWeights");function S(e,t,n){const o=b(e);return["## Internal Psyche Structure","","You have three simultaneous internal forces. They are not separate agents; they jointly influence every decision.",`Current phase: ${t} | Weights: Id=${e.id} Ego=${e.ego} Superego=${e.superego}`,`Dominant layer: ${o}`,"",l(e.id,t),"",m(e.ego,t),"",y(e.superego,t),"",`Apply these forces as ${n.identity.name} (${n.identity.role}) in ${n.mode} mode.`].join(`
2
+ `)}i(S,"buildPsychePrompt");function l(e,t){const n=e>=5?"dominant":e<=2?"restrained":"active",o=t==="verify"?"Suppress implementation impulses. Record defects instead of fixing them in this phase.":t==="init"?"Channel creative drive into decomposing the work into concrete, testable features.":"Implement one valuable feature at a time and keep momentum visible.";return[`### Id - Creative Drive [${n}]`,o].join(`
3
+ `)}i(l,"buildIdLayer");function m(e,t){const n=e>=5?"dominant":e<=2?"supporting":"active",o=t==="init"?"First understand the task, create the harness files, then stop after the initialization checkpoint.":"Read the injected harness files, choose the next bounded step, and preserve context by updating progress.";return[`### Ego - Reality Coordination [${n}]`,o,"- Work incrementally; avoid one-shotting a large task.","- Prefer observable progress over broad unfinished changes."].join(`
4
+ `)}i(m,"buildEgoLayer");function y(e,t){const n=e>=5?"dominant":e<=2?"watching":"active",o=t==="verify"?"Strictly verify every claimed passing feature and downgrade any unverified claim.":"Do not claim completion without concrete verification evidence.";return[`### Superego - Quality Constraint [${n}]`,o,"- Do not remove or rewrite feature definitions in feature_list.json.","- Only set passes=true after executing the listed verification steps.","- Keep progress.txt accurate enough for the next session to resume."].join(`
5
+ `)}i(y,"buildSuperegoLayer");function I(e){return e?`psyche: Id=${e.id} Ego=${e.ego} Superego=${e.superego}`:"psyche: unavailable"}i(I,"formatPsycheWeights");function h(e){if(!(typeof e!="number"||!Number.isFinite(e)))return e>1?Math.max(-1,Math.min(1,e/100)):Math.max(-1,Math.min(1,e))}i(h,"normalizeTrait");function v(e){return{id:s(e.id),ego:s(e.ego),superego:s(e.superego)}}i(v,"clampWeights");function s(e){return Math.max(0,Math.min(10,Math.round(e*10)/10))}i(s,"clampWeight");function b(e){return e.superego>=e.id&&e.superego>=e.ego?"Superego":e.ego>=e.id&&e.ego>=e.superego?"Ego":"Id"}i(b,"getDominantLayer");export{m as buildEgoLayer,l as buildIdLayer,S as buildPsychePrompt,y as buildSuperegoLayer,$ as computePsycheWeights,I as formatPsycheWeights};
@@ -0,0 +1,48 @@
1
+ /**
2
+ * [WHO]: Provides TeamRuntime helper functions for prompts, harness turns, live events, tools, labels, roles, and path guards
3
+ * [FROM]: Depends on core tools/sub-agent events, team-harness, team-psyche, team-mailbox, team-types
4
+ * [TO]: Consumed by team-runtime.ts to keep TeamRuntime focused on lifecycle, persistence, and send queues
5
+ * [HERE]: extensions/builtin/team/team-runtime-helpers.ts - stateless runtime support boundary
6
+ */
7
+ import type { SubAgentEvent } from "../../../core/sub-agent/index.js";
8
+ import { type Tool } from "../../../core/tools/index.js";
9
+ import type { MailboxMessage } from "./team-mailbox.js";
10
+ import type { AgentLiveView, PersistedTeammate, TeamTask, TeammateIdentity, TeammateMode, TeammateRole } from "./team-types.js";
11
+ import type { RuntimeTeammate } from "./team-runtime.js";
12
+ export declare function ensureLiveView(view: AgentLiveView | undefined, identity: TeammateIdentity): AgentLiveView;
13
+ export declare function getDefaultModeForRole(role: TeammateRole): TeammateMode;
14
+ export declare function buildTeammatePrompt(input: {
15
+ state: PersistedTeammate;
16
+ teammates: PersistedTeammate[];
17
+ tasks: TeamTask[];
18
+ mailboxMessages: MailboxMessage[];
19
+ }): string;
20
+ export declare function prepareHarnessTurn(input: {
21
+ teammate: RuntimeTeammate;
22
+ taskDescription: string;
23
+ soulManager: unknown;
24
+ }): Promise<{
25
+ psychePrompt: string;
26
+ harnessInstructions: string;
27
+ contextFiles: string[];
28
+ } | undefined>;
29
+ export declare function applyLiveEvent(teammate: RuntimeTeammate, event: SubAgentEvent): void;
30
+ export declare function selectToolsForMode(input: {
31
+ mode: TeammateMode;
32
+ cwd: string;
33
+ getAllTeammates: () => PersistedTeammate[];
34
+ isPathAllowed: (teammateId: string, absolutePath: string) => boolean;
35
+ }): Tool[];
36
+ export declare function createWritePathGuard(input: {
37
+ cwd: string;
38
+ getAllTeammates: () => PersistedTeammate[];
39
+ isPathAllowed: (teammateId: string, absolutePath: string) => boolean;
40
+ }): (absolutePath: string) => void;
41
+ export declare function normalizePath(path: string): string;
42
+ export declare function isWithinPath(target: string, root: string): boolean;
43
+ export declare function summarizeTask(value: string): string;
44
+ export declare function singleLine(value: string): string;
45
+ export declare function tailText(value: string, maxLength: number): string;
46
+ export declare function labelFromIndex(index: number): string;
47
+ export declare function indexFromLabel(label: string): number;
48
+ export declare function isBuilderRole(role: TeammateRole): boolean;
@@ -0,0 +1,2 @@
1
+ var T=Object.defineProperty;var a=(e,t)=>T(e,"name",{value:t,configurable:!0});import{isAbsolute as k,resolve as v}from"node:path";import{createBashTool as g,createCodingTools as N,createReadOnlyTools as P,createSandboxHook as w}from"../../../core/tools/index.js";import{beginHarnessTurn as A,buildHarnessInstructions as C,ensureHarnessFiles as F,prepareContextFiles as R}from"./team-harness.js";import{buildPsychePrompt as W,computePsycheWeights as M}from"./team-psyche.js";function O(e,t){return{name:t.name,label:t.label,role:t.role,currentTask:e?.currentTask,lastUtterance:e?.lastUtterance,blockedOn:e?.blockedOn,progress:e?.progress}}a(O,"ensureLiveView");function j(e){switch(e){case"pm":case"architect":return"plan";case"designer":case"data-analyst":case"researcher":return"research";case"developer":return"plan";case"reviewer":case"verifier":return"review";case"implementer":case"planner":return"plan";default:return"research"}}a(j,"getDefaultModeForRole");function D(e){const{state:t,teammates:r,tasks:s,mailboxMessages:i}=e,n=["You are a persistent teammate in an AgentTeam.","","Identity:",` Label: ${t.identity.label}`,` Name: ${t.identity.name}`,` Role: ${t.identity.role}`,` Mode: ${t.mode}`,` Working directory: ${t.cwd}`,"","Mode rules:"," - research: read-only exploration and reporting"," - plan: read-only; produce a plan and wait for leader approval before executing"," - execute: sandboxed write inside your working directory"," - review: read-only review and feedback","","Team roster:",...r.map(o=>` - ${o.identity.name} (${o.identity.role})`),"","Mention rules:"," - Use @Name mentions only for concrete handoffs."," - Every mention must include the next-step task after the mention."," - Do not ping another teammate without actionable work.","","Conversation history with the leader:"];if(t.messages.length===0)n.push(" (none yet)");else for(const o of t.messages){const h=o.direction==="leader"?"catui":t.identity.name;n.push(`${h}: ${o.content}`)}const l=s.filter(o=>o.ownerId===t.identity.id),p=s.filter(o=>o.status==="blocked"),d=s.filter(o=>o.status==="open").slice(0,8);if(n.push("","Shared team tasks:"),l.length===0&&p.length===0&&d.length===0)n.push(" (none)");else{if(l.length>0){n.push(" Claimed by you:");for(const o of l)n.push(` ${f(o)}`)}if(p.length>0){n.push(" Blocked:");for(const o of p.slice(0,6))n.push(` ${f(o)}`)}if(d.length>0){n.push(" Open:");for(const o of d)n.push(` ${f(o)}`)}}if(n.push("","Recent team mailbox:"),i.length===0)n.push(" (none)");else for(const o of i){const h=o.teammateName,x=o.targetTeammateName?` -> ${o.targetTeammateName}`:"",$=typeof o.payload.content=="string"?o.payload.content:typeof o.payload.action=="string"?`${o.payload.action}`:JSON.stringify(o.payload);n.push(` [${o.type}] ${h}${x}: ${$}`)}return n.push("","Respond to the leader's last message in your current mode."),n.join(`
2
+ `)}a(D,"buildTeammatePrompt");async function E(e){const{teammate:t,taskDescription:r,soulManager:s}=e,i=t.state.harness;if(!i?.enabled)return;await F(i,t.state.cwd,r),t.state.harness=await A(i,t.state.cwd);const n=await S(s),l=M(t.state.harness.phase,t.state.identity.role,n,t.state.psycheOverrides);t.state.psyche=l;const p=W(l,t.state.harness.phase,t.state),d=await C(t.state.harness,t.state.cwd,r);return{psychePrompt:p,harnessInstructions:d,contextFiles:R(t.state.harness)}}a(E,"prepareHarnessTurn");async function S(e){const t=e;if(t?.getProfile)try{return(await t.getProfile())?.personality}catch{return}}a(S,"getSoulTraits");function G(e,t){const r=e.state.live,s=O(e.state.liveView,e.state.identity);switch(t.type){case"agent_start":e.state.live={phase:"starting",preview:"Sub-agent starting...",toolName:null,updatedAt:t.timestamp},e.state.liveView={...s,progress:"starting"};break;case"message_update":e.state.live={phase:t.text?"thinking":r?.phase??"thinking",preview:c(t.text||r?.preview||"",1200),toolName:r?.toolName??null,updatedAt:t.timestamp},e.state.liveView={...s,lastUtterance:c(m(t.text||r?.preview||""),200),progress:"thinking"};break;case"message_end":e.state.live={phase:"finishing",preview:c(t.text||r?.preview||"",1200),toolName:r?.toolName??null,updatedAt:t.timestamp},e.state.liveView={...s,lastUtterance:c(m(t.text||r?.preview||""),200),progress:"finishing"};break;case"tool_start":case"tool_update":case"tool_end":e.state.live={phase:"tool",preview:t.type==="tool_update"?c(String(t.partialResult??r?.preview??""),1200):r?.preview??"",toolName:t.toolName,updatedAt:t.timestamp},e.state.liveView={...s,progress:`tool:${t.toolName}`};break;case"agent_end":e.state.live={phase:t.success?"done":"error",preview:t.error??r?.preview??"",toolName:null,updatedAt:t.timestamp},e.state.liveView={...s,progress:t.success?"done":"error"};break}}a(G,"applyLiveEvent");function J(e){switch(e.mode){case"research":case"review":case"plan":return y(e.cwd);case"execute":return V(e);default:return y(e.cwd)}}a(J,"selectToolsForMode");function y(e){const t=P(e),r=g(e,{spawnHook:w()});return[...t.filter(s=>s.name!=="bash"),r]}a(y,"createReadOnlyToolsForCwd");function V(e){const t=_(e),r=N(e.cwd,{edit:{beforeWrite:t},write:{beforeWrite:t}}),s=g(e.cwd,{spawnHook:w({allowWritePath:a(i=>{try{return t(i),!0}catch{return!1}},"allowWritePath"),blockedMessage:"Write operations outside the teammate workspace are not allowed. Use /team:allow-path to grant a path prefix."})});return[...r.filter(i=>i.name!=="bash"),s]}a(V,"createSandboxedTools");function _(e){const t=u(e.cwd);return r=>{const s=u(r),i=e.getAllTeammates().find(n=>u(n.cwd)===t);if(!H(s,t)&&!(i&&e.isPathAllowed(i.identity.id,s)))throw new Error(`Write denied for ${s}. Team execute mode may only write inside ${t} unless the leader grants a path allowlist.`)}}a(_,"createWritePathGuard");function u(e){return v((k(e),e))}a(u,"normalizePath");function H(e,t){const r=b(t),s=b(e);return s===r||s.startsWith(`${r}/`)}a(H,"isWithinPath");function f(e){const t=e.ownerName?` owner:${e.ownerName}`:"",r=e.dependsOn.length?` deps:${e.dependsOn.join(",")}`:"",s=e.artifactPaths.length?` artifacts:${e.artifactPaths.join(",")}`:"",i=e.description?` - ${e.description}`:"";return`${e.id} [${e.status}]${t}${r}${s} ${e.title}${i}`}a(f,"formatTaskForPrompt");function Y(e){return c(m(e),160)}a(Y,"summarizeTask");function m(e){return e.replace(/\s+/g," ").trim()}a(m,"singleLine");function c(e,t){return e.length<=t?e:e.slice(e.length-t)}a(c,"tailText");function q(e){let t=e,r="";for(;t>0;)t--,r=String.fromCharCode(65+t%26)+r,t=Math.floor(t/26);return r||"A"}a(q,"labelFromIndex");function K(e){let t=0;for(const r of e.toUpperCase()){const s=r.charCodeAt(0);if(s<65||s>90)return 0;t=t*26+(s-64)}return t}a(K,"indexFromLabel");function Q(e){return e==="implementer"||e==="developer"}a(Q,"isBuilderRole");function b(e){return u(e).replace(/\\/g,"/").replace(/\/+$/,"").toLowerCase()}a(b,"normalizeForComparison");export{G as applyLiveEvent,D as buildTeammatePrompt,_ as createWritePathGuard,O as ensureLiveView,j as getDefaultModeForRole,K as indexFromLabel,Q as isBuilderRole,H as isWithinPath,q as labelFromIndex,u as normalizePath,E as prepareHarnessTurn,J as selectToolsForMode,m as singleLine,Y as summarizeTask,c as tailText};
@@ -0,0 +1,91 @@
1
+ /**
2
+ * [WHO]: TeamRuntime - teammate registry, lifecycle, persistence, task/mailbox, permission, transcript, and send queue management
3
+ * [FROM]: Depends on ./team-types, stores, permissions, mailbox, transcript, team-runtime-helpers.ts, core/sub-agent/*, core/workspace/*
4
+ * [TO]: Consumed by index.ts
5
+ * [HERE]: extensions/builtin/team/team-runtime.ts
6
+ */
7
+ import type { SubAgentEvent, SubAgentHandle } from "../../../core/sub-agent/index.js";
8
+ import type { WorkspacePath } from "../../../core/workspace/index.js";
9
+ import type { Model } from "@catui/ai/types";
10
+ import { PermissionStore } from "./team-permissions.js";
11
+ import { TeamMailbox } from "./team-mailbox.js";
12
+ import { TeamTaskStore } from "./team-task-store.js";
13
+ import type { PersistedTeammate, TeamTask, TeamTaskStatus, TeammateMode, TeamSpawnSpec, TeamSendResult } from "./team-types.js";
14
+ export interface RuntimeTeammate {
15
+ state: PersistedTeammate;
16
+ abortController: AbortController;
17
+ currentTurnAbortController?: AbortController;
18
+ handle?: SubAgentHandle;
19
+ worktree?: WorkspacePath;
20
+ }
21
+ export interface TeamRuntimeOptions {
22
+ storageDir?: string;
23
+ }
24
+ export interface TeamSendOptions {
25
+ onEvent?: (event: TeamRuntimeEvent) => void;
26
+ }
27
+ export type TeamRuntimeEvent = {
28
+ type: "teammate_live";
29
+ teammate: PersistedTeammate;
30
+ event: SubAgentEvent;
31
+ } | {
32
+ type: "teammate_status";
33
+ teammate: PersistedTeammate;
34
+ event: string;
35
+ } | {
36
+ type: "harness_event";
37
+ teammate: PersistedTeammate;
38
+ event: string;
39
+ };
40
+ export declare class TeamRuntime {
41
+ private store;
42
+ private worktreeManager;
43
+ private subAgentRuntime;
44
+ private permissions;
45
+ private mailbox;
46
+ private tasks;
47
+ private transcripts;
48
+ private teammates;
49
+ private sendQueues;
50
+ private loaded;
51
+ private nameCounter;
52
+ private labelCounter;
53
+ private soulManager;
54
+ constructor(options?: TeamRuntimeOptions);
55
+ getPermissionStore(): PermissionStore;
56
+ getMailbox(): TeamMailbox;
57
+ getTaskStore(): TeamTaskStore;
58
+ setSoulManager(soulManager: unknown | undefined): void;
59
+ load(): Promise<void>;
60
+ spawn(spec: TeamSpawnSpec): Promise<PersistedTeammate>;
61
+ send(name: string, message: string, model?: Model<any>, options?: TeamSendOptions): Promise<TeamSendResult>;
62
+ stop(name: string): Promise<boolean>;
63
+ terminate(name: string): Promise<boolean>;
64
+ setMode(name: string, mode: TeammateMode): Promise<{
65
+ ok: boolean;
66
+ pending?: {
67
+ requestId: string;
68
+ };
69
+ error?: string;
70
+ }>;
71
+ approvePermission(requestId: string): boolean;
72
+ denyPermission(requestId: string): boolean;
73
+ addTask(title: string): Promise<TeamTask>;
74
+ claimTask(taskId: string, teammateName: string): Promise<TeamTask | undefined>;
75
+ updateTaskStatus(taskId: string, status: TeamTaskStatus): Promise<TeamTask | undefined>;
76
+ listTasks(): Promise<TeamTask[]>;
77
+ sendTeammateMail(fromName: string, toName: string, content: string): Promise<boolean>;
78
+ allowPath(teammateName: string, path: string): Promise<string | undefined>;
79
+ getAllTeammates(): PersistedTeammate[];
80
+ getTeammate(name: string): PersistedTeammate | undefined;
81
+ dispose(): Promise<void>;
82
+ private ensureLoaded;
83
+ private findByName;
84
+ private generateName;
85
+ private generateLabel;
86
+ private bumpNameCounter;
87
+ private bumpLabelCounter;
88
+ private detectWorkspaceType;
89
+ private selectTools;
90
+ private createWritePathGuard;
91
+ }