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,81 @@
1
+ /**
2
+ * [WHO]: TeachTypes - teaching-related type definitions
3
+ * [FROM]: No dependencies
4
+ * [TO]: Consumed by teach-runtime.ts, teach-prompts.ts, teach-format.ts
5
+ * [HERE]: extensions/builtin/teach/teach-types.ts - type definitions for teach extension
6
+ */
7
+ export type TeachPhase = "mission_discovery" | "learning_style" | "teaching" | "progress_tracking";
8
+ export type LearningStyle = "quick_overview" | "deep_dive" | "focused_skill" | "holistic";
9
+ export type LearnerLevel = "L0" | "L1" | "L2" | "L3";
10
+ export type LessonLevel = 0 | 1 | 2 | 3;
11
+ export interface Mission {
12
+ why: string;
13
+ successCriteria: string[];
14
+ constraints: string[];
15
+ outOfScope: string[];
16
+ }
17
+ export interface Analogy {
18
+ concept: string;
19
+ analogy: string;
20
+ details: string;
21
+ confidence: "low" | "medium" | "high";
22
+ }
23
+ export interface Source {
24
+ name: string;
25
+ url: string;
26
+ confidence: 1 | 2 | 3 | 4 | 5;
27
+ verificationMethod: string;
28
+ }
29
+ export interface LearningRecord {
30
+ topic: string;
31
+ level: LessonLevel;
32
+ content: string;
33
+ timestamp: Date;
34
+ status: "active" | "superseded";
35
+ }
36
+ export interface TeachState {
37
+ phase: TeachPhase;
38
+ topic: string;
39
+ mission?: Mission;
40
+ learningStyle?: LearningStyle;
41
+ learnerLevel: LearnerLevel;
42
+ currentLevel: LessonLevel;
43
+ glossary: Map<string, string>;
44
+ sources: Source[];
45
+ learningRecords: LearningRecord[];
46
+ sessionId?: string;
47
+ }
48
+ export interface TeachResult {
49
+ type: "question" | "lesson" | "complete" | "error" | "info";
50
+ message: string;
51
+ content?: string;
52
+ level?: LessonLevel;
53
+ options?: string[];
54
+ nextAction?: "continue" | "ask" | "complete";
55
+ state?: Partial<TeachState>;
56
+ }
57
+ export interface TeachLessonOptions {
58
+ topic: string;
59
+ level: LessonLevel;
60
+ analogy: Analogy | null;
61
+ sources: Source[];
62
+ learnerLevel: LearnerLevel;
63
+ learningStyle: LearningStyle;
64
+ }
65
+ export interface AnalogyEntry {
66
+ concept: string;
67
+ analogies: Analogy[];
68
+ }
69
+ export interface LearningPath {
70
+ id: string;
71
+ name: string;
72
+ description: string;
73
+ targetLevel: LearnerLevel;
74
+ topics: LearningPathTopic[];
75
+ }
76
+ export interface LearningPathTopic {
77
+ order: number;
78
+ topic: string;
79
+ duration: string;
80
+ buildsOn: number[];
81
+ }
File without changes
@@ -0,0 +1,112 @@
1
+ # extensions/builtin/team/
2
+
3
+ > P2 | Parent: ../AGENT.md
4
+
5
+ Member List
6
+ - index.ts: AgentTeam extension entry, /team <task>, /team:spawn/:preset/:send/:status/:progress/:psyche/:dashboard/:task/:mail/:allow-path/:stop/:terminate/:approve/:mode commands, TEAM_MESSAGE_TYPE speaker-stream renderer, realtime status/dashboard updates
7
+ - team-types.ts: TeammateRole/TeammateMode/TeammateStatus/TeamTask/HarnessState/PsycheWeights/TeamUtterance/Handoff/LeaderPlan/AgentLiveView/TeammateIdentity/PersistedTeammate/TeamSpawnSpec/TeamSendResult types
8
+ - team-state-store.ts: TeamStateStore class - durable teammate persistence via JSON files in <agentDir>/teams/
9
+ - team-parser.ts: Team command parser - parseTeamCommand/buildTeamHelp for /team:* subcommands
10
+ - team-runtime.ts: TeamRuntime class - teammate registry, stable internal labels plus visible teammate names, per-teammate send queue, lifecycle, durable tasks, mailbox + permission + transcript wiring; uses SubAgentRuntime for agent spawning
11
+ - team-runtime-helpers.ts: TeamRuntime helper boundary - teammate prompt construction, harness turn preparation, live event projection, tool selection, path guards, label/role/text helpers
12
+ - team-ui.ts: Team message renderer, list/status/task formatting, dashboard visibility/timer ownership, realtime observer, and speaker-stream emission helpers used by index.ts
13
+ - team-orchestrator.ts: Leader orchestration helpers - plan building, speaker utterance creation, @mention parsing, and handoff execution
14
+ - team-task-store.ts: TeamTaskStore class - durable shared task list in <storageDir>/tasks.json with claim/status updates
15
+ - team-harness.ts: Harness protocol helpers - context files, phase instructions, checkpoint/revert, feature validation
16
+ - team-presets.ts: Preset definitions and executor - solo/duo/squad spawning, model-assisted auto team selection, heuristic fallback
17
+ - team-dashboard.ts: Text dashboard/status rendering - teammate workbench cards, current task, last utterance, progress bars, footer summary
18
+ - team-psyche.ts: Psyche prompt layer - role/phase weighted Id/Ego/Superego prompt construction
19
+ - team-permissions.ts: PermissionStore - pending permission request queue, approve/deny, path allowlists (B.4)
20
+ - team-mailbox.ts: TeamMailbox - typed JSONL-backed append-only message log for leader↔teammate and teammate↔teammate routing (B.3)
21
+ - team-transcript.ts: TeamTranscriptWriter - per-teammate JSONL transcripts under <storageDir>/transcripts/ (B.7)
22
+ - TESTING.md: Manual & smoke-test guide for the Phase B AgentTeam extension
23
+
24
+ Rule: Members complete, one item per line, parent links valid, precise terms first
25
+
26
+ [COVENANT]: Update this file header on changes and verify against parent AGENT.md
27
+
28
+ ---
29
+
30
+ ## Phase B: AgentTeam Architecture
31
+
32
+ This extension implements the Phase B "true AgentTeam" per the refactor plan and the next-step conversational team UI:
33
+ - Persistent teammates with durable state (survive across main session restarts)
34
+ - Each teammate has identity, stable short label, mode, status, worktree, and message history
35
+ - Teammates run in isolated worktrees (for implementers)
36
+ - Uses core/sub-agent/ infrastructure for actual agent spawning
37
+ - Main chat renders a speaker stream (`catui`, `Mason`, `Ada`, `Theo`, `Iris`, `Quinn`, ...) instead of raw status events
38
+ - Leader orchestration can auto-split `/team <task>` into teammate assignments and follow `@mention` handoffs
39
+
40
+ ## Commands
41
+
42
+ | Command | Description |
43
+ |---------|-------------|
44
+ | `/team` | List all teammates |
45
+ | `/team:spawn <role> [--name <id>]` | Create a persistent teammate |
46
+ | `/team:send <name> <message>` | Send message to a teammate |
47
+ | `/team:status [<name>]` | Show team or teammate status |
48
+ | `/team:stop <name>` | Stop teammate's current turn |
49
+ | `/team:terminate <name>` | Destroy a teammate |
50
+ | `/team:approve <request-id>` | Approve a permission request |
51
+ | `/team:mode <name> <plan\|execute\|review>` | Switch teammate mode |
52
+ | `/team:task list` | Show shared team tasks |
53
+ | `/team:task add <title>` | Add a shared task |
54
+ | `/team:task claim <id> <name>` | Assign/claim a task for a teammate |
55
+ | `/team:task done\|block\|cancel <id>` | Update task status |
56
+ | `/team:mail <from> <to> <message>` | Route teammate-to-teammate mailbox message |
57
+ | `/team:allow-path <name> <path>` | Grant teammate write access to a path prefix |
58
+
59
+ ## Roles
60
+
61
+ - `researcher`: Read-only exploration
62
+ - `reviewer`: Read-only review/audit
63
+ - `implementer`: Sandboxed write in isolated worktree
64
+ - `planner`: Read-only plan production
65
+ - `generic`: Read-only by default
66
+
67
+ ## Modes
68
+
69
+ - `research`: Read-only exploration
70
+ - `plan`: Read-only plan production; execute requires leader approval
71
+ - `execute`: Sandboxed write in worktree
72
+ - `review`: Read-only review
73
+
74
+ ## State Persistence
75
+
76
+ Teammate state is stored in `~/.catui/agent/teams/<uuid>.json`:
77
+ - Identity (id, name, role, createdAt)
78
+ - Mode and status
79
+ - Working directory and worktree info
80
+ - Message history
81
+ - Last activity timestamp
82
+
83
+ Shared team coordination state is also stored under `~/.catui/agent/teams/`:
84
+ - `tasks.json`: durable task list with status, owner, dependencies, and artifact paths
85
+ - `mailbox.jsonl`: replayable mailbox events for leader↔teammate and teammate↔teammate routing
86
+
87
+ TeamStateStore is deliberately independent of core SessionManager per the refactor plan:
88
+ > "team-state-store 自己负责 teammate 历史 ... SessionManager 只负责主会话"
89
+
90
+ ## Core Dependencies
91
+
92
+ - `core/sub-agent/`: SubAgentRuntime for spawning agents
93
+ - `core/workspace/`: WorktreeManager for isolated worktrees
94
+ - `core/tools/`: Tool creation with sandboxed bash
95
+
96
+ ## Phase B status
97
+
98
+ Shipped in this iteration:
99
+ - Permission request/response (`team-permissions.ts`, wired into `/team:mode` execute escalation and `/team:approve`)
100
+ - Durable shared task list (`team-task-store.ts`, wired into `/team:task`)
101
+ - Mailbox protocol (`team-mailbox.ts`, posts on send/result/mode_change/permission_request/permission_response/task_update/task_claim/teammate_message and replays across restarts)
102
+ - Prompt context injection: each teammate receives claimed tasks, blocked/open task cues, and recent mailbox messages before every turn
103
+ - Path-scoped write allowlist exposed through `/team:allow-path`; execute-mode edit/write tools and simple bash write commands enforce teammate cwd or approved path prefixes
104
+ - Per-teammate send queue: concurrent `/team:send` calls for the same teammate run sequentially instead of failing while the teammate is running
105
+ - Per-teammate JSONL transcripts (`team-transcript.ts`)
106
+ - Structured speaker-stream utterances with `speaker/role/kind/mentions`
107
+ - Stable internal labels and mention-aware handoff parsing for leader-visible routing
108
+ - Subprocess SubAgent backend harness (`core/sub-agent/subprocess-backend.ts` + `subprocess-worker.ts`) — interface complete, worker LLM loop deferred (see backend doc).
109
+
110
+ Future work:
111
+ - Worker-side full LLM agent loop for the subprocess backend
112
+ - Broaden bash write parsing beyond simple single-command forms while keeping complex shell syntax rejected by default
@@ -0,0 +1,299 @@
1
+ # Testing the AgentTeam Extension (Phase B)
2
+
3
+ > Manual & smoke-test guide for `extensions/builtin/team/`.
4
+ > Owner: AgentTeam Phase B. Last updated: 2026-04-08.
5
+
6
+ This document describes how to verify the Phase B AgentTeam runtime end to end. It covers persistence, the permission model, the mailbox, transcripts, and the subprocess SubAgent backend.
7
+
8
+ ---
9
+
10
+ ## 0. Prerequisites
11
+
12
+ ```bash
13
+ npm install
14
+ npm run build # or run via tsx for fast iteration
15
+ ```
16
+
17
+ Run Catui in interactive mode for the manual scenarios:
18
+
19
+ ```bash
20
+ npx tsx cli.ts
21
+ ```
22
+
23
+ All teammate state lives under:
24
+
25
+ - `${CATUI_AGENT_DIR:-~/.catui/agent}/teams/<id>.json` — durable state
26
+ - `${CATUI_AGENT_DIR:-~/.catui/agent}/teams/tasks.json` — shared task list
27
+ - `${CATUI_AGENT_DIR:-~/.catui/agent}/teams/mailbox.jsonl` — replayable mailbox log
28
+ - `${CATUI_AGENT_DIR:-~/.catui/agent}/teams/transcripts/<id>.jsonl` — per-teammate transcripts
29
+
30
+ You can wipe state between runs with:
31
+
32
+ ```bash
33
+ rm -rf ~/.catui/agent/teams
34
+ ```
35
+
36
+ ---
37
+
38
+ ## 1. Type & lint sanity
39
+
40
+ ```bash
41
+ npx tsc --noEmit
42
+ ```
43
+
44
+ The team extension must report **zero** errors. Pre-existing `presence/index.ts` errors related to `catui-mem` are unrelated and may remain until that extension is rebundled.
45
+
46
+ ---
47
+
48
+ ## 2. Manual smoke test — happy path
49
+
50
+ In an interactive session:
51
+
52
+ ```text
53
+ /team # → "No teammates."
54
+ /team:spawn researcher --name scout # spawns read-only researcher
55
+ /team # lists scout (○ idle)
56
+ /team:status scout # full record incl. cwd
57
+ /team:send scout "What does core/sub-agent/ do?"
58
+ /team:status scout # messages = 2
59
+ /team:terminate scout # ⊗ teammate gone
60
+ /team # → "No teammates."
61
+ ```
62
+
63
+ Pass criteria:
64
+
65
+ - `scout`'s state file appears under `~/.catui/agent/teams/` after spawn.
66
+ - The state file is removed after `terminate`.
67
+ - `~/.catui/agent/teams/transcripts/<id>.jsonl` contains one `leader` line and one `teammate` line per send, then is removed on terminate.
68
+
69
+ ---
70
+
71
+ ## 3. Persistence across restarts
72
+
73
+ ```text
74
+ /team:spawn researcher --name scout
75
+ /team:send scout "Summarize README.md"
76
+ ```
77
+
78
+ Quit Catui (`/exit` or Ctrl+C). Restart with `npx tsx cli.ts`. Then:
79
+
80
+ ```text
81
+ /team
82
+ /team:status scout
83
+ ```
84
+
85
+ Pass criteria:
86
+
87
+ - `scout` is still listed.
88
+ - The previous message history is intact.
89
+ - `scout`'s status is `idle` (any in-flight `running` is downgraded to `idle` on load — see `team-runtime.ts` `load()`).
90
+
91
+ ---
92
+
93
+ ## 4. Worktree isolation for implementers
94
+
95
+ ```text
96
+ /team:spawn implementer --name builder
97
+ /team:status builder
98
+ ```
99
+
100
+ Pass criteria:
101
+
102
+ - `builder.cwd` and `worktreePath` point at a fresh git worktree under
103
+ `~/.catui/agent/...` (or `WorktreeManager`'s default location).
104
+ - `git worktree list` from the project shows the new worktree.
105
+ - Default mode is `plan` (read-only), **not** `execute`.
106
+
107
+ ---
108
+
109
+ ## 5. Permission model — execute escalation
110
+
111
+ ```text
112
+ /team:mode builder execute
113
+ ```
114
+
115
+ Pass criteria:
116
+
117
+ - The response says **"requires approval"** and prints a request id.
118
+ - `/team:approve` (no args) lists the pending request with action
119
+ `mode_change_to_execute`.
120
+ - `/team:approve <id>` flips `builder` to `execute` mode.
121
+ - A second `/team:approve <id>` returns "not found or already resolved".
122
+ - `/team:status builder` now reports `mode: execute`.
123
+ - `/team:terminate builder` cancels any still-pending requests cleanly.
124
+
125
+ Negative test — denial path:
126
+
127
+ ```text
128
+ /team:spawn implementer --name builder2
129
+ /team:mode builder2 execute # pending
130
+ /team:terminate builder2 # cancels the request as denied
131
+ ```
132
+
133
+ Pass criteria: terminate succeeds, no dangling promise warnings in stderr.
134
+
135
+ ---
136
+
137
+ ## 6. Mailbox observation
138
+
139
+ The mailbox is currently consumed by `team-runtime` itself; programmatic observers can subscribe via `runtime.getMailbox().subscribe(...)`. To verify mailbox traffic from a test harness:
140
+
141
+ ```ts
142
+ import { TeamRuntime } from "./team-runtime.js";
143
+ const rt = new TeamRuntime({ storageDir: "/tmp/team-test" });
144
+ rt.getMailbox().subscribe((m) => console.log(m.type, m.direction));
145
+ await rt.spawn({ role: "researcher", baseCwd: process.cwd() });
146
+ await rt.send("researcher-1", "ping");
147
+ ```
148
+
149
+ Expected message sequence: `task_request` → `task_result`.
150
+ After `setMode("..." , "execute")` on an implementer: `permission_request`, then on approval `permission_response` and `mode_change`.
151
+
152
+ Shared task and teammate mail smoke:
153
+
154
+ ```text
155
+ /team:spawn researcher --name scout
156
+ /team:spawn reviewer --name reviewer
157
+ /team:task add Map team implementation
158
+ /team:task claim T-1 scout
159
+ /team:mail scout reviewer "Please review T-1 when ready"
160
+ /team:task list
161
+ ```
162
+
163
+ Pass criteria:
164
+
165
+ - `tasks.json` contains `T-1` with `status: "claimed"` and `ownerName: "scout"`.
166
+ - `mailbox.jsonl` contains `task_update`, `task_claim`, and `teammate_message`.
167
+ - Restarting Catui preserves `/team:task list` output and the teammate mailbox context shown to each teammate.
168
+ - The next `/team:send scout ...` prompt includes `Shared team tasks`, the claimed task, and recent mailbox lines targeting `scout`.
169
+
170
+ ---
171
+
172
+ ## 6.1 Path-scoped write access
173
+
174
+ ```text
175
+ /team:spawn implementer --name builder
176
+ /team:mode builder execute
177
+ /team:approve <request-id>
178
+ ```
179
+
180
+ Pass criteria:
181
+
182
+ - In execute mode, `edit`, `write`, and simple bash write commands can mutate files inside `builder.cwd`.
183
+ - Attempts to mutate an absolute path outside `builder.cwd` fail with `Write denied` or the team bash sandbox message.
184
+ - `/team:allow-path builder ../shared-output` grants that path prefix; subsequent `edit`, `write`, and simple bash writes under the approved path succeed.
185
+ - Complex shell write syntax with `&&`, pipes, command substitution, or subshells remains blocked by default.
186
+
187
+ ---
188
+
189
+ ## 7. Transcripts
190
+
191
+ After any `/team:send`:
192
+
193
+ ```bash
194
+ ls ~/.catui/agent/teams/transcripts/
195
+ cat ~/.catui/agent/teams/transcripts/<id>.jsonl
196
+ ```
197
+
198
+ Pass criteria:
199
+
200
+ - One JSON object per line.
201
+ - Each line has `timestamp`, `kind` (`leader` | `teammate` | `event`), and `content`.
202
+ - Transcript file is removed when the teammate is terminated.
203
+
204
+ ---
205
+
206
+ ## 8. Stop in flight
207
+
208
+ Spawn a teammate, send a long task, then immediately stop:
209
+
210
+ ```text
211
+ /team:spawn researcher --name slow
212
+ /team:send slow "Read every file under core/ and summarize"
213
+ # while running:
214
+ /team:stop slow
215
+ /team:status slow
216
+ ```
217
+
218
+ Pass criteria:
219
+
220
+ - The send call returns within ~15 seconds with `aborted: true` or an error.
221
+ - `slow` ends up in `stopped` status.
222
+ - A subsequent `/team:send slow "ping"` works (status returns to `running` then `idle`).
223
+
224
+ Concurrent send queue check:
225
+
226
+ ```text
227
+ /team:spawn researcher --name scout
228
+ /team:send scout "First long read"
229
+ # while running:
230
+ /team:send scout "Second follow-up"
231
+ ```
232
+
233
+ Pass criteria:
234
+
235
+ - The second send is queued instead of rejected.
236
+ - Mailbox contains a `task_progress` event with `status: "queued"`.
237
+ - The teammate receives and records both leader messages in order.
238
+
239
+ ---
240
+
241
+ ## 9. Subprocess SubAgent backend (smoke)
242
+
243
+ The subprocess backend is exercised via `SubprocessSubAgentBackend` directly. Quick Node smoke from the repo root:
244
+
245
+ ```bash
246
+ npx tsx -e "
247
+ import { SubprocessSubAgentBackend } from './core/sub-agent/subprocess-backend.js';
248
+ const backend = new SubprocessSubAgentBackend();
249
+ const ctrl = new AbortController();
250
+ const handle = await backend.spawn({
251
+ prompt: 'hello',
252
+ cwd: process.cwd(),
253
+ tools: [],
254
+ signal: ctrl.signal,
255
+ });
256
+ console.log(await handle.result());
257
+ "
258
+ ```
259
+
260
+ Pass criteria:
261
+
262
+ - The script prints `{ success: true, response: '[subprocess-worker:...] received prompt of 5 chars in cwd ...' }`.
263
+ - Aborting before the worker posts: replace `await handle.result()` with `ctrl.abort(); await handle.result();` — should print `{ success: false, error: 'Aborted' }` and the worker thread is terminated.
264
+
265
+ > **Scope note.** The subprocess backend ships the harness (worker_threads channel, abort wiring, lifecycle) but does **not** run the full LLM agent loop inside the worker yet. Callers that need real LLM execution should keep using the in-process backend; this backend is the foundation for future crash isolation.
266
+
267
+ ---
268
+
269
+ ## 10. Recovery (corrupt state file)
270
+
271
+ Touch a malformed state file to confirm `loadAll()` skips it gracefully:
272
+
273
+ ```bash
274
+ echo "not-json" > ~/.catui/agent/teams/garbage.json
275
+ npx tsx cli.ts
276
+ /team
277
+ ```
278
+
279
+ Pass criteria: Catui starts normally, `/team` lists only valid teammates, no crash.
280
+
281
+ ---
282
+
283
+ ## 11. Coverage matrix
284
+
285
+ | §B item | Covered by section |
286
+ |----------------------------------|--------------------|
287
+ | B.1 Persistent teammates | §2, §3 |
288
+ | B.2 State store independence | §3, §10 |
289
+ | B.3 Mailbox protocol | §6 |
290
+ | B.4 Permission model | §5 |
291
+ | B.5 Worktree isolation | §4 |
292
+ | B.6 Multi-backend (subprocess) | §9 |
293
+ | B.7 Transcripts | §7 |
294
+ | B.8 Recovery | §3, §10 |
295
+ | AbortSignal closure (Phase A.2) | §8 |
296
+
297
+ ---
298
+
299
+ **Covenant**: When you add a new `/team:*` command or change the permission/mailbox surface, update this file in the same commit.
@@ -0,0 +1,26 @@
1
+ /**
2
+ * [WHO]: AgentTeam extension, registers /team commands for persistent teammates, harness status, psyche status, dashboard widget
3
+ * [FROM]: Depends on @catui/tui, core/extensions-host/types, ./team-runtime, ./team-parser, ./team-types, ./team-harness, ./team-presets, ./team-dashboard
4
+ * [TO]: Consumed by builtin-extensions.ts as default extension
5
+ * [HERE]: extensions/builtin/team/index.ts - AgentTeam extension entry point
6
+ *
7
+ * Commands:
8
+ * /team - List teammates
9
+ * /team <task> - Auto-select team size/roles and start the task
10
+ * /team:spawn <role> [--name <id>] [--harness] - Create teammate
11
+ * /team:preset <solo|duo|squad> <task> - Create preset team
12
+ * /team:send <name> <message> - Send message to teammate
13
+ * /team:status [<name>] - Show status
14
+ * /team:progress [<name>] - Show harness progress
15
+ * /team:psyche [<name>] - Show psyche weights
16
+ * /team:dashboard - Toggle dashboard widget
17
+ * /team:task <add|claim|done|block|cancel|list> ... - Manage shared task list
18
+ * /team:mail <from> <to> <message> - Route teammate-to-teammate mailbox messages
19
+ * /team:allow-path <name> <path> - Grant teammate write access to a path prefix
20
+ * /team:stop <name> - Stop teammate turn
21
+ * /team:terminate <name> - Destroy teammate
22
+ * /team:approve <request-id> - Approve permission request
23
+ * /team:mode <name> <plan|execute|review> - Switch mode
24
+ */
25
+ import type { ExtensionAPI } from "../../../core/extensions-host/types.js";
26
+ export default function teamExtension(api: ExtensionAPI): Promise<void>;
@@ -0,0 +1,11 @@
1
+ var U=Object.defineProperty;var p=(r,s)=>U(r,"name",{value:s,configurable:!0});import{TeamRuntime as N}from"./team-runtime.js";import{buildTeamHelp as E,getTeamArgumentCompletions as I,parseTeamCommand as C}from"./team-parser.js";import{executePreset as P,formatPresetResult as q}from"./team-presets.js";import{formatHarnessProgress as R}from"./team-harness.js";import{formatPsycheWeights as D}from"./team-psyche.js";import{createTeamUtterance as k,parseTeamMentions as j,runLeaderOrchestration as F}from"./team-orchestrator.js";import{TEAM_MESSAGE_TYPE as m,clearTeamDashboardTimer as W,createTeamMessageRenderer as _,createTeamObserver as w,emitTeamUtterance as y,formatSpeakerName as T,formatTaskList as L,formatTeammateList as v,formatTeammateStatus as H,setTeamActivity as b,toggleTeamDashboard as G,truncateForStatus as S,updateTeamUi as d}from"./team-ui.js";let M=null;function B(){return M||(M=new N),M}p(B,"getRuntime");async function K(r){const s=B();await s.load(),r.on("session_shutdown",async()=>{W(),await s.dispose()}),r.on("session_ready",(c,u)=>{s.setSoulManager(u.getSoulManager()),d(u,s)}),r.on("session_start",(c,u)=>{u.ui.setWidget("team-dashboard",void 0)}),r.on("session_switch",(c,u)=>{u.ui.setWidget("team-dashboard",void 0)}),r.registerMessageRenderer(m,_());const A=["team","team:spawn","team:send","team:status","team:stop","team:terminate","team:approve","team:mode","team:preset","team:dashboard","team:progress","team:psyche","team:task","team:mail","team:allow-path"];for(const c of A)r.registerCommand(c,{description:O(c),getArgumentCompletions:p((u,t)=>I(c,u,t),"getArgumentCompletions"),handler:p(async(u,t)=>{const e=C(c,u);if(!e){t.ui.notify("Invalid /team command. Use /team for usage.","error");return}switch(e.command){case"help":{r.sendMessage({customType:m,content:E(),display:!0});break}case"list":{const a=s.getAllTeammates(),o=v(a);r.sendMessage({customType:m,content:o.join(`
2
+ `),display:!0});break}case"auto":{if(!e.taskDescription){t.ui.notify("Usage: /team <task>","error");return}b(t,["Team: planning multi-agent work...",`Task: ${S(e.taskDescription)}`]);try{const a=w(r,t,s);await F(s,{taskDescription:e.taskDescription,baseCwd:t.cwd,model:t.model,onRuntimeEvent:a.onEvent,completeSimple:t.completeSimple,emitUtterance:p((o,n)=>y(r,o,n),"emitUtterance")}),a.flush(),d(t,s)}catch(a){const o=a instanceof Error?a.message:String(a);t.ui.notify(`Failed to auto-select team: ${o}`,"error"),r.sendMessage({customType:m,content:`Failed to auto-select team: ${o}`,display:!0}),d(t,s)}finally{t.ui.setWorkingMessage()}break}case"spawn":{if(!e.role){t.ui.notify("Usage: /team:spawn <role> [--name <name>]","error");return}r.sendMessage({customType:m,content:`Spawning ${e.role} teammate${e.name?` named "${e.name}"`:""}...`,display:!0}),t.ui.setWorkingMessage(`Team: spawning ${e.role} teammate...`);try{const a=await s.spawn({role:e.role,name:e.name,baseCwd:t.cwd,harnessEnabled:e.harnessEnabled}),o=["Teammate spawned successfully:",` Name: ${a.identity.name}`,` Role: ${a.identity.role}`,` Mode: ${a.mode}`,` Status: ${a.status}`,...a.harness?.enabled?[` Harness: ${a.harness.phase}`]:[],...a.worktreePath?[` Worktree: ${a.worktreePath}`]:[]];r.sendMessage({customType:m,content:o.join(`
3
+ `),display:!0}),d(t,s)}catch(a){const o=a instanceof Error?a.message:String(a);t.ui.notify(`Failed to spawn teammate: ${o}`,"error"),r.sendMessage({customType:m,content:`Failed to spawn teammate: ${o}`,display:!0})}finally{t.ui.setWorkingMessage()}break}case"send":{if(!e.target||!e.message){t.ui.notify("Usage: /team:send <name> <message>","error");return}const a=t.model;b(t,[`Team: sending task to ${e.target}...`]);const o=s.getTeammate(e.target);y(r,k({speakerId:"leader",speakerLabel:"catui",role:"leader",kind:"work",text:o?`@${o.identity.name} ${e.message}`:`${e.target} ${e.message}`}));try{const n=w(r,t,s),i=await s.send(e.target,e.message,a,{onEvent:n.onEvent});if(n.flush(),d(t,s),i.success){const l=s.getTeammate(i.teammateName),$=j(i.response,s.getAllTeammates());y(r,k({speakerId:l?.identity.id??i.teammateName,speakerLabel:l?T(l):i.teammateName,role:l?.identity.role??"generic",kind:$.length>0?"handoff":"result",text:i.response,mentions:$}),l?{streamKey:`team-stream:${l.identity.id}`,replace:!0}:void 0);for(const f of $){const g=s.getTeammate(f.targetLabel)??s.getTeammate(f.targetName);if(!g)continue;y(r,k({speakerId:"leader",speakerLabel:"catui",role:"leader",kind:"handoff",text:`@${g.identity.name} take the handoff from ${l?T(l):i.teammateName}: ${f.task}`,mentions:[f]}));const h=await s.send(g.identity.name,`Handoff from ${l?T(l):i.teammateName}: ${f.task}`,a,{onEvent:n.onEvent});y(r,k({speakerId:g.identity.id,speakerLabel:T(g),role:g.identity.role,kind:h.success?"result":"work",text:h.response||h.error||"No response."}),{streamKey:`team-stream:${g.identity.id}`,replace:!0})}}else t.ui.notify(`Teammate ${i.teammateName} failed: ${i.error??"Unknown error"}`,"error"),r.sendMessage({customType:m,content:`Teammate ${i.teammateName} failed: ${i.error??"Unknown error"}`,display:!0})}catch(n){const i=n instanceof Error?n.message:String(n);t.ui.notify(`Failed to send message: ${i}`,"error"),r.sendMessage({customType:m,content:`Failed to send message: ${i}`,display:!0}),d(t,s)}finally{t.ui.setWorkingMessage()}break}case"status":{if(e.target){const a=s.getTeammate(e.target);if(!a){t.ui.notify(`Teammate "${e.target}" not found`,"error");return}const o=H(a);r.sendMessage({customType:m,content:o.join(`
4
+ `),display:!0})}else{const a=s.getAllTeammates(),o=v(a);r.sendMessage({customType:m,content:o.join(`
5
+ `),display:!0})}break}case"stop":{if(!e.target){t.ui.notify("Usage: /team:stop <name>","error");return}const a=await s.stop(e.target);d(t,s),a?r.sendMessage({customType:m,content:`Stopped ${e.target}'s current turn.`,display:!0}):t.ui.notify(`Teammate "${e.target}" not found`,"error");break}case"terminate":{if(!e.target){t.ui.notify("Usage: /team:terminate <name>","error");return}const a=await s.terminate(e.target);d(t,s),a?r.sendMessage({customType:m,content:`Terminated teammate "${e.target}".`,display:!0}):t.ui.notify(`Teammate "${e.target}" not found`,"error");break}case"mode":{if(!e.target||!e.mode){t.ui.notify("Usage: /team:mode <name> <plan|execute|review>","error");return}const a=await s.setMode(e.target,e.mode);if(d(t,s),!a.ok){t.ui.notify(`Teammate "${e.target}" not found`,"error");break}a.pending?r.sendMessage({customType:m,content:`Mode change for ${e.target} \u2192 ${e.mode} requires approval.
6
+ Approve with: /team:approve ${a.pending.requestId}`,display:!0}):r.sendMessage({customType:m,content:`Changed ${e.target}'s mode to "${e.mode}".`,display:!0});break}case"approve":{if(!e.requestId){const o=s.getPermissionStore().listPending();if(o.length===0)r.sendMessage({customType:m,content:"No pending permission requests.",display:!0});else{const n=["Pending permission requests:",""];for(const i of o)n.push(` ${i.id}`),n.push(` teammate: ${i.teammateName}`),n.push(` action: ${i.action}`),n.push(` detail: ${i.detail}`);n.push("","Approve with: /team:approve <id>"),r.sendMessage({customType:m,content:n.join(`
7
+ `),display:!0})}break}s.approvePermission(e.requestId)?r.sendMessage({customType:m,content:`Approved request ${e.requestId}.`,display:!0}):t.ui.notify(`Permission request "${e.requestId}" not found or already resolved.`,"error");break}case"preset":{if(!e.presetName||!e.taskDescription){t.ui.notify("Usage: /team:preset <solo|duo|squad> <task>","error");return}r.sendMessage({customType:m,content:`Creating "${e.presetName}" preset...`,display:!0}),b(t,[`Team: creating "${e.presetName}" preset...`,`Task: ${S(e.taskDescription)}`]);try{const a=w(r,t,s),o=await P(s,e.presetName,e.taskDescription,t.cwd,t.model,a.onEvent);a.flush(),r.sendMessage({customType:m,content:q(o).join(`
8
+ `),display:!0}),d(t,s)}catch(a){const o=a instanceof Error?a.message:String(a);t.ui.notify(`Failed to execute preset: ${o}`,"error"),r.sendMessage({customType:m,content:`Failed to execute preset: ${o}`,display:!0}),d(t,s)}finally{t.ui.setWorkingMessage()}break}case"progress":{const a=e.target?[s.getTeammate(e.target)].filter(n=>!!n):s.getAllTeammates();if(e.target&&a.length===0){t.ui.notify(`Teammate "${e.target}" not found`,"error");return}const o=a.flatMap(n=>[`Teammate: ${n.identity.name}`,...R(n.harness),""]);r.sendMessage({customType:m,content:o.join(`
9
+ `).trimEnd(),display:!0});break}case"psyche":{const a=e.target?[s.getTeammate(e.target)].filter(n=>!!n):s.getAllTeammates();if(e.target&&a.length===0){t.ui.notify(`Teammate "${e.target}" not found`,"error");return}const o=a.map(n=>`${n.identity.name}: ${D(n.psyche)}`);r.sendMessage({customType:m,content:o.join(`
10
+ `),display:!0});break}case"dashboard":{const a=G(t,s);r.sendMessage({customType:m,content:`Team dashboard ${a?"enabled":"disabled"}.`,display:!0});break}case"task":{if(!e.taskAction){t.ui.notify("Usage: /team:task <list|add|claim|done|block|cancel> ...","error");return}if(e.taskAction==="list"){const n=await s.listTasks();r.sendMessage({customType:m,content:L(n).join(`
11
+ `),display:!0});break}if(e.taskAction==="add"){if(!e.taskTitle){t.ui.notify("Usage: /team:task add <title>","error");return}const n=await s.addTask(e.taskTitle);r.sendMessage({customType:m,content:`Added task ${n.id}: ${n.title}`,display:!0});break}if(e.taskAction==="claim"){if(!e.taskId||!e.target){t.ui.notify("Usage: /team:task claim <id> <name>","error");return}const n=await s.claimTask(e.taskId,e.target);if(!n){t.ui.notify(`Task or teammate not found: ${e.taskId}`,"error");return}r.sendMessage({customType:m,content:`Claimed ${n.id} for ${n.ownerName}: ${n.title}`,display:!0});break}if(!e.taskId){t.ui.notify(`Usage: /team:task ${e.taskAction} <id>`,"error");return}const a=e.taskAction==="done"?"done":e.taskAction==="block"?"blocked":"cancelled",o=await s.updateTaskStatus(e.taskId,a);if(!o){t.ui.notify(`Task not found: ${e.taskId}`,"error");return}r.sendMessage({customType:m,content:`Updated ${o.id} to ${o.status}: ${o.title}`,display:!0});break}case"mail":{if(!e.from||!e.to||!e.message){t.ui.notify("Usage: /team:mail <from> <to> <message>","error");return}if(!await s.sendTeammateMail(e.from,e.to,e.message)){t.ui.notify(`Could not route mail from ${e.from} to ${e.to}`,"error");return}r.sendMessage({customType:m,content:`Routed mail ${e.from} -> ${e.to}.`,display:!0});break}case"allow-path":{if(!e.target||!e.path){t.ui.notify("Usage: /team:allow-path <name> <path>","error");return}const a=await s.allowPath(e.target,e.path);if(!a){t.ui.notify(`Teammate "${e.target}" not found`,"error");return}r.sendMessage({customType:m,content:`Granted ${e.target} write access to ${a}`,display:!0});break}}},"handler")})}p(K,"teamExtension");function O(r){switch(r){case"team:spawn":return"Create a persistent teammate (/team:spawn <role> [--name <name>])";case"team:send":return"Send work or a note to a teammate (/team:send <name> <message>)";case"team:status":return"Show team or teammate status";case"team:stop":return"Stop teammate's current turn";case"team:terminate":return"Remove a teammate";case"team:approve":return"Approve a teammate request";case"team:mode":return"Change how a teammate works (/team:mode <name> <plan|execute|review>)";case"team:preset":return"Create teammates from a preset";case"team:dashboard":return"Toggle the team dashboard";case"team:progress":return"Show teammate progress";case"team:psyche":return"Show teammate decision settings";case"team:task":return"Manage shared team tasks";case"team:mail":return"Send a note from one teammate to another";case"team:allow-path":return"Grant a teammate write access to a path prefix";default:return"Create or manage teammates"}}p(O,"getCommandDescription");export{K as default};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * [WHO]: Provides renderTeamDashboard(), renderTeamFooterStatus()
3
+ * [FROM]: Depends on ./team-types and ./team-psyche formatting helpers
4
+ * [TO]: Consumed by index.ts to render /team:dashboard widget and footer status text
5
+ * [HERE]: extensions/builtin/team/team-dashboard.ts - lightweight team workbench dashboard
6
+ */
7
+ import type { PersistedTeammate } from "./team-types.js";
8
+ interface TeamDashboardOptions {
9
+ expanded?: boolean;
10
+ }
11
+ export declare function renderTeamDashboard(teammates: PersistedTeammate[], width?: number, options?: TeamDashboardOptions): string[];
12
+ export declare function renderTeamFooterStatus(teammates: PersistedTeammate[]): string | undefined;
13
+ export {};
@@ -0,0 +1 @@
1
+ var v=Object.defineProperty;var i=(n,r)=>v(n,"name",{value:r,configurable:!0});function T(n,r=80,e={}){if(n.length===0)return["Team: no agents"];const t=Math.max(58,Math.min(r,100)),c=n.filter(s=>s.status==="running").length,h=n.filter(s=>s.liveView?.blockedOn||s.status==="error").length,f=e.expanded?6:4,g=k(n).slice(0,f),p=Math.max(0,n.length-g.length),o=t-2,l=[`+${u(` Team Workbench ${n.length} agents | ${c} running | ${h} blocked `,o,"-")}+`];for(const s of g)l.push(`|${u(a(s,o),o)}|`);p>0&&l.push(`|${u(`+ ${p} more agents`,o)}|`);const $=x(n,e.expanded?2:1);for(const s of $)l.push(`|${u(`${s.name}: ${s.text}`,o)}|`);return l.push(`+${"-".repeat(o)}+`),l}i(T,"renderTeamDashboard");function W(n){if(n.length===0)return;const r=n.filter(t=>t.status==="running").length,e=n.slice(0,3).map(t=>{const c=t.liveView?.progress?` ${t.liveView.progress}`:"";return`${t.identity.name}:${t.status}${c}`}).join(" | ");return`team: ${n.length} agents${r?` (${r} running)`:""} | ${e}`}i(W,"renderTeamFooterStatus");function a(n,r){const e=n.liveView,t=11,c=12,h=13,f=Math.max(12,r-t-c-h-8),g=V(n.status),p=u(d(n.identity.name,t),t),o=u(d(n.identity.role,c),c),l=u(d(w(n),h),h),$=d(e?.currentTask??e?.lastUtterance??"-",f);return`${g} ${p} ${o} ${l} ${$}`}i(a,"renderAgentLine");function w(n){return n.liveView?.blockedOn?`blocked:${n.liveView.blockedOn}`:n.liveView?.progress?n.liveView.progress:n.live?.phase?n.live.toolName?`${n.live.phase}:${n.live.toolName}`:n.live.phase:n.status}i(w,"formatState");function x(n,r){return n.map(e=>({name:e.identity.name,text:b(e.liveView?.lastUtterance??e.live?.preview??""),timestamp:e.lastActiveAt})).filter(e=>e.text.length>0).sort((e,t)=>t.timestamp-e.timestamp).slice(0,r).map(e=>({...e,text:d(e.text,74)}))}i(x,"latestUtterances");function k(n){const r=i(e=>e.status==="running"?0:e.liveView?.blockedOn||e.status==="error"?1:e.liveView?.progress&&e.liveView.progress!=="done"?2:3,"rank");return[...n].sort((e,t)=>r(e)-r(t)||t.lastActiveAt-e.lastActiveAt)}i(k,"prioritizeTeammates");function V(n){switch(n){case"idle":return"o";case"running":return"*";case"stopped":return"!";case"error":return"x";case"terminated":return"-"}}i(V,"statusIcon");function d(n,r){return n.length<=r?n:`${n.slice(0,Math.max(0,r-3))}...`}i(d,"truncate");function b(n){return n.replace(/\s+/g," ").trim()}i(b,"singleLine");function u(n,r,e=" "){const t=d(n,r);return t+e.repeat(Math.max(0,r-t.length))}i(u,"pad");export{T as renderTeamDashboard,W as renderTeamFooterStatus};
@@ -0,0 +1,35 @@
1
+ /**
2
+ * [WHO]: Provides createInitialHarnessState(), beginHarnessTurn(), buildHarnessInstructions(), prepareContextFiles(), inspectHarnessExit()
3
+ * [FROM]: Depends on node fs/path and ./team-types for harness state and feature contracts
4
+ * [TO]: Consumed by team-runtime.ts, team-presets.ts, index.ts to coordinate long-running AgentTeam work
5
+ * [HERE]: extensions/builtin/team/team-harness.ts - Anthropic-style harness protocol helpers for /team teammates
6
+ */
7
+ import type { HarnessFeature, HarnessPhase, HarnessState } from "./team-types.js";
8
+ import type { SubAgentResult } from "../../../core/sub-agent/index.js";
9
+ export interface HarnessFeatureList {
10
+ version: 1;
11
+ generatedAt: string;
12
+ taskDescription: string;
13
+ features: HarnessFeature[];
14
+ }
15
+ export interface HarnessExitResult {
16
+ harness: HarnessState;
17
+ violations: string[];
18
+ event: string;
19
+ }
20
+ export declare function createInitialHarnessState(): HarnessState;
21
+ export declare function ensureHarnessFiles(harness: HarnessState, cwd: string, taskDescription: string): Promise<void>;
22
+ export declare function beginHarnessTurn(harness: HarnessState, cwd: string): Promise<HarnessState>;
23
+ export declare function buildHarnessInstructions(harness: HarnessState, cwd: string, taskDescription: string): Promise<string>;
24
+ export declare function buildInitPhaseInstructions(harness: HarnessState, taskDescription: string, cwd: string): string;
25
+ export declare function buildCodingPhaseInstructions(harness: HarnessState, featureListContent: string, progressContent: string): string;
26
+ export declare function buildVerifyPhaseInstructions(harness: HarnessState, featureListContent: string): string;
27
+ export declare function buildFixPhaseInstructions(harness: HarnessState, verifyReport: string | null, featureListContent: string): string;
28
+ export declare function buildCompletePhaseInstructions(harness: HarnessState, featureListContent: string): string;
29
+ export declare function prepareContextFiles(harness: HarnessState): string[];
30
+ export declare function inspectHarnessExit(harness: HarnessState, cwd: string, result: SubAgentResult): Promise<HarnessExitResult>;
31
+ export declare function validateFeatureList(original: Omit<HarnessFeature, "passes">[], current: HarnessFeature[]): string[];
32
+ export declare function resolveNextPhase(harness: Pick<HarnessState, "phase" | "totalFeatures" | "passedFeatures">, previousPhase?: HarnessPhase, violations?: string[]): HarnessPhase;
33
+ export declare function formatHarnessProgress(harness: HarnessState | undefined): string[];
34
+ export declare function createHarnessCheckpoint(cwd: string, message: string): Promise<string | null>;
35
+ export declare function revertHarnessChanges(cwd: string, preTurnCommit: string | null, violations: string[]): Promise<string | null>;
@@ -0,0 +1,18 @@
1
+ var C=Object.defineProperty;var a=(t,e)=>C(t,"name",{value:e,configurable:!0});import{execFile as P}from"node:child_process";import{mkdir as x,readFile as m,writeFile as w}from"node:fs/promises";import{dirname as k,isAbsolute as S,resolve as H}from"node:path";import{promisify as b}from"node:util";const R=".catui-harness/feature_list.json",A=".catui-harness/progress.txt",L=".catui-harness/init.sh",E=b(P);function X(){return{enabled:!0,phase:"init",featureListPath:R,progressPath:A,initScriptPath:L,totalFeatures:0,passedFeatures:0,currentFeature:null,lastVerifyReport:null,cycleCount:0,featureSnapshot:[],preTurnCommit:null,lastCheckpointCommit:null,lastRevertCommit:null,lastEvent:"Harness initialized"}}a(X,"createInitialHarnessState");async function Y(t,e,r){await h(e,t.featureListPath),await h(e,t.progressPath),await h(e,t.initScriptPath),await g(e,t.progressPath,["=== Session 0 ===",`Date: ${new Date().toISOString()}`,`Phase: ${t.phase}`,"Status: initialized",`Task: ${r}`,"Notes: Harness files were prepared by TeamRuntime.",""].join(`
2
+ `)),await g(e,t.initScriptPath,["#!/usr/bin/env bash","set -euo pipefail","# Add reproducible setup commands here.",""].join(`
3
+ `))}a(Y,"ensureHarnessFiles");async function Z(t,e){const r={...t};return r.preTurnCommit=await d(e),r}a(Z,"beginHarnessTurn");async function tt(t,e,r){const i=await p(e,t.featureListPath),n=await p(e,t.progressPath);switch(t.phase){case"init":return T(t,r,e);case"coding":return I(t,i,n);case"verify":return j(t,i);case"fix":return _(t,t.lastVerifyReport,i);case"complete":return D(t,i)}}a(tt,"buildHarnessInstructions");function T(t,e,r){return["## Harness Phase: init","",`Task: ${e}`,`Working directory: ${r}`,"","Create or update the harness files before doing implementation work:",`- ${t.featureListPath}: JSON matching { version: 1, generatedAt, taskDescription, features[] }`,`- ${t.progressPath}: human-readable progress log`,`- ${t.initScriptPath}: reproducible setup/check script if useful`,"","Feature rules:","- Use stable feature ids such as F001, F002.","- Each feature needs category, description, steps, passes=false, and priority.","- Do not implement features during init. Stop after the harness plan is written."].join(`
4
+ `)}a(T,"buildInitPhaseInstructions");function I(t,e,r){return["## Harness Phase: coding","","Read the injected feature list and progress. Choose exactly one feature with passes=false, implement it, run its verification steps, then update progress.",`Current progress: ${t.passedFeatures}/${t.totalFeatures}`,"","Feature list snapshot:",l(e),"","Progress snapshot:",l(r)].join(`
5
+ `)}a(I,"buildCodingPhaseInstructions");function j(t,e){return["## Harness Phase: verify","","Act as a strict verifier. Re-run or reason through every feature marked passes=true.","If a feature is not actually verified, set passes=false and record the reason in progress.txt.",`Current claimed progress: ${t.passedFeatures}/${t.totalFeatures}`,"","Feature list snapshot:",l(e)].join(`
6
+ `)}a(j,"buildVerifyPhaseInstructions");function _(t,e,r){return["## Harness Phase: fix","","Fix only the failed or downgraded features from the previous verify phase, then re-run their verification steps.",e?`Last verify report:
7
+ ${e}`:"No verify report was captured; inspect feature_list.json for passes=false items.","","Feature list snapshot:",l(r)].join(`
8
+ `)}a(_,"buildFixPhaseInstructions");function D(t,e){return["## Harness Phase: complete","","All tracked features are currently passing. Summarize the verification evidence and avoid new implementation work unless the leader asks for more.",`Final progress: ${t.passedFeatures}/${t.totalFeatures}`,"","Feature list snapshot:",l(e)].join(`
9
+ `)}a(D,"buildCompletePhaseInstructions");function et(t){const e=[t.progressPath,t.initScriptPath];return(t.phase!=="init"||t.totalFeatures>0)&&e.unshift(t.featureListPath),e}a(et,"prepareContextFiles");async function rt(t,e,r){const i={...t},n=t.phase,s=await V(e,t.featureListPath),u=s?N(t.featureSnapshot,s.features):[],v=u.length>0;s&&(i.totalFeatures=s.features.length,i.passedFeatures=s.features.filter(c=>c.passes).length,i.currentFeature=s.features.find(c=>!c.passes)?.description??null,i.featureSnapshot.length===0&&s.features.length>0&&(i.featureSnapshot=z(s.features)));const $=await p(e,t.progressPath);if((n==="verify"||!r.success)&&(i.lastVerifyReport=r.response??r.error??$.slice(-2e3)),i.phase=U(i,n,u),v){const c=await O(e,t.preTurnCommit,u);i.lastRevertCommit=c??i.lastRevertCommit}else{const c=await G(e,J(n,i));i.lastCheckpointCommit=c??i.lastCheckpointCommit}return n==="init"&&i.phase==="coding"&&(i.cycleCount+=1),i.lastEvent=M(n,i.phase,i,u),{harness:i,violations:u,event:i.lastEvent}}a(rt,"inspectHarnessExit");function N(t,e){if(t.length===0)return[];const r=[];t.length!==e.length&&r.push(`feature count changed: ${t.length} -> ${e.length}`);for(const[i,n]of t.entries()){const s=e[i];s&&(s.id!==n.id&&r.push(`feature ${i+1} id changed`),s.category!==n.category&&r.push(`feature ${n.id} category changed`),s.description!==n.description&&r.push(`feature ${n.id} description changed`),s.priority!==n.priority&&r.push(`feature ${n.id} priority changed`),s.steps.join(`
10
+ `)!==n.steps.join(`
11
+ `)&&r.push(`feature ${n.id} steps changed`))}return r}a(N,"validateFeatureList");function U(t,e=t.phase,r=[]){return r.length>0?"fix":t.totalFeatures===0?"init":t.passedFeatures>=t.totalFeatures?e==="verify"||e==="complete"?"complete":"verify":e==="verify"?"fix":"coding"}a(U,"resolveNextPhase");function it(t){if(!t?.enabled)return["Harness: disabled"];const e=t.totalFeatures>0?Math.round(t.passedFeatures/t.totalFeatures*100):0;return[`Harness: ${t.phase}`,` Progress: ${t.passedFeatures}/${t.totalFeatures} (${e}%)`,` Current: ${t.currentFeature??"none"}`,` Cycle: ${t.cycleCount}`,...t.lastCheckpointCommit?[` Last Checkpoint: ${t.lastCheckpointCommit.slice(0,12)}`]:[],...t.lastRevertCommit?[` Last Revert: ${t.lastRevertCommit.slice(0,12)}`]:[],` Files: ${t.featureListPath}, ${t.progressPath}`,...t.lastEvent?[` Last Event: ${t.lastEvent}`]:[]]}a(it,"formatHarnessProgress");async function G(t,e){if(!await y(t))return null;if(!await F(t))return await d(t);try{return await o(t,["add","-A"]),await o(t,["commit","-m",e]),await d(t)}catch{return null}}a(G,"createHarnessCheckpoint");async function O(t,e,r){if(!e||!await y(t)||!await F(t))return null;try{return(await o(t,["status","--porcelain"])).stdout.trim()?(await o(t,["add","-A"]),await o(t,["commit","-m",`harness: quarantine invalid turn
12
+
13
+ ${r.join(`
14
+ `)}`]),await o(t,["revert","--no-edit","HEAD"]),await d(t)):null}catch{return null}}a(O,"revertHarnessChanges");async function V(t,e){const r=await p(t,e);if(r.trim())try{const i=JSON.parse(r);return i.version!==1||!Array.isArray(i.features)?void 0:i}catch{return}}a(V,"readFeatureList");function z(t){return t.map(({passes:e,...r})=>r)}a(z,"snapshotFeatures");async function p(t,e){try{return await m(f(t,e),"utf8")}catch{return""}}a(p,"readRelativeFile");async function g(t,e,r){try{await m(f(t,e),"utf8")}catch{await w(f(t,e),r,"utf8")}}a(g,"writeIfMissing");async function h(t,e){await x(k(f(t,e)),{recursive:!0})}a(h,"ensureParent");function f(t,e){return S(e)?e:H(t,e)}a(f,"resolvePath");function l(t){return t.trim()?t.length>6e3?`${t.slice(0,6e3)}
15
+ ... (truncated)`:t:"(empty or unavailable)"}a(l,"truncateForPrompt");function M(t,e,r,i){const n=i.length>0?` with ${i.length} feature-list violation(s)`:"",s=r.lastCheckpointCommit?`; checkpoint ${r.lastCheckpointCommit.slice(0,12)}`:"",u=r.lastRevertCommit?`; revert ${r.lastRevertCommit.slice(0,12)}`:"";return`Phase ${t} -> ${e}; progress ${r.passedFeatures}/${r.totalFeatures}${n}${s}${u}`}a(M,"buildHarnessEvent");function J(t,e){return`harness: ${t} checkpoint
16
+
17
+ Progress: ${e.passedFeatures}/${e.totalFeatures}
18
+ Next phase: ${e.phase}`}a(J,"buildCheckpointMessage");async function y(t){try{return await o(t,["rev-parse","--is-inside-work-tree"]),!0}catch{return!1}}a(y,"isGitRepository");async function F(t){try{return(await o(t,["status","--porcelain"])).stdout.trim().length>0}catch{return!1}}a(F,"hasGitChanges");async function d(t){try{return(await o(t,["rev-parse","HEAD"])).stdout.trim()||null}catch{return null}}a(d,"getGitHead");async function o(t,e){const r=await E("git",e,{cwd:t,encoding:"utf8",maxBuffer:1048576});return{stdout:String(r.stdout??""),stderr:String(r.stderr??"")}}a(o,"git");export{Z as beginHarnessTurn,I as buildCodingPhaseInstructions,D as buildCompletePhaseInstructions,_ as buildFixPhaseInstructions,tt as buildHarnessInstructions,T as buildInitPhaseInstructions,j as buildVerifyPhaseInstructions,G as createHarnessCheckpoint,X as createInitialHarnessState,Y as ensureHarnessFiles,it as formatHarnessProgress,rt as inspectHarnessExit,et as prepareContextFiles,U as resolveNextPhase,O as revertHarnessChanges,N as validateFeatureList};