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,17 @@
1
+ var p=Object.defineProperty;var r=(o,n)=>p(o,"name",{value:n,configurable:!0});function h(){return{read:new Set,written:new Set,edited:new Set}}r(h,"createFileOps");function g(o,n){if(o.role==="assistant"&&!(!("content"in o)||!Array.isArray(o.content)))for(const t of o.content){if(typeof t!="object"||t===null||!("type"in t)||t.type!=="toolCall"||!("arguments"in t)||!("name"in t))continue;const i=t.arguments;if(!i)continue;const e=typeof i.path=="string"?i.path:void 0;if(e)switch(t.name){case"read":n.read.add(e);break;case"write":n.written.add(e);break;case"edit":n.edited.add(e);break}}}r(g,"extractFileOpsFromMessage");function m(o){const n=new Set([...o.edited,...o.written]),t=[...o.read].filter(e=>!n.has(e)).sort(),i=[...n].sort();return{readFiles:t,modifiedFiles:i}}r(m,"computeFileLists");function y(o,n){const t=[];return o.length>0&&t.push(`<read-files>
2
+ ${o.join(`
3
+ `)}
4
+ </read-files>`),n.length>0&&t.push(`<modified-files>
5
+ ${n.join(`
6
+ `)}
7
+ </modified-files>`),t.length===0?"":`
8
+
9
+ ${t.join(`
10
+
11
+ `)}`}r(y,"formatFileOperations");function x(o){const n=[];for(const t of o)if(t.role==="user"){const i=typeof t.content=="string"?t.content:t.content.filter(e=>e.type==="text").map(e=>e.text).join("");i&&n.push(`[User]: ${i}`)}else if(t.role==="assistant"){const i=[],e=[],a=[];for(const s of t.content)if(s.type==="text")i.push(s.text);else if(s.type==="thinking")e.push(s.thinking);else if(s.type==="toolCall"){const c=s.arguments,u=Object.entries(c).map(([f,l])=>`${f}=${JSON.stringify(l)}`).join(", ");a.push(`${s.name}(${u})`)}e.length>0&&n.push(`[Assistant thinking]: ${e.join(`
12
+ `)}`),i.length>0&&n.push(`[Assistant]: ${i.join(`
13
+ `)}`),a.length>0&&n.push(`[Assistant tool calls]: ${a.join("; ")}`)}else if(t.role==="toolResult"){const i=t.content.filter(e=>e.type==="text").map(e=>e.text).join("");i&&n.push(`[Tool result]: ${i}`)}return n.join(`
14
+
15
+ `)}r(x,"serializeConversation");const j=`You are a context summarization assistant. Your task is to read a conversation between a user and an AI coding assistant, then produce a structured summary following the exact format specified.
16
+
17
+ Do NOT continue the conversation. Do NOT respond to any questions in the conversation. ONLY output the structured summary.`;export{j as SUMMARIZATION_SYSTEM_PROMPT,m as computeFileLists,h as createFileOps,g as extractFileOpsFromMessage,y as formatFileOperations,x as serializeConversation};
@@ -0,0 +1,359 @@
1
+ /**
2
+ * [WHO]: SessionManager class, session persistence, branching, forking
3
+ * [FROM]: Depends on agent-core, ai, node:fs, node:crypto, config.ts
4
+ * [TO]: Consumed by index.ts, main.ts, core/runtime/sdk.ts, core/runtime/agent-session.ts, modes/interactive/interactive-mode.ts, modes/acp/acp-mode.ts, cli/session-picker.ts, modes/interactive/components/session-selector.ts, extensions/optional/export-html/index.ts, extensions/builtin/team/index.ts, extensions/builtin/interview/index.ts, and test files
5
+ * [HERE]: core/session/session-manager.ts - session state persistence to JSONL
6
+ */
7
+ import type { AgentMessage } from "@catui/agent-core";
8
+ import type { ImageContent, Message, TextContent } from "@catui/ai/types";
9
+ import { type AgentDirContext } from "../agent-dir/agent-dir-context.js";
10
+ import { type BashExecutionMessage, type CustomMessage } from "../messages.js";
11
+ export declare const CURRENT_SESSION_VERSION = 3;
12
+ export interface SessionHeader {
13
+ type: "session";
14
+ version?: number;
15
+ id: string;
16
+ timestamp: string;
17
+ cwd: string;
18
+ parentSession?: string;
19
+ }
20
+ export interface NewSessionOptions {
21
+ parentSession?: string;
22
+ }
23
+ export interface SessionEntryBase {
24
+ type: string;
25
+ id: string;
26
+ parentId: string | null;
27
+ timestamp: string;
28
+ }
29
+ export interface SessionMessageEntry extends SessionEntryBase {
30
+ type: "message";
31
+ message: AgentMessage;
32
+ }
33
+ export interface ThinkingLevelChangeEntry extends SessionEntryBase {
34
+ type: "thinking_level_change";
35
+ thinkingLevel: string;
36
+ }
37
+ export interface ModelChangeEntry extends SessionEntryBase {
38
+ type: "model_change";
39
+ provider: string;
40
+ modelId: string;
41
+ }
42
+ export interface CompactionEntry<T = unknown> extends SessionEntryBase {
43
+ type: "compaction";
44
+ summary: string;
45
+ firstKeptEntryId: string;
46
+ tokensBefore: number;
47
+ /** Extension-specific data (e.g., ArtifactIndex, version markers for structured compaction) */
48
+ details?: T;
49
+ /** True if generated by an extension, undefined/false if catui-generated (backward compatible) */
50
+ fromHook?: boolean;
51
+ }
52
+ export interface BranchSummaryEntry<T = unknown> extends SessionEntryBase {
53
+ type: "branch_summary";
54
+ fromId: string;
55
+ summary: string;
56
+ /** Extension-specific data (not sent to LLM) */
57
+ details?: T;
58
+ /** True if generated by an extension, false if catui-generated */
59
+ fromHook?: boolean;
60
+ }
61
+ /**
62
+ * Custom entry for extensions to store extension-specific data in the session.
63
+ * Use customType to identify your extension's entries.
64
+ *
65
+ * Purpose: Persist extension state across session reloads. On reload, extensions can
66
+ * scan entries for their customType and reconstruct internal state.
67
+ *
68
+ * Does NOT participate in LLM context (ignored by buildSessionContext).
69
+ * For injecting content into context, see CustomMessageEntry.
70
+ */
71
+ export interface CustomEntry<T = unknown> extends SessionEntryBase {
72
+ type: "custom";
73
+ customType: string;
74
+ data?: T;
75
+ }
76
+ /** Label entry for user-defined bookmarks/markers on entries. */
77
+ export interface LabelEntry extends SessionEntryBase {
78
+ type: "label";
79
+ targetId: string;
80
+ label: string | undefined;
81
+ }
82
+ /** Session metadata entry (e.g., user-defined display name). */
83
+ export interface SessionInfoEntry extends SessionEntryBase {
84
+ type: "session_info";
85
+ name?: string;
86
+ }
87
+ /**
88
+ * Custom message entry for extensions to inject messages into LLM context.
89
+ * Use customType to identify your extension's entries.
90
+ *
91
+ * Unlike CustomEntry, this DOES participate in LLM context.
92
+ * The content is converted to a user message in buildSessionContext().
93
+ * Use details for extension-specific metadata (not sent to LLM).
94
+ *
95
+ * display controls TUI rendering:
96
+ * - false: hidden entirely
97
+ * - true: rendered with distinct styling (different from user messages)
98
+ */
99
+ export interface CustomMessageEntry<T = unknown> extends SessionEntryBase {
100
+ type: "custom_message";
101
+ customType: string;
102
+ content: string | (TextContent | ImageContent)[];
103
+ details?: T;
104
+ display: boolean;
105
+ }
106
+ /** Session entry - has id/parentId for tree structure (returned by "read" methods in SessionManager) */
107
+ export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | LabelEntry | SessionInfoEntry;
108
+ /** Raw file entry (includes header) */
109
+ export type FileEntry = SessionHeader | SessionEntry;
110
+ /** Tree node for getTree() - defensive copy of session structure */
111
+ export interface SessionTreeNode {
112
+ entry: SessionEntry;
113
+ children: SessionTreeNode[];
114
+ /** Resolved label for this entry, if any */
115
+ label?: string;
116
+ }
117
+ export interface SessionContext {
118
+ messages: AgentMessage[];
119
+ thinkingLevel: string;
120
+ model: {
121
+ provider: string;
122
+ modelId: string;
123
+ } | null;
124
+ }
125
+ export interface SessionInfo {
126
+ path: string;
127
+ id: string;
128
+ /** Working directory where the session was started. Empty string for old sessions. */
129
+ cwd: string;
130
+ /** User-defined display name from session_info entries. */
131
+ name?: string;
132
+ /** Path to the parent session (if this session was forked). */
133
+ parentSessionPath?: string;
134
+ created: Date;
135
+ modified: Date;
136
+ messageCount: number;
137
+ firstMessage: string;
138
+ allMessagesText: string;
139
+ }
140
+ export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "getHeader" | "getEntries" | "getTree" | "getSessionName" | "getAgentCtx" | "countTouchedSince">;
141
+ /** Exported for testing */
142
+ export declare function migrateSessionEntries(entries: FileEntry[]): void;
143
+ /** Exported for compaction.test.ts */
144
+ export declare function parseSessionEntries(content: string): FileEntry[];
145
+ export declare function getLatestCompactionEntry(entries: SessionEntry[]): CompactionEntry | null;
146
+ /**
147
+ * Build the session context from entries using tree traversal.
148
+ * If leafId is provided, walks from that entry to root.
149
+ * Handles compaction and branch summaries along the path.
150
+ */
151
+ export declare function buildSessionContext(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionContext;
152
+ /** Exported for testing */
153
+ export declare function loadEntriesFromFile(filePath: string): FileEntry[];
154
+ /** Exported for testing */
155
+ export declare function findMostRecentSession(sessionDir: string): string | null;
156
+ export type SessionListProgress = (loaded: number, total: number) => void;
157
+ /**
158
+ * Manages conversation sessions as append-only trees stored in JSONL files.
159
+ *
160
+ * Each session entry has an id and parentId forming a tree structure. The "leaf"
161
+ * pointer tracks the current position. Appending creates a child of the current leaf.
162
+ * Branching moves the leaf to an earlier entry, allowing new branches without
163
+ * modifying history.
164
+ *
165
+ * Use buildSessionContext() to get the resolved message list for the LLM, which
166
+ * handles compaction summaries and follows the path from root to current leaf.
167
+ */
168
+ export declare class SessionManager {
169
+ private sessionId;
170
+ private sessionFile;
171
+ private sessionDir;
172
+ private cwd;
173
+ private persist;
174
+ private flushed;
175
+ private fileEntries;
176
+ private byId;
177
+ private labelsById;
178
+ private leafId;
179
+ private agentCtx;
180
+ private constructor();
181
+ /** Switch to a different session file (used for resume and branching) */
182
+ setSessionFile(sessionFile: string): void;
183
+ newSession(options?: NewSessionOptions): string | undefined;
184
+ private _buildIndex;
185
+ private _rewriteFile;
186
+ isPersisted(): boolean;
187
+ getCwd(): string;
188
+ getAgentCtx(): AgentDirContext;
189
+ getSessionDir(): string;
190
+ getSessionId(): string;
191
+ getSessionFile(): string | undefined;
192
+ _persist(entry: SessionEntry): void;
193
+ private _appendEntry;
194
+ /** Append a message as child of current leaf, then advance leaf. Returns entry id.
195
+ * Does not allow writing CompactionSummaryMessage and BranchSummaryMessage directly.
196
+ * Reason: we want these to be top-level entries in the session, not message session entries,
197
+ * so it is easier to find them.
198
+ * These need to be appended via appendCompaction() and appendBranchSummary() methods.
199
+ */
200
+ appendMessage(message: Message | CustomMessage | BashExecutionMessage): string;
201
+ /** Append a thinking level change as child of current leaf, then advance leaf. Returns entry id. */
202
+ appendThinkingLevelChange(thinkingLevel: string): string;
203
+ /** Append a model change as child of current leaf, then advance leaf. Returns entry id. */
204
+ appendModelChange(provider: string, modelId: string): string;
205
+ /** Append a compaction summary as child of current leaf, then advance leaf. Returns entry id. */
206
+ appendCompaction<T = unknown>(summary: string, firstKeptEntryId: string, tokensBefore: number, details?: T, fromHook?: boolean): string;
207
+ /** Append a custom entry (for extensions) as child of current leaf, then advance leaf. Returns entry id. */
208
+ appendCustomEntry(customType: string, data?: unknown): string;
209
+ /** Append a session info entry (e.g., display name). Returns entry id. */
210
+ appendSessionInfo(name: string): string;
211
+ /** Get the current session name from the latest session_info entry, if any. */
212
+ getSessionName(): string | undefined;
213
+ /**
214
+ * Append a custom message entry (for extensions) that participates in LLM context.
215
+ * @param customType Extension identifier for filtering on reload
216
+ * @param content Message content (string or TextContent/ImageContent array)
217
+ * @param display Whether to show in TUI (true = styled display, false = hidden)
218
+ * @param details Optional extension-specific metadata (not sent to LLM)
219
+ * @returns Entry id
220
+ */
221
+ appendCustomMessageEntry<T = unknown>(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details?: T): string;
222
+ getLeafId(): string | null;
223
+ getLeafEntry(): SessionEntry | undefined;
224
+ getEntry(id: string): SessionEntry | undefined;
225
+ /**
226
+ * Get all direct children of an entry.
227
+ */
228
+ getChildren(parentId: string): SessionEntry[];
229
+ /**
230
+ * Get the label for an entry, if any.
231
+ */
232
+ getLabel(id: string): string | undefined;
233
+ /**
234
+ * Set or clear a label on an entry.
235
+ * Labels are user-defined markers for bookmarking/navigation.
236
+ * Pass undefined or empty string to clear the label.
237
+ */
238
+ appendLabelChange(targetId: string, label: string | undefined): string;
239
+ /**
240
+ * Walk from entry to root, returning all entries in path order.
241
+ * Includes all entry types (messages, compaction, model changes, etc.).
242
+ * Use buildSessionContext() to get the resolved messages for the LLM.
243
+ */
244
+ getBranch(fromId?: string): SessionEntry[];
245
+ /**
246
+ * Build the session context (what gets sent to the LLM).
247
+ * Uses tree traversal from current leaf.
248
+ */
249
+ buildSessionContext(): SessionContext;
250
+ /**
251
+ * Get session header.
252
+ */
253
+ getHeader(): SessionHeader | null;
254
+ /**
255
+ * Get all session entries (excludes header). Returns a shallow copy.
256
+ * The session is append-only: use appendXXX() to add entries, branch() to
257
+ * change the leaf pointer. Entries cannot be modified or deleted.
258
+ */
259
+ getEntries(): SessionEntry[];
260
+ /**
261
+ * Get the session as a tree structure. Returns a shallow defensive copy of all entries.
262
+ * A well-formed session has exactly one root (first entry with parentId === null).
263
+ * Orphaned entries (broken parent chain) are also returned as roots.
264
+ */
265
+ getTree(): SessionTreeNode[];
266
+ /**
267
+ * Start a new branch from an earlier entry.
268
+ * Moves the leaf pointer to the specified entry. The next appendXXX() call
269
+ * will create a child of that entry, forming a new branch. Existing entries
270
+ * are not modified or deleted.
271
+ */
272
+ branch(branchFromId: string): void;
273
+ /**
274
+ * Reset the leaf pointer to null (before any entries).
275
+ * The next appendXXX() call will create a new root entry (parentId = null).
276
+ * Use this when navigating to re-edit the first user message.
277
+ */
278
+ resetLeaf(): void;
279
+ /**
280
+ * Start a new branch with a summary of the abandoned path.
281
+ * Same as branch(), but also appends a branch_summary entry that captures
282
+ * context from the abandoned conversation path.
283
+ */
284
+ branchWithSummary(branchFromId: string | null, summary: string, details?: unknown, fromHook?: boolean): string;
285
+ /**
286
+ * Create a new session file containing only the path from root to the specified leaf.
287
+ * Useful for extracting a single conversation path from a branched session.
288
+ * Returns the new session file path, or undefined if not persisting.
289
+ */
290
+ createBranchedSession(leafId: string): string | undefined;
291
+ /**
292
+ * Create a new session.
293
+ * @param cwd Working directory (stored in session header)
294
+ * @param sessionDir Optional session directory. If omitted, uses default (~/.catui/agents/<id>/sessions/<encoded-cwd>/).
295
+ * @param ctx Optional agent directory context. If omitted, uses default context.
296
+ */
297
+ static create(cwd: string, sessionDir?: string, ctx?: AgentDirContext): SessionManager;
298
+ /**
299
+ * Open a specific session file.
300
+ * @param path Path to session file
301
+ * @param sessionDir Optional session directory for /new or /branch. If omitted, derives from file's parent.
302
+ * @param ctx Optional agent directory context.
303
+ */
304
+ static open(path: string, sessionDir?: string, ctx?: AgentDirContext): SessionManager;
305
+ /**
306
+ * Continue the most recent session, or create new if none.
307
+ * @param cwd Working directory
308
+ * @param sessionDir Optional session directory. If omitted, uses default (~/.catui/agents/<id>/sessions/<encoded-cwd>/).
309
+ * @param ctx Optional agent directory context.
310
+ */
311
+ static continueRecent(cwd: string, sessionDir?: string, ctx?: AgentDirContext): SessionManager;
312
+ /** Create an in-memory session (no file persistence) */
313
+ static inMemory(cwd?: string, ctx?: AgentDirContext): SessionManager;
314
+ /**
315
+ * Fork a session from another project directory into the current project.
316
+ * Creates a new session in the target cwd with the full history from the source session.
317
+ * @param sourcePath Path to the source session file
318
+ * @param targetCwd Target working directory (where the new session will be stored)
319
+ * @param sessionDir Optional session directory. If omitted, uses default for targetCwd.
320
+ * @param ctx Optional agent directory context.
321
+ */
322
+ static forkFrom(sourcePath: string, targetCwd: string, sessionDir?: string, ctx?: AgentDirContext): SessionManager;
323
+ /**
324
+ * List all sessions for a directory.
325
+ * @param cwd Working directory (used to compute default session directory)
326
+ * @param sessionDir Optional session directory. If omitted, uses default (~/.catui/agents/<id>/sessions/<encoded-cwd>/).
327
+ * @param onProgress Optional callback for progress updates (loaded, total)
328
+ * @param ctx Optional agent directory context.
329
+ */
330
+ static list(cwd: string, sessionDir?: string, onProgress?: SessionListProgress, ctx?: AgentDirContext): Promise<SessionInfo[]>;
331
+ /**
332
+ * List all sessions across all project directories.
333
+ * @param onProgress Optional callback for progress updates (loaded, total)
334
+ * @param ctx Optional agent directory context.
335
+ */
336
+ static listAll(onProgress?: SessionListProgress, ctx?: AgentDirContext): Promise<SessionInfo[]>;
337
+ /**
338
+ * Lightweight scan: count session files with mtime > sinceMs without reading file contents.
339
+ * Designed for gate checks (e.g., auto-dream) where approximate counts are OK.
340
+ * @param ctx Optional agent directory context.
341
+ */
342
+ /**
343
+ * Instance delegate for the static {@link SessionManager.countTouchedSince}, so extensions can
344
+ * count touched sessions via `ctx.sessionManager` without importing the host class (S3 seam).
345
+ * Pure forward — identical arguments and behavior.
346
+ */
347
+ countTouchedSince(cwd: string, sinceMs: number, options?: {
348
+ sessionDir?: string;
349
+ excludeBasename?: string;
350
+ concurrency?: number;
351
+ ctx?: AgentDirContext;
352
+ }): Promise<number>;
353
+ static countTouchedSince(cwd: string, sinceMs: number, options?: {
354
+ sessionDir?: string;
355
+ excludeBasename?: string;
356
+ concurrency?: number;
357
+ ctx?: AgentDirContext;
358
+ }): Promise<number>;
359
+ }
@@ -0,0 +1,14 @@
1
+ var W=Object.defineProperty;var u=(r,e)=>W(r,"name",{value:e,configurable:!0});import{randomUUID as D}from"crypto";import{appendFileSync as x,closeSync as A,existsSync as E,mkdirSync as C,openSync as R,readdirSync as V,readFileSync as H,readSync as K,statSync as U,writeFileSync as P}from"fs";import{readdir as v,readFile as z,stat as M}from"fs/promises";import{basename as q,join as I,resolve as B}from"path";import{defaultAgentDirContext as S}from"../agent-dir/agent-dir-context.js";import{createBranchSummaryMessage as G,createCompactionSummaryMessage as Q,createCustomMessage as X}from"../messages.js";const O=3;function N(r){return typeof r=="object"&&r!==null&&r.type==="session"&&typeof r.id=="string"}u(N,"isSessionHeader");function y(r){for(let e=0;e<100;e++){const t=D().slice(0,8);if(!r.has(t))return t}return D()}u(y,"generateId");function Y(r){const e=new Set;let t=null;for(const s of r){if(s.type==="session"){s.version=2;continue}if(s.id=y(e),s.parentId=t,t=s.id,s.type==="compaction"){const n=s;if(typeof n.firstKeptEntryIndex=="number"){const i=r[n.firstKeptEntryIndex];i&&i.type!=="session"&&(n.firstKeptEntryId=i.id),delete n.firstKeptEntryIndex}}}}u(Y,"migrateV1ToV2");function Z(r){for(const e of r){if(e.type==="session"){e.version=3;continue}if(e.type==="message"){const t=e;t.message&&t.message.role==="hookMessage"&&(t.message.role="custom")}}}u(Z,"migrateV2ToV3");function k(r){const t=r.find(s=>s.type==="session")?.version??1;return t>=O?!1:(t<2&&Y(r),t<3&&Z(r),!0)}u(k,"migrateToCurrentVersion");function me(r){k(r)}u(me,"migrateSessionEntries");function ye(r){const e=[],t=r.trim().split(`
2
+ `);for(const s of t)if(s.trim())try{const n=JSON.parse(s);e.push(n)}catch{}return e}u(ye,"parseSessionEntries");function ge(r){for(let e=r.length-1;e>=0;e--)if(r[e].type==="compaction")return r[e];return null}u(ge,"getLatestCompactionEntry");function ee(r,e,t){if(!t){t=new Map;for(const o of r)t.set(o.id,o)}let s;if(e===null)return{messages:[],thinkingLevel:"off",model:null};if(e&&(s=t.get(e)),s||(s=r[r.length-1]),!s)return{messages:[],thinkingLevel:"off",model:null};const n=[];let i=s;for(;i;)n.unshift(i),i=i.parentId?t.get(i.parentId):void 0;let a="off",c=null,l=null;for(const o of n)o.type==="thinking_level_change"?a=o.thinkingLevel:o.type==="model_change"?c={provider:o.provider,modelId:o.modelId}:o.type==="message"&&o.message.role==="assistant"?c={provider:o.message.provider,modelId:o.message.model}:o.type==="compaction"&&(l=o);const m=[],h=u(o=>{o.type==="message"?m.push(o.message):o.type==="custom_message"?m.push(X(o.customType,o.content,o.display,o.details,o.timestamp)):o.type==="branch_summary"&&o.summary&&m.push(G(o.summary,o.fromId,o.timestamp))},"appendMessage");if(l){m.push(Q(l.summary,l.tokensBefore,l.timestamp));const o=n.findIndex(d=>d.type==="compaction"&&d.id===l.id);let p=!1;for(let d=0;d<o;d++){const f=n[d];f.id===l.firstKeptEntryId&&(p=!0),p&&h(f)}for(let d=o+1;d<n.length;d++){const f=n[d];h(f)}}else for(const o of n)h(o);return{messages:m,thinkingLevel:a,model:c}}u(ee,"buildSessionContext");function T(r,e=S()){const t=`--${r.replace(/^[/\\]/,"").replace(/[/\\:]/g,"-")}--`,s=I(e.path,"sessions",t);return E(s)||C(s,{recursive:!0}),s}u(T,"getDefaultSessionDir");function $(r){if(!E(r))return[];const e=H(r,"utf8"),t=[],s=e.trim().split(`
3
+ `);for(const i of s)if(i.trim())try{const a=JSON.parse(i);t.push(a)}catch{}if(t.length===0)return t;const n=t[0];return N(n)?t:[]}u($,"loadEntriesFromFile");function te(r){try{const e=R(r,"r"),t=Buffer.alloc(512),s=K(e,t,0,512,0);A(e);const n=t.toString("utf8",0,s).split(`
4
+ `)[0];if(!n)return!1;const i=JSON.parse(n);return N(i)}catch{return!1}}u(te,"isValidSessionFile");function se(r){try{return V(r).filter(t=>t.endsWith(".jsonl")).map(t=>I(r,t)).filter(te).map(t=>({path:t,mtime:U(t).mtime})).sort((t,s)=>s.mtime.getTime()-t.mtime.getTime())[0]?.path||null}catch{return null}}u(se,"findMostRecentSession");function L(r){return typeof r.role=="string"&&"content"in r}u(L,"isMessageWithContent");function ne(r){const e=r.content;return typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.text).join(" ")}u(ne,"extractTextContent");function ie(r){let e;for(const t of r){if(t.type!=="message")continue;const s=t.message;if(!L(s)||s.role!=="user"&&s.role!=="assistant")continue;const n=s.timestamp;if(typeof n=="number"){e=Math.max(e??0,n);continue}const i=t.timestamp;if(typeof i=="string"){const a=new Date(i).getTime();Number.isNaN(a)||(e=Math.max(e??0,a))}}return e}u(ie,"getLastActivityTime");function re(r,e,t){const s=ie(r);if(typeof s=="number"&&s>0)return new Date(s);const n=typeof e.timestamp=="string"?new Date(e.timestamp).getTime():NaN;return Number.isNaN(n)?t:new Date(n)}u(re,"getSessionModifiedDate");async function j(r){try{const e=await z(r,"utf8"),t=[],s=e.trim().split(`
5
+ `);for(const d of s)if(d.trim())try{t.push(JSON.parse(d))}catch{}if(t.length===0)return null;const n=t[0];if(!N(n))return null;const i=await M(r);let a=0,c="";const l=[];let m;for(const d of t){if(d.type==="session_info"){const w=d;w.name&&(m=w.name.trim())}if(d.type!=="message")continue;a++;const f=d.message;if(!L(f)||f.role!=="user"&&f.role!=="assistant")continue;const g=ne(f);g&&(l.push(g),!c&&f.role==="user"&&(c=g))}const h=typeof n.cwd=="string"?n.cwd:"",o=n.parentSession,p=re(t,n,i.mtime);return{path:r,id:n.id,cwd:h,name:m,parentSessionPath:o,created:new Date(n.timestamp),modified:p,messageCount:a,firstMessage:c||"(no messages)",allMessagesText:l.join(" ")}}catch{return null}}u(j,"buildSessionInfo");async function oe(r,e,t=0,s){const n=[];if(!E(r))return n;try{const a=(await v(r)).filter(h=>h.endsWith(".jsonl")).map(h=>I(r,h)),c=s??a.length;let l=0;const m=await Promise.all(a.map(async h=>{const o=await j(h);return l++,e?.(t+l,c),o}));for(const h of m)h&&n.push(h)}catch{}return n}u(oe,"listSessionsFromDir");async function ae(r,e,t){const s=new Array(r.length);let n=0;const i=u(async()=>{for(;;){const c=n++;if(c>=r.length)return;s[c]=await t(r[c])}},"worker"),a=Math.max(1,Math.min(e,r.length||1));return await Promise.all(Array.from({length:a},()=>i())),s}u(ae,"runWithConcurrency");class b{static{u(this,"SessionManager")}sessionId="";sessionFile;sessionDir;cwd;persist;flushed=!1;fileEntries=[];byId=new Map;labelsById=new Map;leafId=null;agentCtx;constructor(e,t,s,n,i=S()){this.cwd=e,this.sessionDir=t,this.persist=n,this.agentCtx=i,n&&t&&!E(t)&&C(t,{recursive:!0}),s?this.setSessionFile(s):this.newSession()}setSessionFile(e){if(this.sessionFile=B(e),E(this.sessionFile)){if(this.fileEntries=$(this.sessionFile),this.fileEntries.length===0){const s=this.sessionFile;this.newSession(),this.sessionFile=s,this._rewriteFile(),this.flushed=!0;return}const t=this.fileEntries.find(s=>s.type==="session");this.sessionId=t?.id??D(),k(this.fileEntries)&&this._rewriteFile(),this._buildIndex(),this.flushed=!0}else{const t=this.sessionFile;this.newSession(),this.sessionFile=t}}newSession(e){this.sessionId=D();const t=new Date().toISOString(),s={type:"session",version:O,id:this.sessionId,timestamp:t,cwd:this.cwd,parentSession:e?.parentSession};if(this.fileEntries=[s],this.byId.clear(),this.labelsById.clear(),this.leafId=null,this.flushed=!1,this.persist){const n=t.replace(/[:.]/g,"-");this.sessionFile=I(this.getSessionDir(),`${n}_${this.sessionId}.jsonl`)}return this.sessionFile}_buildIndex(){this.byId.clear(),this.labelsById.clear(),this.leafId=null;for(const e of this.fileEntries)e.type!=="session"&&(this.byId.set(e.id,e),this.leafId=e.id,e.type==="label"&&(e.label?this.labelsById.set(e.targetId,e.label):this.labelsById.delete(e.targetId)))}_rewriteFile(){if(!this.persist||!this.sessionFile)return;const e=`${this.fileEntries.map(t=>JSON.stringify(t)).join(`
6
+ `)}
7
+ `;P(this.sessionFile,e)}isPersisted(){return this.persist}getCwd(){return this.cwd}getAgentCtx(){return this.agentCtx}getSessionDir(){return this.sessionDir}getSessionId(){return this.sessionId}getSessionFile(){return this.sessionFile}_persist(e){if(!(!this.persist||!this.sessionFile))if(this.flushed)x(this.sessionFile,`${JSON.stringify(e)}
8
+ `);else{for(const t of this.fileEntries)x(this.sessionFile,`${JSON.stringify(t)}
9
+ `);this.flushed=!0}}_appendEntry(e){this.fileEntries.push(e),this.byId.set(e.id,e),this.leafId=e.id,this._persist(e)}appendMessage(e){const t={type:"message",id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),message:e};return this._appendEntry(t),t.id}appendThinkingLevelChange(e){const t={type:"thinking_level_change",id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),thinkingLevel:e};return this._appendEntry(t),t.id}appendModelChange(e,t){const s={type:"model_change",id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),provider:e,modelId:t};return this._appendEntry(s),s.id}appendCompaction(e,t,s,n,i){const a={type:"compaction",id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),summary:e,firstKeptEntryId:t,tokensBefore:s,details:n,fromHook:i};return this._appendEntry(a),a.id}appendCustomEntry(e,t){const s={type:"custom",customType:e,data:t,id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString()};return this._appendEntry(s),s.id}appendSessionInfo(e){const t={type:"session_info",id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),name:e.trim()};return this._appendEntry(t),t.id}getSessionName(){const e=this.getEntries();for(let t=e.length-1;t>=0;t--){const s=e[t];if(s.type==="session_info"&&s.name)return s.name}}appendCustomMessageEntry(e,t,s,n){const i={type:"custom_message",customType:e,content:t,display:s,details:n,id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString()};return this._appendEntry(i),i.id}getLeafId(){return this.leafId}getLeafEntry(){return this.leafId?this.byId.get(this.leafId):void 0}getEntry(e){return this.byId.get(e)}getChildren(e){const t=[];for(const s of this.byId.values())s.parentId===e&&t.push(s);return t}getLabel(e){return this.labelsById.get(e)}appendLabelChange(e,t){if(!this.byId.has(e))throw new Error(`Entry ${e} not found`);const s={type:"label",id:y(this.byId),parentId:this.leafId,timestamp:new Date().toISOString(),targetId:e,label:t};return this._appendEntry(s),t?this.labelsById.set(e,t):this.labelsById.delete(e),s.id}getBranch(e){const t=[],s=e??this.leafId;let n=s?this.byId.get(s):void 0;for(;n;)t.unshift(n),n=n.parentId?this.byId.get(n.parentId):void 0;return t}buildSessionContext(){return ee(this.getEntries(),this.leafId,this.byId)}getHeader(){const e=this.fileEntries.find(t=>t.type==="session");return e||null}getEntries(){return this.fileEntries.filter(e=>e.type!=="session")}getTree(){const e=this.getEntries(),t=new Map,s=[];for(const i of e){const a=this.labelsById.get(i.id);t.set(i.id,{entry:i,children:[],label:a})}for(const i of e){const a=t.get(i.id);if(i.parentId===null||i.parentId===i.id)s.push(a);else{const c=t.get(i.parentId);c?c.children.push(a):s.push(a)}}const n=[...s];for(;n.length>0;){const i=n.pop();i.children.sort((a,c)=>new Date(a.entry.timestamp).getTime()-new Date(c.entry.timestamp).getTime()),n.push(...i.children)}return s}branch(e){if(!this.byId.has(e))throw new Error(`Entry ${e} not found`);this.leafId=e}resetLeaf(){this.leafId=null}branchWithSummary(e,t,s,n){if(e!==null&&!this.byId.has(e))throw new Error(`Entry ${e} not found`);this.leafId=e;const i={type:"branch_summary",id:y(this.byId),parentId:e,timestamp:new Date().toISOString(),fromId:e??"root",summary:t,details:s,fromHook:n};return this._appendEntry(i),i.id}createBranchedSession(e){const t=this.sessionFile,s=this.getBranch(e);if(s.length===0)throw new Error(`Entry ${e} not found`);const n=s.filter(f=>f.type!=="label"),i=D(),a=new Date().toISOString(),c=a.replace(/[:.]/g,"-"),l=I(this.getSessionDir(),`${c}_${i}.jsonl`),m={type:"session",version:O,id:i,timestamp:a,cwd:this.cwd,parentSession:this.persist?t:void 0},h=new Set(n.map(f=>f.id)),o=[];for(const[f,g]of this.labelsById)h.has(f)&&o.push({targetId:f,label:g});if(this.persist){x(l,`${JSON.stringify(m)}
10
+ `);for(const F of n)x(l,`${JSON.stringify(F)}
11
+ `);let g=n[n.length-1]?.id||null;const w=[];for(const{targetId:F,label:J}of o){const _={type:"label",id:y(new Set(h)),parentId:g,timestamp:new Date().toISOString(),targetId:F,label:J};x(l,`${JSON.stringify(_)}
12
+ `),h.add(_.id),w.push(_),g=_.id}return this.fileEntries=[m,...n,...w],this.sessionId=i,this.sessionFile=l,this.flushed=!0,this._buildIndex(),l}const p=[];let d=n[n.length-1]?.id||null;for(const{targetId:f,label:g}of o){const w={type:"label",id:y(new Set([...h,...p.map(F=>F.id)])),parentId:d,timestamp:new Date().toISOString(),targetId:f,label:g};p.push(w),d=w.id}this.fileEntries=[m,...n,...p],this.sessionId=i,this._buildIndex()}static create(e,t,s=S()){const n=t??T(e,s);return new b(e,n,void 0,!0,s)}static open(e,t,s=S()){const a=$(e).find(l=>l.type==="session")?.cwd??process.cwd(),c=t??B(e,"..");return new b(a,c,e,!0,s)}static continueRecent(e,t,s=S()){const n=t??T(e,s),i=se(n);return i?new b(e,n,i,!0,s):new b(e,n,void 0,!0,s)}static inMemory(e=process.cwd(),t=S()){return new b(e,"",void 0,!1,t)}static forkFrom(e,t,s,n=S()){const i=$(e);if(i.length===0)throw new Error(`Cannot fork: source session file is empty or invalid: ${e}`);if(!i.find(d=>d.type==="session"))throw new Error(`Cannot fork: source session has no header: ${e}`);const c=s??T(t,n);E(c)||C(c,{recursive:!0});const l=D(),m=new Date().toISOString(),h=m.replace(/[:.]/g,"-"),o=I(c,`${h}_${l}.jsonl`);x(o,`${JSON.stringify({type:"session",version:O,id:l,timestamp:m,cwd:t,parentSession:e})}
13
+ `);for(const d of i)d.type!=="session"&&x(o,`${JSON.stringify(d)}
14
+ `);return new b(t,c,o,!0,n)}static async list(e,t,s,n=S()){const i=t??T(e,n),a=await oe(i,s);return a.sort((c,l)=>l.modified.getTime()-c.modified.getTime()),a}static async listAll(e,t=S()){const s=I(t.path,"sessions");try{if(!E(s))return[];const i=(await v(s,{withFileTypes:!0})).filter(p=>p.isDirectory()).map(p=>I(s,p.name));let a=0;const c=[];for(const p of i)try{const d=(await v(p)).filter(f=>f.endsWith(".jsonl"));c.push(d.map(f=>I(p,f))),a+=d.length}catch{c.push([])}let l=0;const m=[],h=c.flat(),o=await Promise.all(h.map(async p=>{const d=await j(p);return l++,e?.(l,a),d}));for(const p of o)p&&m.push(p);return m.sort((p,d)=>d.modified.getTime()-p.modified.getTime()),m}catch{return[]}}countTouchedSince(e,t,s){return b.countTouchedSince(e,t,s)}static async countTouchedSince(e,t,s){const n=s?.sessionDir??T(e,s?.ctx),i=s?.concurrency??64;try{if(!E(n))return 0;const a=(await v(n)).filter(l=>l.endsWith(".jsonl")).filter(l=>s?.excludeBasename?q(l,".jsonl")!==s.excludeBasename:!0).map(l=>I(n,l));return(await ae(a,i,async l=>{try{return(await M(l)).mtimeMs}catch{return 0}})).filter(l=>l>t).length}catch{return 0}}}export{O as CURRENT_SESSION_VERSION,b as SessionManager,ee as buildSessionContext,se as findMostRecentSession,ge as getLatestCompactionEntry,$ as loadEntriesFromFile,me as migrateSessionEntries,ye as parseSessionEntries};
@@ -0,0 +1,57 @@
1
+ import type { ResourceDiagnostic } from "./platform/config/diagnostics.js";
2
+ export interface SkillFrontmatter {
3
+ name?: string;
4
+ description?: string;
5
+ "disable-model-invocation"?: boolean;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface Skill {
9
+ name: string;
10
+ description: string;
11
+ filePath: string;
12
+ baseDir: string;
13
+ source: string;
14
+ disableModelInvocation: boolean;
15
+ }
16
+ export interface LoadSkillsResult {
17
+ skills: Skill[];
18
+ diagnostics: ResourceDiagnostic[];
19
+ }
20
+ export interface LoadSkillsFromDirOptions {
21
+ /** Directory to scan for skills */
22
+ dir: string;
23
+ /** Source identifier for these skills */
24
+ source: string;
25
+ }
26
+ /**
27
+ * Load skills from a directory.
28
+ *
29
+ * Discovery rules:
30
+ * - direct .md children in the root
31
+ * - recursive SKILL.md under subdirectories
32
+ */
33
+ export declare function loadSkillsFromDir(options: LoadSkillsFromDirOptions): LoadSkillsResult;
34
+ /**
35
+ * Format skills for inclusion in a system prompt.
36
+ * Uses XML format per Agent Skills standard.
37
+ * See: https://agentskills.io/integrate-skills
38
+ *
39
+ * Skills with disableModelInvocation=true are excluded from the prompt
40
+ * (they can only be invoked explicitly via /skill:name commands).
41
+ */
42
+ export declare function formatSkillsForPrompt(skills: Skill[]): string;
43
+ export interface LoadSkillsOptions {
44
+ /** Working directory for project-local skills. Default: process.cwd() */
45
+ cwd?: string;
46
+ /** Agent config directory for global skills. Default: ~/.catui/agent */
47
+ agentDir?: string;
48
+ /** Explicit skill paths (files or directories) */
49
+ skillPaths?: string[];
50
+ /** Include default skills directories. Default: true */
51
+ includeDefaults?: boolean;
52
+ }
53
+ /**
54
+ * Load skills from all configured locations.
55
+ * Returns skills and any validation diagnostics.
56
+ */
57
+ export declare function loadSkills(options?: LoadSkillsOptions): LoadSkillsResult;
@@ -0,0 +1,4 @@
1
+ var j=Object.defineProperty;var a=(t,s)=>j(t,"name",{value:s,configurable:!0});import{existsSync as $,readdirSync as z,readFileSync as b,realpathSync as R,statSync as I}from"fs";import T from"ignore";import{homedir as W}from"os";import{basename as G,dirname as C,isAbsolute as O,join as y,relative as x,resolve as P,sep as F}from"path";import{CONFIG_DIR_NAME as M,getAgentDir as X}from"../config.js";import{parseFrontmatter as q}from"../utils/frontmatter.js";const _=64,A=1024,H=[".gitignore",".ignore",".fdignore"];function N(t){return t.split(F).join("/")}a(N,"toPosixPath");function K(t,s){const e=t.trim();if(!e||e.startsWith("#")&&!e.startsWith("\\#"))return null;let i=t,r=!1;i.startsWith("!")?(r=!0,i=i.slice(1)):i.startsWith("\\!")&&(i=i.slice(1)),i.startsWith("/")&&(i=i.slice(1));const u=s?`${s}${i}`:i;return r?`!${u}`:u}a(K,"prefixIgnorePattern");function U(t,s,e){const i=x(e,s),r=i?`${N(i)}/`:"";for(const u of H){const f=y(s,u);if($(f))try{const c=b(f,"utf-8").split(/\r?\n/).map(h=>K(h,r)).filter(h=>!!h);c.length>0&&t.add(c)}catch(p){console.warn("Warning: Failed to read ignore file:",p instanceof Error?p.message:p)}}}a(U,"addIgnoreRules");function B(t,s){const e=[];return t!==s&&e.push(`name "${t}" does not match parent directory "${s}"`),t.length>_&&e.push(`name exceeds ${_} characters (${t.length})`),/^[a-z0-9-]+$/.test(t)||e.push("name contains invalid characters (must be lowercase a-z, 0-9, hyphens only)"),(t.startsWith("-")||t.endsWith("-"))&&e.push("name must not start or end with a hyphen"),t.includes("--")&&e.push("name must not contain consecutive hyphens"),e}a(B,"validateName");function J(t){const s=[];return!t||t.trim()===""?s.push("description is required"):t.length>A&&s.push(`description exceeds ${A} characters (${t.length})`),s}a(J,"validateDescription");function rt(t){const{dir:s,source:e}=t;return D(s,e,!0)}a(rt,"loadSkillsFromDir");function D(t,s,e,i,r){const u=[],f=[];if(!$(t))return{skills:u,diagnostics:f};const p=r??t,c=i??T();U(c,t,p);try{const h=z(t,{withFileTypes:!0});for(const o of h){if(o.name.startsWith(".")||o.name==="node_modules")continue;const k=y(t,o.name);let S=o.isDirectory(),w=o.isFile();if(o.isSymbolicLink())try{const g=I(k);S=g.isDirectory(),w=g.isFile()}catch{continue}const v=N(x(p,k)),m=S?`${v}/`:v;if(c.ignores(m))continue;if(S){const g=D(k,s,!1,c,p);u.push(...g.skills),f.push(...g.diagnostics);continue}if(!w)continue;const n=e&&o.name.endsWith(".md"),l=!e&&o.name==="SKILL.md";if(!n&&!l)continue;const d=L(k,s);d.skill&&u.push(d.skill),f.push(...d.diagnostics)}}catch(h){console.warn("Warning: Failed to read skills directory:",h instanceof Error?h.message:h)}return{skills:u,diagnostics:f}}a(D,"loadSkillsFromDirInternal");function L(t,s){const e=[];try{const i=b(t,"utf-8"),{frontmatter:r}=q(i),u=C(t),f=G(u),p=J(r.description);for(const o of p)e.push({type:"warning",message:o,path:t});const c=r.name||f,h=B(c,f);for(const o of h)e.push({type:"warning",message:o,path:t});return!r.description||r.description.trim()===""?{skill:null,diagnostics:e}:{skill:{name:c,description:r.description,filePath:t,baseDir:u,source:s,disableModelInvocation:r["disable-model-invocation"]===!0},diagnostics:e}}catch(i){const r=i instanceof Error?i.message:"failed to parse skill file";return e.push({type:"warning",message:r,path:t}),{skill:null,diagnostics:e}}}a(L,"loadSkillFromFile");function ot(t){const s=t.filter(i=>!i.disableModelInvocation);if(s.length===0)return"";const e=[`
2
+
3
+ The following skills provide specialized instructions for specific tasks.`,"Use the read tool to load a skill's file when the task matches its description.","When a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.","","<available_skills>"];for(const i of s)e.push(" <skill>"),e.push(` <name>${E(i.name)}</name>`),e.push(` <description>${E(i.description)}</description>`),e.push(` <location>${E(i.filePath)}</location>`),e.push(" </skill>");return e.push("</available_skills>"),e.join(`
4
+ `)}a(ot,"formatSkillsForPrompt");function E(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}a(E,"escapeXml");function Q(t){const s=t.trim();return s==="~"?W():s.startsWith("~/")?y(W(),s.slice(2)):s.startsWith("~")?y(W(),s.slice(1)):s}a(Q,"normalizePath");function V(t,s){const e=Q(t);return O(e)?e:P(s,e)}a(V,"resolveSkillPath");function lt(t={}){const{cwd:s=process.cwd(),agentDir:e,skillPaths:i=[],includeDefaults:r=!0}=t,u=e??X(),f=new Map,p=new Set,c=[],h=[];function o(m){c.push(...m.diagnostics);for(const n of m.skills){let l;try{l=R(n.filePath)}catch{l=n.filePath}if(p.has(l))continue;const d=f.get(n.name);d?h.push({type:"collision",message:`name "${n.name}" collision`,path:n.filePath,collision:{resourceType:"skill",name:n.name,winnerPath:d.filePath,loserPath:n.filePath}}):(f.set(n.name,n),p.add(l))}}a(o,"addSkills"),r&&(o(D(y(u,"skills"),"user",!0)),o(D(P(s,M,"skills"),"project",!0)));const k=y(u,"skills"),S=P(s,M,"skills"),w=a((m,n)=>{const l=P(n);if(m===l)return!0;const d=l.endsWith(F)?l:`${l}${F}`;return m.startsWith(d)},"isUnderPath"),v=a(m=>{if(!r){if(w(m,k))return"user";if(w(m,S))return"project"}return"path"},"getSource");for(const m of i){const n=V(m,s);if(!$(n)){c.push({type:"warning",message:"skill path does not exist",path:n});continue}try{const l=I(n),d=v(n);if(l.isDirectory())o(D(n,d,!0));else if(l.isFile()&&n.endsWith(".md")){const g=L(n,d);g.skill?o({skills:[g.skill],diagnostics:g.diagnostics}):c.push(...g.diagnostics)}else c.push({type:"warning",message:"skill path is not a markdown file",path:n})}catch(l){const d=l instanceof Error?l.message:"failed to read skill path";c.push({type:"warning",message:d,path:n})}}return{skills:Array.from(f.values()),diagnostics:[...c,...h]}}a(lt,"loadSkills");export{ot as formatSkillsForPrompt,lt as loadSkills,rt as loadSkillsFromDir};
@@ -0,0 +1,36 @@
1
+ /**
2
+ * [WHO]: SlashCommandInfo, BuiltinSlashCommand, slashCommand definitions, category helpers, getLocalizedCommands()
3
+ * [FROM]: No external dependencies
4
+ * [TO]: Consumed by modes/interactive/interactive-mode.ts, modes/acp/acp-mode.ts
5
+ * [HERE]: core/slash-commands.ts - slash command types and registry
6
+ */
7
+ export type SlashCommandSource = "extension" | "prompt" | "skill";
8
+ export type SlashCommandLocation = "user" | "project" | "path";
9
+ export type SlashCommandCategory = "core" | "model" | "memory" | "session" | "workflow" | "agents" | "tools" | "admin";
10
+ export type SlashCommandImplementation = "core" | "extension";
11
+ export interface SlashCommandInfo {
12
+ name: string;
13
+ description?: string;
14
+ source: SlashCommandSource;
15
+ category?: SlashCommandCategory;
16
+ location?: SlashCommandLocation;
17
+ path?: string;
18
+ }
19
+ export interface BuiltinSlashCommand {
20
+ name: string;
21
+ descriptionKey: string;
22
+ category: SlashCommandCategory;
23
+ implementation?: SlashCommandImplementation;
24
+ }
25
+ export declare const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand>;
26
+ export declare function getExtensionBackedBuiltinCommandNames(): Set<string>;
27
+ export declare function inferSlashCommandCategory(name: string, source?: SlashCommandSource): SlashCommandCategory;
28
+ export declare function getSlashCommandCategoryLabel(category: SlashCommandCategory, t: (key: string) => string): string;
29
+ export declare function formatSlashCommandDescription(description: string | undefined, category: SlashCommandCategory | undefined, t: (key: string) => string): string | undefined;
30
+ export interface LocalizedSlashCommand {
31
+ name: string;
32
+ description: string;
33
+ category: SlashCommandCategory;
34
+ categoryLabel: string;
35
+ }
36
+ export declare function getLocalizedCommands(t: (key: string) => string): LocalizedSlashCommand[];
@@ -0,0 +1 @@
1
+ var n=Object.defineProperty;var o=(e,s)=>n(e,"name",{value:s,configurable:!0});const r=[{name:"settings",descriptionKey:"slash.settings",category:"core"},{name:"model",descriptionKey:"slash.model",category:"model"},{name:"thinking",descriptionKey:"slash.thinking",category:"model"},{name:"agent-loop",descriptionKey:"slash.agent-loop",category:"model"},{name:"scoped-models",descriptionKey:"slash.scoped-models",category:"model"},{name:"apikey",descriptionKey:"slash.apikey",category:"model"},{name:"mcp",descriptionKey:"slash.mcp",category:"tools"},{name:"soul",descriptionKey:"slash.soul",category:"memory"},{name:"persona",descriptionKey:"slash.persona",category:"core"},{name:"memory",descriptionKey:"slash.memory",category:"memory"},{name:"dream",descriptionKey:"slash.dream",category:"memory",implementation:"extension"},{name:"browser",descriptionKey:"slash.browser",category:"tools",implementation:"extension"},{name:"export",descriptionKey:"slash.export",category:"tools"},{name:"share",descriptionKey:"slash.share",category:"tools"},{name:"copy",descriptionKey:"slash.copy",category:"core"},{name:"name",descriptionKey:"slash.name",category:"session"},{name:"session",descriptionKey:"slash.session",category:"session"},{name:"status",descriptionKey:"slash.status",category:"core"},{name:"usage",descriptionKey:"slash.usage",category:"core"},{name:"changelog",descriptionKey:"slash.changelog",category:"core"},{name:"hotkeys",descriptionKey:"slash.hotkeys",category:"core"},{name:"resources",descriptionKey:"slash.resources",category:"core"},{name:"fork",descriptionKey:"slash.fork",category:"session"},{name:"tree",descriptionKey:"slash.tree",category:"session"},{name:"login",descriptionKey:"slash.login",category:"model"},{name:"logout",descriptionKey:"slash.logout",category:"model"},{name:"new",descriptionKey:"slash.new",category:"session"},{name:"update",descriptionKey:"slash.update",category:"admin"},{name:"reinstall",descriptionKey:"slash.reinstall",category:"admin"},{name:"compact",descriptionKey:"slash.compact",category:"session"},{name:"resume",descriptionKey:"slash.resume",category:"session"},{name:"reload",descriptionKey:"slash.reload",category:"admin"},{name:"link-world",descriptionKey:"slash.link-world",category:"tools",implementation:"extension"},{name:"language",descriptionKey:"slash.language",category:"core"},{name:"quit",descriptionKey:"slash.quit",category:"core"}];function l(){return new Set(r.filter(e=>e.implementation==="extension").map(e=>e.name))}o(l,"getExtensionBackedBuiltinCommandNames");function y(e,s){return s==="prompt"?"workflow":s==="skill"?"tools":e==="dream"||e==="memory"||e.startsWith("mem-")?"memory":e==="team"||e.startsWith("team:")||e==="subagent"||e.startsWith("subagent:")?"agents":e==="grub"||e==="loop"||e==="plan"||e.startsWith("plan:")||e==="recap"||e==="btw"||e==="simplify"?"workflow":e==="browser"||e==="figma"||e==="link-world"||e==="export"?"tools":e==="debug"||e==="set-locale"||e==="report-issue"||e==="tokensave"||e==="security"||e.startsWith("security-")||e.startsWith("sal:")?"admin":"tools"}o(y,"inferSlashCommandCategory");function a(e,s){return s(`slash.categories.${e}`)}o(a,"getSlashCommandCategoryLabel");function m(e,s,i){if(!e||!s)return e;const t=a(s,i);return t&&!t.startsWith("slash.")?`${t} \xB7 ${e}`:e}o(m,"formatSlashCommandDescription");function p(e){return r.map(s=>({name:s.name,description:e(s.descriptionKey),category:s.category,categoryLabel:a(s.category,e)}))}o(p,"getLocalizedCommands");export{r as BUILTIN_SLASH_COMMANDS,m as formatSlashCommandDescription,l as getExtensionBackedBuiltinCommandNames,p as getLocalizedCommands,a as getSlashCommandCategoryLabel,y as inferSlashCommandCategory};
@@ -0,0 +1,77 @@
1
+ /**
2
+ * [WHO]: isSoulEnabled(), toSoulContext(), createSoulManager()
3
+ * [FROM]: Depends on soul-options-contract, node:path, node:fs, node:url, node:os, node:module
4
+ * [TO]: Consumed by core/runtime/agent-session.ts
5
+ * [HERE]: core/soul-integration.ts - bridges Soul and Catui
6
+ */
7
+ import type { SoulOptionsContract } from "./soul-options-contract.js";
8
+ import { type AgentDirContext } from "./agent-dir/agent-dir-context.js";
9
+ type SoulManagerType = any;
10
+ /**
11
+ * Default Soul configuration for Catui
12
+ * @param ctx Agent directory context.
13
+ */
14
+ export declare function getSoulConfig(ctx?: AgentDirContext): {
15
+ soulDir: string;
16
+ evolution: {
17
+ natural: number;
18
+ reflection: number;
19
+ feedback: number;
20
+ crisis: number;
21
+ };
22
+ personalityLimits: {
23
+ maxDelta: number;
24
+ min: number;
25
+ max: number;
26
+ };
27
+ valueLimits: {
28
+ maxDelta: number;
29
+ min: number;
30
+ max: number;
31
+ };
32
+ speakingStyleLimits: {
33
+ maxDelta: number;
34
+ min: number;
35
+ max: number;
36
+ };
37
+ memoryRetention: {
38
+ successes: number;
39
+ failures: number;
40
+ patterns: number;
41
+ decisions: number;
42
+ };
43
+ };
44
+ /**
45
+ * Create a SoulManager instance for Catui
46
+ * Returns null if nanosoul is not installed
47
+ * @param ctx Agent directory context.
48
+ */
49
+ export declare function createSoulManager(ctx?: AgentDirContext): Promise<SoulManagerType | null>;
50
+ /**
51
+ * Check if Soul is available
52
+ */
53
+ export declare function isSoulAvailable(): boolean;
54
+ /**
55
+ * Convert Catui context to Soul InteractionContext
56
+ */
57
+ export declare function toSoulContext(project: string, tags: string[], complexity: number, toolUsage: Record<string, number>, userFeedback?: {
58
+ rating?: number;
59
+ comment?: string;
60
+ }): any;
61
+ /**
62
+ * Check if Soul should be enabled based on options
63
+ */
64
+ export declare function isSoulEnabled(options: SoulOptionsContract): boolean;
65
+ /**
66
+ * Extract rich context from recent session messages for Soul injection.
67
+ * Scans tool calls for tool usage counts and infers tags from file extensions and tool names.
68
+ */
69
+ export declare function extractSessionContext(messages: Array<{
70
+ role: string;
71
+ content: any;
72
+ }>, cwd: string): {
73
+ tags: string[];
74
+ complexity: number;
75
+ toolUsage: Record<string, number>;
76
+ };
77
+ export {};
@@ -0,0 +1 @@
1
+ var j=Object.defineProperty;var r=(e,o)=>j(e,"name",{value:o,configurable:!0});import{join as a,resolve as C}from"node:path";import{defaultAgentDirContext as S}from"./agent-dir/agent-dir-context.js";import{existsSync as D}from"node:fs";import{fileURLToPath as L,pathToFileURL as k}from"node:url";import{dirname as A}from"node:path";import{createRequire as R}from"node:module";import{homedir as m}from"node:os";const w=A(L(import.meta.url)),p=R(import.meta.url);function U(){return[a(w,"..","packages","soul-core"),a(w,"packages","soul-core"),a(process.cwd(),"packages","soul-core","dist")]}r(U,"getBundledSoulCandidates");function v(){for(const e of U()){const o=a(e,"index.js");if(D(o))return o}}r(v,"resolveBundledSoulEntry");function f(e=S()){const o=process.env.SOUL_DIR;let t=a(e.path,"soul");if(o&&o.trim()){const n=o.trim();n==="~"?t=m():n.startsWith("~/")?t=a(m(),n.slice(2)):n.startsWith("~")?t=a(m(),n.slice(1)):t=C(n)}return{soulDir:t,evolution:{natural:10,reflection:100,feedback:1,crisis:5},personalityLimits:{maxDelta:.05,min:.1,max:.9},valueLimits:{maxDelta:.1,min:.05,max:.5},speakingStyleLimits:{maxDelta:.05,min:.1,max:.9},memoryRetention:{successes:500,failures:500,patterns:200,decisions:1e3}}}r(f,"getSoulConfig");async function I(e=S()){const o=v();if(o)try{const t=k(o).href,{SoulManager:n}=await import(t);return new n({config:f(e)})}catch{}try{const{SoulManager:t}=await import("catui-soul");return new t({config:f(e)})}catch{try{const{SoulManager:t}=await import("@catui/soul");return new t({config:f(e)})}catch{try{const{SoulManager:t}=await import("nanosoul");return new t({config:f(e)})}catch{return null}}}}r(I,"createSoulManager");function N(){if(v())return!0;try{return p.resolve("catui-soul"),!0}catch{try{return p.resolve("@catui/soul"),!0}catch{try{return p.resolve("nanosoul"),!0}catch{return!1}}}}r(N,"isSoulAvailable");function O(e,o,t,n,s){return{project:e,tags:o,complexity:t,toolUsage:n,userFeedback:s?{rating:s.rating||5,comment:s.comment}:void 0,timestamp:new Date}}r(O,"toSoulContext");function Z(e){return e.enableSoul!==!1}r(Z,"isSoulEnabled");function $(e,o){const t={},n=new Set;let s=0,d=0;const M=e.slice(-30);for(const i of M)if(i.role==="user"&&d++,i.role==="assistant"&&Array.isArray(i.content)){for(const l of i.content)if(l.type==="toolCall"){const y=l.toolName||l.name||"unknown";t[y]=(t[y]||0)+1,s++;const u=l.args||l.input;if(u){const h=u.file_path||u.filePath||u.path||u.pattern;if(typeof h=="string"){const x=h.match(/\.([a-zA-Z0-9]+)$/);x&&n.add(x[1].toLowerCase())}}}}const g={ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",py:"python",rs:"rust",go:"golang",java:"java",css:"styling",scss:"styling",html:"web",json:"config",yaml:"config",yml:"config",toml:"config",md:"documentation",sql:"database",prisma:"database",test:"testing",spec:"testing",sh:"scripting",bash:"scripting"},c=new Set;for(const i of n)g[i]&&c.add(g[i]);t.bash&&t.bash>2&&c.add("shell-heavy"),t.edit&&t.edit>3&&c.add("refactor"),t.write&&c.add("feature"),(t.grep||t.find)&&c.add("exploration");const b=Math.min(1,d*.1+s*.03+n.size*.08);return{tags:Array.from(c),complexity:Math.round(b*100)/100,toolUsage:t}}r($,"extractSessionContext");export{I as createSoulManager,$ as extractSessionContext,f as getSoulConfig,N as isSoulAvailable,Z as isSoulEnabled,O as toSoulContext};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * [WHO]: Provides SoulOptionsContract for runtime/session Soul enablement
3
+ * [FROM]: No runtime dependencies; pure option contract
4
+ * [TO]: Consumed by core/runtime/sdk.ts and core/soul-integration.ts
5
+ * [HERE]: core/soul-options-contract.ts - contract seam that keeps Soul integration independent from SDK options
6
+ */
7
+ export interface SoulOptionsContract {
8
+ /** Enable Soul (AI personality evolution). Default: true */
9
+ enableSoul?: boolean;
10
+ }
File without changes