@backendkit-labs/agent-core 0.14.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 (533) hide show
  1. package/dist/agent-discovery/AgentPackageLoader.d.ts +14 -0
  2. package/dist/agent-discovery/AgentPackageLoader.d.ts.map +1 -0
  3. package/dist/agent-discovery/AgentPackageLoader.js +78 -0
  4. package/dist/agent-discovery/AgentPackageLoader.js.map +1 -0
  5. package/dist/agent-discovery/RemoteAgentRegistry.d.ts +31 -0
  6. package/dist/agent-discovery/RemoteAgentRegistry.d.ts.map +1 -0
  7. package/dist/agent-discovery/RemoteAgentRegistry.js +103 -0
  8. package/dist/agent-discovery/RemoteAgentRegistry.js.map +1 -0
  9. package/dist/agent-discovery/discoverAgents.d.ts +18 -0
  10. package/dist/agent-discovery/discoverAgents.d.ts.map +1 -0
  11. package/dist/agent-discovery/discoverAgents.js +59 -0
  12. package/dist/agent-discovery/discoverAgents.js.map +1 -0
  13. package/dist/agent-discovery/index.d.ts +5 -0
  14. package/dist/agent-discovery/index.d.ts.map +1 -0
  15. package/dist/agent-discovery/index.js +12 -0
  16. package/dist/agent-discovery/index.js.map +1 -0
  17. package/dist/agent-discovery/types.d.ts +42 -0
  18. package/dist/agent-discovery/types.d.ts.map +1 -0
  19. package/dist/agent-discovery/types.js +3 -0
  20. package/dist/agent-discovery/types.js.map +1 -0
  21. package/dist/agent-memory/EpisodicMemory.d.ts +26 -0
  22. package/dist/agent-memory/EpisodicMemory.d.ts.map +1 -0
  23. package/dist/agent-memory/EpisodicMemory.js +83 -0
  24. package/dist/agent-memory/EpisodicMemory.js.map +1 -0
  25. package/dist/agent-memory/MemorySystem.d.ts +40 -0
  26. package/dist/agent-memory/MemorySystem.d.ts.map +1 -0
  27. package/dist/agent-memory/MemorySystem.js +75 -0
  28. package/dist/agent-memory/MemorySystem.js.map +1 -0
  29. package/dist/agent-memory/ProceduralMemory.d.ts +26 -0
  30. package/dist/agent-memory/ProceduralMemory.d.ts.map +1 -0
  31. package/dist/agent-memory/ProceduralMemory.js +104 -0
  32. package/dist/agent-memory/ProceduralMemory.js.map +1 -0
  33. package/dist/agent-memory/SemanticMemory.d.ts +21 -0
  34. package/dist/agent-memory/SemanticMemory.d.ts.map +1 -0
  35. package/dist/agent-memory/SemanticMemory.js +68 -0
  36. package/dist/agent-memory/SemanticMemory.js.map +1 -0
  37. package/dist/agent-memory/index.d.ts +9 -0
  38. package/dist/agent-memory/index.d.ts.map +1 -0
  39. package/dist/agent-memory/index.js +19 -0
  40. package/dist/agent-memory/index.js.map +1 -0
  41. package/dist/agent-memory/scoring.d.ts +10 -0
  42. package/dist/agent-memory/scoring.d.ts.map +1 -0
  43. package/dist/agent-memory/scoring.js +32 -0
  44. package/dist/agent-memory/scoring.js.map +1 -0
  45. package/dist/agent-memory/stores/InMemoryStore.d.ts +10 -0
  46. package/dist/agent-memory/stores/InMemoryStore.d.ts.map +1 -0
  47. package/dist/agent-memory/stores/InMemoryStore.js +25 -0
  48. package/dist/agent-memory/stores/InMemoryStore.js.map +1 -0
  49. package/dist/agent-memory/stores/JsonFileStore.d.ts +18 -0
  50. package/dist/agent-memory/stores/JsonFileStore.d.ts.map +1 -0
  51. package/dist/agent-memory/stores/JsonFileStore.js +61 -0
  52. package/dist/agent-memory/stores/JsonFileStore.js.map +1 -0
  53. package/dist/agent-memory/tools.d.ts +6 -0
  54. package/dist/agent-memory/tools.d.ts.map +1 -0
  55. package/dist/agent-memory/tools.js +74 -0
  56. package/dist/agent-memory/tools.js.map +1 -0
  57. package/dist/agent-memory/types.d.ts +75 -0
  58. package/dist/agent-memory/types.d.ts.map +1 -0
  59. package/dist/agent-memory/types.js +4 -0
  60. package/dist/agent-memory/types.js.map +1 -0
  61. package/dist/bootstrap/GlobalSeed.d.ts +46 -0
  62. package/dist/bootstrap/GlobalSeed.d.ts.map +1 -0
  63. package/dist/bootstrap/GlobalSeed.js +285 -0
  64. package/dist/bootstrap/GlobalSeed.js.map +1 -0
  65. package/dist/bootstrap/config.d.ts +24 -0
  66. package/dist/bootstrap/config.d.ts.map +1 -0
  67. package/dist/bootstrap/config.js +71 -0
  68. package/dist/bootstrap/config.js.map +1 -0
  69. package/dist/checkpoint/index.d.ts +17 -0
  70. package/dist/checkpoint/index.d.ts.map +1 -0
  71. package/dist/checkpoint/index.js +207 -0
  72. package/dist/checkpoint/index.js.map +1 -0
  73. package/dist/commands/SlashCommandRegistry.d.ts +98 -0
  74. package/dist/commands/SlashCommandRegistry.d.ts.map +1 -0
  75. package/dist/commands/SlashCommandRegistry.js +41 -0
  76. package/dist/commands/SlashCommandRegistry.js.map +1 -0
  77. package/dist/commands/builtin.d.ts +7 -0
  78. package/dist/commands/builtin.d.ts.map +1 -0
  79. package/dist/commands/builtin.js +694 -0
  80. package/dist/commands/builtin.js.map +1 -0
  81. package/dist/commands/index.d.ts +4 -0
  82. package/dist/commands/index.d.ts.map +1 -0
  83. package/dist/commands/index.js +8 -0
  84. package/dist/commands/index.js.map +1 -0
  85. package/dist/context/index.d.ts +8 -0
  86. package/dist/context/index.d.ts.map +1 -0
  87. package/dist/context/index.js +8 -0
  88. package/dist/context/index.js.map +1 -0
  89. package/dist/context/pipeline.d.ts +46 -0
  90. package/dist/context/pipeline.d.ts.map +1 -0
  91. package/dist/context/pipeline.js +111 -0
  92. package/dist/context/pipeline.js.map +1 -0
  93. package/dist/context/stages/stage-instructions.d.ts +12 -0
  94. package/dist/context/stages/stage-instructions.d.ts.map +1 -0
  95. package/dist/context/stages/stage-instructions.js +76 -0
  96. package/dist/context/stages/stage-instructions.js.map +1 -0
  97. package/dist/context/stages/stage-lessons.d.ts +13 -0
  98. package/dist/context/stages/stage-lessons.d.ts.map +1 -0
  99. package/dist/context/stages/stage-lessons.js +83 -0
  100. package/dist/context/stages/stage-lessons.js.map +1 -0
  101. package/dist/context/stages/stage-manifest.d.ts +11 -0
  102. package/dist/context/stages/stage-manifest.d.ts.map +1 -0
  103. package/dist/context/stages/stage-manifest.js +62 -0
  104. package/dist/context/stages/stage-manifest.js.map +1 -0
  105. package/dist/context/stages/stage-project.d.ts +10 -0
  106. package/dist/context/stages/stage-project.d.ts.map +1 -0
  107. package/dist/context/stages/stage-project.js +55 -0
  108. package/dist/context/stages/stage-project.js.map +1 -0
  109. package/dist/context/stages/stage-session.d.ts +12 -0
  110. package/dist/context/stages/stage-session.d.ts.map +1 -0
  111. package/dist/context/stages/stage-session.js +69 -0
  112. package/dist/context/stages/stage-session.js.map +1 -0
  113. package/dist/delegation/DelegationBus.d.ts +40 -0
  114. package/dist/delegation/DelegationBus.d.ts.map +1 -0
  115. package/dist/delegation/DelegationBus.js +68 -0
  116. package/dist/delegation/DelegationBus.js.map +1 -0
  117. package/dist/engine/AgentEngine.d.ts +212 -0
  118. package/dist/engine/AgentEngine.d.ts.map +1 -0
  119. package/dist/engine/AgentEngine.js +1037 -0
  120. package/dist/engine/AgentEngine.js.map +1 -0
  121. package/dist/engine/AgentRegistry.d.ts +13 -0
  122. package/dist/engine/AgentRegistry.d.ts.map +1 -0
  123. package/dist/engine/AgentRegistry.js +37 -0
  124. package/dist/engine/AgentRegistry.js.map +1 -0
  125. package/dist/engine/IterationManager.d.ts +79 -0
  126. package/dist/engine/IterationManager.d.ts.map +1 -0
  127. package/dist/engine/IterationManager.js +103 -0
  128. package/dist/engine/IterationManager.js.map +1 -0
  129. package/dist/engine/ProviderRegistry.d.ts +10 -0
  130. package/dist/engine/ProviderRegistry.d.ts.map +1 -0
  131. package/dist/engine/ProviderRegistry.js +28 -0
  132. package/dist/engine/ProviderRegistry.js.map +1 -0
  133. package/dist/engine/ToolRegistry.d.ts +54 -0
  134. package/dist/engine/ToolRegistry.d.ts.map +1 -0
  135. package/dist/engine/ToolRegistry.js +75 -0
  136. package/dist/engine/ToolRegistry.js.map +1 -0
  137. package/dist/engine/createBaseEngine.d.ts +169 -0
  138. package/dist/engine/createBaseEngine.d.ts.map +1 -0
  139. package/dist/engine/createBaseEngine.js +91 -0
  140. package/dist/engine/createBaseEngine.js.map +1 -0
  141. package/dist/engine/qa-orchestrator.d.ts +56 -0
  142. package/dist/engine/qa-orchestrator.d.ts.map +1 -0
  143. package/dist/engine/qa-orchestrator.js +163 -0
  144. package/dist/engine/qa-orchestrator.js.map +1 -0
  145. package/dist/index.d.ts +83 -0
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.js +163 -0
  148. package/dist/index.js.map +1 -0
  149. package/dist/mcp/MCPClientManager.d.ts +65 -0
  150. package/dist/mcp/MCPClientManager.d.ts.map +1 -0
  151. package/dist/mcp/MCPClientManager.js +211 -0
  152. package/dist/mcp/MCPClientManager.js.map +1 -0
  153. package/dist/mcp/index.d.ts +3 -0
  154. package/dist/mcp/index.d.ts.map +1 -0
  155. package/dist/mcp/index.js +6 -0
  156. package/dist/mcp/index.js.map +1 -0
  157. package/dist/mcp/types.d.ts +121 -0
  158. package/dist/mcp/types.d.ts.map +1 -0
  159. package/dist/mcp/types.js +3 -0
  160. package/dist/mcp/types.js.map +1 -0
  161. package/dist/memory/SessionMemory.d.ts +9 -0
  162. package/dist/memory/SessionMemory.d.ts.map +1 -0
  163. package/dist/memory/SessionMemory.js +20 -0
  164. package/dist/memory/SessionMemory.js.map +1 -0
  165. package/dist/observability/CostTracker.d.ts +19 -0
  166. package/dist/observability/CostTracker.d.ts.map +1 -0
  167. package/dist/observability/CostTracker.js +64 -0
  168. package/dist/observability/CostTracker.js.map +1 -0
  169. package/dist/observability/MetricsCollector.d.ts +17 -0
  170. package/dist/observability/MetricsCollector.d.ts.map +1 -0
  171. package/dist/observability/MetricsCollector.js +70 -0
  172. package/dist/observability/MetricsCollector.js.map +1 -0
  173. package/dist/observability/ObservabilityManager.d.ts +33 -0
  174. package/dist/observability/ObservabilityManager.d.ts.map +1 -0
  175. package/dist/observability/ObservabilityManager.js +107 -0
  176. package/dist/observability/ObservabilityManager.js.map +1 -0
  177. package/dist/observability/Tracer.d.ts +23 -0
  178. package/dist/observability/Tracer.d.ts.map +1 -0
  179. package/dist/observability/Tracer.js +65 -0
  180. package/dist/observability/Tracer.js.map +1 -0
  181. package/dist/observability/index.d.ts +7 -0
  182. package/dist/observability/index.d.ts.map +1 -0
  183. package/dist/observability/index.js +14 -0
  184. package/dist/observability/index.js.map +1 -0
  185. package/dist/observability/types.d.ts +77 -0
  186. package/dist/observability/types.d.ts.map +1 -0
  187. package/dist/observability/types.js +15 -0
  188. package/dist/observability/types.js.map +1 -0
  189. package/dist/orchestration/audit/audit-ci-blocker.d.ts +31 -0
  190. package/dist/orchestration/audit/audit-ci-blocker.d.ts.map +1 -0
  191. package/dist/orchestration/audit/audit-ci-blocker.js +120 -0
  192. package/dist/orchestration/audit/audit-ci-blocker.js.map +1 -0
  193. package/dist/orchestration/audit/audit-finding-tracer.d.ts +33 -0
  194. package/dist/orchestration/audit/audit-finding-tracer.d.ts.map +1 -0
  195. package/dist/orchestration/audit/audit-finding-tracer.js +126 -0
  196. package/dist/orchestration/audit/audit-finding-tracer.js.map +1 -0
  197. package/dist/orchestration/audit/audit-lessons-learned.d.ts +27 -0
  198. package/dist/orchestration/audit/audit-lessons-learned.d.ts.map +1 -0
  199. package/dist/orchestration/audit/audit-lessons-learned.js +155 -0
  200. package/dist/orchestration/audit/audit-lessons-learned.js.map +1 -0
  201. package/dist/orchestration/audit/audit-pending-issues.d.ts +21 -0
  202. package/dist/orchestration/audit/audit-pending-issues.d.ts.map +1 -0
  203. package/dist/orchestration/audit/audit-pending-issues.js +110 -0
  204. package/dist/orchestration/audit/audit-pending-issues.js.map +1 -0
  205. package/dist/orchestration/audit/audit-reflection-bridge.d.ts +39 -0
  206. package/dist/orchestration/audit/audit-reflection-bridge.d.ts.map +1 -0
  207. package/dist/orchestration/audit/audit-reflection-bridge.js +65 -0
  208. package/dist/orchestration/audit/audit-reflection-bridge.js.map +1 -0
  209. package/dist/orchestration/audit/audit-report-renderer.d.ts +30 -0
  210. package/dist/orchestration/audit/audit-report-renderer.d.ts.map +1 -0
  211. package/dist/orchestration/audit/audit-report-renderer.js +249 -0
  212. package/dist/orchestration/audit/audit-report-renderer.js.map +1 -0
  213. package/dist/orchestration/audit/audit-report-version-manager.d.ts +52 -0
  214. package/dist/orchestration/audit/audit-report-version-manager.d.ts.map +1 -0
  215. package/dist/orchestration/audit/audit-report-version-manager.js +144 -0
  216. package/dist/orchestration/audit/audit-report-version-manager.js.map +1 -0
  217. package/dist/orchestration/audit/audit-silent-gates-buffer.d.ts +37 -0
  218. package/dist/orchestration/audit/audit-silent-gates-buffer.d.ts.map +1 -0
  219. package/dist/orchestration/audit/audit-silent-gates-buffer.js +129 -0
  220. package/dist/orchestration/audit/audit-silent-gates-buffer.js.map +1 -0
  221. package/dist/orchestration/audit/index.d.ts +17 -0
  222. package/dist/orchestration/audit/index.d.ts.map +1 -0
  223. package/dist/orchestration/audit/index.js +26 -0
  224. package/dist/orchestration/audit/index.js.map +1 -0
  225. package/dist/orchestration/audit/types.d.ts +79 -0
  226. package/dist/orchestration/audit/types.d.ts.map +1 -0
  227. package/dist/orchestration/audit/types.js +10 -0
  228. package/dist/orchestration/audit/types.js.map +1 -0
  229. package/dist/orchestration/audit-reporter.d.ts +133 -0
  230. package/dist/orchestration/audit-reporter.d.ts.map +1 -0
  231. package/dist/orchestration/audit-reporter.js +322 -0
  232. package/dist/orchestration/audit-reporter.js.map +1 -0
  233. package/dist/orchestration/config-loader.d.ts +51 -0
  234. package/dist/orchestration/config-loader.d.ts.map +1 -0
  235. package/dist/orchestration/config-loader.js +215 -0
  236. package/dist/orchestration/config-loader.js.map +1 -0
  237. package/dist/orchestration/domain-detector.d.ts +36 -0
  238. package/dist/orchestration/domain-detector.d.ts.map +1 -0
  239. package/dist/orchestration/domain-detector.js +157 -0
  240. package/dist/orchestration/domain-detector.js.map +1 -0
  241. package/dist/orchestration/fsm.d.ts +86 -0
  242. package/dist/orchestration/fsm.d.ts.map +1 -0
  243. package/dist/orchestration/fsm.js +223 -0
  244. package/dist/orchestration/fsm.js.map +1 -0
  245. package/dist/orchestration/gate-resolver.d.ts +42 -0
  246. package/dist/orchestration/gate-resolver.d.ts.map +1 -0
  247. package/dist/orchestration/gate-resolver.js +94 -0
  248. package/dist/orchestration/gate-resolver.js.map +1 -0
  249. package/dist/orchestration/index.d.ts +15 -0
  250. package/dist/orchestration/index.d.ts.map +1 -0
  251. package/dist/orchestration/index.js +32 -0
  252. package/dist/orchestration/index.js.map +1 -0
  253. package/dist/orchestration/intent-detector.d.ts +43 -0
  254. package/dist/orchestration/intent-detector.d.ts.map +1 -0
  255. package/dist/orchestration/intent-detector.js +249 -0
  256. package/dist/orchestration/intent-detector.js.map +1 -0
  257. package/dist/orchestration/keyword-match.d.ts +17 -0
  258. package/dist/orchestration/keyword-match.d.ts.map +1 -0
  259. package/dist/orchestration/keyword-match.js +26 -0
  260. package/dist/orchestration/keyword-match.js.map +1 -0
  261. package/dist/orchestration/llm-client-adapter.d.ts +11 -0
  262. package/dist/orchestration/llm-client-adapter.d.ts.map +1 -0
  263. package/dist/orchestration/llm-client-adapter.js +30 -0
  264. package/dist/orchestration/llm-client-adapter.js.map +1 -0
  265. package/dist/orchestration/orchestrator.d.ts +153 -0
  266. package/dist/orchestration/orchestrator.d.ts.map +1 -0
  267. package/dist/orchestration/orchestrator.js +471 -0
  268. package/dist/orchestration/orchestrator.js.map +1 -0
  269. package/dist/orchestration/policy-engine.d.ts +47 -0
  270. package/dist/orchestration/policy-engine.d.ts.map +1 -0
  271. package/dist/orchestration/policy-engine.js +262 -0
  272. package/dist/orchestration/policy-engine.js.map +1 -0
  273. package/dist/orchestration/risk-scorer.d.ts +38 -0
  274. package/dist/orchestration/risk-scorer.d.ts.map +1 -0
  275. package/dist/orchestration/risk-scorer.js +145 -0
  276. package/dist/orchestration/risk-scorer.js.map +1 -0
  277. package/dist/orchestration/task-context.d.ts +195 -0
  278. package/dist/orchestration/task-context.d.ts.map +1 -0
  279. package/dist/orchestration/task-context.js +160 -0
  280. package/dist/orchestration/task-context.js.map +1 -0
  281. package/dist/orchestration/types.d.ts +111 -0
  282. package/dist/orchestration/types.d.ts.map +1 -0
  283. package/dist/orchestration/types.js +37 -0
  284. package/dist/orchestration/types.js.map +1 -0
  285. package/dist/qa/index.d.ts +3 -0
  286. package/dist/qa/index.d.ts.map +1 -0
  287. package/dist/qa/index.js +6 -0
  288. package/dist/qa/index.js.map +1 -0
  289. package/dist/qa/qa-service.d.ts +30 -0
  290. package/dist/qa/qa-service.d.ts.map +1 -0
  291. package/dist/qa/qa-service.js +200 -0
  292. package/dist/qa/qa-service.js.map +1 -0
  293. package/dist/reflection/commands/domain-commands.d.ts +78 -0
  294. package/dist/reflection/commands/domain-commands.d.ts.map +1 -0
  295. package/dist/reflection/commands/domain-commands.js +203 -0
  296. package/dist/reflection/commands/domain-commands.js.map +1 -0
  297. package/dist/reflection/domain-registry.d.ts +104 -0
  298. package/dist/reflection/domain-registry.d.ts.map +1 -0
  299. package/dist/reflection/domain-registry.js +279 -0
  300. package/dist/reflection/domain-registry.js.map +1 -0
  301. package/dist/reflection/domains/agent-domain.d.ts +40 -0
  302. package/dist/reflection/domains/agent-domain.d.ts.map +1 -0
  303. package/dist/reflection/domains/agent-domain.js +161 -0
  304. package/dist/reflection/domains/agent-domain.js.map +1 -0
  305. package/dist/reflection/domains/audit-domain.d.ts +46 -0
  306. package/dist/reflection/domains/audit-domain.d.ts.map +1 -0
  307. package/dist/reflection/domains/audit-domain.js +241 -0
  308. package/dist/reflection/domains/audit-domain.js.map +1 -0
  309. package/dist/reflection/domains/bootstrap-domain.d.ts +40 -0
  310. package/dist/reflection/domains/bootstrap-domain.d.ts.map +1 -0
  311. package/dist/reflection/domains/bootstrap-domain.js +156 -0
  312. package/dist/reflection/domains/bootstrap-domain.js.map +1 -0
  313. package/dist/reflection/domains/commit-domain.d.ts +40 -0
  314. package/dist/reflection/domains/commit-domain.d.ts.map +1 -0
  315. package/dist/reflection/domains/commit-domain.js +174 -0
  316. package/dist/reflection/domains/commit-domain.js.map +1 -0
  317. package/dist/reflection/domains/test-domain.d.ts +40 -0
  318. package/dist/reflection/domains/test-domain.d.ts.map +1 -0
  319. package/dist/reflection/domains/test-domain.js +194 -0
  320. package/dist/reflection/domains/test-domain.js.map +1 -0
  321. package/dist/reflection/failure-catalog.d.ts +100 -0
  322. package/dist/reflection/failure-catalog.d.ts.map +1 -0
  323. package/dist/reflection/failure-catalog.js +269 -0
  324. package/dist/reflection/failure-catalog.js.map +1 -0
  325. package/dist/reflection/historical-loader.d.ts +105 -0
  326. package/dist/reflection/historical-loader.d.ts.map +1 -0
  327. package/dist/reflection/historical-loader.js +462 -0
  328. package/dist/reflection/historical-loader.js.map +1 -0
  329. package/dist/reflection/hooks/agent-hook.d.ts +72 -0
  330. package/dist/reflection/hooks/agent-hook.d.ts.map +1 -0
  331. package/dist/reflection/hooks/agent-hook.js +98 -0
  332. package/dist/reflection/hooks/agent-hook.js.map +1 -0
  333. package/dist/reflection/hooks/audit-hook.d.ts +72 -0
  334. package/dist/reflection/hooks/audit-hook.d.ts.map +1 -0
  335. package/dist/reflection/hooks/audit-hook.js +112 -0
  336. package/dist/reflection/hooks/audit-hook.js.map +1 -0
  337. package/dist/reflection/hooks/bootstrap-hook.d.ts +71 -0
  338. package/dist/reflection/hooks/bootstrap-hook.d.ts.map +1 -0
  339. package/dist/reflection/hooks/bootstrap-hook.js +97 -0
  340. package/dist/reflection/hooks/bootstrap-hook.js.map +1 -0
  341. package/dist/reflection/hooks/commit-hook.d.ts +63 -0
  342. package/dist/reflection/hooks/commit-hook.d.ts.map +1 -0
  343. package/dist/reflection/hooks/commit-hook.js +90 -0
  344. package/dist/reflection/hooks/commit-hook.js.map +1 -0
  345. package/dist/reflection/hooks/test-hook.d.ts +65 -0
  346. package/dist/reflection/hooks/test-hook.d.ts.map +1 -0
  347. package/dist/reflection/hooks/test-hook.js +99 -0
  348. package/dist/reflection/hooks/test-hook.js.map +1 -0
  349. package/dist/reflection/index.d.ts +19 -0
  350. package/dist/reflection/index.d.ts.map +1 -0
  351. package/dist/reflection/index.js +40 -0
  352. package/dist/reflection/index.js.map +1 -0
  353. package/dist/reflection/lessons-memo-generator.d.ts +60 -0
  354. package/dist/reflection/lessons-memo-generator.d.ts.map +1 -0
  355. package/dist/reflection/lessons-memo-generator.js +286 -0
  356. package/dist/reflection/lessons-memo-generator.js.map +1 -0
  357. package/dist/reflection/pattern-detector.d.ts +55 -0
  358. package/dist/reflection/pattern-detector.d.ts.map +1 -0
  359. package/dist/reflection/pattern-detector.js +137 -0
  360. package/dist/reflection/pattern-detector.js.map +1 -0
  361. package/dist/reflection/policy-promoter.d.ts +86 -0
  362. package/dist/reflection/policy-promoter.d.ts.map +1 -0
  363. package/dist/reflection/policy-promoter.js +382 -0
  364. package/dist/reflection/policy-promoter.js.map +1 -0
  365. package/dist/reflection/reflection-engine.d.ts +160 -0
  366. package/dist/reflection/reflection-engine.d.ts.map +1 -0
  367. package/dist/reflection/reflection-engine.js +352 -0
  368. package/dist/reflection/reflection-engine.js.map +1 -0
  369. package/dist/reflection/types.d.ts +106 -0
  370. package/dist/reflection/types.d.ts.map +1 -0
  371. package/dist/reflection/types.js +64 -0
  372. package/dist/reflection/types.js.map +1 -0
  373. package/dist/shared/llm/resilient-client.d.ts +40 -0
  374. package/dist/shared/llm/resilient-client.d.ts.map +1 -0
  375. package/dist/shared/llm/resilient-client.js +60 -0
  376. package/dist/shared/llm/resilient-client.js.map +1 -0
  377. package/dist/shared/utils/atomic-write.d.ts +7 -0
  378. package/dist/shared/utils/atomic-write.d.ts.map +1 -0
  379. package/dist/shared/utils/atomic-write.js +52 -0
  380. package/dist/shared/utils/atomic-write.js.map +1 -0
  381. package/dist/shared/utils/git.d.ts +2 -0
  382. package/dist/shared/utils/git.d.ts.map +1 -0
  383. package/dist/shared/utils/git.js +17 -0
  384. package/dist/shared/utils/git.js.map +1 -0
  385. package/dist/shared/utils/project-key.d.ts +4 -0
  386. package/dist/shared/utils/project-key.d.ts.map +1 -0
  387. package/dist/shared/utils/project-key.js +54 -0
  388. package/dist/shared/utils/project-key.js.map +1 -0
  389. package/dist/shared/utils/string-utils.d.ts +17 -0
  390. package/dist/shared/utils/string-utils.d.ts.map +1 -0
  391. package/dist/shared/utils/string-utils.js +37 -0
  392. package/dist/shared/utils/string-utils.js.map +1 -0
  393. package/dist/skills/activator.d.ts +27 -0
  394. package/dist/skills/activator.d.ts.map +1 -0
  395. package/dist/skills/activator.js +127 -0
  396. package/dist/skills/activator.js.map +1 -0
  397. package/dist/skills/builtins/global.d.ts +7 -0
  398. package/dist/skills/builtins/global.d.ts.map +1 -0
  399. package/dist/skills/builtins/global.js +208 -0
  400. package/dist/skills/builtins/global.js.map +1 -0
  401. package/dist/skills/builtins/go-pack.d.ts +7 -0
  402. package/dist/skills/builtins/go-pack.d.ts.map +1 -0
  403. package/dist/skills/builtins/go-pack.js +263 -0
  404. package/dist/skills/builtins/go-pack.js.map +1 -0
  405. package/dist/skills/builtins/java-pack.d.ts +7 -0
  406. package/dist/skills/builtins/java-pack.d.ts.map +1 -0
  407. package/dist/skills/builtins/java-pack.js +272 -0
  408. package/dist/skills/builtins/java-pack.js.map +1 -0
  409. package/dist/skills/builtins/kotlin-pack.d.ts +9 -0
  410. package/dist/skills/builtins/kotlin-pack.d.ts.map +1 -0
  411. package/dist/skills/builtins/kotlin-pack.js +292 -0
  412. package/dist/skills/builtins/kotlin-pack.js.map +1 -0
  413. package/dist/skills/builtins/node-pack.d.ts +7 -0
  414. package/dist/skills/builtins/node-pack.d.ts.map +1 -0
  415. package/dist/skills/builtins/node-pack.js +750 -0
  416. package/dist/skills/builtins/node-pack.js.map +1 -0
  417. package/dist/skills/builtins/python-pack.d.ts +7 -0
  418. package/dist/skills/builtins/python-pack.d.ts.map +1 -0
  419. package/dist/skills/builtins/python-pack.js +303 -0
  420. package/dist/skills/builtins/python-pack.js.map +1 -0
  421. package/dist/skills/index.d.ts +11 -0
  422. package/dist/skills/index.d.ts.map +1 -0
  423. package/dist/skills/index.js +24 -0
  424. package/dist/skills/index.js.map +1 -0
  425. package/dist/skills/loader.d.ts +39 -0
  426. package/dist/skills/loader.d.ts.map +1 -0
  427. package/dist/skills/loader.js +152 -0
  428. package/dist/skills/loader.js.map +1 -0
  429. package/dist/skills/manager.d.ts +97 -0
  430. package/dist/skills/manager.d.ts.map +1 -0
  431. package/dist/skills/manager.js +296 -0
  432. package/dist/skills/manager.js.map +1 -0
  433. package/dist/skills/parse-md-skill.d.ts +14 -0
  434. package/dist/skills/parse-md-skill.d.ts.map +1 -0
  435. package/dist/skills/parse-md-skill.js +86 -0
  436. package/dist/skills/parse-md-skill.js.map +1 -0
  437. package/dist/skills/providers/github.d.ts +21 -0
  438. package/dist/skills/providers/github.d.ts.map +1 -0
  439. package/dist/skills/providers/github.js +146 -0
  440. package/dist/skills/providers/github.js.map +1 -0
  441. package/dist/skills/providers/index.d.ts +6 -0
  442. package/dist/skills/providers/index.d.ts.map +1 -0
  443. package/dist/skills/providers/index.js +12 -0
  444. package/dist/skills/providers/index.js.map +1 -0
  445. package/dist/skills/providers/local.d.ts +16 -0
  446. package/dist/skills/providers/local.d.ts.map +1 -0
  447. package/dist/skills/providers/local.js +91 -0
  448. package/dist/skills/providers/local.js.map +1 -0
  449. package/dist/skills/providers/obsidian.d.ts +31 -0
  450. package/dist/skills/providers/obsidian.d.ts.map +1 -0
  451. package/dist/skills/providers/obsidian.js +141 -0
  452. package/dist/skills/providers/obsidian.js.map +1 -0
  453. package/dist/skills/providers/skills-sh.d.ts +32 -0
  454. package/dist/skills/providers/skills-sh.d.ts.map +1 -0
  455. package/dist/skills/providers/skills-sh.js +53 -0
  456. package/dist/skills/providers/skills-sh.js.map +1 -0
  457. package/dist/skills/providers/types.d.ts +25 -0
  458. package/dist/skills/providers/types.d.ts.map +1 -0
  459. package/dist/skills/providers/types.js +3 -0
  460. package/dist/skills/providers/types.js.map +1 -0
  461. package/dist/skills/registry.d.ts +18 -0
  462. package/dist/skills/registry.d.ts.map +1 -0
  463. package/dist/skills/registry.js +45 -0
  464. package/dist/skills/registry.js.map +1 -0
  465. package/dist/skills/types.d.ts +66 -0
  466. package/dist/skills/types.d.ts.map +1 -0
  467. package/dist/skills/types.js +3 -0
  468. package/dist/skills/types.js.map +1 -0
  469. package/dist/tools/defineTool.d.ts +34 -0
  470. package/dist/tools/defineTool.d.ts.map +1 -0
  471. package/dist/tools/defineTool.js +63 -0
  472. package/dist/tools/defineTool.js.map +1 -0
  473. package/dist/transport/CallbackTransport.d.ts +12 -0
  474. package/dist/transport/CallbackTransport.d.ts.map +1 -0
  475. package/dist/transport/CallbackTransport.js +28 -0
  476. package/dist/transport/CallbackTransport.js.map +1 -0
  477. package/dist/transport/StdoutTransport.d.ts +9 -0
  478. package/dist/transport/StdoutTransport.d.ts.map +1 -0
  479. package/dist/transport/StdoutTransport.js +63 -0
  480. package/dist/transport/StdoutTransport.js.map +1 -0
  481. package/dist/transport/Transport.d.ts +8 -0
  482. package/dist/transport/Transport.d.ts.map +1 -0
  483. package/dist/transport/Transport.js +3 -0
  484. package/dist/transport/Transport.js.map +1 -0
  485. package/dist/triggers/EventBus.d.ts +14 -0
  486. package/dist/triggers/EventBus.d.ts.map +1 -0
  487. package/dist/triggers/EventBus.js +18 -0
  488. package/dist/triggers/EventBus.js.map +1 -0
  489. package/dist/triggers/TriggerManager.d.ts +28 -0
  490. package/dist/triggers/TriggerManager.d.ts.map +1 -0
  491. package/dist/triggers/TriggerManager.js +158 -0
  492. package/dist/triggers/TriggerManager.js.map +1 -0
  493. package/dist/triggers/WebhookServer.d.ts +23 -0
  494. package/dist/triggers/WebhookServer.d.ts.map +1 -0
  495. package/dist/triggers/WebhookServer.js +127 -0
  496. package/dist/triggers/WebhookServer.js.map +1 -0
  497. package/dist/triggers/createAutonomousAgent.d.ts +49 -0
  498. package/dist/triggers/createAutonomousAgent.d.ts.map +1 -0
  499. package/dist/triggers/createAutonomousAgent.js +42 -0
  500. package/dist/triggers/createAutonomousAgent.js.map +1 -0
  501. package/dist/triggers/index.d.ts +8 -0
  502. package/dist/triggers/index.d.ts.map +1 -0
  503. package/dist/triggers/index.js +12 -0
  504. package/dist/triggers/index.js.map +1 -0
  505. package/dist/triggers/types.d.ts +35 -0
  506. package/dist/triggers/types.d.ts.map +1 -0
  507. package/dist/triggers/types.js +3 -0
  508. package/dist/triggers/types.js.map +1 -0
  509. package/dist/types/index.d.ts +256 -0
  510. package/dist/types/index.d.ts.map +1 -0
  511. package/dist/types/index.js +4 -0
  512. package/dist/types/index.js.map +1 -0
  513. package/dist/workflow/WorkflowBuilder.d.ts +22 -0
  514. package/dist/workflow/WorkflowBuilder.d.ts.map +1 -0
  515. package/dist/workflow/WorkflowBuilder.js +67 -0
  516. package/dist/workflow/WorkflowBuilder.js.map +1 -0
  517. package/dist/workflow/WorkflowRunner.d.ts +22 -0
  518. package/dist/workflow/WorkflowRunner.d.ts.map +1 -0
  519. package/dist/workflow/WorkflowRunner.js +97 -0
  520. package/dist/workflow/WorkflowRunner.js.map +1 -0
  521. package/dist/workflow/index.d.ts +5 -0
  522. package/dist/workflow/index.d.ts.map +1 -0
  523. package/dist/workflow/index.js +10 -0
  524. package/dist/workflow/index.js.map +1 -0
  525. package/dist/workflow/types.d.ts +35 -0
  526. package/dist/workflow/types.d.ts.map +1 -0
  527. package/dist/workflow/types.js +3 -0
  528. package/dist/workflow/types.js.map +1 -0
  529. package/dist/workspace/index.d.ts +55 -0
  530. package/dist/workspace/index.d.ts.map +1 -0
  531. package/dist/workspace/index.js +189 -0
  532. package/dist/workspace/index.js.map +1 -0
  533. package/package.json +87 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SkillRegistry = void 0;
4
+ /**
5
+ * Instance-based skill handler registry.
6
+ * Not a singleton — each AgentEngine gets its own SkillRegistry,
7
+ * enabling test isolation and multi-tenant deployments.
8
+ */
9
+ class SkillRegistry {
10
+ handlers = new Map();
11
+ register(name, fn) {
12
+ this.handlers.set(this.sanitizeName(name), fn);
13
+ }
14
+ get(name) {
15
+ return this.handlers.get(this.sanitizeName(name));
16
+ }
17
+ has(name) {
18
+ return this.handlers.has(this.sanitizeName(name));
19
+ }
20
+ async execute(name, args) {
21
+ const handler = this.get(name);
22
+ if (!handler)
23
+ return { ok: false, error: `Handler not registered: ${name}` };
24
+ try {
25
+ const data = await handler(args);
26
+ return { ok: true, data };
27
+ }
28
+ catch (e) {
29
+ const error = e instanceof Error ? e.message : String(e);
30
+ return { ok: false, error: `Error in handler '${name}': ${error}` };
31
+ }
32
+ }
33
+ /** Removes characters that could be used for injection via handler name */
34
+ sanitizeName(name) {
35
+ return name.replace(/[^a-zA-Z0-9_-]/g, '_');
36
+ }
37
+ registeredNames() {
38
+ return [...this.handlers.keys()];
39
+ }
40
+ clear() {
41
+ this.handlers.clear();
42
+ }
43
+ }
44
+ exports.SkillRegistry = SkillRegistry;
45
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,aAAa;IACL,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE5D,QAAQ,CAAC,IAAY,EAAE,EAAgB;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,GAAG,CAAC,IAAY;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,IAAY;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAa;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,IAAI,EAAE,EAAE,CAAC;QAC7E,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QACxE,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,eAAe;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACJ;AAvCD,sCAuCC"}
@@ -0,0 +1,66 @@
1
+ export interface SkillToolDefinition {
2
+ name: string;
3
+ description: string;
4
+ parameters: Record<string, unknown>;
5
+ /** Handler name to look up in SkillRegistry */
6
+ handler: string;
7
+ }
8
+ /** Where a skill lives in the 3-layer hierarchy */
9
+ export type SkillScope = 'global' | 'pack' | 'project';
10
+ export interface Skill {
11
+ name: string;
12
+ version: string;
13
+ description: string;
14
+ /** Keywords that activate this skill when matched in user input */
15
+ triggers: string[];
16
+ /** Agent IDs that always have this skill active regardless of input */
17
+ agents?: string[];
18
+ /** Markdown injected into the system prompt when the skill is active */
19
+ systemPromptAddition?: string;
20
+ tools?: SkillToolDefinition[];
21
+ customInstructions?: string;
22
+ /**
23
+ * Languages/stacks this skill applies to.
24
+ * undefined or empty = language-agnostic (always available).
25
+ * Examples: ['node', 'typescript'], ['python'], ['java']
26
+ */
27
+ language?: string[];
28
+ /** Determined by where the skill was loaded from */
29
+ scope?: SkillScope;
30
+ /** Source pack name, e.g. '@bk-node', '@vercel' */
31
+ pack?: string;
32
+ }
33
+ export type SkillHandler = (args: unknown) => Promise<string>;
34
+ /**
35
+ * Security configuration for SkillManager.
36
+ * Controls which sources are trusted and how much content a skill can inject.
37
+ */
38
+ export interface TrustConfig {
39
+ /**
40
+ * Source prefix allowlist. Only sources that start with one of these strings
41
+ * can be installed. Leave undefined to allow any source (open mode).
42
+ *
43
+ * Examples:
44
+ * ['https://github.com/my-org/', 'https://skills.sh/', './local-skills']
45
+ */
46
+ allowedSources?: string[];
47
+ /**
48
+ * Max bytes allowed for a skill's systemPromptAddition.
49
+ * Prevents prompt-flooding even from trusted sources.
50
+ * Default: 20_000 bytes (~20 KB).
51
+ */
52
+ maxPromptBytes?: number;
53
+ }
54
+ export interface SkillExecuteResult {
55
+ ok: boolean;
56
+ data?: string;
57
+ error?: string;
58
+ }
59
+ /** Metadata written to sources.json when a pack is installed */
60
+ export interface SkillPackSource {
61
+ pack: string;
62
+ source: string;
63
+ installedAt: string;
64
+ version?: string;
65
+ }
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oDAAoD;IACpD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { z } from 'zod';
2
+ import type { ToolDefinition, ExecutionContext } from '../types';
3
+ export { z };
4
+ export interface TypedToolOptions<TInput extends z.ZodTypeAny> {
5
+ name: string;
6
+ description: string;
7
+ /** Zod schema for the tool's input. Used for validation and JSON Schema generation. */
8
+ input: TInput;
9
+ /** Type-safe execute handler — args are already validated and typed. */
10
+ execute(args: z.infer<TInput>, ctx: ExecutionContext): Promise<string>;
11
+ }
12
+ /**
13
+ * Creates a fully type-safe ToolDefinition backed by a Zod schema.
14
+ *
15
+ * The input schema is converted to JSON Schema for the LLM, and args are
16
+ * validated at runtime before being passed to the execute handler.
17
+ * Validation errors are returned as tool result strings (not thrown).
18
+ *
19
+ * @example
20
+ * const readFileTool = defineTool({
21
+ * name: 'read_file',
22
+ * description: 'Read a file from disk',
23
+ * input: z.object({
24
+ * path: z.string().describe('Absolute path to the file'),
25
+ * encoding: z.enum(['utf-8', 'base64']).default('utf-8'),
26
+ * }),
27
+ * execute: async ({ path, encoding }, ctx) => {
28
+ * // path: string, encoding: 'utf-8' | 'base64' — fully typed
29
+ * return readFileSync(path, encoding);
30
+ * },
31
+ * });
32
+ */
33
+ export declare function defineTool<TInput extends z.ZodTypeAny>(opts: TypedToolOptions<TInput>): ToolDefinition;
34
+ //# sourceMappingURL=defineTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineTool.d.ts","sourceRoot":"","sources":["../../src/tools/defineTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,CAAC,EAAE,CAAC;AAIb,MAAM,WAAW,gBAAgB,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAClD,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAC/B,cAAc,CA2BhB"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.z = void 0;
4
+ exports.defineTool = defineTool;
5
+ const zod_1 = require("zod");
6
+ Object.defineProperty(exports, "z", { enumerable: true, get: function () { return zod_1.z; } });
7
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
8
+ /**
9
+ * Creates a fully type-safe ToolDefinition backed by a Zod schema.
10
+ *
11
+ * The input schema is converted to JSON Schema for the LLM, and args are
12
+ * validated at runtime before being passed to the execute handler.
13
+ * Validation errors are returned as tool result strings (not thrown).
14
+ *
15
+ * @example
16
+ * const readFileTool = defineTool({
17
+ * name: 'read_file',
18
+ * description: 'Read a file from disk',
19
+ * input: z.object({
20
+ * path: z.string().describe('Absolute path to the file'),
21
+ * encoding: z.enum(['utf-8', 'base64']).default('utf-8'),
22
+ * }),
23
+ * execute: async ({ path, encoding }, ctx) => {
24
+ * // path: string, encoding: 'utf-8' | 'base64' — fully typed
25
+ * return readFileSync(path, encoding);
26
+ * },
27
+ * });
28
+ */
29
+ function defineTool(opts) {
30
+ // Cast to bypass TypeScript's deep-instantiation limit on generic Zod schemas
31
+ const toSchema = zod_to_json_schema_1.zodToJsonSchema;
32
+ const jsonSchema = toSchema(opts.input, {
33
+ target: 'openApi3',
34
+ $refStrategy: 'none',
35
+ });
36
+ // zodToJsonSchema wraps the schema in a root object with $schema etc.
37
+ // Extract just the inner schema if it wrapped a single type.
38
+ const parameters = stripTopLevelMeta(jsonSchema);
39
+ return {
40
+ name: opts.name,
41
+ description: opts.description,
42
+ parameters,
43
+ execute: async (rawArgs, ctx) => {
44
+ const result = opts.input.safeParse(rawArgs);
45
+ if (!result.success) {
46
+ const issues = result.error.issues
47
+ .map(i => `${i.path.join('.') || 'root'}: ${i.message}`)
48
+ .join('; ');
49
+ return `Error: Invalid arguments for tool "${opts.name}" — ${issues}`;
50
+ }
51
+ return opts.execute(result.data, ctx);
52
+ },
53
+ };
54
+ }
55
+ // ── Helper ────────────────────────────────────────────────────────────────────
56
+ /** Remove top-level JSON Schema meta fields ($schema, definitions, etc.) */
57
+ function stripTopLevelMeta(schema) {
58
+ const { $schema, definitions, ...rest } = schema;
59
+ void $schema;
60
+ void definitions;
61
+ return rest;
62
+ }
63
+ //# sourceMappingURL=defineTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineTool.js","sourceRoot":"","sources":["../../src/tools/defineTool.ts"],"names":[],"mappings":";;;AAuCA,gCA6BC;AApED,6BAAwB;AAKf,kFALA,OAAC,OAKA;AAJV,2DAAqD;AAiBrD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,UAAU,CACtB,IAA8B;IAE9B,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,oCAAwF,CAAC;IAC1G,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;QACpC,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,MAAM;KACvB,CAAC,CAAC;IAEH,sEAAsE;IACtE,6DAA6D;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAEjD,OAAO;QACH,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU;QACV,OAAO,EAAE,KAAK,EAAE,OAAgB,EAAE,GAAqB,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;qBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;qBACvD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,OAAO,sCAAsC,IAAI,CAAC,IAAI,OAAO,MAAM,EAAE,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;KACJ,CAAC;AACN,CAAC;AAED,iFAAiF;AAEjF,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,MAA+B;IACtD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACjD,KAAK,OAAO,CAAC;IAAC,KAAK,WAAW,CAAC;IAC/B,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AgentEvent } from '../types';
2
+ import type { Transport, Unsubscribe } from './Transport';
3
+ export declare class CallbackTransport implements Transport {
4
+ private readonly onEvent;
5
+ private inputHandlers;
6
+ constructor(onEvent: (event: AgentEvent) => void);
7
+ emit(event: AgentEvent): void;
8
+ onInput(handler: (input: string) => void): Unsubscribe;
9
+ send(input: string): void;
10
+ close(): void;
11
+ }
12
+ //# sourceMappingURL=CallbackTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallbackTransport.d.ts","sourceRoot":"","sources":["../../src/transport/CallbackTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D,qBAAa,iBAAkB,YAAW,SAAS;IAGnC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,aAAa,CAAsC;gBAE9B,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;IAEjE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI7B,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;IAOtD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB,KAAK,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallbackTransport = void 0;
4
+ class CallbackTransport {
5
+ onEvent;
6
+ inputHandlers = [];
7
+ constructor(onEvent) {
8
+ this.onEvent = onEvent;
9
+ }
10
+ emit(event) {
11
+ this.onEvent(event);
12
+ }
13
+ onInput(handler) {
14
+ this.inputHandlers.push(handler);
15
+ return () => {
16
+ this.inputHandlers = this.inputHandlers.filter(h => h !== handler);
17
+ };
18
+ }
19
+ send(input) {
20
+ for (const h of this.inputHandlers)
21
+ h(input);
22
+ }
23
+ close() {
24
+ this.inputHandlers = [];
25
+ }
26
+ }
27
+ exports.CallbackTransport = CallbackTransport;
28
+ //# sourceMappingURL=CallbackTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallbackTransport.js","sourceRoot":"","sources":["../../src/transport/CallbackTransport.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAGG;IAFrB,aAAa,GAAmC,EAAE,CAAC;IAE3D,YAA6B,OAAoC;QAApC,YAAO,GAAP,OAAO,CAA6B;IAAG,CAAC;IAErE,IAAI,CAAC,KAAiB;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,OAAgC;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;QACvE,CAAC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,KAAa;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa;YAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;CACJ;AAvBD,8CAuBC"}
@@ -0,0 +1,9 @@
1
+ import type { AgentEvent } from '../types';
2
+ import type { Transport, Unsubscribe } from './Transport';
3
+ export declare class StdoutTransport implements Transport {
4
+ private rl;
5
+ emit(event: AgentEvent): void;
6
+ onInput(handler: (input: string) => void): Unsubscribe;
7
+ close(): void;
8
+ }
9
+ //# sourceMappingURL=StdoutTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StdoutTransport.d.ts","sourceRoot":"","sources":["../../src/transport/StdoutTransport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D,qBAAa,eAAgB,YAAW,SAAS;IAG7C,OAAO,CAAC,EAAE,CAAmC;IAE7C,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAI7B,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;IAYtD,KAAK,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.StdoutTransport = void 0;
37
+ const readline = __importStar(require("readline"));
38
+ class StdoutTransport {
39
+ // Singleton readline interface — prevents listener accumulation when
40
+ // onInput() is called multiple times (e.g. on workspace switch).
41
+ rl = null;
42
+ emit(event) {
43
+ process.stdout.write(JSON.stringify(event) + '\n');
44
+ }
45
+ onInput(handler) {
46
+ if (!this.rl) {
47
+ this.rl = readline.createInterface({ input: process.stdin });
48
+ }
49
+ const listener = (line) => {
50
+ const trimmed = line.trim();
51
+ if (trimmed)
52
+ handler(trimmed);
53
+ };
54
+ this.rl.on('line', listener);
55
+ return () => { this.rl?.off('line', listener); };
56
+ }
57
+ close() {
58
+ this.rl?.close();
59
+ this.rl = null;
60
+ }
61
+ }
62
+ exports.StdoutTransport = StdoutTransport;
63
+ //# sourceMappingURL=StdoutTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StdoutTransport.js","sourceRoot":"","sources":["../../src/transport/StdoutTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAIrC,MAAa,eAAe;IACxB,qEAAqE;IACrE,iEAAiE;IACzD,EAAE,GAA8B,IAAI,CAAC;IAE7C,IAAI,CAAC,KAAiB;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,OAAgC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO;gBAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK;QACD,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACnB,CAAC;CACJ;AAzBD,0CAyBC"}
@@ -0,0 +1,8 @@
1
+ import type { AgentEvent } from '../types';
2
+ export interface Transport {
3
+ emit(event: AgentEvent): void;
4
+ onInput(handler: (input: string) => void): Unsubscribe;
5
+ close(): void;
6
+ }
7
+ export type Unsubscribe = () => void;
8
+ //# sourceMappingURL=Transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../../src/transport/Transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,SAAS;IACtB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW,CAAC;IACvD,KAAK,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../src/transport/Transport.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export interface EventPayload {
2
+ source?: string;
3
+ data: unknown;
4
+ }
5
+ /** Process-wide typed pub/sub bus for cross-agent and external events. */
6
+ declare class GlobalEventBus {
7
+ private readonly emitter;
8
+ emit(topic: string, payload: EventPayload): void;
9
+ /** Subscribe to a topic. Returns an unsubscribe function. */
10
+ on(topic: string, listener: (payload: EventPayload) => void): () => void;
11
+ }
12
+ export declare const EventBus: GlobalEventBus;
13
+ export {};
14
+ //# sourceMappingURL=EventBus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/triggers/EventBus.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,0EAA0E;AAC1E,cAAM,cAAc;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIhD,6DAA6D;IAC7D,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;CAI3E;AAED,eAAO,MAAM,QAAQ,gBAAuB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventBus = void 0;
4
+ const events_1 = require("events");
5
+ /** Process-wide typed pub/sub bus for cross-agent and external events. */
6
+ class GlobalEventBus {
7
+ emitter = new events_1.EventEmitter();
8
+ emit(topic, payload) {
9
+ this.emitter.emit(topic, payload);
10
+ }
11
+ /** Subscribe to a topic. Returns an unsubscribe function. */
12
+ on(topic, listener) {
13
+ this.emitter.on(topic, listener);
14
+ return () => this.emitter.off(topic, listener);
15
+ }
16
+ }
17
+ exports.EventBus = new GlobalEventBus();
18
+ //# sourceMappingURL=EventBus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/triggers/EventBus.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAOtC,0EAA0E;AAC1E,MAAM,cAAc;IACC,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAC;IAE9C,IAAI,CAAC,KAAa,EAAE,OAAqB;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,6DAA6D;IAC7D,EAAE,CAAC,KAAa,EAAE,QAAyC;QACvD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;CACJ;AAEY,QAAA,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { AgentEngine } from '../engine/AgentEngine';
2
+ import type { Transport } from '../transport/Transport';
3
+ import type { TriggerConfig } from './types';
4
+ /**
5
+ * Manages all trigger listeners for an autonomous agent.
6
+ * Serializes concurrent trigger fires — if the agent is busy, incoming
7
+ * triggers are dropped with a warning (v1 behaviour; a queue can be added later).
8
+ */
9
+ export declare class TriggerManager {
10
+ private readonly engine;
11
+ private readonly triggers;
12
+ private readonly webhookPort;
13
+ private readonly transport;
14
+ private scheduledTasks;
15
+ private webhookServer;
16
+ private eventUnsubscribers;
17
+ private busy;
18
+ constructor(engine: AgentEngine, triggers: TriggerConfig[], webhookPort: number, transport: Transport);
19
+ start(): Promise<void>;
20
+ stop(): Promise<void>;
21
+ /** Fire an event on the shared EventBus (activates matching event triggers). */
22
+ emit(topic: string, data: unknown, source?: string): void;
23
+ private setupSchedule;
24
+ private setupWebhook;
25
+ private setupEvent;
26
+ private safeRun;
27
+ }
28
+ //# sourceMappingURL=TriggerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerManager.d.ts","sourceRoot":"","sources":["../../src/triggers/TriggerManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,KAAK,EACR,aAAa,EAIhB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,qBAAa,cAAc;IAOnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAT9B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,IAAI,CAAS;gBAGA,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,aAAa,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,SAAS;IAGnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,gFAAgF;IAChF,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;YAM3C,aAAa;IAqB3B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;YAYJ,OAAO;CAoBxB"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.TriggerManager = void 0;
37
+ const WebhookServer_1 = require("./WebhookServer");
38
+ const EventBus_1 = require("./EventBus");
39
+ /**
40
+ * Manages all trigger listeners for an autonomous agent.
41
+ * Serializes concurrent trigger fires — if the agent is busy, incoming
42
+ * triggers are dropped with a warning (v1 behaviour; a queue can be added later).
43
+ */
44
+ class TriggerManager {
45
+ engine;
46
+ triggers;
47
+ webhookPort;
48
+ transport;
49
+ scheduledTasks = [];
50
+ webhookServer = null;
51
+ eventUnsubscribers = [];
52
+ busy = false;
53
+ constructor(engine, triggers, webhookPort, transport) {
54
+ this.engine = engine;
55
+ this.triggers = triggers;
56
+ this.webhookPort = webhookPort;
57
+ this.transport = transport;
58
+ }
59
+ async start() {
60
+ const webhookTriggers = [];
61
+ for (const trigger of this.triggers) {
62
+ if (trigger.type === 'schedule')
63
+ await this.setupSchedule(trigger);
64
+ if (trigger.type === 'webhook')
65
+ webhookTriggers.push(trigger);
66
+ if (trigger.type === 'event')
67
+ this.setupEvent(trigger);
68
+ }
69
+ if (webhookTriggers.length > 0) {
70
+ this.webhookServer = new WebhookServer_1.WebhookServer(this.webhookPort);
71
+ for (const t of webhookTriggers)
72
+ this.setupWebhook(t);
73
+ await this.webhookServer.start();
74
+ this.transport.emit({
75
+ type: 'system', level: 'info',
76
+ text: `[Triggers] Webhook server listening on :${this.webhookPort}`,
77
+ });
78
+ }
79
+ }
80
+ async stop() {
81
+ for (const task of this.scheduledTasks)
82
+ task.stop();
83
+ this.scheduledTasks = [];
84
+ for (const unsub of this.eventUnsubscribers)
85
+ unsub();
86
+ this.eventUnsubscribers = [];
87
+ if (this.webhookServer) {
88
+ await this.webhookServer.stop();
89
+ this.webhookServer = null;
90
+ }
91
+ }
92
+ /** Fire an event on the shared EventBus (activates matching event triggers). */
93
+ emit(topic, data, source) {
94
+ EventBus_1.EventBus.emit(topic, { source, data });
95
+ }
96
+ // ── Private ────────────────────────────────────────────────────────────────
97
+ async setupSchedule(cfg) {
98
+ let cron;
99
+ try {
100
+ cron = await Promise.resolve().then(() => __importStar(require('node-cron')));
101
+ }
102
+ catch {
103
+ throw new Error('Schedule triggers require "node-cron". Run: npm install node-cron');
104
+ }
105
+ if (!cron.validate(cfg.cron)) {
106
+ throw new Error(`Invalid cron expression: "${cfg.cron}"`);
107
+ }
108
+ const task = cron.schedule(cfg.cron, () => {
109
+ void this.safeRun(cfg.task, `schedule(${cfg.cron})`);
110
+ }, {
111
+ timezone: cfg.timezone,
112
+ });
113
+ this.scheduledTasks.push(task);
114
+ }
115
+ setupWebhook(cfg) {
116
+ this.webhookServer.register(cfg.path, (body, headers) => {
117
+ const prompt = cfg.buildPrompt
118
+ ? cfg.buildPrompt(body, headers)
119
+ : `Webhook received at ${cfg.path}:\n${JSON.stringify(body, null, 2)}`;
120
+ void this.safeRun(prompt, `webhook(${cfg.path})`);
121
+ }, cfg.secret);
122
+ }
123
+ setupEvent(cfg) {
124
+ const unsub = EventBus_1.EventBus.on(cfg.topic, (payload) => {
125
+ if (cfg.source && payload.source !== cfg.source)
126
+ return;
127
+ const prompt = cfg.buildPrompt
128
+ ? cfg.buildPrompt(payload.data)
129
+ : `Event "${cfg.topic}"${payload.source ? ` from ${payload.source}` : ''}:\n${JSON.stringify(payload.data, null, 2)}`;
130
+ void this.safeRun(prompt, `event(${cfg.topic})`);
131
+ });
132
+ this.eventUnsubscribers.push(unsub);
133
+ }
134
+ async safeRun(prompt, source) {
135
+ if (this.busy) {
136
+ this.transport.emit({
137
+ type: 'system', level: 'warn',
138
+ text: `[Triggers] Agent busy — dropped trigger from ${source}`,
139
+ });
140
+ return;
141
+ }
142
+ this.busy = true;
143
+ try {
144
+ await this.engine.run(prompt);
145
+ }
146
+ catch (err) {
147
+ this.transport.emit({
148
+ type: 'error',
149
+ message: `Trigger "${source}" failed: ${err.message}`,
150
+ });
151
+ }
152
+ finally {
153
+ this.busy = false;
154
+ }
155
+ }
156
+ }
157
+ exports.TriggerManager = TriggerManager;
158
+ //# sourceMappingURL=TriggerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerManager.js","sourceRoot":"","sources":["../../src/triggers/TriggerManager.ts"],"names":[],"mappings":"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"}