kagent-ts 0.1.3 → 0.1.5

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 (349) hide show
  1. package/LICENSE +68 -21
  2. package/README.md +27 -371
  3. package/dist/compression/progressive-compressor.d.ts +66 -0
  4. package/dist/compression/progressive-compressor.d.ts.map +1 -0
  5. package/dist/compression/progressive-compressor.js +367 -0
  6. package/dist/compression/progressive-compressor.js.map +1 -0
  7. package/dist/compression/types.d.ts +1 -5
  8. package/dist/compression/types.d.ts.map +1 -1
  9. package/dist/context/context-manager.d.ts +34 -15
  10. package/dist/context/context-manager.d.ts.map +1 -1
  11. package/dist/context/context-manager.js +78 -28
  12. package/dist/context/context-manager.js.map +1 -1
  13. package/dist/context/types.d.ts +20 -4
  14. package/dist/context/types.d.ts.map +1 -1
  15. package/dist/core/agent.d.ts +407 -35
  16. package/dist/core/agent.d.ts.map +1 -1
  17. package/dist/core/agent.js +685 -70
  18. package/dist/core/agent.js.map +1 -1
  19. package/dist/core/fusion-agent.d.ts +207 -0
  20. package/dist/core/fusion-agent.d.ts.map +1 -0
  21. package/dist/core/fusion-agent.js +769 -0
  22. package/dist/core/fusion-agent.js.map +1 -0
  23. package/dist/core/hooks.d.ts +19 -7
  24. package/dist/core/hooks.d.ts.map +1 -1
  25. package/dist/core/plan-solve-agent.d.ts +1 -15
  26. package/dist/core/plan-solve-agent.d.ts.map +1 -1
  27. package/dist/core/plan-solve-agent.js +144 -117
  28. package/dist/core/plan-solve-agent.js.map +1 -1
  29. package/dist/core/react-agent.d.ts +0 -13
  30. package/dist/core/react-agent.d.ts.map +1 -1
  31. package/dist/core/react-agent.js +128 -101
  32. package/dist/core/react-agent.js.map +1 -1
  33. package/dist/core/response-schema.d.ts +65 -0
  34. package/dist/core/response-schema.d.ts.map +1 -1
  35. package/dist/core/response-schema.js +174 -1
  36. package/dist/core/response-schema.js.map +1 -1
  37. package/dist/core/system-prompts.d.ts +27 -0
  38. package/dist/core/system-prompts.d.ts.map +1 -0
  39. package/dist/core/system-prompts.js +112 -0
  40. package/dist/core/system-prompts.js.map +1 -0
  41. package/dist/eval/benchmark.d.ts +81 -0
  42. package/dist/eval/benchmark.d.ts.map +1 -0
  43. package/dist/eval/benchmark.js +292 -0
  44. package/dist/eval/benchmark.js.map +1 -0
  45. package/dist/eval/eval-runner.d.ts +79 -0
  46. package/dist/eval/eval-runner.d.ts.map +1 -0
  47. package/dist/eval/eval-runner.js +252 -0
  48. package/dist/eval/eval-runner.js.map +1 -0
  49. package/dist/eval/index.d.ts +7 -0
  50. package/dist/eval/index.d.ts.map +1 -0
  51. package/dist/eval/index.js +13 -0
  52. package/dist/eval/index.js.map +1 -0
  53. package/dist/eval/tool-call-evaluator.d.ts +72 -0
  54. package/dist/eval/tool-call-evaluator.d.ts.map +1 -0
  55. package/dist/eval/tool-call-evaluator.js +265 -0
  56. package/dist/eval/tool-call-evaluator.js.map +1 -0
  57. package/dist/eval/types.d.ts +219 -0
  58. package/dist/eval/types.d.ts.map +1 -0
  59. package/dist/eval/types.js +3 -0
  60. package/dist/eval/types.js.map +1 -0
  61. package/dist/index.d.ts +61 -14
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +121 -8
  64. package/dist/index.js.map +1 -1
  65. package/dist/llm/anthropic-provider.d.ts +141 -0
  66. package/dist/llm/anthropic-provider.d.ts.map +1 -0
  67. package/dist/llm/anthropic-provider.js +486 -0
  68. package/dist/llm/anthropic-provider.js.map +1 -0
  69. package/dist/llm/errors.d.ts +26 -0
  70. package/dist/llm/errors.d.ts.map +1 -0
  71. package/dist/llm/errors.js +19 -0
  72. package/dist/llm/errors.js.map +1 -0
  73. package/dist/llm/factory.d.ts +73 -0
  74. package/dist/llm/factory.d.ts.map +1 -0
  75. package/dist/llm/factory.js +77 -0
  76. package/dist/llm/factory.js.map +1 -0
  77. package/dist/llm/fallback-provider.d.ts +47 -0
  78. package/dist/llm/fallback-provider.d.ts.map +1 -0
  79. package/dist/llm/fallback-provider.js +91 -0
  80. package/dist/llm/fallback-provider.js.map +1 -0
  81. package/dist/llm/interface.d.ts +54 -11
  82. package/dist/llm/interface.d.ts.map +1 -1
  83. package/dist/llm/interface.js +34 -0
  84. package/dist/llm/interface.js.map +1 -1
  85. package/dist/llm/model-router.d.ts +126 -0
  86. package/dist/llm/model-router.d.ts.map +1 -0
  87. package/dist/llm/model-router.js +178 -0
  88. package/dist/llm/model-router.js.map +1 -0
  89. package/dist/llm/openai-provider.d.ts +8 -32
  90. package/dist/llm/openai-provider.d.ts.map +1 -1
  91. package/dist/llm/openai-provider.js +27 -60
  92. package/dist/llm/openai-provider.js.map +1 -1
  93. package/dist/llm/rate-limiter.d.ts +41 -0
  94. package/dist/llm/rate-limiter.d.ts.map +1 -0
  95. package/dist/llm/rate-limiter.js +93 -0
  96. package/dist/llm/rate-limiter.js.map +1 -0
  97. package/dist/llm/retry.d.ts +26 -0
  98. package/dist/llm/retry.d.ts.map +1 -0
  99. package/dist/llm/retry.js +44 -0
  100. package/dist/llm/retry.js.map +1 -0
  101. package/dist/llm/token-budget.d.ts +97 -0
  102. package/dist/llm/token-budget.d.ts.map +1 -0
  103. package/dist/llm/token-budget.js +115 -0
  104. package/dist/llm/token-budget.js.map +1 -0
  105. package/dist/logging/index.d.ts +2 -0
  106. package/dist/logging/index.d.ts.map +1 -0
  107. package/dist/logging/index.js +7 -0
  108. package/dist/logging/index.js.map +1 -0
  109. package/dist/logging/logger.d.ts +38 -0
  110. package/dist/logging/logger.d.ts.map +1 -0
  111. package/dist/logging/logger.js +34 -0
  112. package/dist/logging/logger.js.map +1 -0
  113. package/dist/mcp/index.d.ts +4 -0
  114. package/dist/mcp/index.d.ts.map +1 -0
  115. package/dist/mcp/index.js +8 -0
  116. package/dist/mcp/index.js.map +1 -0
  117. package/dist/mcp/mcp-client-manager.d.ts +72 -0
  118. package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
  119. package/dist/mcp/mcp-client-manager.js +235 -0
  120. package/dist/mcp/mcp-client-manager.js.map +1 -0
  121. package/dist/mcp/mcp-types.d.ts +58 -0
  122. package/dist/mcp/mcp-types.d.ts.map +1 -0
  123. package/dist/mcp/mcp-types.js +20 -0
  124. package/dist/mcp/mcp-types.js.map +1 -0
  125. package/dist/memory/index.d.ts +3 -0
  126. package/dist/memory/index.d.ts.map +1 -0
  127. package/dist/memory/index.js +6 -0
  128. package/dist/memory/index.js.map +1 -0
  129. package/dist/memory/memory-manager.d.ts +119 -0
  130. package/dist/memory/memory-manager.d.ts.map +1 -0
  131. package/dist/memory/memory-manager.js +334 -0
  132. package/dist/memory/memory-manager.js.map +1 -0
  133. package/dist/messages/types.d.ts +2 -0
  134. package/dist/messages/types.d.ts.map +1 -1
  135. package/dist/orchestrator/index.d.ts +5 -0
  136. package/dist/orchestrator/index.d.ts.map +1 -0
  137. package/dist/orchestrator/index.js +13 -0
  138. package/dist/orchestrator/index.js.map +1 -0
  139. package/dist/orchestrator/json-extractor.d.ts +18 -0
  140. package/dist/orchestrator/json-extractor.d.ts.map +1 -0
  141. package/dist/orchestrator/json-extractor.js +111 -0
  142. package/dist/orchestrator/json-extractor.js.map +1 -0
  143. package/dist/orchestrator/orchestrator-agent.d.ts +152 -0
  144. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
  145. package/dist/orchestrator/orchestrator-agent.js +675 -0
  146. package/dist/orchestrator/orchestrator-agent.js.map +1 -0
  147. package/dist/orchestrator/orchestrator-response.d.ts +40 -0
  148. package/dist/orchestrator/orchestrator-response.d.ts.map +1 -0
  149. package/dist/orchestrator/orchestrator-response.js +275 -0
  150. package/dist/orchestrator/orchestrator-response.js.map +1 -0
  151. package/dist/orchestrator/orchestrator-types.d.ts +116 -0
  152. package/dist/orchestrator/orchestrator-types.d.ts.map +1 -0
  153. package/dist/orchestrator/orchestrator-types.js +3 -0
  154. package/dist/orchestrator/orchestrator-types.js.map +1 -0
  155. package/dist/preferences/preference-manager.d.ts +8 -3
  156. package/dist/preferences/preference-manager.d.ts.map +1 -1
  157. package/dist/preferences/preference-manager.js +17 -4
  158. package/dist/preferences/preference-manager.js.map +1 -1
  159. package/dist/rag/chroma-store.d.ts +52 -0
  160. package/dist/rag/chroma-store.d.ts.map +1 -0
  161. package/dist/rag/chroma-store.js +110 -0
  162. package/dist/rag/chroma-store.js.map +1 -0
  163. package/dist/rag/document-loader.d.ts +21 -0
  164. package/dist/rag/document-loader.d.ts.map +1 -0
  165. package/dist/rag/document-loader.js +129 -0
  166. package/dist/rag/document-loader.js.map +1 -0
  167. package/dist/rag/embedding-provider.d.ts +36 -0
  168. package/dist/rag/embedding-provider.d.ts.map +1 -0
  169. package/dist/rag/embedding-provider.js +74 -0
  170. package/dist/rag/embedding-provider.js.map +1 -0
  171. package/dist/rag/index.d.ts +17 -0
  172. package/dist/rag/index.d.ts.map +1 -0
  173. package/dist/rag/index.js +27 -0
  174. package/dist/rag/index.js.map +1 -0
  175. package/dist/rag/keyword-index.d.ts +53 -0
  176. package/dist/rag/keyword-index.d.ts.map +1 -0
  177. package/dist/rag/keyword-index.js +161 -0
  178. package/dist/rag/keyword-index.js.map +1 -0
  179. package/dist/rag/llm-reranker.d.ts +36 -0
  180. package/dist/rag/llm-reranker.d.ts.map +1 -0
  181. package/dist/rag/llm-reranker.js +95 -0
  182. package/dist/rag/llm-reranker.js.map +1 -0
  183. package/dist/rag/rag-manager.d.ts +54 -0
  184. package/dist/rag/rag-manager.d.ts.map +1 -0
  185. package/dist/rag/rag-manager.js +179 -0
  186. package/dist/rag/rag-manager.js.map +1 -0
  187. package/dist/rag/rag-types.d.ts +143 -0
  188. package/dist/rag/rag-types.d.ts.map +1 -0
  189. package/dist/rag/rag-types.js +9 -0
  190. package/dist/rag/rag-types.js.map +1 -0
  191. package/dist/rag/rrf.d.ts +47 -0
  192. package/dist/rag/rrf.d.ts.map +1 -0
  193. package/dist/rag/rrf.js +70 -0
  194. package/dist/rag/rrf.js.map +1 -0
  195. package/dist/rag/search-knowledge.d.ts +24 -0
  196. package/dist/rag/search-knowledge.d.ts.map +1 -0
  197. package/dist/rag/search-knowledge.js +86 -0
  198. package/dist/rag/search-knowledge.js.map +1 -0
  199. package/dist/rag/text-splitter.d.ts +25 -0
  200. package/dist/rag/text-splitter.d.ts.map +1 -0
  201. package/dist/rag/text-splitter.js +136 -0
  202. package/dist/rag/text-splitter.js.map +1 -0
  203. package/dist/rag/vector-store.d.ts +34 -0
  204. package/dist/rag/vector-store.d.ts.map +1 -0
  205. package/dist/rag/vector-store.js +73 -0
  206. package/dist/rag/vector-store.js.map +1 -0
  207. package/dist/reflection/error-notebook.d.ts +125 -0
  208. package/dist/reflection/error-notebook.d.ts.map +1 -0
  209. package/dist/reflection/error-notebook.js +368 -0
  210. package/dist/reflection/error-notebook.js.map +1 -0
  211. package/dist/reflection/index.d.ts +8 -0
  212. package/dist/reflection/index.d.ts.map +1 -0
  213. package/dist/reflection/index.js +12 -0
  214. package/dist/reflection/index.js.map +1 -0
  215. package/dist/reflection/memory-reflector.d.ts +97 -0
  216. package/dist/reflection/memory-reflector.d.ts.map +1 -0
  217. package/dist/reflection/memory-reflector.js +215 -0
  218. package/dist/reflection/memory-reflector.js.map +1 -0
  219. package/dist/reflection/reflection-agent.d.ts +105 -0
  220. package/dist/reflection/reflection-agent.d.ts.map +1 -0
  221. package/dist/reflection/reflection-agent.js +234 -0
  222. package/dist/reflection/reflection-agent.js.map +1 -0
  223. package/dist/reflection/reflection-hook.d.ts +50 -0
  224. package/dist/reflection/reflection-hook.d.ts.map +1 -0
  225. package/dist/reflection/reflection-hook.js +108 -0
  226. package/dist/reflection/reflection-hook.js.map +1 -0
  227. package/dist/rules/project-rules.d.ts +47 -0
  228. package/dist/rules/project-rules.d.ts.map +1 -0
  229. package/dist/rules/project-rules.js +166 -0
  230. package/dist/rules/project-rules.js.map +1 -0
  231. package/dist/security/boundaries.d.ts +81 -0
  232. package/dist/security/boundaries.d.ts.map +1 -0
  233. package/dist/security/boundaries.js +158 -0
  234. package/dist/security/boundaries.js.map +1 -0
  235. package/dist/security/index.d.ts +2 -0
  236. package/dist/security/index.d.ts.map +1 -0
  237. package/dist/security/index.js +11 -0
  238. package/dist/security/index.js.map +1 -0
  239. package/dist/session/session-types.d.ts +25 -4
  240. package/dist/session/session-types.d.ts.map +1 -1
  241. package/dist/skills/file-skill-loader.d.ts +9 -20
  242. package/dist/skills/file-skill-loader.d.ts.map +1 -1
  243. package/dist/skills/file-skill-loader.js +35 -164
  244. package/dist/skills/file-skill-loader.js.map +1 -1
  245. package/dist/skills/index.d.ts +1 -1
  246. package/dist/skills/index.d.ts.map +1 -1
  247. package/dist/skills/index.js +1 -2
  248. package/dist/skills/index.js.map +1 -1
  249. package/dist/skills/skill-manager.d.ts +22 -29
  250. package/dist/skills/skill-manager.d.ts.map +1 -1
  251. package/dist/skills/skill-manager.js +63 -85
  252. package/dist/skills/skill-manager.js.map +1 -1
  253. package/dist/skills/types.d.ts +4 -16
  254. package/dist/skills/types.d.ts.map +1 -1
  255. package/dist/subagent/index.d.ts +4 -0
  256. package/dist/subagent/index.d.ts.map +1 -0
  257. package/dist/subagent/index.js +8 -0
  258. package/dist/subagent/index.js.map +1 -0
  259. package/dist/subagent/subagent-loader.d.ts +53 -0
  260. package/dist/subagent/subagent-loader.d.ts.map +1 -0
  261. package/dist/subagent/subagent-loader.js +155 -0
  262. package/dist/subagent/subagent-loader.js.map +1 -0
  263. package/dist/subagent/subagent-manager.d.ts +161 -0
  264. package/dist/subagent/subagent-manager.d.ts.map +1 -0
  265. package/dist/subagent/subagent-manager.js +468 -0
  266. package/dist/subagent/subagent-manager.js.map +1 -0
  267. package/dist/subagent/subagent-types.d.ts +77 -0
  268. package/dist/subagent/subagent-types.d.ts.map +1 -0
  269. package/dist/subagent/subagent-types.js +3 -0
  270. package/dist/subagent/subagent-types.js.map +1 -0
  271. package/dist/tools/builtin/bash.d.ts +3 -0
  272. package/dist/tools/builtin/bash.d.ts.map +1 -0
  273. package/dist/tools/builtin/bash.js +87 -0
  274. package/dist/tools/builtin/bash.js.map +1 -0
  275. package/dist/tools/builtin/edit-file.d.ts.map +1 -1
  276. package/dist/tools/builtin/edit-file.js +1 -0
  277. package/dist/tools/builtin/edit-file.js.map +1 -1
  278. package/dist/tools/builtin/index.d.ts +14 -0
  279. package/dist/tools/builtin/index.d.ts.map +1 -1
  280. package/dist/tools/builtin/index.js +45 -1
  281. package/dist/tools/builtin/index.js.map +1 -1
  282. package/dist/tools/builtin/list-errors.d.ts +7 -0
  283. package/dist/tools/builtin/list-errors.d.ts.map +1 -0
  284. package/dist/tools/builtin/list-errors.js +64 -0
  285. package/dist/tools/builtin/list-errors.js.map +1 -0
  286. package/dist/tools/builtin/list-subagents.d.ts +7 -0
  287. package/dist/tools/builtin/list-subagents.d.ts.map +1 -0
  288. package/dist/tools/builtin/list-subagents.js +21 -0
  289. package/dist/tools/builtin/list-subagents.js.map +1 -0
  290. package/dist/tools/builtin/recall.d.ts +11 -0
  291. package/dist/tools/builtin/recall.d.ts.map +1 -0
  292. package/dist/tools/builtin/recall.js +60 -0
  293. package/dist/tools/builtin/recall.js.map +1 -0
  294. package/dist/tools/builtin/remember.d.ts +12 -0
  295. package/dist/tools/builtin/remember.d.ts.map +1 -0
  296. package/dist/tools/builtin/remember.js +72 -0
  297. package/dist/tools/builtin/remember.js.map +1 -0
  298. package/dist/tools/builtin/skill.d.ts +14 -0
  299. package/dist/tools/builtin/skill.d.ts.map +1 -0
  300. package/dist/tools/builtin/skill.js +71 -0
  301. package/dist/tools/builtin/skill.js.map +1 -0
  302. package/dist/tools/builtin/spawn-subagent.d.ts +7 -0
  303. package/dist/tools/builtin/spawn-subagent.d.ts.map +1 -0
  304. package/dist/tools/builtin/spawn-subagent.js +43 -0
  305. package/dist/tools/builtin/spawn-subagent.js.map +1 -0
  306. package/dist/tools/builtin/web-fetch.d.ts +3 -0
  307. package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
  308. package/dist/tools/builtin/web-fetch.js +101 -0
  309. package/dist/tools/builtin/web-fetch.js.map +1 -0
  310. package/dist/tools/builtin/write-file.d.ts.map +1 -1
  311. package/dist/tools/builtin/write-file.js +1 -0
  312. package/dist/tools/builtin/write-file.js.map +1 -1
  313. package/dist/tools/circuit-breaker.d.ts +19 -10
  314. package/dist/tools/circuit-breaker.d.ts.map +1 -1
  315. package/dist/tools/circuit-breaker.js +22 -11
  316. package/dist/tools/circuit-breaker.js.map +1 -1
  317. package/dist/tools/error-tracker.d.ts +28 -44
  318. package/dist/tools/error-tracker.d.ts.map +1 -1
  319. package/dist/tools/error-tracker.js +39 -156
  320. package/dist/tools/error-tracker.js.map +1 -1
  321. package/dist/tools/tool-filter.d.ts +70 -0
  322. package/dist/tools/tool-filter.d.ts.map +1 -0
  323. package/dist/tools/tool-filter.js +92 -0
  324. package/dist/tools/tool-filter.js.map +1 -0
  325. package/dist/tools/tool-output-truncator.d.ts +36 -0
  326. package/dist/tools/tool-output-truncator.d.ts.map +1 -0
  327. package/dist/tools/tool-output-truncator.js +117 -0
  328. package/dist/tools/tool-output-truncator.js.map +1 -0
  329. package/dist/tools/tool-registry.d.ts +25 -9
  330. package/dist/tools/tool-registry.d.ts.map +1 -1
  331. package/dist/tools/tool-registry.js +77 -28
  332. package/dist/tools/tool-registry.js.map +1 -1
  333. package/dist/tools/tool-validator.d.ts +13 -0
  334. package/dist/tools/tool-validator.d.ts.map +1 -0
  335. package/dist/tools/tool-validator.js +116 -0
  336. package/dist/tools/tool-validator.js.map +1 -0
  337. package/dist/tools/types.d.ts +86 -3
  338. package/dist/tools/types.d.ts.map +1 -1
  339. package/dist/tools/types.js +51 -2
  340. package/dist/tools/types.js.map +1 -1
  341. package/dist/trace/trace-logger.d.ts +30 -4
  342. package/dist/trace/trace-logger.d.ts.map +1 -1
  343. package/dist/trace/trace-logger.js +83 -7
  344. package/dist/trace/trace-logger.js.map +1 -1
  345. package/package.json +14 -4
  346. package/dist/compression/sliding-window.d.ts +0 -21
  347. package/dist/compression/sliding-window.d.ts.map +0 -1
  348. package/dist/compression/sliding-window.js +0 -44
  349. package/dist/compression/sliding-window.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,gCAAgC,EAChC,WAAW,GACZ,MAAM,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapAndScan = exports.buildUserContentInjectionWarning = exports.wrapUserAuthored = exports.buildInjectionWarning = exports.detectInjectionSignatures = exports.wrapUntrusted = void 0;
4
+ var boundaries_1 = require("./boundaries");
5
+ Object.defineProperty(exports, "wrapUntrusted", { enumerable: true, get: function () { return boundaries_1.wrapUntrusted; } });
6
+ Object.defineProperty(exports, "detectInjectionSignatures", { enumerable: true, get: function () { return boundaries_1.detectInjectionSignatures; } });
7
+ Object.defineProperty(exports, "buildInjectionWarning", { enumerable: true, get: function () { return boundaries_1.buildInjectionWarning; } });
8
+ Object.defineProperty(exports, "wrapUserAuthored", { enumerable: true, get: function () { return boundaries_1.wrapUserAuthored; } });
9
+ Object.defineProperty(exports, "buildUserContentInjectionWarning", { enumerable: true, get: function () { return boundaries_1.buildUserContentInjectionWarning; } });
10
+ Object.defineProperty(exports, "wrapAndScan", { enumerable: true, get: function () { return boundaries_1.wrapAndScan; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":";;;AAAA,2CAOsB;AANpB,2GAAA,aAAa,OAAA;AACb,uHAAA,yBAAyB,OAAA;AACzB,mHAAA,qBAAqB,OAAA;AACrB,8GAAA,gBAAgB,OAAA;AAChB,8HAAA,gCAAgC,OAAA;AAChC,yGAAA,WAAW,OAAA"}
@@ -1,15 +1,17 @@
1
1
  import { MessageData } from "../messages/types";
2
+ import type { OrchestratorSessionState } from "../orchestrator/orchestrator-types";
2
3
  /**
3
4
  * Which agent paradigm the session belongs to.
4
5
  */
5
- export type AgentType = "react" | "plan-solve";
6
+ export type AgentType = "react" | "plan-solve" | "fusion" | "orchestrator";
6
7
  /**
7
8
  * Lifecycle status of a persisted session.
8
- * - "active": Session is in progress, checkpoint was saved mid-run.
9
+ * - "active": Session is in progress, checkpoint was saved mid-run.
9
10
  * - "interrupted": Session was interrupted by a network error, ready for resume.
10
- * - "completed": Session finished normally.
11
+ * - "completed": Session finished normally.
12
+ * - "cancelled": User cancelled (Ctrl+C); session preserved for later resume.
11
13
  */
12
- export type SessionStatus = "active" | "interrupted" | "completed";
14
+ export type SessionStatus = "active" | "interrupted" | "completed" | "cancelled";
13
15
  /**
14
16
  * Serializable plan state for PlanSolveAgent sessions.
15
17
  */
@@ -19,6 +21,21 @@ export interface PlanSolveSessionState {
19
21
  completedSteps: number;
20
22
  consecutiveFailures: number;
21
23
  }
24
+ /**
25
+ * Serializable fusion state for FusionAgent sessions.
26
+ */
27
+ export interface FusionSessionState {
28
+ /** Task complexity determined during routing. */
29
+ complexity: "simple" | "complex";
30
+ /** Whether routing has been completed. */
31
+ routed: boolean;
32
+ currentPlan: string[];
33
+ hasPlan: boolean;
34
+ completedSteps: number;
35
+ consecutiveFailures: number;
36
+ reflectionEnabled: boolean;
37
+ inlineReflectionsDone: number;
38
+ }
22
39
  /**
23
40
  * Full session state snapshot.
24
41
  *
@@ -39,6 +56,10 @@ export interface SessionState {
39
56
  messages: MessageData[];
40
57
  /** Plan-Solve specific state (only present for plan-solve agents). */
41
58
  planState?: PlanSolveSessionState;
59
+ /** Fusion specific state (only present for fusion agents). */
60
+ fusionState?: FusionSessionState;
61
+ /** Orchestrator specific state (only present for orchestrator agents). */
62
+ orchestratorState?: OrchestratorSessionState;
42
63
  /** ISO-8601 timestamp of session creation (stable across saves). */
43
64
  createdAt: string;
44
65
  /** ISO-8601 timestamp of last checkpoint save. */
@@ -1 +1 @@
1
- {"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/session/session-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,CAAC;IAErB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,sEAAsE;IACtE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAElC,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC;IAEtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/session/session-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,EAAE,SAAS,CAAC;IAErB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,sEAAsE;IACtE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAElC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC;IAEtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -1,5 +1,5 @@
1
1
  import { Skill } from "./types";
2
- import { Tool } from "../tools/types";
2
+ import { Logger } from "../logging/logger";
3
3
  /**
4
4
  * Parse YAML-like frontmatter from a Markdown file.
5
5
  *
@@ -19,11 +19,6 @@ export declare function parseFrontmatter(raw: string): {
19
19
  frontmatter: Record<string, string>;
20
20
  body: string;
21
21
  };
22
- /**
23
- * Parse a comma-separated keywords string into an array.
24
- * Returns `undefined` when the input is empty or absent.
25
- */
26
- export declare function parseKeywords(raw?: string): string[] | undefined;
27
22
  /**
28
23
  * Loads skill definitions from a directory on disk.
29
24
  *
@@ -32,37 +27,39 @@ export declare function parseKeywords(raw?: string): string[] | undefined;
32
27
  * skills/
33
28
  * ├── <skill-name>/
34
29
  * │ ├── SKILL.md # Frontmatter (metadata) + body (system prompt)
35
- * │ ├── reference/ # Optional reference docs (*.md, *.txt)
36
- * │ └── scripts/ # Optional executable scripts
30
+ * │ └── reference/ # Optional reference docs (*.md, *.txt)
37
31
  * ├── <another-skill>/
38
32
  * │ └── ...
39
33
  * ```
40
34
  *
41
35
  * Loading is two-phase:
42
36
  * 1. `scan()` — reads only frontmatter, returns metadata-only `Skill[]`
43
- * 2. `loadSystemPrompt()` / `loadScriptsAsTools()` full content, called
37
+ * 2. `loadSystemPrompt()` full content (body + reference docs), called
44
38
  * lazily on activation.
45
39
  */
46
40
  export declare class FileSkillLoader {
47
41
  private directory;
42
+ private logger;
48
43
  /**
49
44
  * @param directory Path to the skills root directory (default: `./skills`).
45
+ * @param logger Logger instance (defaults to ConsoleLogger).
50
46
  */
51
- constructor(directory?: string);
47
+ constructor(directory?: string, logger?: Logger);
52
48
  /**
53
49
  * Get the root directory path.
54
50
  */
55
51
  getDirectory(): string;
56
52
  /**
57
53
  * Get the absolute path to a named skill's subdirectory.
54
+ * Throws if the skill name contains path traversal characters.
58
55
  */
59
56
  getSkillDir(name: string): string;
60
57
  /**
61
58
  * Scan the skills directory and return metadata-only Skill objects.
62
59
  *
63
60
  * Reads only the frontmatter from each SKILL.md — the body (systemPrompt)
64
- * and scripts are NOT loaded at this stage. They are loaded lazily when
65
- * the skill is activated.
61
+ * is NOT loaded at this stage. It is loaded lazily when the skill is
62
+ * activated.
66
63
  *
67
64
  * Subdirectories without a valid SKILL.md (or without a `name` in
68
65
  * frontmatter) are skipped with a warning.
@@ -76,13 +73,5 @@ export declare class FileSkillLoader {
76
73
  * Throws if the skill directory does not exist.
77
74
  */
78
75
  loadSystemPrompt(name: string): string;
79
- /**
80
- * Create Tool objects from scripts in the scripts/ subdirectory.
81
- *
82
- * Each recognized script file becomes a Tool named `{skillName}_{scriptName}`.
83
- *
84
- * Returns an empty array if the scripts/ directory is missing or empty.
85
- */
86
- loadScriptsAsTools(name: string): Tool[];
87
76
  }
88
77
  //# sourceMappingURL=file-skill-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAItC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,CAkBA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAOhE;AAiFD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;gBACS,SAAS,CAAC,EAAE,MAAM;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIjC;;;;;;;;;OASG;IACH,IAAI,IAAI,KAAK,EAAE;IAmDf;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAsCtC;;;;;;OAMG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;CAgFzC"}
1
+ {"version":3,"file":"file-skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAI1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,CAuBA;AAwBD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAK/C;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKjC;;;;;;;;;OASG;IACH,IAAI,IAAI,KAAK,EAAE;IA2Df;;;;;;OAMG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAsCvC"}
@@ -35,10 +35,9 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.FileSkillLoader = void 0;
37
37
  exports.parseFrontmatter = parseFrontmatter;
38
- exports.parseKeywords = parseKeywords;
39
38
  const fs = __importStar(require("fs"));
40
39
  const path = __importStar(require("path"));
41
- const child_process_1 = require("child_process");
40
+ const logger_1 = require("../logging/logger");
42
41
  // ─── Frontmatter Parsing ───────────────────────────────────────────────────
43
42
  /**
44
43
  * Parse YAML-like frontmatter from a Markdown file.
@@ -69,98 +68,31 @@ function parseFrontmatter(raw) {
69
68
  if (colonIdx <= 0)
70
69
  continue;
71
70
  const key = trimmed.slice(0, colonIdx).trim();
72
- const value = trimmed.slice(colonIdx + 1).trim();
71
+ let value = trimmed.slice(colonIdx + 1).trim();
72
+ // Strip surrounding quotes if both ends match
73
+ if ((value.startsWith('"') && value.endsWith('"')) ||
74
+ (value.startsWith("'") && value.endsWith("'"))) {
75
+ value = value.slice(1, -1).trim();
76
+ }
73
77
  if (key)
74
78
  frontmatter[key] = value;
75
79
  }
76
80
  return { frontmatter, body: match[2].trim() };
77
81
  }
78
- /**
79
- * Parse a comma-separated keywords string into an array.
80
- * Returns `undefined` when the input is empty or absent.
81
- */
82
- function parseKeywords(raw) {
83
- if (!raw)
84
- return undefined;
85
- const keywords = raw
86
- .split(",")
87
- .map((k) => k.trim())
88
- .filter(Boolean);
89
- return keywords.length > 0 ? keywords : undefined;
90
- }
91
82
  // ─── Script Execution ──────────────────────────────────────────────────────
92
- const SUPPORTED_SCRIPT_EXTENSIONS = new Set([
93
- ".sh",
94
- ".bat",
95
- ".cmd",
96
- ".ps1",
97
- ".js",
98
- ".py",
99
- ]);
100
83
  const REFERENCE_EXTENSIONS = new Set([".md", ".txt"]);
101
84
  /**
102
- * Determine the interpreter and arguments needed to run a script file.
103
- * Returns `null` if the file extension is not supported.
104
- */
105
- function getInterpreter(filePath) {
106
- const ext = path.extname(filePath).toLowerCase();
107
- switch (ext) {
108
- case ".sh":
109
- return ["bash", filePath];
110
- case ".bat":
111
- case ".cmd":
112
- return ["cmd.exe", "/c", filePath];
113
- case ".ps1":
114
- return ["powershell.exe", "-File", filePath];
115
- case ".js":
116
- return ["node", filePath];
117
- case ".py":
118
- // Try python3 first, fall back to python
119
- try {
120
- (0, child_process_1.execFileSync)("python3", ["--version"], { timeout: 5000, stdio: "ignore" });
121
- return ["python3", filePath];
122
- }
123
- catch {
124
- return ["python", filePath];
125
- }
126
- default:
127
- return null;
128
- }
129
- }
130
- /**
131
- * Extract a description for a script tool from the first comment/line
132
- * of the file, or fall back to a generic description.
85
+ * Validate a skill name to prevent path traversal.
86
+ * Only allows alphanumeric characters, hyphens, underscores, and dots.
133
87
  */
134
- function getScriptDescription(filePath) {
135
- try {
136
- const content = fs.readFileSync(filePath, "utf-8");
137
- const firstLine = content.split("\n")[0]?.trim();
138
- if (firstLine) {
139
- // Strip common comment markers and shebang
140
- const clean = firstLine
141
- .replace(/^#!\s*/, "")
142
- .replace(/^#\s*/, "")
143
- .replace(/^\/\/\s*/, "")
144
- .replace(/^--\s*/, "")
145
- .trim();
146
- if (clean && !clean.startsWith("/"))
147
- return clean;
148
- }
88
+ function validateSkillName(name) {
89
+ if (!name) {
90
+ throw new Error(`Skill name must not be empty.`);
149
91
  }
150
- catch {
151
- // Ignore read errors
92
+ // Prevent path traversal: reject names with slashes, backslashes, "..", or null bytes
93
+ if (/[/\\]|\.\.|\0/.test(name)) {
94
+ throw new Error(`Invalid skill name "${name}": contains path traversal characters.`);
152
95
  }
153
- return `Execute the ${path.basename(filePath)} script`;
154
- }
155
- /**
156
- * Sanitize a string for use as a tool name (alphanumeric + underscores only).
157
- */
158
- function sanitizeToolName(name) {
159
- return name
160
- .toLowerCase()
161
- .replace(/[^a-z0-9_]/g, "_")
162
- .replace(/_+/g, "_")
163
- .replace(/^_|_$/g, "");
164
96
  }
165
97
  // ─── FileSkillLoader ───────────────────────────────────────────────────────
166
98
  /**
@@ -171,24 +103,26 @@ function sanitizeToolName(name) {
171
103
  * skills/
172
104
  * ├── <skill-name>/
173
105
  * │ ├── SKILL.md # Frontmatter (metadata) + body (system prompt)
174
- * │ ├── reference/ # Optional reference docs (*.md, *.txt)
175
- * │ └── scripts/ # Optional executable scripts
106
+ * │ └── reference/ # Optional reference docs (*.md, *.txt)
176
107
  * ├── <another-skill>/
177
108
  * │ └── ...
178
109
  * ```
179
110
  *
180
111
  * Loading is two-phase:
181
112
  * 1. `scan()` — reads only frontmatter, returns metadata-only `Skill[]`
182
- * 2. `loadSystemPrompt()` / `loadScriptsAsTools()` full content, called
113
+ * 2. `loadSystemPrompt()` full content (body + reference docs), called
183
114
  * lazily on activation.
184
115
  */
185
116
  class FileSkillLoader {
186
117
  directory;
118
+ logger;
187
119
  /**
188
120
  * @param directory Path to the skills root directory (default: `./skills`).
121
+ * @param logger Logger instance (defaults to ConsoleLogger).
189
122
  */
190
- constructor(directory) {
123
+ constructor(directory, logger) {
191
124
  this.directory = path.resolve(directory || "./skills");
125
+ this.logger = logger ?? new logger_1.ConsoleLogger();
192
126
  }
193
127
  /**
194
128
  * Get the root directory path.
@@ -198,16 +132,18 @@ class FileSkillLoader {
198
132
  }
199
133
  /**
200
134
  * Get the absolute path to a named skill's subdirectory.
135
+ * Throws if the skill name contains path traversal characters.
201
136
  */
202
137
  getSkillDir(name) {
138
+ validateSkillName(name);
203
139
  return path.join(this.directory, name);
204
140
  }
205
141
  /**
206
142
  * Scan the skills directory and return metadata-only Skill objects.
207
143
  *
208
144
  * Reads only the frontmatter from each SKILL.md — the body (systemPrompt)
209
- * and scripts are NOT loaded at this stage. They are loaded lazily when
210
- * the skill is activated.
145
+ * is NOT loaded at this stage. It is loaded lazily when the skill is
146
+ * activated.
211
147
  *
212
148
  * Subdirectories without a valid SKILL.md (or without a `name` in
213
149
  * frontmatter) are skipped with a warning.
@@ -235,21 +171,27 @@ class FileSkillLoader {
235
171
  raw = fs.readFileSync(skillMdPath, "utf-8");
236
172
  }
237
173
  catch {
238
- console.warn(`[Skills] Skipping "${entry.name}": no SKILL.md found in ${skillPath}`);
174
+ this.logger.warn("Skills", `Skipping "${entry.name}": no SKILL.md found in ${skillPath}`);
239
175
  continue;
240
176
  }
241
177
  const { frontmatter, body } = parseFrontmatter(raw);
242
178
  const name = frontmatter.name?.trim();
243
179
  if (!name) {
244
- console.warn(`[Skills] Skipping "${entry.name}": SKILL.md has no "name" in frontmatter`);
180
+ this.logger.warn("Skills", `Skipping "${entry.name}": SKILL.md has no "name" in frontmatter`);
181
+ continue;
182
+ }
183
+ try {
184
+ validateSkillName(name);
185
+ }
186
+ catch (err) {
187
+ const message = err instanceof Error ? err.message : String(err);
188
+ this.logger.warn("Skills", `Skipping "${entry.name}": ${message}`);
245
189
  continue;
246
190
  }
247
191
  skills.push({
248
192
  name,
249
193
  description: frontmatter.description?.trim() ?? "",
250
194
  systemPrompt: "", // Loaded lazily on activation
251
- keywords: parseKeywords(frontmatter.keywords),
252
- tools: [], // Loaded lazily on activation
253
195
  });
254
196
  }
255
197
  return skills;
@@ -289,77 +231,6 @@ class FileSkillLoader {
289
231
  }
290
232
  return parts.join("").trim();
291
233
  }
292
- /**
293
- * Create Tool objects from scripts in the scripts/ subdirectory.
294
- *
295
- * Each recognized script file becomes a Tool named `{skillName}_{scriptName}`.
296
- *
297
- * Returns an empty array if the scripts/ directory is missing or empty.
298
- */
299
- loadScriptsAsTools(name) {
300
- const scriptsDir = path.join(this.getSkillDir(name), "scripts");
301
- const tools = [];
302
- let entries;
303
- try {
304
- entries = fs.readdirSync(scriptsDir, { withFileTypes: true });
305
- }
306
- catch {
307
- // No scripts/ directory — return empty
308
- return [];
309
- }
310
- for (const entry of entries) {
311
- if (!entry.isFile())
312
- continue;
313
- const ext = path.extname(entry.name).toLowerCase();
314
- if (!SUPPORTED_SCRIPT_EXTENSIONS.has(ext))
315
- continue;
316
- const scriptPath = path.join(scriptsDir, entry.name);
317
- const scriptName = path.basename(entry.name, ext);
318
- const toolName = sanitizeToolName(`${name}_${scriptName}`);
319
- const toolDescription = getScriptDescription(scriptPath);
320
- const tool = {
321
- name: toolName,
322
- description: toolDescription,
323
- parameters: {
324
- type: "object",
325
- properties: {
326
- args: {
327
- type: "string",
328
- description: `Arguments to pass to the ${entry.name} script. ` +
329
- `Use shell-style syntax (space-separated).`,
330
- },
331
- },
332
- required: ["args"],
333
- },
334
- async execute(params) {
335
- const argsStr = String(params.args ?? "");
336
- const interpreter = getInterpreter(scriptPath);
337
- if (!interpreter) {
338
- return `Error: Unsupported script type "${ext}" for ${entry.name}`;
339
- }
340
- const [cmd, ...cmdArgs] = interpreter;
341
- // Append the script argument after the interpreter args
342
- const allArgs = argsStr
343
- ? [...cmdArgs, ...argsStr.split(/\s+/).filter(Boolean)]
344
- : cmdArgs;
345
- return new Promise((resolve) => {
346
- const child = (0, child_process_1.execFile)(cmd, allArgs, { timeout: 30000, maxBuffer: 1024 * 1024 }, (err, stdout, stderr) => {
347
- if (err) {
348
- const details = stderr
349
- ? `\nstderr:\n${stderr.trim()}`
350
- : "";
351
- resolve(`Error executing ${entry.name}: ${err.message}${details}`);
352
- return;
353
- }
354
- resolve(stdout.trim() || "(no output)");
355
- });
356
- });
357
- },
358
- };
359
- tools.push(tool);
360
- }
361
- return tools;
362
- }
363
234
  }
364
235
  exports.FileSkillLoader = FileSkillLoader;
365
236
  //# sourceMappingURL=file-skill-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-skill-loader.js","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-skill-loader.js","sourceRoot":"","sources":["../../src/skills/file-skill-loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { SkillManager } from "./skill-manager";
2
- export { FileSkillLoader, parseFrontmatter, parseKeywords } from "./file-skill-loader";
2
+ export { FileSkillLoader, parseFrontmatter } from "./file-skill-loader";
3
3
  export type { Skill, SkillStatus } from "./types";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvF,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseKeywords = exports.parseFrontmatter = exports.FileSkillLoader = exports.SkillManager = void 0;
3
+ exports.parseFrontmatter = exports.FileSkillLoader = exports.SkillManager = void 0;
4
4
  var skill_manager_1 = require("./skill-manager");
5
5
  Object.defineProperty(exports, "SkillManager", { enumerable: true, get: function () { return skill_manager_1.SkillManager; } });
6
6
  var file_skill_loader_1 = require("./file-skill-loader");
7
7
  Object.defineProperty(exports, "FileSkillLoader", { enumerable: true, get: function () { return file_skill_loader_1.FileSkillLoader; } });
8
8
  Object.defineProperty(exports, "parseFrontmatter", { enumerable: true, get: function () { return file_skill_loader_1.parseFrontmatter; } });
9
- Object.defineProperty(exports, "parseKeywords", { enumerable: true, get: function () { return file_skill_loader_1.parseKeywords; } });
10
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuF;AAA9E,oHAAA,eAAe,OAAA;AAAE,qHAAA,gBAAgB,OAAA;AAAE,kHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAwE;AAA/D,oHAAA,eAAe,OAAA;AAAE,qHAAA,gBAAgB,OAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Skill, SkillStatus } from "./types";
2
- import { ToolRegistry } from "../tools/tool-registry";
2
+ import { Logger } from "../logging/logger";
3
3
  /**
4
4
  * Manages skill registration, activation, and progressive disclosure.
5
5
  *
@@ -8,12 +8,15 @@ import { ToolRegistry } from "../tools/tool-registry";
8
8
  * core system prompt small while allowing deep expertise to be
9
9
  * injected when needed.
10
10
  *
11
- * Activation strategies:
12
- * 1. Keyword auto-detection skills define keywords; user input
13
- * that matches triggers activation.
14
- * 2. Manual activation call `activate(name)` explicitly.
11
+ * Workflow:
12
+ * 1. Skills are registered from a directory (metadata only: name, description, keywords)
13
+ * 2. `buildAvailableSkillsHint()` lists all available skills in the system prompt
14
+ * 3. LLM decides which skill to use → `activate(name)` loads the full content
15
+ * 4. `buildSkillsPrompt()` includes the active skill's full system prompt
15
16
  */
16
17
  export declare class SkillManager {
18
+ private logger;
19
+ constructor(logger?: Logger);
17
20
  /** All registered skills (active or not), keyed by name. */
18
21
  private registry;
19
22
  /** Skills that are currently active. */
@@ -24,21 +27,11 @@ export declare class SkillManager {
24
27
  private fileLoaders;
25
28
  /** File-based skills whose full content has been loaded from disk. */
26
29
  private loadedFileSkills;
27
- /** Reference to the ToolRegistry for registering/unregistering skill tools. */
28
- private toolRegistry?;
29
30
  /**
30
- * @param toolRegistry Optional ToolRegistry skills with tools
31
- * will auto-register/unregister there.
31
+ * Register a skill object directly (programmatic registration).
32
+ * Used when skills are defined in code rather than loaded from disk.
32
33
  */
33
- constructor(toolRegistry?: ToolRegistry);
34
- /**
35
- * Bind a ToolRegistry so skill tools are managed automatically.
36
- */
37
- bindToolRegistry(registry: ToolRegistry): void;
38
- /**
39
- * Register one or more skills.
40
- */
41
- register(...skills: Skill[]): void;
34
+ register(skill: Skill): void;
42
35
  /**
43
36
  * Unregister a skill by name. Deactivates it first if active.
44
37
  */
@@ -54,6 +47,16 @@ export declare class SkillManager {
54
47
  * @returns Number of skills successfully registered.
55
48
  */
56
49
  registerFromDirectory(dir: string): number;
50
+ /**
51
+ * Re-scan the skills directory for new SKILL.md files.
52
+ *
53
+ * Safe to call at the start of each run — only registers skills that
54
+ * haven't been registered yet. Already-registered skills are left as-is.
55
+ *
56
+ * @param dir Path to the skills directory.
57
+ * @returns Names of newly registered skills (empty if nothing changed).
58
+ */
59
+ reloadFromDirectory(dir: string): string[];
57
60
  /**
58
61
  * Check if a skill is registered.
59
62
  */
@@ -68,8 +71,7 @@ export declare class SkillManager {
68
71
  getAll(): Skill[];
69
72
  /**
70
73
  * Activate a skill by name.
71
- * - Appends its system prompt to the accumulated skill context.
72
- * - Registers its tools (if a ToolRegistry is bound).
74
+ * - Lazy-loads the full system prompt from disk (if file-based).
73
75
  * - Returns true if the skill was newly activated.
74
76
  */
75
77
  activate(name: string): boolean;
@@ -79,21 +81,12 @@ export declare class SkillManager {
79
81
  activateMany(names: string[]): string[];
80
82
  /**
81
83
  * Deactivate a skill.
82
- * - Unregisters its tools (if a ToolRegistry is bound).
83
84
  */
84
85
  deactivate(name: string): boolean;
85
86
  /**
86
87
  * Deactivate all active skills.
87
88
  */
88
89
  deactivateAll(): void;
89
- /**
90
- * Scan user input against unregistered (not yet active) skills.
91
- * Activates any skill whose keywords match the input.
92
- *
93
- * @param input The user's input text.
94
- * @returns Names of newly activated skills.
95
- */
96
- detectAndActivate(input: string): string[];
97
90
  /**
98
91
  * Build the accumulated system prompt content from all active skills.
99
92
  * Each skill's prompt is wrapped in a named section for clarity.
@@ -1 +1 @@
1
- {"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/skills/skill-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAiC;IAEjD,wCAAwC;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAgC;IAEnD,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAA2C;IAE9D,sEAAsE;IACtE,OAAO,CAAC,gBAAgB,CAA0B;IAElD,+EAA+E;IAC/E,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAIvC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAM9C;;OAEG;IACH,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IASlC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOjC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA6B1C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,MAAM,IAAI,KAAK,EAAE;IAMjB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA2C/B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAcvC;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAkBjC;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA2B1C;;;;;OAKG;IACH,iBAAiB,IAAI,MAAM;IAW3B;;;;;;OAMG;IACH,wBAAwB,IAAI,MAAM;IAgBlC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAY7B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;CAGjC"}
1
+ {"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../../src/skills/skill-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAO1D;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM;IAI3B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAiC;IAEjD,wCAAwC;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,oDAAoD;IACpD,OAAO,CAAC,WAAW,CAAgC;IAEnD,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAA2C;IAE9D,sEAAsE;IACtE,OAAO,CAAC,gBAAgB,CAA0B;IAIlD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAO5B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA+B1C;;;;;;;;OAQG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAc1C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,MAAM,IAAI,KAAK,EAAE;IAMjB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA+B/B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAcvC;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWjC;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;;;;OAKG;IACH,iBAAiB,IAAI,MAAM;IAqB3B;;;;;;OAMG;IACH,wBAAwB,IAAI,MAAM;IAwBlC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAY7B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;CAGjC"}