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 @@
1
+ var n=Object.defineProperty;var s=(a,t)=>n(a,"name",{value:t,configurable:!0});class r{static{s(this,"SubAgentRuntime")}backend;activeAgents=new Map;constructor(t){this.backend=t}async spawn(t){const e=await this.backend.spawn(t);return this.activeAgents.set(e.id,e),e.result().finally(()=>{this.activeAgents.delete(e.id)}),e}getActiveAgents(){return Array.from(this.activeAgents.values())}async abortAll(){await Promise.all(Array.from(this.activeAgents.values()).map(t=>t.abort()))}async terminateAll(){await Promise.all(Array.from(this.activeAgents.values()).map(t=>t.terminate()))}}export{r as SubAgentRuntime};
@@ -0,0 +1,138 @@
1
+ /**
2
+ * [WHO]: SubAgent types - SubAgentSpec, SubAgentEvent, SubAgentHandle, SubAgentBackend, SubAgentResult
3
+ * [FROM]: Depends on @catui/agent-core, @catui/ai, core/tools
4
+ * [TO]: Consumed by ./sub-agent-runtime, ./sub-agent-backend, ./index.ts, extensions/builtin/subagent/*, extensions/builtin/team/*
5
+ * [HERE]: core/sub-agent/sub-agent-types.ts - SubAgent type definitions
6
+ * [COVENANT]: Change these types → update P1 architecture diagram
7
+ */
8
+ import type { ImageContent, Model } from "@catui/ai/types";
9
+ import type { AgentUsage } from "./agent-input-output.js";
10
+ import type { Tool } from "../tools/index.js";
11
+ /** Realtime lifecycle event emitted by a running SubAgent. */
12
+ export type SubAgentEvent = {
13
+ type: "agent_start";
14
+ subAgentId: string;
15
+ timestamp: number;
16
+ agentType: string;
17
+ description: string;
18
+ isAsync: boolean;
19
+ } | {
20
+ type: "message_update";
21
+ subAgentId: string;
22
+ timestamp: number;
23
+ text: string;
24
+ deltaType?: string;
25
+ } | {
26
+ type: "message_end";
27
+ subAgentId: string;
28
+ timestamp: number;
29
+ text: string;
30
+ } | {
31
+ type: "tool_start";
32
+ subAgentId: string;
33
+ timestamp: number;
34
+ toolName: string;
35
+ args: unknown;
36
+ } | {
37
+ type: "tool_update";
38
+ subAgentId: string;
39
+ timestamp: number;
40
+ toolName: string;
41
+ partialResult: unknown;
42
+ } | {
43
+ type: "tool_end";
44
+ subAgentId: string;
45
+ timestamp: number;
46
+ toolName: string;
47
+ isError: boolean;
48
+ } | {
49
+ type: "agent_end";
50
+ subAgentId: string;
51
+ timestamp: number;
52
+ success: boolean;
53
+ error?: string;
54
+ };
55
+ /**
56
+ * Specification for spawning a SubAgent.
57
+ */
58
+ export interface SubAgentSpec {
59
+ /** Task prompt for the SubAgent */
60
+ prompt: string;
61
+ /** Tools available to the SubAgent (determined by caller, not guessed by core) */
62
+ tools: Tool[];
63
+ /** Working directory for the SubAgent (can be a worktree) */
64
+ cwd: string;
65
+ /** Agent type label for TUI display (e.g. "Explore", "Plan", "general-purpose") */
66
+ agentType?: string;
67
+ /** Human-readable description of the task (e.g. "search codebase") */
68
+ description?: string;
69
+ /** Whether this agent was launched as a background/async agent */
70
+ isAsync?: boolean;
71
+ /** Abort signal for stopping the SubAgent (required) */
72
+ signal: AbortSignal;
73
+ /** Optional timeout in milliseconds */
74
+ timeoutMs?: number;
75
+ /** Images to include in the prompt */
76
+ images?: ImageContent[];
77
+ /** Model to use (reuses main session's model and auth) */
78
+ model?: Model<any>;
79
+ /** Files to inject into the initial prompt as read-only context */
80
+ contextFiles?: string[];
81
+ /** Optional callback invoked after the run result is available */
82
+ exitHook?: (result: SubAgentResult) => Promise<void> | void;
83
+ /** Optional realtime observer for TUI/status integrations */
84
+ onEvent?: (event: SubAgentEvent) => void;
85
+ }
86
+ /**
87
+ * Result from a completed SubAgent run.
88
+ */
89
+ export interface SubAgentResult {
90
+ /** Whether the run was successful */
91
+ success: boolean;
92
+ /** The response text from the SubAgent */
93
+ response?: string;
94
+ /** Error message if unsuccessful */
95
+ error?: string;
96
+ /** Total tokens consumed by the SubAgent */
97
+ totalTokens?: number;
98
+ /** Total number of tool calls made */
99
+ totalToolUseCount?: number;
100
+ /** Token usage breakdown */
101
+ usage?: AgentUsage;
102
+ }
103
+ /**
104
+ * Handle to a running SubAgent.
105
+ */
106
+ export interface SubAgentHandle {
107
+ /** Unique identifier for this SubAgent */
108
+ readonly id: string;
109
+ /** Current status of the SubAgent */
110
+ readonly status: "running" | "done" | "aborted" | "error";
111
+ /**
112
+ * Wait for the SubAgent to complete and get its result.
113
+ * Resolves when the SubAgent finishes (successfully or with error).
114
+ */
115
+ result(): Promise<SubAgentResult>;
116
+ /**
117
+ * Abort the current turn (stops after current LLM response).
118
+ * The SubAgent may still be in "running" state if it can accept more turns.
119
+ */
120
+ abort(): Promise<void>;
121
+ /**
122
+ * Terminate the SubAgent completely.
123
+ * This stops all work and disposes of resources.
124
+ */
125
+ terminate(): Promise<void>;
126
+ }
127
+ /**
128
+ * Backend for spawning SubAgents.
129
+ * Core provides in-process backend; subprocess backend can be added in phase B.
130
+ */
131
+ export interface SubAgentBackend {
132
+ /**
133
+ * Spawn a new SubAgent with the given specification.
134
+ * @param spec The SubAgent specification
135
+ * @returns A handle to the spawned SubAgent
136
+ */
137
+ spawn(spec: SubAgentSpec): Promise<SubAgentHandle>;
138
+ }
File without changes
@@ -0,0 +1,35 @@
1
+ /**
2
+ * [WHO]: SubprocessSubAgentBackend
3
+ * [FROM]: Depends on node:worker_threads, ./sub-agent-types
4
+ * [TO]: Consumed by SubAgentRuntime when caller wants crash isolation
5
+ * [HERE]: core/sub-agent/subprocess-backend.ts - Phase B B.6 multi-backend
6
+ *
7
+ * Crash-isolated SubAgent backend built on top of node:worker_threads.
8
+ *
9
+ * The worker thread runs the in-process backend in its own V8 isolate, so
10
+ * an unhandled error inside a teammate cannot tear down the main session.
11
+ * The Tool[] surface in `SubAgentSpec` is NOT serializable across the
12
+ * worker boundary, so the caller must pre-stage tools by name and resolve
13
+ * them inside the worker via `toolFactoryName`. For v1 we accept the same
14
+ * profiles the team extension already uses ("read-only" / "sandboxed").
15
+ *
16
+ * Status: SHIPPED with the worker harness in place; the worker entry
17
+ * itself is intentionally minimal (echo + abort) so the interface is real
18
+ * and exercisable. The full agent loop inside the worker is deferred to a
19
+ * follow-up because it requires re-creating the model registry inside the
20
+ * isolate, which is out of scope for the AgentTeam Phase B milestone.
21
+ *
22
+ * The backend therefore documents itself honestly: callers that need real
23
+ * LLM execution should keep using `InProcessSubAgentBackend`; callers that
24
+ * just need an isolated bash/echo worker can use this one today.
25
+ */
26
+ import type { SubAgentBackend, SubAgentHandle, SubAgentSpec } from "./sub-agent-types.js";
27
+ export interface SubprocessBackendOptions {
28
+ /** Override the worker entry path (for tests). */
29
+ workerEntry?: string;
30
+ }
31
+ export declare class SubprocessSubAgentBackend implements SubAgentBackend {
32
+ private readonly workerEntry;
33
+ constructor(options?: SubprocessBackendOptions);
34
+ spawn(spec: SubAgentSpec): Promise<SubAgentHandle>;
35
+ }
@@ -0,0 +1 @@
1
+ var w=Object.defineProperty;var n=(a,e)=>w(a,"name",{value:e,configurable:!0});import{Worker as f}from"node:worker_threads";import{fileURLToPath as y}from"node:url";import{dirname as k,join as b}from"node:path";const h=k(y(import.meta.url));class S{static{n(this,"SubprocessSubAgentBackend")}workerEntry;constructor(e={}){this.workerEntry=e.workerEntry??b(h,"subprocess-worker.js")}async spawn(e){const i=crypto.randomUUID(),m={id:i,prompt:e.prompt,cwd:e.cwd,timeoutMs:e.timeoutMs},t=new f(this.workerEntry,{workerData:m});let c="running",o;const d=new Promise(l=>{const s=n((r,p)=>{o||(o=r,c=p,l(r))},"finish");t.on("message",r=>{r.type==="result"?s(r.payload??{success:!0},"done"):r.type==="error"&&s({success:!1,error:String(r.payload?.error??"Worker error")},"error")}),t.on("error",r=>{s({success:!1,error:r.message},"error")}),t.on("exit",r=>{o||s({success:!1,error:r===0?"Worker exited without result":`Worker exited with code ${r}`},"error")});const u=n(()=>{o||(t.postMessage({type:"abort"}),s({success:!1,error:"Aborted"},"aborted"),t.terminate().catch(()=>{}))},"onAbort");e.signal.aborted?u():e.signal.addEventListener("abort",u,{once:!0})});return{id:i,get status(){return c},async result(){return d},async abort(){o||(t.postMessage({type:"abort"}),await t.terminate().catch(()=>{}))},async terminate(){await t.terminate().catch(()=>{})}}}}export{S as SubprocessSubAgentBackend};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * [WHO]: Worker entry for SubprocessSubAgentBackend
3
+ * [FROM]: Depends on node:worker_threads
4
+ * [TO]: Spawned by SubprocessSubAgentBackend
5
+ * [HERE]: core/sub-agent/subprocess-worker.ts
6
+ *
7
+ * Minimal isolated worker. Receives a `WorkerSpec` via workerData, runs
8
+ * a trivial echo loop, and posts a `result` message back. This is the
9
+ * harness that proves the channel + abort + lifecycle wiring; full agent
10
+ * execution inside the worker is intentionally deferred (see backend doc).
11
+ */
12
+ export {};
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var s=(e,a)=>p(e,"name",{value:a,configurable:!0});import{parentPort as r,workerData as n}from"node:worker_threads";const o=n;let t=!1;r?.on("message",e=>{e.type==="abort"&&(t=!0)});async function c(){if(await new Promise(e=>setTimeout(e,10)),t){r?.postMessage({type:"error",payload:{error:"Aborted"}});return}r?.postMessage({type:"result",payload:{success:!0,response:`[subprocess-worker:${o.id}] received prompt of ${o.prompt.length} chars in cwd ${o.cwd}`}})}s(c,"run"),c().catch(e=>{r?.postMessage({type:"error",payload:{error:e instanceof Error?e.message:String(e)}})});
@@ -0,0 +1,32 @@
1
+ /**
2
+ * [WHO]: Provides Theme, ThemeColor, ThemeBg, ColorMode — the structural theme contract
3
+ * [FROM]: No dependencies — pure type vocabulary owned by core
4
+ * [TO]: Consumed by core/export-html, core/extensions-host (ToolDefinition render hooks),
5
+ * core/runtime (export bridge); the concrete `class Theme` in modes/interactive/theme
6
+ * implements it. Resolves U2 (core must not import the modes/ UI layer for a type).
7
+ * [HERE]: core/theme-contract.ts - theme type seam (U2); the modes Theme class is its implementation
8
+ *
9
+ * Pure type-only module: lets core reference a theme's rendering surface without depending on
10
+ * the modes/interactive theme subsystem (which imports host config + does fs theme discovery).
11
+ */
12
+ export type ThemeColor = "accent" | "border" | "borderAccent" | "borderMuted" | "success" | "error" | "warning" | "muted" | "dim" | "text" | "thinkingText" | "userMessageText" | "customMessageText" | "customMessageLabel" | "toolTitle" | "toolOutput" | "mdHeading" | "mdLink" | "mdLinkUrl" | "mdCode" | "mdCodeBlock" | "mdCodeBlockBorder" | "mdQuote" | "mdQuoteBorder" | "mdHr" | "mdListBullet" | "toolDiffAdded" | "toolDiffRemoved" | "toolDiffContext" | "syntaxComment" | "syntaxKeyword" | "syntaxFunction" | "syntaxVariable" | "syntaxString" | "syntaxNumber" | "syntaxType" | "syntaxOperator" | "syntaxPunctuation" | "thinkingOff" | "thinkingMinimal" | "thinkingLow" | "thinkingMedium" | "thinkingHigh" | "thinkingXhigh" | "bashMode";
13
+ export type ThemeBg = "selectedBg" | "userMessageBg" | "customMessageBg" | "toolPendingBg" | "toolSuccessBg" | "toolErrorBg";
14
+ export type ColorMode = "truecolor" | "256color";
15
+ export type ThinkingBorderLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
16
+ /** A theme's rendering surface — what core needs to colorize text and render tool output. */
17
+ export interface Theme {
18
+ readonly name?: string;
19
+ readonly sourcePath?: string;
20
+ fg(color: ThemeColor, text: string): string;
21
+ bg(color: ThemeBg, text: string): string;
22
+ bold(text: string): string;
23
+ italic(text: string): string;
24
+ underline(text: string): string;
25
+ inverse(text: string): string;
26
+ strikethrough(text: string): string;
27
+ getFgAnsi(color: ThemeColor): string;
28
+ getBgAnsi(color: ThemeBg): string;
29
+ getColorMode(): ColorMode;
30
+ getThinkingBorderColor(level: ThinkingBorderLevel): (str: string) => string;
31
+ getBashModeBorderColor(): (str: string) => string;
32
+ }
File without changes
@@ -0,0 +1,73 @@
1
+ import type { AgentTool } from "@catui/agent-core";
2
+ import { type Static } from "@sinclair/typebox";
3
+ import { type TruncationResult } from "./truncate.js";
4
+ declare const bashSchema: import("@sinclair/typebox").TObject<{
5
+ command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
+ timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
7
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
+ run_in_background: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
9
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
+ }>;
11
+ export type BashToolInput = Static<typeof bashSchema>;
12
+ export interface BashToolDetails {
13
+ truncation?: TruncationResult;
14
+ fullOutputPath?: string;
15
+ }
16
+ /**
17
+ * Pluggable operations for the bash tool.
18
+ * Override these to delegate command execution to remote systems (e.g., SSH).
19
+ */
20
+ export interface BashOperations {
21
+ /**
22
+ * Execute a command and stream output.
23
+ * @param command - The command to execute
24
+ * @param cwd - Working directory
25
+ * @param options - Execution options
26
+ * @returns Promise resolving to exit code (null if killed)
27
+ */
28
+ exec: (command: string, cwd: string, options: {
29
+ onData: (data: Buffer) => void;
30
+ signal?: AbortSignal;
31
+ timeout?: number;
32
+ env?: NodeJS.ProcessEnv;
33
+ }) => Promise<{
34
+ exitCode: number | null;
35
+ }>;
36
+ }
37
+ export interface BashSpawnContext {
38
+ command: string;
39
+ cwd: string;
40
+ env: NodeJS.ProcessEnv;
41
+ }
42
+ export type BashSpawnHook = (context: BashSpawnContext) => BashSpawnContext;
43
+ export interface BashToolOptions {
44
+ /** Custom operations for command execution. Default: local shell */
45
+ operations?: BashOperations;
46
+ /** Command prefix prepended to every command (e.g., "shopt -s expand_aliases" for alias support) */
47
+ commandPrefix?: string;
48
+ /** Hook to adjust command, cwd, or env before execution */
49
+ spawnHook?: BashSpawnHook;
50
+ }
51
+ export declare function createBashTool(cwd: string, options?: BashToolOptions): AgentTool<typeof bashSchema>;
52
+ /** Default bash tool using process.cwd() - for backwards compatibility */
53
+ export declare const bashTool: AgentTool<import("@sinclair/typebox").TObject<{
54
+ command: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
55
+ timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
56
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
57
+ run_in_background: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
58
+ task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
59
+ }>, any>;
60
+ export interface BashSandboxOptions {
61
+ /** Additional patterns to block (in addition to default blocked patterns) */
62
+ additionalBlockedPatterns?: RegExp[];
63
+ /** Custom error message for blocked commands */
64
+ blockedMessage?: string;
65
+ /** Optional path allowlist hook for simple write commands. Defaults to denying all writes. */
66
+ allowWritePath?: (absolutePath: string) => boolean;
67
+ }
68
+ /**
69
+ * Create a sandboxed bash hook that blocks dangerous write operations.
70
+ * This is a defense-in-depth measure for read-only SubAgents.
71
+ */
72
+ export declare function createSandboxHook(options?: BashSandboxOptions): BashSpawnHook;
73
+ export {};
@@ -0,0 +1,21 @@
1
+ var J=Object.defineProperty;var g=(r,i)=>J(r,"name",{value:i,configurable:!0});import{randomBytes as I}from"node:crypto";import{createWriteStream as N,existsSync as Q}from"node:fs";import{tmpdir as V}from"node:os";import{isAbsolute as Z,join as U,resolve as j}from"node:path";import{Type as x}from"@sinclair/typebox";import{spawn as tt}from"child_process";import{getShellConfig as et,getShellEnv as z,killProcessTree as H}from"../platform/utils/shell.js";import{validatePositiveNumberOption as nt}from"./input-validation.js";import{DEFAULT_MAX_BYTES as P,DEFAULT_MAX_LINES as ot,formatSize as _,truncateTail as A}from"./truncate.js";function R(){const r=I(8).toString("hex");return U(V(),`catui-bash-${r}.log`)}g(R,"getTempFilePath");const X=120,W=new Map,it=x.Object({command:x.Optional(x.String({description:"Bash command to execute"})),timeout:x.Optional(x.Number({exclusiveMinimum:0,description:"Timeout in seconds (default: 120)"})),description:x.Optional(x.String({description:"Clear, concise description of what this command does"})),run_in_background:x.Optional(x.Boolean({description:"Run command in background, return immediately with task ID (default: false)"})),task_id:x.Optional(x.String({description:"Task ID to check status/get output for a background command"}))}),rt={exec:g((r,i,{onData:n,signal:e,timeout:s,env:o})=>new Promise((t,l)=>{const{shell:C,args:L}=et();if(!Q(i)){l(new Error(`Working directory does not exist: ${i}
2
+ Cannot execute bash commands.`));return}const c=tt(C,[...L,r],{cwd:i,detached:!0,env:o??z(),stdio:["ignore","pipe","pipe"]});let y=!1,k;s!==void 0&&s>0&&(k=setTimeout(()=>{y=!0,c.pid&&H(c.pid)},s*1e3)),c.stdout&&c.stdout.on("data",n),c.stderr&&c.stderr.on("data",n),c.on("error",E=>{k&&clearTimeout(k),e&&e.removeEventListener("abort",S),l(E)});const S=g(()=>{c.pid&&H(c.pid)},"onAbort");e&&(e.aborted?S():e.addEventListener("abort",S,{once:!0})),c.on("close",E=>{if(k&&clearTimeout(k),e&&e.removeEventListener("abort",S),e?.aborted){l(new Error("aborted"));return}if(y){l(new Error(`timeout:${s}`));return}t({exitCode:E})})}),"exec")};function q(r,i,n){const e={command:r,cwd:i,env:{...z()}};return n?n(e):e}g(q,"resolveSpawnContext");function st(r,i){const n=i?.operations??rt,e=i?.commandPrefix,s=i?.spawnHook;return{name:"bash",label:"bash",description:`Execute a bash command in the current working directory. Returns stdout and stderr. Output is truncated to last ${ot} lines or ${P/1024}KB (whichever is hit first). If truncated, full output is saved to a temp file. Default timeout: ${X}s. Supports run_in_background for long-running commands.`,parameters:it,execute:g(async(o,{command:t,timeout:l,description:C,run_in_background:L,task_id:c},y,k)=>{if(nt("timeout",l),c){const f=W.get(c);if(!f)throw new Error(`Background task not found: ${c}`);if(f.status==="running")return{content:[{type:"text",text:`Task ${c} is still running.`}],details:void 0};let b="";try{const{readFileSync:m}=await import("node:fs");b=m(f.outputPath,"utf-8")}catch{b="(output unavailable)"}const u=A(b);let d=u.content||"(no output)";f.exitCode!==0&&f.exitCode!==null&&(d+=`
3
+
4
+ Command exited with code ${f.exitCode}`),W.delete(c);const w=u.truncated?{truncation:u}:void 0;if(f.exitCode!==0&&f.exitCode!==null)throw new Error(d);return{content:[{type:"text",text:d}],details:w}}if(!t)throw new Error("command is required (or provide task_id to check a background task)");const S=l??X;if(L){const f=I(4).toString("hex"),b=R(),u={id:f,outputPath:b,status:"running",exitCode:null,startTime:Date.now()};W.set(f,u);const d=e?`${e}
5
+ ${t}`:t,w=q(d,r,s),m=N(b);return n.exec(w.command,w.cwd,{onData:g($=>m.write($),"onData"),timeout:S,env:w.env}).then(({exitCode:$})=>{m.end(),u.status=$===0?"completed":"failed",u.exitCode=$,u.endTime=Date.now()}).catch(()=>{m.end(),u.status="failed",u.exitCode=-1,u.endTime=Date.now()}),{content:[{type:"text",text:`Background task started: ${f}
6
+ Output will be written to: ${b}
7
+ Use task_id="${f}" to check status and retrieve output.`}],details:void 0}}const E=e?`${e}
8
+ ${t}`:t,O=q(E,r,s);return new Promise((f,b)=>{let u,d,w=0;const m=[];let $=0;const K=P*2,Y=g(p=>{if(w+=p.length,w>P&&!u){u=R(),d=N(u);for(const T of m)d.write(T)}for(d&&d.write(p),m.push(p),$+=p.length;$>K&&m.length>1;){const T=m.shift();$-=T.length}if(k){const h=Buffer.concat(m).toString("utf-8"),a=A(h);k({content:[{type:"text",text:a.content||""}],details:{truncation:a.truncated?a:void 0,fullOutputPath:u}})}},"handleData");n.exec(O.command,O.cwd,{onData:Y,signal:y,timeout:S,env:O.env}).then(({exitCode:p})=>{d&&d.end();const h=Buffer.concat(m).toString("utf-8"),a=A(h);let B=a.content||"(no output)",F;if(a.truncated){F={truncation:a,fullOutputPath:u};const M=a.totalLines-a.outputLines+1,D=a.totalLines;if(a.lastLinePartial){const G=_(Buffer.byteLength(h.split(`
9
+ `).pop()||"","utf-8"));B+=`
10
+
11
+ [Showing last ${_(a.outputBytes)} of line ${D} (line is ${G}). Full output: ${u}]`}else a.truncatedBy==="lines"?B+=`
12
+
13
+ [Showing lines ${M}-${D} of ${a.totalLines}. Full output: ${u}]`:B+=`
14
+
15
+ [Showing lines ${M}-${D} of ${a.totalLines} (${_(P)} limit). Full output: ${u}]`}p!==0&&p!==null?(B+=`
16
+
17
+ Command exited with code ${p}`,b(new Error(B))):f({content:[{type:"text",text:B}],details:F})}).catch(p=>{d&&d.end();let h=Buffer.concat(m).toString("utf-8");if(p.message==="aborted")h&&(h+=`
18
+
19
+ `),h+="Command aborted",b(new Error(h));else if(p.message.startsWith("timeout:")){const a=p.message.split(":")[1];h&&(h+=`
20
+
21
+ `),h+=`Command timed out after ${a} seconds`,b(new Error(h))}else b(p)})})},"execute")}}g(st,"createBashTool");const wt=st(process.cwd()),ut=[/^\s*>|\s>|\s>>|\s&\d>/,/\brm\s+/,/\bmv\s+/,/\bcp\s+.*\s+\//,/\bgit\s+(commit|push|pull|add|checkout\s+[^-|]|reset|rebase\s+[^--]|merge)/,/\bmkdir\s+[^-]/,/\bchmod\s+/,/\bchown\s+/,/\bln\s+.*-s/,/\btee\s+/,/\bwget\s+.*-O/,/\bcurl\s+.*-o/];function $t(r){const i=[...ut,...r?.additionalBlockedPatterns??[]],n=r?.blockedMessage??"Write operations are not allowed in sandbox mode";return e=>{const s=e.command.trim(),o=lt(s,e.cwd);if(o===null)return{...e,command:`echo "${n}" >&2; exit 1`};if(o.length>0)return o.every(l=>r?.allowWritePath?.(l)===!0)?e:{...e,command:`echo "${n}" >&2; exit 1`};for(const t of i)if(t.test(s))return{...e,command:`echo "${n}" >&2; exit 1`};return e}}g($t,"createSandboxHook");function lt(r,i){if(/[;&|`$()]/.test(r))return null;const n=at(r);if(n.length===0)return[];const e=[];for(let o=0;o<n.length;o++){const t=n[o];if(t===">"||t===">>"||/^&?\d?>&?\d?$/.test(t)){const C=n[o+1];if(!C)return null;e.push(v(C,i)),o++;continue}const l=/^(?:\d?>|>>)(.+)$/.exec(t);if(l?.[1]){e.push(v(l[1],i));continue}}const s=n[0];if(s==="mkdir"){const o=n.slice(1).filter(t=>!t.startsWith("-"));if(o.length===0)return null;e.push(...o.map(t=>v(t,i)))}else if(s==="cp"||s==="mv"){const o=n.slice(1).filter(t=>!t.startsWith("-"));if(o.length<2)return null;e.push(v(o[o.length-1],i))}else if(s==="rm"){const o=n.slice(1).filter(t=>!t.startsWith("-"));if(o.length===0)return null;e.push(...o.map(t=>v(t,i)))}else if(s==="tee"){const o=n.slice(1).filter(t=>!t.startsWith("-"));if(o.length===0)return null;e.push(...o.map(t=>v(t,i)))}else if(s==="touch"){const o=n.slice(1).filter(t=>!t.startsWith("-"));if(o.length===0)return null;e.push(...o.map(t=>v(t,i)))}return e}g(lt,"extractSimpleWritePaths");function at(r){const i=[];let n="",e,s=!1;for(let o=0;o<r.length;o++){const t=r[o];if(s){n+=t,s=!1;continue}if(t==="\\"){const l=r[o+1];!e&&l&&(/\s/.test(l)||l==='"'||l==="'"||l==="\\")?s=!0:n+=t;continue}if(e){t===e?e=void 0:n+=t;continue}if(t==="'"||t==='"'){e=t;continue}if(/\s/.test(t)){n&&(i.push(n),n="");continue}n+=t}return n&&i.push(n),i}g(at,"tokenizeSimpleShell");function v(r,i){return j(Z(r)?r:U(i,r))}g(v,"resolveSandboxPath");export{wt as bashTool,st as createBashTool,$t as createSandboxHook};
@@ -0,0 +1,58 @@
1
+ export declare function detectLineEnding(content: string): "\r\n" | "\n";
2
+ export declare function normalizeToLF(text: string): string;
3
+ export declare function restoreLineEndings(text: string, ending: "\r\n" | "\n"): string;
4
+ /**
5
+ * Normalize text for fuzzy matching. Applies progressive transformations:
6
+ * - Strip trailing whitespace from each line
7
+ * - Normalize smart quotes to ASCII equivalents
8
+ * - Normalize Unicode dashes/hyphens to ASCII hyphen
9
+ * - Normalize special Unicode spaces to regular space
10
+ */
11
+ export declare function normalizeForFuzzyMatch(text: string): string;
12
+ export interface FuzzyMatchResult {
13
+ /** Whether a match was found */
14
+ found: boolean;
15
+ /** The index where the match starts (in the content that should be used for replacement) */
16
+ index: number;
17
+ /** Length of the matched text */
18
+ matchLength: number;
19
+ /** Whether fuzzy matching was used (false = exact match) */
20
+ usedFuzzyMatch: boolean;
21
+ /**
22
+ * The content to use for replacement operations.
23
+ * When exact match: original content. When fuzzy match: normalized content.
24
+ */
25
+ contentForReplacement: string;
26
+ }
27
+ /**
28
+ * Find oldText in content, trying exact match first, then fuzzy match.
29
+ * When fuzzy matching is used, the returned contentForReplacement is the
30
+ * fuzzy-normalized version of the content (trailing whitespace stripped,
31
+ * Unicode quotes/dashes normalized to ASCII).
32
+ */
33
+ export declare function fuzzyFindText(content: string, oldText: string): FuzzyMatchResult;
34
+ /** Strip UTF-8 BOM if present, return both the BOM (if any) and the text without it */
35
+ export declare function stripBom(content: string): {
36
+ bom: string;
37
+ text: string;
38
+ };
39
+ /**
40
+ * Generate a unified diff string with line numbers and context.
41
+ * Returns both the diff string and the first changed line number (in the new file).
42
+ */
43
+ export declare function generateDiffString(oldContent: string, newContent: string, contextLines?: number): {
44
+ diff: string;
45
+ firstChangedLine: number | undefined;
46
+ };
47
+ export interface EditDiffResult {
48
+ diff: string;
49
+ firstChangedLine: number | undefined;
50
+ }
51
+ export interface EditDiffError {
52
+ error: string;
53
+ }
54
+ /**
55
+ * Compute the diff for an edit operation without applying it.
56
+ * Used for preview rendering in the TUI before the tool executes.
57
+ */
58
+ export declare function computeEditDiff(path: string, oldText: string, newText: string, cwd: string): Promise<EditDiffResult | EditDiffError>;
@@ -0,0 +1,16 @@
1
+ var C=Object.defineProperty;var d=(e,t)=>C(e,"name",{value:t,configurable:!0});import*as E from"diff";import{constants as N}from"fs";import{access as T,readFile as b}from"fs/promises";import{resolveToCwd as O}from"./path-utils.js";function P(e){const t=e.indexOf(`\r
2
+ `),r=e.indexOf(`
3
+ `);return r===-1||t===-1?`
4
+ `:t<r?`\r
5
+ `:`
6
+ `}d(P,"detectLineEnding");function $(e){return e.replace(/\r\n/g,`
7
+ `).replace(/\r/g,`
8
+ `)}d($,"normalizeToLF");function W(e,t){return t===`\r
9
+ `?e.replace(/\n/g,`\r
10
+ `):e}d(W,"restoreLineEndings");function y(e){return e.split(`
11
+ `).map(t=>t.trimEnd()).join(`
12
+ `).replace(/[\u2018\u2019\u201A\u201B]/g,"'").replace(/[\u201C\u201D\u201E\u201F]/g,'"').replace(/[\u2010\u2011\u2012\u2013\u2014\u2015\u2212]/g,"-").replace(/[\u00A0\u2002-\u200A\u202F\u205F\u3000]/g," ")}d(y,"normalizeForFuzzyMatch");function M(e,t){const r=e.indexOf(t);if(r!==-1)return{found:!0,index:r,matchLength:t.length,usedFuzzyMatch:!1,contentForReplacement:e};const u=y(e),o=y(t),s=u.indexOf(o);return s===-1?{found:!1,index:-1,matchLength:0,usedFuzzyMatch:!1,contentForReplacement:e}:{found:!0,index:s,matchLength:o.length,usedFuzzyMatch:!0,contentForReplacement:u}}d(M,"fuzzyFindText");function R(e){return e.startsWith("\uFEFF")?{bom:"\uFEFF",text:e.slice(1)}:{bom:"",text:e}}d(R,"stripBom");function v(e,t,r=4){const u=E.diffLines(e,t),o=[],s=e.split(`
13
+ `),S=t.split(`
14
+ `),z=Math.max(s.length,S.length),m=String(z).length;let a=1,n=1,p=!1,h;for(let l=0;l<u.length;l++){const f=u[l],i=f.value.split(`
15
+ `);if(i[i.length-1]===""&&i.pop(),f.added||f.removed){h===void 0&&(h=n);for(const g of i)if(f.added){const c=String(n).padStart(m," ");o.push(`+${c} ${g}`),n++}else{const c=String(a).padStart(m," ");o.push(`-${c} ${g}`),a++}p=!0}else{const g=l<u.length-1&&(u[l+1].added||u[l+1].removed);if(p||g){let c=i,x=0,F=0;p||(x=Math.max(0,i.length-r),c=i.slice(x)),!g&&c.length>r&&(F=c.length-r,c=c.slice(0,r)),x>0&&(o.push(` ${"".padStart(m," ")} ...`),a+=x,n+=x);for(const w of c){const L=String(a).padStart(m," ");o.push(` ${L} ${w}`),a++,n++}F>0&&(o.push(` ${"".padStart(m," ")} ...`),a+=F,n+=F)}else a+=i.length,n+=i.length;p=!1}}return{diff:o.join(`
16
+ `),firstChangedLine:h}}d(v,"generateDiffString");async function j(e,t,r,u){const o=O(e,u);try{try{await T(o,N.R_OK)}catch{return{error:`File not found: ${e}`}}const s=await b(o,"utf-8"),{text:S}=R(s),z=$(S),m=$(t),a=$(r),n=M(z,m);if(!n.found)return{error:`Could not find the exact text in ${e}. The old text must match exactly including all whitespace and newlines.`};const p=y(z),h=y(m),l=p.split(h).length-1;if(l>1)return{error:`Found ${l} occurrences of the text in ${e}. The text must be unique. Please provide more context to make it unique.`};const f=n.contentForReplacement,i=f.substring(0,n.index)+a+f.substring(n.index+n.matchLength);return f===i?{error:`No changes would be made to ${e}. The replacement produces identical content.`}:v(f,i)}catch(s){return{error:s instanceof Error?s.message:String(s)}}}d(j,"computeEditDiff");export{j as computeEditDiff,P as detectLineEnding,M as fuzzyFindText,v as generateDiffString,y as normalizeForFuzzyMatch,$ as normalizeToLF,W as restoreLineEndings,R as stripBom};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * [WHO]: EditTool, editTool, createEditTool, EditToolInput, EditOperations
3
+ * [FROM]: Depends on agent-core, node:fs, edit-diff.ts, path-utils.ts
4
+ * [TO]: Consumed by core/tools/index.ts
5
+ * [HERE]: core/tools/edit.ts - filesystem mutation via diff application; consumed by orchestrator
6
+ */
7
+ import type { AgentTool } from "@catui/agent-core";
8
+ import { type Static } from "@sinclair/typebox";
9
+ declare const editSchema: import("@sinclair/typebox").TObject<{
10
+ path: import("@sinclair/typebox").TString;
11
+ oldText: import("@sinclair/typebox").TString;
12
+ newText: import("@sinclair/typebox").TString;
13
+ }>;
14
+ export type EditToolInput = Static<typeof editSchema>;
15
+ export interface EditToolDetails {
16
+ /** Unified diff of the changes made */
17
+ diff: string;
18
+ /** Line number of the first change in the new file (for editor navigation) */
19
+ firstChangedLine?: number;
20
+ }
21
+ /**
22
+ * Pluggable operations for the edit tool.
23
+ * Override these to delegate file editing to remote systems (e.g., SSH).
24
+ */
25
+ export interface EditOperations {
26
+ /** Read file contents as a Buffer */
27
+ readFile: (absolutePath: string) => Promise<Buffer>;
28
+ /** Write content to a file */
29
+ writeFile: (absolutePath: string, content: string) => Promise<void>;
30
+ /** Check if file is readable and writable (throw if not) */
31
+ access: (absolutePath: string) => Promise<void>;
32
+ }
33
+ export interface EditToolOptions {
34
+ /** Custom operations for file editing. Default: local filesystem */
35
+ operations?: EditOperations;
36
+ /** Optional guard called with the resolved absolute path before writing. */
37
+ beforeWrite?: (absolutePath: string) => void | Promise<void>;
38
+ }
39
+ export declare function createEditTool(cwd: string, options?: EditToolOptions): AgentTool<typeof editSchema>;
40
+ /** Default edit tool using process.cwd() - for backwards compatibility */
41
+ export declare const editTool: AgentTool<import("@sinclair/typebox").TObject<{
42
+ path: import("@sinclair/typebox").TString;
43
+ oldText: import("@sinclair/typebox").TString;
44
+ newText: import("@sinclair/typebox").TString;
45
+ }>, any>;
46
+ export {};
@@ -0,0 +1 @@
1
+ var A=Object.defineProperty;var a=(t,s)=>A(t,"name",{value:s,configurable:!0});import{Type as u}from"@sinclair/typebox";import{constants as C}from"fs";import{access as I,readFile as K,stat as L,writeFile as k}from"fs/promises";import{fileStateCache as m}from"./file-state-cache.js";import{detectLineEnding as B,fuzzyFindText as D,generateDiffString as G,normalizeForFuzzyMatch as z,normalizeToLF as b,restoreLineEndings as H,stripBom as J}from"./edit-diff.js";import{resolveToCwd as S}from"./path-utils.js";const Q=u.Object({path:u.String({description:"Path to the file to edit (relative or absolute)"}),oldText:u.String({description:"Exact text to find and replace (must match exactly)"}),newText:u.String({description:"New text to replace the old text with"})}),V={readFile:a(t=>K(t),"readFile"),writeFile:a((t,s)=>k(t,s,"utf-8"),"writeFile"),access:a(t=>I(t,C.R_OK|C.W_OK),"access")};function X(t,s){const h=s?.operations??V;return{name:"edit",label:"edit",description:"Edit a file by replacing exact text. The oldText must match exactly (including whitespace). Use this for precise, surgical edits.",parameters:Q,validateInput:a(({path:x})=>{const r=S(x,t);if(!m.has(r))return`Cannot edit ${x}: file has not been read yet. Use the read tool first.`},"validateInput"),execute:a(async(x,{path:r,oldText:g,newText:O},e)=>{const n=S(r,t);return await s?.beforeWrite?.(n),new Promise(($,o)=>{if(e?.aborted){o(new Error("Operation aborted"));return}let c=!1;const i=a(()=>{c=!0,o(new Error("Operation aborted"))},"onAbort");e&&e.addEventListener("abort",i,{once:!0}),(async()=>{try{try{await h.access(n)}catch{e&&e.removeEventListener("abort",i),o(new Error(`File not found: ${r}`));return}const f=m.get(n);if(f){const q=await L(n);if(Math.floor(q.mtimeMs)>f.timestamp){m.delete(n),e&&e.removeEventListener("abort",i),o(new Error(`Cannot edit ${r}: file has been modified since it was last read. Use the read tool to re-read the file before editing.`));return}}if(c)return;const M=(await h.readFile(n)).toString("utf-8");if(c)return;const{bom:P,text:w}=J(M),R=B(w),E=b(w),v=b(g),W=b(O),d=D(E,v);if(!d.found){e&&e.removeEventListener("abort",i),o(new Error(`Could not find the exact text in ${r}. The old text must match exactly including all whitespace and newlines.`));return}const N=z(E),U=z(v),T=N.split(U).length-1;if(T>1){e&&e.removeEventListener("abort",i),o(new Error(`Found ${T} occurrences of the text in ${r}. The text must be unique. Please provide more context to make it unique.`));return}if(c)return;const l=d.contentForReplacement,p=l.substring(0,d.index)+W+l.substring(d.index+d.matchLength);if(l===p){e&&e.removeEventListener("abort",i),o(new Error(`No changes made to ${r}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.`));return}const y=P+H(p,R);await h.writeFile(n,y);const _=await L(n);if(m.set(n,{content:y,timestamp:Math.floor(_.mtimeMs),offset:void 0,limit:void 0}),c)return;e&&e.removeEventListener("abort",i);const F=G(l,p);$({content:[{type:"text",text:`Successfully replaced text in ${r}.`}],details:{diff:F.diff,firstChangedLine:F.firstChangedLine}})}catch(f){e&&e.removeEventListener("abort",i),c||o(f)}})()})},"execute")}}a(X,"createEditTool");const ie=X(process.cwd());export{X as createEditTool,ie as editTool};
@@ -0,0 +1,30 @@
1
+ export interface FileState {
2
+ /** File content at read time */
3
+ content: string;
4
+ /** mtimeMs from fs.stat(), floored to integer */
5
+ timestamp: number;
6
+ /** offset parameter used during read (1-indexed) */
7
+ offset: number | undefined;
8
+ /** limit parameter used during read */
9
+ limit: number | undefined;
10
+ }
11
+ /**
12
+ * LRU file state cache with no external dependencies.
13
+ * Uses Map insertion order (iterators return entries in insertion order)
14
+ * to implement LRU eviction — on every access the entry is deleted and
15
+ * re-inserted so it moves to the "newest" position.
16
+ */
17
+ declare class FileStateCache {
18
+ private cache;
19
+ private totalBytes;
20
+ private normalizeKey;
21
+ get(key: string): FileState | undefined;
22
+ set(key: string, value: FileState): void;
23
+ has(key: string): boolean;
24
+ delete(key: string): boolean;
25
+ clear(): void;
26
+ get size(): number;
27
+ }
28
+ /** Singleton file state cache instance */
29
+ export declare const fileStateCache: FileStateCache;
30
+ export {};
@@ -0,0 +1 @@
1
+ var r=Object.defineProperty;var a=(h,e)=>r(h,"name",{value:e,configurable:!0});import{normalize as l,resolve as y}from"node:path";const f=100,u=25*1024*1024;class d{static{a(this,"FileStateCache")}cache=new Map;totalBytes=0;normalizeKey(e){return l(y(e))}get(e){const s=this.normalizeKey(e),t=this.cache.get(s);if(t)return this.cache.delete(s),this.cache.set(s,t),t}set(e,s){const t=this.normalizeKey(e),n=Buffer.byteLength(s.content),i=this.cache.get(t);for(i&&(this.totalBytes-=Buffer.byteLength(i.content),this.cache.delete(t));this.cache.size>=f||this.totalBytes+n>u;){const c=this.cache.keys().next().value;if(c===void 0)break;const o=this.cache.get(c);this.totalBytes-=Buffer.byteLength(o.content),this.cache.delete(c)}this.cache.set(t,s),this.totalBytes+=n}has(e){return this.cache.has(this.normalizeKey(e))}delete(e){const s=this.normalizeKey(e),t=this.cache.get(s);return t?(this.totalBytes-=Buffer.byteLength(t.content),this.cache.delete(s)):!1}clear(){this.cache.clear(),this.totalBytes=0}get size(){return this.cache.size}}const z=new d;export{z as fileStateCache};
@@ -0,0 +1,46 @@
1
+ /**
2
+ * [WHO]: FindTool, findTool, createFindTool, FindToolInput
3
+ * [FROM]: Depends on agent-core, node:child_process, node:fs, glob
4
+ * [TO]: Consumed by core/tools/index.ts
5
+ * [HERE]: core/tools/find.ts - file pattern matching via glob; consumed by orchestrator
6
+ */
7
+ import type { AgentTool } from "@catui/agent-core";
8
+ import { type Static } from "@sinclair/typebox";
9
+ import { type TruncationResult } from "./truncate.js";
10
+ declare const findSchema: import("@sinclair/typebox").TObject<{
11
+ pattern: import("@sinclair/typebox").TString;
12
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
14
+ sort: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
15
+ }>;
16
+ export type FindToolInput = Static<typeof findSchema>;
17
+ export interface FindToolDetails {
18
+ truncation?: TruncationResult;
19
+ resultLimitReached?: number;
20
+ }
21
+ /**
22
+ * Pluggable operations for the find tool.
23
+ * Override these to delegate file search to remote systems (e.g., SSH).
24
+ */
25
+ export interface FindOperations {
26
+ /** Check if path exists */
27
+ exists: (absolutePath: string) => Promise<boolean> | boolean;
28
+ /** Find files matching glob pattern. Returns relative paths. */
29
+ glob: (pattern: string, cwd: string, options: {
30
+ ignore: string[];
31
+ limit: number;
32
+ }) => Promise<string[]> | string[];
33
+ }
34
+ export interface FindToolOptions {
35
+ /** Custom operations for find. Default: local filesystem + fd */
36
+ operations?: FindOperations;
37
+ }
38
+ export declare function createFindTool(cwd: string, options?: FindToolOptions): AgentTool<typeof findSchema>;
39
+ /** Default find tool using process.cwd() - for backwards compatibility */
40
+ export declare const findTool: AgentTool<import("@sinclair/typebox").TObject<{
41
+ pattern: import("@sinclair/typebox").TString;
42
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
43
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
44
+ sort: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
+ }>, any>;
46
+ export {};
@@ -0,0 +1,8 @@
1
+ var k=Object.defineProperty;var d=(u,l)=>k(u,"name",{value:l,configurable:!0});import{Type as i}from"@sinclair/typebox";import{spawnSync as H}from"child_process";import{existsSync as W}from"fs";import{globSync as K}from"glob";import $ from"path";import{ensureTool as Y}from"../platform/utils/tools-manager.js";import{validateIntegerWindowOption as q}from"./input-validation.js";import{resolveToCwd as J}from"./path-utils.js";import{DEFAULT_MAX_BYTES as T,formatSize as G,truncateHead as C}from"./truncate.js";const Q=i.Object({pattern:i.String({description:"Glob pattern to match files, e.g. '*.ts', '**/*.json', or 'src/**/*.spec.ts'"}),path:i.Optional(i.String({description:"Directory to search in (default: current directory)"})),limit:i.Optional(i.Integer({minimum:1,description:"Maximum number of results (default: 1000)"})),sort:i.Optional(i.String({description:"Sort results by: 'modified' (most recent first)"}))}),j=1e3,V={exists:W,glob:d((u,l,x)=>[],"glob")};function Z(u,l){const x=l?.operations;return{name:"find",label:"find",description:`Search for files by glob pattern. Returns matching file paths relative to the search directory. Respects .gitignore. Output is truncated to ${j} results or ${T/1024}KB (whichever is hit first).`,parameters:Q,isConcurrencySafe:!0,execute:d(async(tt,{pattern:A,path:z,limit:F,sort:B},c)=>(q({name:"limit",value:F,minimum:1}),new Promise((f,o)=>{if(c?.aborted){o(new Error("Operation aborted"));return}const m=d(()=>o(new Error("Operation aborted")),"onAbort");c?.addEventListener("abort",m,{once:!0}),(async()=>{try{const t=J(z||".",u),r=F??j,R=x??V;if(x?.glob){if(!await R.exists(t)){o(new Error(`Path not found: ${t}`));return}const n=await R.glob(A,t,{ignore:["**/node_modules/**","**/.git/**"],limit:r});if(c?.removeEventListener("abort",m),n.length===0){f({content:[{type:"text",text:"No files found matching pattern"}],details:void 0});return}const e=n.map(_=>_.startsWith(t)?_.slice(t.length+1):$.relative(t,_)),O=e.length>=r,s=e.join(`
2
+ `),L=C(s,{maxLines:Number.MAX_SAFE_INTEGER});let P=L.content;const b={},w=[];O&&(w.push(`${r} results limit reached`),b.resultLimitReached=r),L.truncated&&(w.push(`${G(T)} limit reached`),b.truncation=L),w.length>0&&(P+=`
3
+
4
+ [${w.join(". ")}]`),f({content:[{type:"text",text:P}],details:Object.keys(b).length>0?b:void 0});return}const I=await Y("fd",!0);if(!I){o(new Error("fd is not available and could not be downloaded"));return}const p=["--glob","--color=never","--hidden","--max-results",String(r)];B==="modified"&&p.push("--sort","modified");const y=new Set,M=$.join(t,".gitignore");W(M)&&y.add(M);try{const n=K("**/.gitignore",{cwd:t,dot:!0,absolute:!0,ignore:["**/node_modules/**","**/.git/**"]});for(const e of n)y.add(e)}catch{}for(const n of y)p.push("--ignore-file",n);p.push(A,t);const a=H(I,p,{encoding:"utf-8",maxBuffer:10*1024*1024});if(c?.removeEventListener("abort",m),a.error){o(new Error(`Failed to run fd: ${a.error.message}`));return}const E=a.stdout?.trim()||"";if(a.status!==0){const n=a.stderr?.trim()||`fd exited with code ${a.status}`;if(!E){o(new Error(n));return}}if(!E){f({content:[{type:"text",text:"No files found matching pattern"}],details:void 0});return}const D=E.split(`
5
+ `),v=[];for(const n of D){const e=n.replace(/\r$/,"").trim();if(!e)continue;const O=e.endsWith("/")||e.endsWith("\\");let s=e;e.startsWith(t)?s=e.slice(t.length+1):s=$.relative(t,e),O&&!s.endsWith("/")&&(s+="/"),v.push(s)}const U=v.length>=r,X=v.join(`
6
+ `),S=C(X,{maxLines:Number.MAX_SAFE_INTEGER});let N=S.content;const h={},g=[];U&&(g.push(`${r} results limit reached. Use limit=${r*2} for more, or refine pattern`),h.resultLimitReached=r),S.truncated&&(g.push(`${G(T)} limit reached`),h.truncation=S),g.length>0&&(N+=`
7
+
8
+ [${g.join(". ")}]`),f({content:[{type:"text",text:N}],details:Object.keys(h).length>0?h:void 0})}catch(t){c?.removeEventListener("abort",m),o(t)}})()})),"execute")}}d(Z,"createFindTool");const lt=Z(process.cwd());export{Z as createFindTool,lt as findTool};