@weavelogic/knowledge-graph-agent 0.2.0 → 0.4.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 (711) hide show
  1. package/README.md +972 -303
  2. package/dist/_virtual/_commonjsHelpers.js +7 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/additionalItems.js +5 -0
  5. package/dist/_virtual/additionalItems.js.map +1 -0
  6. package/dist/_virtual/additionalProperties.js +5 -0
  7. package/dist/_virtual/additionalProperties.js.map +1 -0
  8. package/dist/_virtual/ajv.js +6 -0
  9. package/dist/_virtual/ajv.js.map +1 -0
  10. package/dist/_virtual/ajv2.js +5 -0
  11. package/dist/_virtual/ajv2.js.map +1 -0
  12. package/dist/_virtual/allOf.js +5 -0
  13. package/dist/_virtual/allOf.js.map +1 -0
  14. package/dist/_virtual/anyOf.js +5 -0
  15. package/dist/_virtual/anyOf.js.map +1 -0
  16. package/dist/_virtual/applicability.js +5 -0
  17. package/dist/_virtual/applicability.js.map +1 -0
  18. package/dist/_virtual/boolSchema.js +5 -0
  19. package/dist/_virtual/boolSchema.js.map +1 -0
  20. package/dist/_virtual/code.js +5 -0
  21. package/dist/_virtual/code.js.map +1 -0
  22. package/dist/_virtual/code2.js +5 -0
  23. package/dist/_virtual/code2.js.map +1 -0
  24. package/dist/_virtual/const.js +5 -0
  25. package/dist/_virtual/const.js.map +1 -0
  26. package/dist/_virtual/contains.js +5 -0
  27. package/dist/_virtual/contains.js.map +1 -0
  28. package/dist/_virtual/core.js +5 -0
  29. package/dist/_virtual/core.js.map +1 -0
  30. package/dist/_virtual/dataType.js +5 -0
  31. package/dist/_virtual/dataType.js.map +1 -0
  32. package/dist/_virtual/defaults.js +5 -0
  33. package/dist/_virtual/defaults.js.map +1 -0
  34. package/dist/_virtual/dependencies.js +5 -0
  35. package/dist/_virtual/dependencies.js.map +1 -0
  36. package/dist/_virtual/draft7.js +5 -0
  37. package/dist/_virtual/draft7.js.map +1 -0
  38. package/dist/_virtual/enum.js +5 -0
  39. package/dist/_virtual/enum.js.map +1 -0
  40. package/dist/_virtual/equal.js +5 -0
  41. package/dist/_virtual/equal.js.map +1 -0
  42. package/dist/_virtual/errors.js +5 -0
  43. package/dist/_virtual/errors.js.map +1 -0
  44. package/dist/_virtual/format.js +5 -0
  45. package/dist/_virtual/format.js.map +1 -0
  46. package/dist/_virtual/formats.js +5 -0
  47. package/dist/_virtual/formats.js.map +1 -0
  48. package/dist/_virtual/id.js +5 -0
  49. package/dist/_virtual/id.js.map +1 -0
  50. package/dist/_virtual/if.js +5 -0
  51. package/dist/_virtual/if.js.map +1 -0
  52. package/dist/_virtual/index.js +8 -0
  53. package/dist/_virtual/index.js.map +1 -0
  54. package/dist/_virtual/index10.js +5 -0
  55. package/dist/_virtual/index10.js.map +1 -0
  56. package/dist/_virtual/index11.js +5 -0
  57. package/dist/_virtual/index11.js.map +1 -0
  58. package/dist/_virtual/index12.js +5 -0
  59. package/dist/_virtual/index12.js.map +1 -0
  60. package/dist/_virtual/index2.js +5 -0
  61. package/dist/_virtual/index2.js.map +1 -0
  62. package/dist/_virtual/index3.js +5 -0
  63. package/dist/_virtual/index3.js.map +1 -0
  64. package/dist/_virtual/index4.js +5 -0
  65. package/dist/_virtual/index4.js.map +1 -0
  66. package/dist/_virtual/index5.js +5 -0
  67. package/dist/_virtual/index5.js.map +1 -0
  68. package/dist/_virtual/index6.js +5 -0
  69. package/dist/_virtual/index6.js.map +1 -0
  70. package/dist/_virtual/index7.js +5 -0
  71. package/dist/_virtual/index7.js.map +1 -0
  72. package/dist/_virtual/index8.js +5 -0
  73. package/dist/_virtual/index8.js.map +1 -0
  74. package/dist/_virtual/index9.js +5 -0
  75. package/dist/_virtual/index9.js.map +1 -0
  76. package/dist/_virtual/items.js +5 -0
  77. package/dist/_virtual/items.js.map +1 -0
  78. package/dist/_virtual/items2020.js +5 -0
  79. package/dist/_virtual/items2020.js.map +1 -0
  80. package/dist/_virtual/keyword.js +5 -0
  81. package/dist/_virtual/keyword.js.map +1 -0
  82. package/dist/_virtual/limit.js +5 -0
  83. package/dist/_virtual/limit.js.map +1 -0
  84. package/dist/_virtual/limitItems.js +5 -0
  85. package/dist/_virtual/limitItems.js.map +1 -0
  86. package/dist/_virtual/limitLength.js +5 -0
  87. package/dist/_virtual/limitLength.js.map +1 -0
  88. package/dist/_virtual/limitNumber.js +5 -0
  89. package/dist/_virtual/limitNumber.js.map +1 -0
  90. package/dist/_virtual/limitProperties.js +5 -0
  91. package/dist/_virtual/limitProperties.js.map +1 -0
  92. package/dist/_virtual/metadata.js +5 -0
  93. package/dist/_virtual/metadata.js.map +1 -0
  94. package/dist/_virtual/multipleOf.js +5 -0
  95. package/dist/_virtual/multipleOf.js.map +1 -0
  96. package/dist/_virtual/names.js +5 -0
  97. package/dist/_virtual/names.js.map +1 -0
  98. package/dist/_virtual/not.js +5 -0
  99. package/dist/_virtual/not.js.map +1 -0
  100. package/dist/_virtual/oneOf.js +5 -0
  101. package/dist/_virtual/oneOf.js.map +1 -0
  102. package/dist/_virtual/pattern.js +5 -0
  103. package/dist/_virtual/pattern.js.map +1 -0
  104. package/dist/_virtual/patternProperties.js +5 -0
  105. package/dist/_virtual/patternProperties.js.map +1 -0
  106. package/dist/_virtual/prefixItems.js +5 -0
  107. package/dist/_virtual/prefixItems.js.map +1 -0
  108. package/dist/_virtual/properties.js +5 -0
  109. package/dist/_virtual/properties.js.map +1 -0
  110. package/dist/_virtual/propertyNames.js +5 -0
  111. package/dist/_virtual/propertyNames.js.map +1 -0
  112. package/dist/_virtual/ref.js +5 -0
  113. package/dist/_virtual/ref.js.map +1 -0
  114. package/dist/_virtual/ref_error.js +5 -0
  115. package/dist/_virtual/ref_error.js.map +1 -0
  116. package/dist/_virtual/required.js +5 -0
  117. package/dist/_virtual/required.js.map +1 -0
  118. package/dist/_virtual/resolve.js +5 -0
  119. package/dist/_virtual/resolve.js.map +1 -0
  120. package/dist/_virtual/rules.js +5 -0
  121. package/dist/_virtual/rules.js.map +1 -0
  122. package/dist/_virtual/scope.js +5 -0
  123. package/dist/_virtual/scope.js.map +1 -0
  124. package/dist/_virtual/subschema.js +5 -0
  125. package/dist/_virtual/subschema.js.map +1 -0
  126. package/dist/_virtual/thenElse.js +5 -0
  127. package/dist/_virtual/thenElse.js.map +1 -0
  128. package/dist/_virtual/types.js +5 -0
  129. package/dist/_virtual/types.js.map +1 -0
  130. package/dist/_virtual/ucs2length.js +5 -0
  131. package/dist/_virtual/ucs2length.js.map +1 -0
  132. package/dist/_virtual/uniqueItems.js +5 -0
  133. package/dist/_virtual/uniqueItems.js.map +1 -0
  134. package/dist/_virtual/uri.js +5 -0
  135. package/dist/_virtual/uri.js.map +1 -0
  136. package/dist/_virtual/util.js +5 -0
  137. package/dist/_virtual/util.js.map +1 -0
  138. package/dist/_virtual/validation_error.js +5 -0
  139. package/dist/_virtual/validation_error.js.map +1 -0
  140. package/dist/agents/analyst-agent.d.ts +230 -0
  141. package/dist/agents/analyst-agent.d.ts.map +1 -0
  142. package/dist/agents/analyst-agent.js +793 -0
  143. package/dist/agents/analyst-agent.js.map +1 -0
  144. package/dist/agents/architect-agent.d.ts +248 -0
  145. package/dist/agents/architect-agent.d.ts.map +1 -0
  146. package/dist/agents/architect-agent.js +685 -0
  147. package/dist/agents/architect-agent.js.map +1 -0
  148. package/dist/agents/base-agent.d.ts +169 -0
  149. package/dist/agents/base-agent.d.ts.map +1 -0
  150. package/dist/agents/base-agent.js +441 -0
  151. package/dist/agents/base-agent.js.map +1 -0
  152. package/dist/agents/coder-agent.d.ts +191 -0
  153. package/dist/agents/coder-agent.d.ts.map +1 -0
  154. package/dist/agents/coder-agent.js +1008 -0
  155. package/dist/agents/coder-agent.js.map +1 -0
  156. package/dist/agents/index.d.ts +18 -0
  157. package/dist/agents/index.d.ts.map +1 -0
  158. package/dist/agents/index.js +40 -0
  159. package/dist/agents/index.js.map +1 -0
  160. package/dist/agents/registry.d.ts +213 -0
  161. package/dist/agents/registry.d.ts.map +1 -0
  162. package/dist/agents/registry.js +419 -0
  163. package/dist/agents/registry.js.map +1 -0
  164. package/dist/agents/researcher-agent.d.ts +226 -0
  165. package/dist/agents/researcher-agent.d.ts.map +1 -0
  166. package/dist/agents/researcher-agent.js +572 -0
  167. package/dist/agents/researcher-agent.js.map +1 -0
  168. package/dist/agents/rules-engine.d.ts +320 -0
  169. package/dist/agents/rules-engine.d.ts.map +1 -0
  170. package/dist/agents/rules-engine.js +552 -0
  171. package/dist/agents/rules-engine.js.map +1 -0
  172. package/dist/agents/tester-agent.d.ts +219 -0
  173. package/dist/agents/tester-agent.d.ts.map +1 -0
  174. package/dist/agents/tester-agent.js +683 -0
  175. package/dist/agents/tester-agent.js.map +1 -0
  176. package/dist/agents/types.d.ts +425 -0
  177. package/dist/agents/types.d.ts.map +1 -0
  178. package/dist/agents/types.js +57 -0
  179. package/dist/agents/types.js.map +1 -0
  180. package/dist/audit/config.d.ts +150 -0
  181. package/dist/audit/config.d.ts.map +1 -0
  182. package/dist/audit/config.js +111 -0
  183. package/dist/audit/config.js.map +1 -0
  184. package/dist/audit/index.d.ts +38 -0
  185. package/dist/audit/index.d.ts.map +1 -0
  186. package/dist/audit/services/audit-chain.d.ts +276 -0
  187. package/dist/audit/services/audit-chain.d.ts.map +1 -0
  188. package/dist/audit/services/audit-chain.js +502 -0
  189. package/dist/audit/services/audit-chain.js.map +1 -0
  190. package/dist/audit/services/index.d.ts +11 -0
  191. package/dist/audit/services/index.d.ts.map +1 -0
  192. package/dist/audit/services/syndication.d.ts +334 -0
  193. package/dist/audit/services/syndication.d.ts.map +1 -0
  194. package/dist/audit/services/syndication.js +589 -0
  195. package/dist/audit/services/syndication.js.map +1 -0
  196. package/dist/audit/types.d.ts +453 -0
  197. package/dist/audit/types.d.ts.map +1 -0
  198. package/dist/caching/index.d.ts +55 -0
  199. package/dist/caching/index.d.ts.map +1 -0
  200. package/dist/caching/index.js +206 -0
  201. package/dist/caching/index.js.map +1 -0
  202. package/dist/caching/lru-cache.d.ts +254 -0
  203. package/dist/caching/lru-cache.d.ts.map +1 -0
  204. package/dist/caching/types.d.ts +95 -0
  205. package/dist/caching/types.d.ts.map +1 -0
  206. package/dist/chunking/chunker.d.ts +94 -0
  207. package/dist/chunking/chunker.d.ts.map +1 -0
  208. package/dist/chunking/index.d.ts +125 -0
  209. package/dist/chunking/index.d.ts.map +1 -0
  210. package/dist/chunking/index.js +283 -0
  211. package/dist/chunking/index.js.map +1 -0
  212. package/dist/chunking/types.d.ts +92 -0
  213. package/dist/chunking/types.d.ts.map +1 -0
  214. package/dist/cli/commands/audit.d.ts +21 -0
  215. package/dist/cli/commands/audit.d.ts.map +1 -0
  216. package/dist/cli/commands/audit.js +621 -0
  217. package/dist/cli/commands/audit.js.map +1 -0
  218. package/dist/cli/commands/commit.d.ts +11 -0
  219. package/dist/cli/commands/commit.d.ts.map +1 -0
  220. package/dist/cli/commands/commit.js +379 -0
  221. package/dist/cli/commands/commit.js.map +1 -0
  222. package/dist/cli/commands/config.d.ts +8 -0
  223. package/dist/cli/commands/config.d.ts.map +1 -0
  224. package/dist/cli/commands/config.js +107 -0
  225. package/dist/cli/commands/config.js.map +1 -0
  226. package/dist/cli/commands/cultivate.d.ts +16 -0
  227. package/dist/cli/commands/cultivate.d.ts.map +1 -0
  228. package/dist/cli/commands/cultivate.js +254 -0
  229. package/dist/cli/commands/cultivate.js.map +1 -0
  230. package/dist/cli/commands/diagnostics.d.ts +8 -0
  231. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  232. package/dist/cli/commands/diagnostics.js +140 -0
  233. package/dist/cli/commands/diagnostics.js.map +1 -0
  234. package/dist/cli/commands/generate.d.ts +13 -0
  235. package/dist/cli/commands/generate.d.ts.map +1 -0
  236. package/dist/cli/commands/init-primitives.d.ts +19 -0
  237. package/dist/cli/commands/init-primitives.d.ts.map +1 -0
  238. package/dist/cli/commands/init-primitives.js +208 -0
  239. package/dist/cli/commands/init-primitives.js.map +1 -0
  240. package/dist/cli/commands/sop.d.ts +14 -0
  241. package/dist/cli/commands/sop.d.ts.map +1 -0
  242. package/dist/cli/commands/sop.js +598 -0
  243. package/dist/cli/commands/sop.js.map +1 -0
  244. package/dist/cli/commands/vector.d.ts +14 -0
  245. package/dist/cli/commands/vector.d.ts.map +1 -0
  246. package/dist/cli/commands/vector.js +429 -0
  247. package/dist/cli/commands/vector.js.map +1 -0
  248. package/dist/cli/commands/workflow.d.ts +12 -0
  249. package/dist/cli/commands/workflow.d.ts.map +1 -0
  250. package/dist/cli/commands/workflow.js +471 -0
  251. package/dist/cli/commands/workflow.js.map +1 -0
  252. package/dist/cli/index.d.ts.map +1 -1
  253. package/dist/cli/index.js +66 -1
  254. package/dist/cli/index.js.map +1 -1
  255. package/dist/config/index.d.ts +153 -0
  256. package/dist/config/index.d.ts.map +1 -0
  257. package/dist/config/index.js +141 -0
  258. package/dist/config/index.js.map +1 -0
  259. package/dist/config/manager.d.ts +136 -0
  260. package/dist/config/manager.d.ts.map +1 -0
  261. package/dist/config/types.d.ts +127 -0
  262. package/dist/config/types.d.ts.map +1 -0
  263. package/dist/core/cache.d.ts +185 -0
  264. package/dist/core/cache.d.ts.map +1 -0
  265. package/dist/core/cache.js +435 -0
  266. package/dist/core/cache.js.map +1 -0
  267. package/dist/cultivation/deep-analyzer.d.ts +129 -0
  268. package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
  269. package/dist/cultivation/deep-analyzer.js +322 -0
  270. package/dist/cultivation/deep-analyzer.js.map +1 -0
  271. package/dist/cultivation/index.d.ts +13 -0
  272. package/dist/cultivation/index.d.ts.map +1 -0
  273. package/dist/cultivation/seed-generator.d.ts +92 -0
  274. package/dist/cultivation/seed-generator.d.ts.map +1 -0
  275. package/dist/cultivation/seed-generator.js +1033 -0
  276. package/dist/cultivation/seed-generator.js.map +1 -0
  277. package/dist/cultivation/types.d.ts +230 -0
  278. package/dist/cultivation/types.d.ts.map +1 -0
  279. package/dist/database/schemas/index.d.ts +85 -0
  280. package/dist/database/schemas/index.d.ts.map +1 -0
  281. package/dist/generators/claude-md.d.ts +7 -0
  282. package/dist/generators/claude-md.d.ts.map +1 -1
  283. package/dist/generators/claude-md.js.map +1 -1
  284. package/dist/generators/docs-init.d.ts +6 -0
  285. package/dist/generators/docs-init.d.ts.map +1 -1
  286. package/dist/generators/docs-init.js.map +1 -1
  287. package/dist/health/checks.d.ts +135 -0
  288. package/dist/health/checks.d.ts.map +1 -0
  289. package/dist/health/index.d.ts +119 -0
  290. package/dist/health/index.d.ts.map +1 -0
  291. package/dist/health/index.js +191 -0
  292. package/dist/health/index.js.map +1 -0
  293. package/dist/health/monitor.d.ts +146 -0
  294. package/dist/health/monitor.d.ts.map +1 -0
  295. package/dist/health/types.d.ts +135 -0
  296. package/dist/health/types.d.ts.map +1 -0
  297. package/dist/index.d.ts +32 -0
  298. package/dist/index.d.ts.map +1 -1
  299. package/dist/index.js +182 -1
  300. package/dist/index.js.map +1 -1
  301. package/dist/integrations/auto-commit.d.ts +175 -0
  302. package/dist/integrations/auto-commit.d.ts.map +1 -0
  303. package/dist/integrations/auto-commit.js +399 -0
  304. package/dist/integrations/auto-commit.js.map +1 -0
  305. package/dist/integrations/git.d.ts +299 -0
  306. package/dist/integrations/git.d.ts.map +1 -0
  307. package/dist/integrations/git.js +465 -0
  308. package/dist/integrations/git.js.map +1 -0
  309. package/dist/mcp-server/bin.d.ts +11 -0
  310. package/dist/mcp-server/bin.d.ts.map +1 -0
  311. package/dist/mcp-server/handlers/index.d.ts +57 -0
  312. package/dist/mcp-server/handlers/index.d.ts.map +1 -0
  313. package/dist/mcp-server/handlers/index.js +235 -0
  314. package/dist/mcp-server/handlers/index.js.map +1 -0
  315. package/dist/mcp-server/index.d.ts +28 -0
  316. package/dist/mcp-server/index.d.ts.map +1 -0
  317. package/dist/mcp-server/server.d.ts +133 -0
  318. package/dist/mcp-server/server.d.ts.map +1 -0
  319. package/dist/mcp-server/server.js +280 -0
  320. package/dist/mcp-server/server.js.map +1 -0
  321. package/dist/mcp-server/tools/agents/index.d.ts +10 -0
  322. package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
  323. package/dist/mcp-server/tools/agents/list.d.ts +19 -0
  324. package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
  325. package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
  326. package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
  327. package/dist/mcp-server/tools/audit/checkpoint.d.ts +58 -0
  328. package/dist/mcp-server/tools/audit/checkpoint.d.ts.map +1 -0
  329. package/dist/mcp-server/tools/audit/checkpoint.js +73 -0
  330. package/dist/mcp-server/tools/audit/checkpoint.js.map +1 -0
  331. package/dist/mcp-server/tools/audit/index.d.ts +53 -0
  332. package/dist/mcp-server/tools/audit/index.d.ts.map +1 -0
  333. package/dist/mcp-server/tools/audit/index.js +12 -0
  334. package/dist/mcp-server/tools/audit/index.js.map +1 -0
  335. package/dist/mcp-server/tools/audit/query.d.ts +58 -0
  336. package/dist/mcp-server/tools/audit/query.d.ts.map +1 -0
  337. package/dist/mcp-server/tools/audit/query.js +125 -0
  338. package/dist/mcp-server/tools/audit/query.js.map +1 -0
  339. package/dist/mcp-server/tools/audit/sync.d.ts +58 -0
  340. package/dist/mcp-server/tools/audit/sync.d.ts.map +1 -0
  341. package/dist/mcp-server/tools/audit/sync.js +126 -0
  342. package/dist/mcp-server/tools/audit/sync.js.map +1 -0
  343. package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
  344. package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
  345. package/dist/mcp-server/tools/graph/index.d.ts +11 -0
  346. package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
  347. package/dist/mcp-server/tools/graph/query.d.ts +22 -0
  348. package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
  349. package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
  350. package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
  351. package/dist/mcp-server/tools/health.d.ts +21 -0
  352. package/dist/mcp-server/tools/health.d.ts.map +1 -0
  353. package/dist/mcp-server/tools/index.d.ts +16 -0
  354. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  355. package/dist/mcp-server/tools/registry.d.ts +90 -0
  356. package/dist/mcp-server/tools/registry.d.ts.map +1 -0
  357. package/dist/mcp-server/tools/registry.js +753 -0
  358. package/dist/mcp-server/tools/registry.js.map +1 -0
  359. package/dist/mcp-server/tools/search/index.d.ts +10 -0
  360. package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
  361. package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
  362. package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
  363. package/dist/mcp-server/tools/search/tags.d.ts +22 -0
  364. package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
  365. package/dist/mcp-server/tools/vector/index.d.ts +12 -0
  366. package/dist/mcp-server/tools/vector/index.d.ts.map +1 -0
  367. package/dist/mcp-server/tools/vector/index.js +12 -0
  368. package/dist/mcp-server/tools/vector/index.js.map +1 -0
  369. package/dist/mcp-server/tools/vector/search.d.ts +41 -0
  370. package/dist/mcp-server/tools/vector/search.d.ts.map +1 -0
  371. package/dist/mcp-server/tools/vector/search.js +224 -0
  372. package/dist/mcp-server/tools/vector/search.js.map +1 -0
  373. package/dist/mcp-server/tools/vector/trajectory.d.ts +39 -0
  374. package/dist/mcp-server/tools/vector/trajectory.d.ts.map +1 -0
  375. package/dist/mcp-server/tools/vector/trajectory.js +170 -0
  376. package/dist/mcp-server/tools/vector/trajectory.js.map +1 -0
  377. package/dist/mcp-server/tools/vector/upsert.d.ts +44 -0
  378. package/dist/mcp-server/tools/vector/upsert.d.ts.map +1 -0
  379. package/dist/mcp-server/tools/vector/upsert.js +175 -0
  380. package/dist/mcp-server/tools/vector/upsert.js.map +1 -0
  381. package/dist/mcp-server/tools/workflow/index.d.ts +29 -0
  382. package/dist/mcp-server/tools/workflow/index.d.ts.map +1 -0
  383. package/dist/mcp-server/tools/workflow/index.js +12 -0
  384. package/dist/mcp-server/tools/workflow/index.js.map +1 -0
  385. package/dist/mcp-server/tools/workflow/list.d.ts +41 -0
  386. package/dist/mcp-server/tools/workflow/list.d.ts.map +1 -0
  387. package/dist/mcp-server/tools/workflow/list.js +195 -0
  388. package/dist/mcp-server/tools/workflow/list.js.map +1 -0
  389. package/dist/mcp-server/tools/workflow/start.d.ts +40 -0
  390. package/dist/mcp-server/tools/workflow/start.d.ts.map +1 -0
  391. package/dist/mcp-server/tools/workflow/start.js +165 -0
  392. package/dist/mcp-server/tools/workflow/start.js.map +1 -0
  393. package/dist/mcp-server/tools/workflow/status.d.ts +38 -0
  394. package/dist/mcp-server/tools/workflow/status.d.ts.map +1 -0
  395. package/dist/mcp-server/tools/workflow/status.js +97 -0
  396. package/dist/mcp-server/tools/workflow/status.js.map +1 -0
  397. package/dist/mcp-server/types/index.d.ts +286 -0
  398. package/dist/mcp-server/types/index.d.ts.map +1 -0
  399. package/dist/memory/index.d.ts +10 -0
  400. package/dist/memory/index.d.ts.map +1 -0
  401. package/dist/memory/vault-sync.d.ts +212 -0
  402. package/dist/memory/vault-sync.d.ts.map +1 -0
  403. package/dist/memory/vault-sync.js +463 -0
  404. package/dist/memory/vault-sync.js.map +1 -0
  405. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
  406. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  407. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
  408. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  409. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
  410. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  411. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
  412. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  413. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
  414. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  415. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
  416. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  417. package/dist/node_modules/ajv/dist/ajv.js +84 -0
  418. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  419. package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
  420. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  421. package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
  422. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  423. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
  424. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  425. package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
  426. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  427. package/dist/node_modules/ajv/dist/compile/index.js +234 -0
  428. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  429. package/dist/node_modules/ajv/dist/compile/names.js +44 -0
  430. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  431. package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
  432. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  433. package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
  434. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  435. package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
  436. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  437. package/dist/node_modules/ajv/dist/compile/util.js +173 -0
  438. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  439. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
  440. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  441. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
  442. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  443. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
  444. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  445. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
  446. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  447. package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
  448. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  449. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
  450. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  451. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
  452. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  453. package/dist/node_modules/ajv/dist/core.js +628 -0
  454. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  455. package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
  456. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  457. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
  458. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  459. package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
  460. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  461. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
  462. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  463. package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
  464. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  465. package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
  466. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  467. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
  468. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  469. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
  470. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  471. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
  472. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  473. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
  474. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  475. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
  476. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  477. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
  478. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  479. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
  480. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  481. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
  482. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  483. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
  484. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  485. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
  486. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  487. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
  488. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  489. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  490. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  491. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
  492. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  493. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
  494. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  495. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
  496. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  497. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
  498. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  499. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
  500. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  501. package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
  502. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  503. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
  504. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  505. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
  506. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  507. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
  508. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  509. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
  510. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  511. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
  512. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  513. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
  514. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  515. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
  516. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  517. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
  518. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  519. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
  520. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  521. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
  522. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  523. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
  524. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  525. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
  526. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  527. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
  528. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  529. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
  530. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  531. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
  532. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  533. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
  534. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  535. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
  536. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  537. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
  538. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  539. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
  540. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  541. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
  542. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  543. package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
  544. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  545. package/dist/node_modules/ajv-formats/dist/index.js +51 -0
  546. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  547. package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
  548. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  549. package/dist/node_modules/fast-deep-equal/index.js +39 -0
  550. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  551. package/dist/node_modules/fast-uri/index.js +261 -0
  552. package/dist/node_modules/fast-uri/index.js.map +1 -0
  553. package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
  554. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  555. package/dist/node_modules/fast-uri/lib/utils.js +261 -0
  556. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  557. package/dist/node_modules/json-schema-traverse/index.js +92 -0
  558. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  559. package/dist/node_modules/zod/v4/classic/errors.js +37 -0
  560. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  561. package/dist/node_modules/zod/v4/classic/iso.js +43 -0
  562. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  563. package/dist/node_modules/zod/v4/classic/parse.js +13 -0
  564. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  565. package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
  566. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  567. package/dist/node_modules/zod/v4/core/api.js +492 -0
  568. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  569. package/dist/node_modules/zod/v4/core/checks.js +405 -0
  570. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  571. package/dist/node_modules/zod/v4/core/core.js +58 -0
  572. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  573. package/dist/node_modules/zod/v4/core/doc.js +38 -0
  574. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  575. package/dist/node_modules/zod/v4/core/errors.js +82 -0
  576. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  577. package/dist/node_modules/zod/v4/core/parse.js +60 -0
  578. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  579. package/dist/node_modules/zod/v4/core/regexes.js +87 -0
  580. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  581. package/dist/node_modules/zod/v4/core/registries.js +52 -0
  582. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  583. package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
  584. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  585. package/dist/node_modules/zod/v4/core/util.js +341 -0
  586. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  587. package/dist/node_modules/zod/v4/core/versions.js +9 -0
  588. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  589. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
  590. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  591. package/dist/reasoning/index.d.ts +74 -0
  592. package/dist/reasoning/index.d.ts.map +1 -0
  593. package/dist/reasoning/index.js +124 -0
  594. package/dist/reasoning/index.js.map +1 -0
  595. package/dist/reasoning/tracker.d.ts +210 -0
  596. package/dist/reasoning/tracker.d.ts.map +1 -0
  597. package/dist/reasoning/types.d.ts +146 -0
  598. package/dist/reasoning/types.d.ts.map +1 -0
  599. package/dist/recovery/backup.d.ts +110 -0
  600. package/dist/recovery/backup.d.ts.map +1 -0
  601. package/dist/recovery/index.d.ts +70 -0
  602. package/dist/recovery/index.d.ts.map +1 -0
  603. package/dist/recovery/index.js +186 -0
  604. package/dist/recovery/index.js.map +1 -0
  605. package/dist/recovery/integrity.d.ts +74 -0
  606. package/dist/recovery/integrity.d.ts.map +1 -0
  607. package/dist/recovery/types.d.ts +94 -0
  608. package/dist/recovery/types.d.ts.map +1 -0
  609. package/dist/services/index.d.ts +130 -0
  610. package/dist/services/index.d.ts.map +1 -0
  611. package/dist/services/index.js +134 -0
  612. package/dist/services/index.js.map +1 -0
  613. package/dist/services/manager.d.ts +140 -0
  614. package/dist/services/manager.d.ts.map +1 -0
  615. package/dist/services/types.d.ts +106 -0
  616. package/dist/services/types.d.ts.map +1 -0
  617. package/dist/services/watchers.d.ts +95 -0
  618. package/dist/services/watchers.d.ts.map +1 -0
  619. package/dist/sops/compliance-checker.d.ts +83 -0
  620. package/dist/sops/compliance-checker.d.ts.map +1 -0
  621. package/dist/sops/compliance-checker.js +399 -0
  622. package/dist/sops/compliance-checker.js.map +1 -0
  623. package/dist/sops/gap-analyzer.d.ts +124 -0
  624. package/dist/sops/gap-analyzer.d.ts.map +1 -0
  625. package/dist/sops/gap-analyzer.js +313 -0
  626. package/dist/sops/gap-analyzer.js.map +1 -0
  627. package/dist/sops/index.d.ts +14 -0
  628. package/dist/sops/index.d.ts.map +1 -0
  629. package/dist/sops/overlay-manager.d.ts +115 -0
  630. package/dist/sops/overlay-manager.d.ts.map +1 -0
  631. package/dist/sops/overlay-manager.js +394 -0
  632. package/dist/sops/overlay-manager.js.map +1 -0
  633. package/dist/sops/registry.d.ts +73 -0
  634. package/dist/sops/registry.d.ts.map +1 -0
  635. package/dist/sops/registry.js +919 -0
  636. package/dist/sops/registry.js.map +1 -0
  637. package/dist/sops/types.d.ts +377 -0
  638. package/dist/sops/types.d.ts.map +1 -0
  639. package/dist/sops/types.js +46 -0
  640. package/dist/sops/types.js.map +1 -0
  641. package/dist/utils/error-recovery.d.ts +230 -0
  642. package/dist/utils/error-recovery.d.ts.map +1 -0
  643. package/dist/utils/error-recovery.js +228 -0
  644. package/dist/utils/error-recovery.js.map +1 -0
  645. package/dist/utils/error-taxonomy.d.ts +149 -0
  646. package/dist/utils/error-taxonomy.d.ts.map +1 -0
  647. package/dist/utils/error-taxonomy.js +260 -0
  648. package/dist/utils/error-taxonomy.js.map +1 -0
  649. package/dist/utils/index.d.ts +11 -0
  650. package/dist/utils/index.d.ts.map +1 -0
  651. package/dist/utils/logger.d.ts +139 -0
  652. package/dist/utils/logger.d.ts.map +1 -0
  653. package/dist/utils/logger.js +311 -0
  654. package/dist/utils/logger.js.map +1 -0
  655. package/dist/vector/config.d.ts +300 -0
  656. package/dist/vector/config.d.ts.map +1 -0
  657. package/dist/vector/config.js +124 -0
  658. package/dist/vector/config.js.map +1 -0
  659. package/dist/vector/index.d.ts +50 -0
  660. package/dist/vector/index.d.ts.map +1 -0
  661. package/dist/vector/services/index.d.ts +13 -0
  662. package/dist/vector/services/index.d.ts.map +1 -0
  663. package/dist/vector/services/trajectory-tracker.d.ts +405 -0
  664. package/dist/vector/services/trajectory-tracker.d.ts.map +1 -0
  665. package/dist/vector/services/trajectory-tracker.js +445 -0
  666. package/dist/vector/services/trajectory-tracker.js.map +1 -0
  667. package/dist/vector/services/vector-store.d.ts +339 -0
  668. package/dist/vector/services/vector-store.d.ts.map +1 -0
  669. package/dist/vector/services/vector-store.js +748 -0
  670. package/dist/vector/services/vector-store.js.map +1 -0
  671. package/dist/vector/types.d.ts +677 -0
  672. package/dist/vector/types.d.ts.map +1 -0
  673. package/dist/workflow/adapters/goap-adapter.d.ts +196 -0
  674. package/dist/workflow/adapters/goap-adapter.d.ts.map +1 -0
  675. package/dist/workflow/adapters/goap-adapter.js +706 -0
  676. package/dist/workflow/adapters/goap-adapter.js.map +1 -0
  677. package/dist/workflow/adapters/index.d.ts +10 -0
  678. package/dist/workflow/adapters/index.d.ts.map +1 -0
  679. package/dist/workflow/config.d.ts +135 -0
  680. package/dist/workflow/config.d.ts.map +1 -0
  681. package/dist/workflow/config.js +92 -0
  682. package/dist/workflow/config.js.map +1 -0
  683. package/dist/workflow/handlers/index.d.ts +9 -0
  684. package/dist/workflow/handlers/index.d.ts.map +1 -0
  685. package/dist/workflow/handlers/webhook-handlers.d.ts +397 -0
  686. package/dist/workflow/handlers/webhook-handlers.d.ts.map +1 -0
  687. package/dist/workflow/handlers/webhook-handlers.js +454 -0
  688. package/dist/workflow/handlers/webhook-handlers.js.map +1 -0
  689. package/dist/workflow/index.d.ts +42 -0
  690. package/dist/workflow/index.d.ts.map +1 -0
  691. package/dist/workflow/services/index.d.ts +9 -0
  692. package/dist/workflow/services/index.d.ts.map +1 -0
  693. package/dist/workflow/services/workflow-service.d.ts +318 -0
  694. package/dist/workflow/services/workflow-service.d.ts.map +1 -0
  695. package/dist/workflow/services/workflow-service.js +577 -0
  696. package/dist/workflow/services/workflow-service.js.map +1 -0
  697. package/dist/workflow/types.d.ts +470 -0
  698. package/dist/workflow/types.d.ts.map +1 -0
  699. package/dist/workflow/workflows/realtime-collab.d.ts +245 -0
  700. package/dist/workflow/workflows/realtime-collab.d.ts.map +1 -0
  701. package/dist/workflows/index.d.ts +11 -0
  702. package/dist/workflows/index.d.ts.map +1 -0
  703. package/dist/workflows/registry.d.ts +118 -0
  704. package/dist/workflows/registry.d.ts.map +1 -0
  705. package/dist/workflows/registry.js +575 -0
  706. package/dist/workflows/registry.js.map +1 -0
  707. package/dist/workflows/types.d.ts +322 -0
  708. package/dist/workflows/types.d.ts.map +1 -0
  709. package/dist/workflows/types.js +16 -0
  710. package/dist/workflows/types.js.map +1 -0
  711. package/package.json +1 -1
@@ -0,0 +1,552 @@
1
+ import { createLogger } from "../utils/logger.js";
2
+ class CircularBuffer {
3
+ constructor(capacity) {
4
+ this.capacity = capacity;
5
+ this.buffer = new Array(capacity);
6
+ }
7
+ buffer;
8
+ head = 0;
9
+ tail = 0;
10
+ count = 0;
11
+ push(item) {
12
+ this.buffer[this.tail] = item;
13
+ this.tail = (this.tail + 1) % this.capacity;
14
+ if (this.count < this.capacity) {
15
+ this.count++;
16
+ } else {
17
+ this.head = (this.head + 1) % this.capacity;
18
+ }
19
+ }
20
+ toArray() {
21
+ const result = [];
22
+ for (let i = 0; i < this.count; i++) {
23
+ const idx = (this.head + i) % this.capacity;
24
+ const item = this.buffer[idx];
25
+ if (item !== void 0) {
26
+ result.push(item);
27
+ }
28
+ }
29
+ return result;
30
+ }
31
+ getLatest(n) {
32
+ const all = this.toArray();
33
+ return all.slice(-n);
34
+ }
35
+ clear() {
36
+ this.buffer = new Array(this.capacity);
37
+ this.head = 0;
38
+ this.tail = 0;
39
+ this.count = 0;
40
+ }
41
+ get size() {
42
+ return this.count;
43
+ }
44
+ }
45
+ const PRIORITY_ORDER = {
46
+ critical: 0,
47
+ high: 1,
48
+ normal: 2,
49
+ low: 3
50
+ };
51
+ class RulesEngine {
52
+ rules = /* @__PURE__ */ new Map();
53
+ executionLogs;
54
+ ruleStats = /* @__PURE__ */ new Map();
55
+ triggerStats = /* @__PURE__ */ new Map();
56
+ activeExecutions = 0;
57
+ logger;
58
+ config;
59
+ constructor(config = {}) {
60
+ this.config = {
61
+ maxConcurrency: config.maxConcurrency ?? 10,
62
+ defaultTimeout: config.defaultTimeout ?? 3e4,
63
+ logBufferSize: config.logBufferSize ?? 1e3,
64
+ verbose: config.verbose ?? false,
65
+ logger: config.logger ?? createLogger("RulesEngine")
66
+ };
67
+ this.logger = this.config.logger;
68
+ this.executionLogs = new CircularBuffer(this.config.logBufferSize);
69
+ const allTriggers = ["file:add", "file:change", "file:unlink", "graph:update", "agent:complete", "manual"];
70
+ for (const trigger of allTriggers) {
71
+ this.triggerStats.set(trigger, { totalExecutions: 0, successCount: 0, totalTime: 0 });
72
+ }
73
+ }
74
+ // --------------------------------------------------------------------------
75
+ // Rule Management
76
+ // --------------------------------------------------------------------------
77
+ /**
78
+ * Register a new rule
79
+ */
80
+ registerRule(rule) {
81
+ if (this.rules.has(rule.id)) {
82
+ this.logger.warn(`Rule with id '${rule.id}' already exists, replacing`, { ruleId: rule.id });
83
+ }
84
+ const normalizedRule = {
85
+ ...rule,
86
+ priority: rule.priority ?? "normal",
87
+ enabled: rule.enabled ?? true,
88
+ timeout: rule.timeout ?? this.config.defaultTimeout,
89
+ continueOnFailure: rule.continueOnFailure ?? true
90
+ };
91
+ this.rules.set(rule.id, normalizedRule);
92
+ this.ruleStats.set(rule.id, {
93
+ ruleId: rule.id,
94
+ ruleName: rule.name,
95
+ totalExecutions: 0,
96
+ successCount: 0,
97
+ failureCount: 0,
98
+ skippedCount: 0,
99
+ averageExecutionTime: 0,
100
+ minExecutionTime: Infinity,
101
+ maxExecutionTime: 0
102
+ });
103
+ if (this.config.verbose) {
104
+ this.logger.debug(`Registered rule: ${rule.name}`, {
105
+ ruleId: rule.id,
106
+ triggers: rule.triggers,
107
+ priority: normalizedRule.priority
108
+ });
109
+ }
110
+ }
111
+ /**
112
+ * Register multiple rules at once
113
+ */
114
+ registerRules(rules) {
115
+ for (const rule of rules) {
116
+ this.registerRule(rule);
117
+ }
118
+ }
119
+ /**
120
+ * Unregister a rule by ID
121
+ */
122
+ unregisterRule(ruleId) {
123
+ const existed = this.rules.delete(ruleId);
124
+ if (existed) {
125
+ this.logger.debug(`Unregistered rule: ${ruleId}`);
126
+ }
127
+ return existed;
128
+ }
129
+ /**
130
+ * Get a rule by ID
131
+ */
132
+ getRule(ruleId) {
133
+ return this.rules.get(ruleId);
134
+ }
135
+ /**
136
+ * Get all registered rules
137
+ */
138
+ getAllRules() {
139
+ return Array.from(this.rules.values());
140
+ }
141
+ /**
142
+ * Get rules by trigger type
143
+ */
144
+ getRulesByTrigger(trigger) {
145
+ return Array.from(this.rules.values()).filter(
146
+ (rule) => rule.enabled && rule.triggers.includes(trigger)
147
+ );
148
+ }
149
+ /**
150
+ * Enable a rule
151
+ */
152
+ enableRule(ruleId) {
153
+ const rule = this.rules.get(ruleId);
154
+ if (rule) {
155
+ rule.enabled = true;
156
+ return true;
157
+ }
158
+ return false;
159
+ }
160
+ /**
161
+ * Disable a rule
162
+ */
163
+ disableRule(ruleId) {
164
+ const rule = this.rules.get(ruleId);
165
+ if (rule) {
166
+ rule.enabled = false;
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+ // --------------------------------------------------------------------------
172
+ // Rule Execution
173
+ // --------------------------------------------------------------------------
174
+ /**
175
+ * Trigger rule execution for an event
176
+ */
177
+ async trigger(trigger, context = {}) {
178
+ const fullContext = {
179
+ trigger,
180
+ timestamp: /* @__PURE__ */ new Date(),
181
+ ...context,
182
+ engine: this
183
+ };
184
+ const applicableRules = this.getRulesByTrigger(trigger).sort(
185
+ (a, b) => PRIORITY_ORDER[a.priority ?? "normal"] - PRIORITY_ORDER[b.priority ?? "normal"]
186
+ );
187
+ if (applicableRules.length === 0) {
188
+ if (this.config.verbose) {
189
+ this.logger.debug(`No rules to execute for trigger: ${trigger}`);
190
+ }
191
+ return [];
192
+ }
193
+ this.logger.info(`Executing ${applicableRules.length} rules for trigger: ${trigger}`, {
194
+ trigger,
195
+ ruleCount: applicableRules.length
196
+ });
197
+ const logs = [];
198
+ const executing = [];
199
+ for (const rule of applicableRules) {
200
+ while (this.activeExecutions >= this.config.maxConcurrency) {
201
+ await Promise.race(executing);
202
+ }
203
+ const execution = this.executeRule(rule, fullContext).then((log) => {
204
+ logs.push(log);
205
+ const idx = executing.indexOf(execution);
206
+ if (idx > -1) executing.splice(idx, 1);
207
+ });
208
+ executing.push(execution);
209
+ }
210
+ await Promise.all(executing);
211
+ return logs;
212
+ }
213
+ /**
214
+ * Execute a single rule
215
+ */
216
+ async executeRule(rule, context) {
217
+ const startTime = Date.now();
218
+ this.activeExecutions++;
219
+ const log = {
220
+ ruleId: rule.id,
221
+ ruleName: rule.name,
222
+ status: "running",
223
+ trigger: context.trigger,
224
+ startedAt: /* @__PURE__ */ new Date(),
225
+ contextSnapshot: {
226
+ filePath: context.filePath,
227
+ trigger: context.trigger,
228
+ timestamp: context.timestamp
229
+ }
230
+ };
231
+ try {
232
+ if (rule.condition) {
233
+ log.conditionEvaluated = true;
234
+ const conditionResult = await this.withTimeout(
235
+ Promise.resolve(rule.condition(context)),
236
+ rule.timeout ?? this.config.defaultTimeout,
237
+ `Condition evaluation for rule '${rule.name}'`
238
+ );
239
+ log.conditionResult = conditionResult;
240
+ if (!conditionResult) {
241
+ log.status = "skipped";
242
+ log.completedAt = /* @__PURE__ */ new Date();
243
+ log.duration = Date.now() - startTime;
244
+ this.updateStats(rule, log, false);
245
+ this.executionLogs.push(log);
246
+ this.activeExecutions--;
247
+ if (this.config.verbose) {
248
+ this.logger.debug(`Rule skipped (condition false): ${rule.name}`, { ruleId: rule.id });
249
+ }
250
+ return log;
251
+ }
252
+ }
253
+ await this.withTimeout(
254
+ Promise.resolve(rule.action(context)),
255
+ rule.timeout ?? this.config.defaultTimeout,
256
+ `Action execution for rule '${rule.name}'`
257
+ );
258
+ log.status = "success";
259
+ log.completedAt = /* @__PURE__ */ new Date();
260
+ log.duration = Date.now() - startTime;
261
+ if (this.config.verbose) {
262
+ this.logger.debug(`Rule executed successfully: ${rule.name}`, {
263
+ ruleId: rule.id,
264
+ duration: log.duration
265
+ });
266
+ }
267
+ } catch (error) {
268
+ log.status = "failure";
269
+ log.completedAt = /* @__PURE__ */ new Date();
270
+ log.duration = Date.now() - startTime;
271
+ log.error = error instanceof Error ? error.message : String(error);
272
+ this.logger.error(`Rule execution failed: ${rule.name}`, error instanceof Error ? error : void 0, {
273
+ ruleId: rule.id,
274
+ trigger: context.trigger
275
+ });
276
+ if (!rule.continueOnFailure) {
277
+ throw error;
278
+ }
279
+ } finally {
280
+ this.activeExecutions--;
281
+ this.updateStats(rule, log, log.status === "success");
282
+ this.executionLogs.push(log);
283
+ }
284
+ return log;
285
+ }
286
+ /**
287
+ * Execute a rule by ID with custom context
288
+ */
289
+ async executeRuleById(ruleId, context = {}) {
290
+ const rule = this.rules.get(ruleId);
291
+ if (!rule) {
292
+ this.logger.warn(`Rule not found: ${ruleId}`);
293
+ return null;
294
+ }
295
+ const fullContext = {
296
+ trigger: "manual",
297
+ timestamp: /* @__PURE__ */ new Date(),
298
+ ...context,
299
+ engine: this
300
+ };
301
+ return this.executeRule(rule, fullContext);
302
+ }
303
+ /**
304
+ * Wrap a promise with a timeout
305
+ */
306
+ async withTimeout(promise, timeoutMs, operation) {
307
+ let timeoutId;
308
+ const timeoutPromise = new Promise((_, reject) => {
309
+ timeoutId = setTimeout(() => {
310
+ reject(new Error(`Timeout after ${timeoutMs}ms: ${operation}`));
311
+ }, timeoutMs);
312
+ });
313
+ try {
314
+ const result = await Promise.race([promise, timeoutPromise]);
315
+ clearTimeout(timeoutId);
316
+ return result;
317
+ } catch (error) {
318
+ clearTimeout(timeoutId);
319
+ throw error;
320
+ }
321
+ }
322
+ // --------------------------------------------------------------------------
323
+ // Statistics and Metrics
324
+ // --------------------------------------------------------------------------
325
+ /**
326
+ * Update statistics after rule execution
327
+ */
328
+ updateStats(rule, log, success) {
329
+ const stats = this.ruleStats.get(rule.id);
330
+ if (!stats) return;
331
+ stats.totalExecutions++;
332
+ stats.lastExecutedAt = log.completedAt;
333
+ if (log.status === "skipped") {
334
+ stats.skippedCount++;
335
+ } else if (success) {
336
+ stats.successCount++;
337
+ stats.lastSuccessAt = log.completedAt;
338
+ } else {
339
+ stats.failureCount++;
340
+ stats.lastFailureAt = log.completedAt;
341
+ }
342
+ if (log.duration !== void 0 && log.status !== "skipped") {
343
+ const totalTime = stats.averageExecutionTime * (stats.totalExecutions - stats.skippedCount - 1);
344
+ const execCount = stats.totalExecutions - stats.skippedCount;
345
+ stats.averageExecutionTime = execCount > 0 ? (totalTime + log.duration) / execCount : 0;
346
+ stats.minExecutionTime = Math.min(stats.minExecutionTime, log.duration);
347
+ stats.maxExecutionTime = Math.max(stats.maxExecutionTime, log.duration);
348
+ }
349
+ const triggerStat = this.triggerStats.get(log.trigger);
350
+ if (triggerStat) {
351
+ triggerStat.totalExecutions++;
352
+ if (success) triggerStat.successCount++;
353
+ if (log.duration) triggerStat.totalTime += log.duration;
354
+ }
355
+ }
356
+ /**
357
+ * Get statistics for a specific rule
358
+ */
359
+ getRuleStatistics(ruleId) {
360
+ return this.ruleStats.get(ruleId);
361
+ }
362
+ /**
363
+ * Get engine-wide statistics
364
+ */
365
+ getStatistics() {
366
+ const allRules = Array.from(this.rules.values());
367
+ const enabledRules = allRules.filter((r) => r.enabled);
368
+ let totalExecutions = 0;
369
+ let totalSuccesses = 0;
370
+ let totalTime = 0;
371
+ let timeCount = 0;
372
+ for (const stats of this.ruleStats.values()) {
373
+ totalExecutions += stats.totalExecutions;
374
+ totalSuccesses += stats.successCount;
375
+ if (stats.averageExecutionTime > 0 && stats.totalExecutions > stats.skippedCount) {
376
+ totalTime += stats.averageExecutionTime * (stats.totalExecutions - stats.skippedCount);
377
+ timeCount += stats.totalExecutions - stats.skippedCount;
378
+ }
379
+ }
380
+ const triggerStatsMap = /* @__PURE__ */ new Map();
381
+ for (const [trigger, stat] of this.triggerStats) {
382
+ triggerStatsMap.set(trigger, {
383
+ totalExecutions: stat.totalExecutions,
384
+ successCount: stat.successCount,
385
+ averageTime: stat.totalExecutions > 0 ? stat.totalTime / stat.totalExecutions : 0
386
+ });
387
+ }
388
+ return {
389
+ totalRules: allRules.length,
390
+ enabledRules: enabledRules.length,
391
+ totalExecutions,
392
+ successRate: totalExecutions > 0 ? totalSuccesses / totalExecutions : 0,
393
+ averageExecutionTime: timeCount > 0 ? totalTime / timeCount : 0,
394
+ activeExecutions: this.activeExecutions,
395
+ ruleStats: new Map(this.ruleStats),
396
+ triggerStats: triggerStatsMap
397
+ };
398
+ }
399
+ // --------------------------------------------------------------------------
400
+ // Execution Logs
401
+ // --------------------------------------------------------------------------
402
+ /**
403
+ * Get execution logs (most recent first)
404
+ */
405
+ getExecutionLogs(limit) {
406
+ const logs = this.executionLogs.toArray().reverse();
407
+ return limit ? logs.slice(0, limit) : logs;
408
+ }
409
+ /**
410
+ * Get logs for a specific rule
411
+ */
412
+ getLogsForRule(ruleId, limit) {
413
+ const logs = this.executionLogs.toArray().filter((log) => log.ruleId === ruleId).reverse();
414
+ return limit ? logs.slice(0, limit) : logs;
415
+ }
416
+ /**
417
+ * Get logs for a specific trigger
418
+ */
419
+ getLogsForTrigger(trigger, limit) {
420
+ const logs = this.executionLogs.toArray().filter((log) => log.trigger === trigger).reverse();
421
+ return limit ? logs.slice(0, limit) : logs;
422
+ }
423
+ /**
424
+ * Get failed execution logs
425
+ */
426
+ getFailedLogs(limit) {
427
+ const logs = this.executionLogs.toArray().filter((log) => log.status === "failure").reverse();
428
+ return limit ? logs.slice(0, limit) : logs;
429
+ }
430
+ /**
431
+ * Clear execution logs
432
+ */
433
+ clearLogs() {
434
+ this.executionLogs.clear();
435
+ this.logger.debug("Execution logs cleared");
436
+ }
437
+ // --------------------------------------------------------------------------
438
+ // Utility Methods
439
+ // --------------------------------------------------------------------------
440
+ /**
441
+ * Reset all statistics
442
+ */
443
+ resetStatistics() {
444
+ for (const [ruleId, rule] of this.rules) {
445
+ this.ruleStats.set(ruleId, {
446
+ ruleId,
447
+ ruleName: rule.name,
448
+ totalExecutions: 0,
449
+ successCount: 0,
450
+ failureCount: 0,
451
+ skippedCount: 0,
452
+ averageExecutionTime: 0,
453
+ minExecutionTime: Infinity,
454
+ maxExecutionTime: 0
455
+ });
456
+ }
457
+ for (const trigger of this.triggerStats.keys()) {
458
+ this.triggerStats.set(trigger, { totalExecutions: 0, successCount: 0, totalTime: 0 });
459
+ }
460
+ this.logger.debug("Statistics reset");
461
+ }
462
+ /**
463
+ * Get a summary of the engine state
464
+ */
465
+ getSummary() {
466
+ const allRules = Array.from(this.rules.values());
467
+ const triggersConfigured = /* @__PURE__ */ new Set();
468
+ for (const rule of allRules) {
469
+ if (rule.enabled) {
470
+ for (const trigger of rule.triggers) {
471
+ triggersConfigured.add(trigger);
472
+ }
473
+ }
474
+ }
475
+ return {
476
+ rulesCount: allRules.length,
477
+ enabledCount: allRules.filter((r) => r.enabled).length,
478
+ triggersConfigured: Array.from(triggersConfigured),
479
+ activeExecutions: this.activeExecutions,
480
+ logsCount: this.executionLogs.size
481
+ };
482
+ }
483
+ }
484
+ function createRulesEngine(config) {
485
+ return new RulesEngine(config);
486
+ }
487
+ function createRule(id, name, triggers, action, options = {}) {
488
+ return {
489
+ id,
490
+ name,
491
+ triggers,
492
+ action,
493
+ ...options
494
+ };
495
+ }
496
+ function createConditionalRule(id, name, triggers, condition, action, options = {}) {
497
+ return {
498
+ id,
499
+ name,
500
+ triggers,
501
+ condition,
502
+ action,
503
+ ...options
504
+ };
505
+ }
506
+ function createFileChangeLogRule(logger = createLogger("FileChangeRule")) {
507
+ return {
508
+ id: "builtin:file-change-log",
509
+ name: "File Change Logger",
510
+ description: "Logs all file changes to the console",
511
+ triggers: ["file:add", "file:change", "file:unlink"],
512
+ priority: "low",
513
+ action: (context) => {
514
+ logger.info(`File ${context.trigger.replace("file:", "")}: ${context.filePath ?? "unknown"}`);
515
+ }
516
+ };
517
+ }
518
+ function createGraphUpdateNotificationRule(callback) {
519
+ return {
520
+ id: "builtin:graph-update-notify",
521
+ name: "Graph Update Notification",
522
+ description: "Notifies when the knowledge graph is updated",
523
+ triggers: ["graph:update"],
524
+ priority: "normal",
525
+ action: callback
526
+ };
527
+ }
528
+ function createAgentCompletionRule(handler) {
529
+ return {
530
+ id: "builtin:agent-completion-handler",
531
+ name: "Agent Completion Handler",
532
+ description: "Handles agent task completion events",
533
+ triggers: ["agent:complete"],
534
+ priority: "high",
535
+ condition: (context) => context.agentData !== void 0,
536
+ action: async (context) => {
537
+ if (context.agentData) {
538
+ await handler(context.agentData);
539
+ }
540
+ }
541
+ };
542
+ }
543
+ export {
544
+ RulesEngine,
545
+ createAgentCompletionRule,
546
+ createConditionalRule,
547
+ createFileChangeLogRule,
548
+ createGraphUpdateNotificationRule,
549
+ createRule,
550
+ createRulesEngine
551
+ };
552
+ //# sourceMappingURL=rules-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-engine.js","sources":["../../src/agents/rules-engine.ts"],"sourcesContent":["/**\n * Rules Engine\n *\n * Event-driven rule execution engine with async processing, condition evaluation,\n * error isolation, and performance tracking.\n *\n * @module agents/rules-engine\n */\n\nimport { createLogger, type Logger } from '../utils/index.js';\n\n// ============================================================================\n// Types and Interfaces\n// ============================================================================\n\n/**\n * Trigger types for rule execution\n */\nexport type RuleTrigger =\n | 'file:add'\n | 'file:change'\n | 'file:unlink'\n | 'graph:update'\n | 'agent:complete'\n | 'manual';\n\n/**\n * Rule priority levels\n */\nexport type RulePriority = 'low' | 'normal' | 'high' | 'critical';\n\n/**\n * Rule execution status\n */\nexport type RuleExecutionStatus = 'pending' | 'running' | 'success' | 'failure' | 'skipped';\n\n/**\n * Context provided to rules during execution\n */\nexport interface RuleContext {\n /** The trigger event that caused this execution */\n trigger: RuleTrigger;\n\n /** Timestamp when the event occurred */\n timestamp: Date;\n\n /** Path to the file (for file-related triggers) */\n filePath?: string;\n\n /** Previous file content (for file:change) */\n previousContent?: string;\n\n /** Current file content */\n currentContent?: string;\n\n /** Graph-related data (for graph:update) */\n graphData?: {\n nodesAdded?: number;\n nodesRemoved?: number;\n edgesModified?: number;\n };\n\n /** Agent completion data (for agent:complete) */\n agentData?: {\n agentId: string;\n taskId: string;\n result: 'success' | 'failure';\n duration: number;\n };\n\n /** Custom metadata that can be attached to context */\n metadata?: Record<string, unknown>;\n\n /** Reference to the rules engine for chaining */\n engine?: RulesEngine;\n}\n\n/**\n * Condition function that determines if a rule should execute\n */\nexport type RuleCondition = (context: RuleContext) => boolean | Promise<boolean>;\n\n/**\n * Action function that performs the rule's work\n */\nexport type RuleAction = (context: RuleContext) => void | Promise<void>;\n\n/**\n * Rule definition\n */\nexport interface AgentRule {\n /** Unique identifier for the rule */\n id: string;\n\n /** Human-readable name */\n name: string;\n\n /** Optional description */\n description?: string;\n\n /** Triggers that activate this rule */\n triggers: RuleTrigger[];\n\n /** Condition to evaluate before executing (optional) */\n condition?: RuleCondition;\n\n /** Action to execute */\n action: RuleAction;\n\n /** Rule priority (default: 'normal') */\n priority?: RulePriority;\n\n /** Whether the rule is enabled (default: true) */\n enabled?: boolean;\n\n /** Tags for categorization */\n tags?: string[];\n\n /** Maximum execution time in milliseconds (default: 30000) */\n timeout?: number;\n\n /** Whether to continue execution on failure (default: true) */\n continueOnFailure?: boolean;\n}\n\n/**\n * Execution log entry\n */\nexport interface RuleExecutionLog {\n /** Rule ID */\n ruleId: string;\n\n /** Rule name */\n ruleName: string;\n\n /** Execution status */\n status: RuleExecutionStatus;\n\n /** Trigger that caused execution */\n trigger: RuleTrigger;\n\n /** Start timestamp */\n startedAt: Date;\n\n /** End timestamp */\n completedAt?: Date;\n\n /** Execution duration in milliseconds */\n duration?: number;\n\n /** Error message if failed */\n error?: string;\n\n /** Whether condition was evaluated */\n conditionEvaluated?: boolean;\n\n /** Result of condition evaluation */\n conditionResult?: boolean;\n\n /** Context snapshot (partial) */\n contextSnapshot?: {\n filePath?: string;\n trigger: RuleTrigger;\n timestamp: Date;\n };\n}\n\n/**\n * Rule execution statistics\n */\nexport interface RuleStatistics {\n /** Rule ID */\n ruleId: string;\n\n /** Rule name */\n ruleName: string;\n\n /** Total executions */\n totalExecutions: number;\n\n /** Successful executions */\n successCount: number;\n\n /** Failed executions */\n failureCount: number;\n\n /** Skipped executions (condition false) */\n skippedCount: number;\n\n /** Average execution time in milliseconds */\n averageExecutionTime: number;\n\n /** Min execution time */\n minExecutionTime: number;\n\n /** Max execution time */\n maxExecutionTime: number;\n\n /** Last execution timestamp */\n lastExecutedAt?: Date;\n\n /** Last successful execution */\n lastSuccessAt?: Date;\n\n /** Last failure timestamp */\n lastFailureAt?: Date;\n}\n\n/**\n * Engine-wide statistics\n */\nexport interface EngineStatistics {\n /** Total rules registered */\n totalRules: number;\n\n /** Enabled rules count */\n enabledRules: number;\n\n /** Total executions across all rules */\n totalExecutions: number;\n\n /** Success rate (0-1) */\n successRate: number;\n\n /** Average execution time across all rules */\n averageExecutionTime: number;\n\n /** Rules currently executing */\n activeExecutions: number;\n\n /** Per-rule statistics */\n ruleStats: Map<string, RuleStatistics>;\n\n /** Per-trigger statistics */\n triggerStats: Map<RuleTrigger, {\n totalExecutions: number;\n successCount: number;\n averageTime: number;\n }>;\n}\n\n/**\n * Rules engine configuration\n */\nexport interface RulesEngineConfig {\n /** Maximum concurrent rule executions (default: 10) */\n maxConcurrency?: number;\n\n /** Default timeout for rules in milliseconds (default: 30000) */\n defaultTimeout?: number;\n\n /** Size of the execution log circular buffer (default: 1000) */\n logBufferSize?: number;\n\n /** Whether to enable detailed logging (default: false) */\n verbose?: boolean;\n\n /** Custom logger instance */\n logger?: Logger;\n}\n\n// ============================================================================\n// Circular Buffer for Execution Logs\n// ============================================================================\n\n/**\n * Circular buffer implementation for execution logs\n */\nclass CircularBuffer<T> {\n private buffer: (T | undefined)[];\n private head: number = 0;\n private tail: number = 0;\n private count: number = 0;\n\n constructor(private capacity: number) {\n this.buffer = new Array(capacity);\n }\n\n push(item: T): void {\n this.buffer[this.tail] = item;\n this.tail = (this.tail + 1) % this.capacity;\n\n if (this.count < this.capacity) {\n this.count++;\n } else {\n this.head = (this.head + 1) % this.capacity;\n }\n }\n\n toArray(): T[] {\n const result: T[] = [];\n for (let i = 0; i < this.count; i++) {\n const idx = (this.head + i) % this.capacity;\n const item = this.buffer[idx];\n if (item !== undefined) {\n result.push(item);\n }\n }\n return result;\n }\n\n getLatest(n: number): T[] {\n const all = this.toArray();\n return all.slice(-n);\n }\n\n clear(): void {\n this.buffer = new Array(this.capacity);\n this.head = 0;\n this.tail = 0;\n this.count = 0;\n }\n\n get size(): number {\n return this.count;\n }\n}\n\n// ============================================================================\n// Priority Queue for Rule Execution\n// ============================================================================\n\nconst PRIORITY_ORDER: Record<RulePriority, number> = {\n critical: 0,\n high: 1,\n normal: 2,\n low: 3,\n};\n\n// ============================================================================\n// Rules Engine Implementation\n// ============================================================================\n\n/**\n * Event-driven rules engine with async processing and error isolation\n */\nexport class RulesEngine {\n private rules: Map<string, AgentRule> = new Map();\n private executionLogs: CircularBuffer<RuleExecutionLog>;\n private ruleStats: Map<string, RuleStatistics> = new Map();\n private triggerStats: Map<RuleTrigger, { totalExecutions: number; successCount: number; totalTime: number }> = new Map();\n private activeExecutions: number = 0;\n private readonly logger: Logger;\n private readonly config: Required<RulesEngineConfig>;\n\n constructor(config: RulesEngineConfig = {}) {\n this.config = {\n maxConcurrency: config.maxConcurrency ?? 10,\n defaultTimeout: config.defaultTimeout ?? 30000,\n logBufferSize: config.logBufferSize ?? 1000,\n verbose: config.verbose ?? false,\n logger: config.logger ?? createLogger('RulesEngine'),\n };\n\n this.logger = this.config.logger;\n this.executionLogs = new CircularBuffer(this.config.logBufferSize);\n\n // Initialize trigger stats for all trigger types\n const allTriggers: RuleTrigger[] = ['file:add', 'file:change', 'file:unlink', 'graph:update', 'agent:complete', 'manual'];\n for (const trigger of allTriggers) {\n this.triggerStats.set(trigger, { totalExecutions: 0, successCount: 0, totalTime: 0 });\n }\n }\n\n // --------------------------------------------------------------------------\n // Rule Management\n // --------------------------------------------------------------------------\n\n /**\n * Register a new rule\n */\n registerRule(rule: AgentRule): void {\n if (this.rules.has(rule.id)) {\n this.logger.warn(`Rule with id '${rule.id}' already exists, replacing`, { ruleId: rule.id });\n }\n\n // Apply defaults\n const normalizedRule: AgentRule = {\n ...rule,\n priority: rule.priority ?? 'normal',\n enabled: rule.enabled ?? true,\n timeout: rule.timeout ?? this.config.defaultTimeout,\n continueOnFailure: rule.continueOnFailure ?? true,\n };\n\n this.rules.set(rule.id, normalizedRule);\n\n // Initialize stats for this rule\n this.ruleStats.set(rule.id, {\n ruleId: rule.id,\n ruleName: rule.name,\n totalExecutions: 0,\n successCount: 0,\n failureCount: 0,\n skippedCount: 0,\n averageExecutionTime: 0,\n minExecutionTime: Infinity,\n maxExecutionTime: 0,\n });\n\n if (this.config.verbose) {\n this.logger.debug(`Registered rule: ${rule.name}`, {\n ruleId: rule.id,\n triggers: rule.triggers,\n priority: normalizedRule.priority,\n });\n }\n }\n\n /**\n * Register multiple rules at once\n */\n registerRules(rules: AgentRule[]): void {\n for (const rule of rules) {\n this.registerRule(rule);\n }\n }\n\n /**\n * Unregister a rule by ID\n */\n unregisterRule(ruleId: string): boolean {\n const existed = this.rules.delete(ruleId);\n if (existed) {\n this.logger.debug(`Unregistered rule: ${ruleId}`);\n }\n return existed;\n }\n\n /**\n * Get a rule by ID\n */\n getRule(ruleId: string): AgentRule | undefined {\n return this.rules.get(ruleId);\n }\n\n /**\n * Get all registered rules\n */\n getAllRules(): AgentRule[] {\n return Array.from(this.rules.values());\n }\n\n /**\n * Get rules by trigger type\n */\n getRulesByTrigger(trigger: RuleTrigger): AgentRule[] {\n return Array.from(this.rules.values()).filter(\n (rule) => rule.enabled && rule.triggers.includes(trigger)\n );\n }\n\n /**\n * Enable a rule\n */\n enableRule(ruleId: string): boolean {\n const rule = this.rules.get(ruleId);\n if (rule) {\n rule.enabled = true;\n return true;\n }\n return false;\n }\n\n /**\n * Disable a rule\n */\n disableRule(ruleId: string): boolean {\n const rule = this.rules.get(ruleId);\n if (rule) {\n rule.enabled = false;\n return true;\n }\n return false;\n }\n\n // --------------------------------------------------------------------------\n // Rule Execution\n // --------------------------------------------------------------------------\n\n /**\n * Trigger rule execution for an event\n */\n async trigger(trigger: RuleTrigger, context: Partial<RuleContext> = {}): Promise<RuleExecutionLog[]> {\n const fullContext: RuleContext = {\n trigger,\n timestamp: new Date(),\n ...context,\n engine: this,\n };\n\n // Get applicable rules sorted by priority\n const applicableRules = this.getRulesByTrigger(trigger).sort(\n (a, b) => PRIORITY_ORDER[a.priority ?? 'normal'] - PRIORITY_ORDER[b.priority ?? 'normal']\n );\n\n if (applicableRules.length === 0) {\n if (this.config.verbose) {\n this.logger.debug(`No rules to execute for trigger: ${trigger}`);\n }\n return [];\n }\n\n this.logger.info(`Executing ${applicableRules.length} rules for trigger: ${trigger}`, {\n trigger,\n ruleCount: applicableRules.length,\n });\n\n // Execute rules concurrently with concurrency limit\n const logs: RuleExecutionLog[] = [];\n const executing: Promise<void>[] = [];\n\n for (const rule of applicableRules) {\n // Wait if at concurrency limit\n while (this.activeExecutions >= this.config.maxConcurrency) {\n await Promise.race(executing);\n }\n\n const execution = this.executeRule(rule, fullContext).then((log) => {\n logs.push(log);\n const idx = executing.indexOf(execution);\n if (idx > -1) executing.splice(idx, 1);\n });\n\n executing.push(execution);\n }\n\n // Wait for all remaining executions\n await Promise.all(executing);\n\n return logs;\n }\n\n /**\n * Execute a single rule\n */\n private async executeRule(rule: AgentRule, context: RuleContext): Promise<RuleExecutionLog> {\n const startTime = Date.now();\n this.activeExecutions++;\n\n const log: RuleExecutionLog = {\n ruleId: rule.id,\n ruleName: rule.name,\n status: 'running',\n trigger: context.trigger,\n startedAt: new Date(),\n contextSnapshot: {\n filePath: context.filePath,\n trigger: context.trigger,\n timestamp: context.timestamp,\n },\n };\n\n try {\n // Evaluate condition if present\n if (rule.condition) {\n log.conditionEvaluated = true;\n const conditionResult = await this.withTimeout(\n Promise.resolve(rule.condition(context)),\n rule.timeout ?? this.config.defaultTimeout,\n `Condition evaluation for rule '${rule.name}'`\n );\n log.conditionResult = conditionResult;\n\n if (!conditionResult) {\n log.status = 'skipped';\n log.completedAt = new Date();\n log.duration = Date.now() - startTime;\n this.updateStats(rule, log, false);\n this.executionLogs.push(log);\n this.activeExecutions--;\n\n if (this.config.verbose) {\n this.logger.debug(`Rule skipped (condition false): ${rule.name}`, { ruleId: rule.id });\n }\n return log;\n }\n }\n\n // Execute action\n await this.withTimeout(\n Promise.resolve(rule.action(context)),\n rule.timeout ?? this.config.defaultTimeout,\n `Action execution for rule '${rule.name}'`\n );\n\n log.status = 'success';\n log.completedAt = new Date();\n log.duration = Date.now() - startTime;\n\n if (this.config.verbose) {\n this.logger.debug(`Rule executed successfully: ${rule.name}`, {\n ruleId: rule.id,\n duration: log.duration,\n });\n }\n\n } catch (error) {\n log.status = 'failure';\n log.completedAt = new Date();\n log.duration = Date.now() - startTime;\n log.error = error instanceof Error ? error.message : String(error);\n\n this.logger.error(`Rule execution failed: ${rule.name}`, error instanceof Error ? error : undefined, {\n ruleId: rule.id,\n trigger: context.trigger,\n });\n\n if (!rule.continueOnFailure) {\n throw error;\n }\n } finally {\n this.activeExecutions--;\n this.updateStats(rule, log, log.status === 'success');\n this.executionLogs.push(log);\n }\n\n return log;\n }\n\n /**\n * Execute a rule by ID with custom context\n */\n async executeRuleById(ruleId: string, context: Partial<RuleContext> = {}): Promise<RuleExecutionLog | null> {\n const rule = this.rules.get(ruleId);\n if (!rule) {\n this.logger.warn(`Rule not found: ${ruleId}`);\n return null;\n }\n\n const fullContext: RuleContext = {\n trigger: 'manual',\n timestamp: new Date(),\n ...context,\n engine: this,\n };\n\n return this.executeRule(rule, fullContext);\n }\n\n /**\n * Wrap a promise with a timeout\n */\n private async withTimeout<T>(\n promise: Promise<T>,\n timeoutMs: number,\n operation: string\n ): Promise<T> {\n let timeoutId: NodeJS.Timeout;\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n timeoutId = setTimeout(() => {\n reject(new Error(`Timeout after ${timeoutMs}ms: ${operation}`));\n }, timeoutMs);\n });\n\n try {\n const result = await Promise.race([promise, timeoutPromise]);\n clearTimeout(timeoutId!);\n return result;\n } catch (error) {\n clearTimeout(timeoutId!);\n throw error;\n }\n }\n\n // --------------------------------------------------------------------------\n // Statistics and Metrics\n // --------------------------------------------------------------------------\n\n /**\n * Update statistics after rule execution\n */\n private updateStats(rule: AgentRule, log: RuleExecutionLog, success: boolean): void {\n const stats = this.ruleStats.get(rule.id);\n if (!stats) return;\n\n stats.totalExecutions++;\n stats.lastExecutedAt = log.completedAt;\n\n if (log.status === 'skipped') {\n stats.skippedCount++;\n } else if (success) {\n stats.successCount++;\n stats.lastSuccessAt = log.completedAt;\n } else {\n stats.failureCount++;\n stats.lastFailureAt = log.completedAt;\n }\n\n if (log.duration !== undefined && log.status !== 'skipped') {\n const totalTime = stats.averageExecutionTime * (stats.totalExecutions - stats.skippedCount - 1);\n const execCount = stats.totalExecutions - stats.skippedCount;\n stats.averageExecutionTime = execCount > 0 ? (totalTime + log.duration) / execCount : 0;\n\n stats.minExecutionTime = Math.min(stats.minExecutionTime, log.duration);\n stats.maxExecutionTime = Math.max(stats.maxExecutionTime, log.duration);\n }\n\n // Update trigger stats\n const triggerStat = this.triggerStats.get(log.trigger);\n if (triggerStat) {\n triggerStat.totalExecutions++;\n if (success) triggerStat.successCount++;\n if (log.duration) triggerStat.totalTime += log.duration;\n }\n }\n\n /**\n * Get statistics for a specific rule\n */\n getRuleStatistics(ruleId: string): RuleStatistics | undefined {\n return this.ruleStats.get(ruleId);\n }\n\n /**\n * Get engine-wide statistics\n */\n getStatistics(): EngineStatistics {\n const allRules = Array.from(this.rules.values());\n const enabledRules = allRules.filter((r) => r.enabled);\n\n let totalExecutions = 0;\n let totalSuccesses = 0;\n let totalTime = 0;\n let timeCount = 0;\n\n for (const stats of this.ruleStats.values()) {\n totalExecutions += stats.totalExecutions;\n totalSuccesses += stats.successCount;\n if (stats.averageExecutionTime > 0 && stats.totalExecutions > stats.skippedCount) {\n totalTime += stats.averageExecutionTime * (stats.totalExecutions - stats.skippedCount);\n timeCount += stats.totalExecutions - stats.skippedCount;\n }\n }\n\n const triggerStatsMap = new Map<RuleTrigger, { totalExecutions: number; successCount: number; averageTime: number }>();\n for (const [trigger, stat] of this.triggerStats) {\n triggerStatsMap.set(trigger, {\n totalExecutions: stat.totalExecutions,\n successCount: stat.successCount,\n averageTime: stat.totalExecutions > 0 ? stat.totalTime / stat.totalExecutions : 0,\n });\n }\n\n return {\n totalRules: allRules.length,\n enabledRules: enabledRules.length,\n totalExecutions,\n successRate: totalExecutions > 0 ? totalSuccesses / totalExecutions : 0,\n averageExecutionTime: timeCount > 0 ? totalTime / timeCount : 0,\n activeExecutions: this.activeExecutions,\n ruleStats: new Map(this.ruleStats),\n triggerStats: triggerStatsMap,\n };\n }\n\n // --------------------------------------------------------------------------\n // Execution Logs\n // --------------------------------------------------------------------------\n\n /**\n * Get execution logs (most recent first)\n */\n getExecutionLogs(limit?: number): RuleExecutionLog[] {\n const logs = this.executionLogs.toArray().reverse();\n return limit ? logs.slice(0, limit) : logs;\n }\n\n /**\n * Get logs for a specific rule\n */\n getLogsForRule(ruleId: string, limit?: number): RuleExecutionLog[] {\n const logs = this.executionLogs.toArray()\n .filter((log) => log.ruleId === ruleId)\n .reverse();\n return limit ? logs.slice(0, limit) : logs;\n }\n\n /**\n * Get logs for a specific trigger\n */\n getLogsForTrigger(trigger: RuleTrigger, limit?: number): RuleExecutionLog[] {\n const logs = this.executionLogs.toArray()\n .filter((log) => log.trigger === trigger)\n .reverse();\n return limit ? logs.slice(0, limit) : logs;\n }\n\n /**\n * Get failed execution logs\n */\n getFailedLogs(limit?: number): RuleExecutionLog[] {\n const logs = this.executionLogs.toArray()\n .filter((log) => log.status === 'failure')\n .reverse();\n return limit ? logs.slice(0, limit) : logs;\n }\n\n /**\n * Clear execution logs\n */\n clearLogs(): void {\n this.executionLogs.clear();\n this.logger.debug('Execution logs cleared');\n }\n\n // --------------------------------------------------------------------------\n // Utility Methods\n // --------------------------------------------------------------------------\n\n /**\n * Reset all statistics\n */\n resetStatistics(): void {\n for (const [ruleId, rule] of this.rules) {\n this.ruleStats.set(ruleId, {\n ruleId,\n ruleName: rule.name,\n totalExecutions: 0,\n successCount: 0,\n failureCount: 0,\n skippedCount: 0,\n averageExecutionTime: 0,\n minExecutionTime: Infinity,\n maxExecutionTime: 0,\n });\n }\n\n for (const trigger of this.triggerStats.keys()) {\n this.triggerStats.set(trigger, { totalExecutions: 0, successCount: 0, totalTime: 0 });\n }\n\n this.logger.debug('Statistics reset');\n }\n\n /**\n * Get a summary of the engine state\n */\n getSummary(): {\n rulesCount: number;\n enabledCount: number;\n triggersConfigured: RuleTrigger[];\n activeExecutions: number;\n logsCount: number;\n } {\n const allRules = Array.from(this.rules.values());\n const triggersConfigured = new Set<RuleTrigger>();\n\n for (const rule of allRules) {\n if (rule.enabled) {\n for (const trigger of rule.triggers) {\n triggersConfigured.add(trigger);\n }\n }\n }\n\n return {\n rulesCount: allRules.length,\n enabledCount: allRules.filter((r) => r.enabled).length,\n triggersConfigured: Array.from(triggersConfigured),\n activeExecutions: this.activeExecutions,\n logsCount: this.executionLogs.size,\n };\n }\n}\n\n// ============================================================================\n// Factory Functions\n// ============================================================================\n\n/**\n * Create a new rules engine instance\n */\nexport function createRulesEngine(config?: RulesEngineConfig): RulesEngine {\n return new RulesEngine(config);\n}\n\n/**\n * Create a simple rule definition\n */\nexport function createRule(\n id: string,\n name: string,\n triggers: RuleTrigger[],\n action: RuleAction,\n options: Partial<Omit<AgentRule, 'id' | 'name' | 'triggers' | 'action'>> = {}\n): AgentRule {\n return {\n id,\n name,\n triggers,\n action,\n ...options,\n };\n}\n\n/**\n * Create a conditional rule\n */\nexport function createConditionalRule(\n id: string,\n name: string,\n triggers: RuleTrigger[],\n condition: RuleCondition,\n action: RuleAction,\n options: Partial<Omit<AgentRule, 'id' | 'name' | 'triggers' | 'condition' | 'action'>> = {}\n): AgentRule {\n return {\n id,\n name,\n triggers,\n condition,\n action,\n ...options,\n };\n}\n\n// ============================================================================\n// Built-in Rule Templates\n// ============================================================================\n\n/**\n * Create a file change logging rule\n */\nexport function createFileChangeLogRule(\n logger: Logger = createLogger('FileChangeRule')\n): AgentRule {\n return {\n id: 'builtin:file-change-log',\n name: 'File Change Logger',\n description: 'Logs all file changes to the console',\n triggers: ['file:add', 'file:change', 'file:unlink'],\n priority: 'low',\n action: (context) => {\n logger.info(`File ${context.trigger.replace('file:', '')}: ${context.filePath ?? 'unknown'}`);\n },\n };\n}\n\n/**\n * Create a graph update notification rule\n */\nexport function createGraphUpdateNotificationRule(\n callback: (context: RuleContext) => void | Promise<void>\n): AgentRule {\n return {\n id: 'builtin:graph-update-notify',\n name: 'Graph Update Notification',\n description: 'Notifies when the knowledge graph is updated',\n triggers: ['graph:update'],\n priority: 'normal',\n action: callback,\n };\n}\n\n/**\n * Create an agent completion handler rule\n */\nexport function createAgentCompletionRule(\n handler: (agentData: NonNullable<RuleContext['agentData']>) => void | Promise<void>\n): AgentRule {\n return {\n id: 'builtin:agent-completion-handler',\n name: 'Agent Completion Handler',\n description: 'Handles agent task completion events',\n triggers: ['agent:complete'],\n priority: 'high',\n condition: (context) => context.agentData !== undefined,\n action: async (context) => {\n if (context.agentData) {\n await handler(context.agentData);\n }\n },\n };\n}\n"],"names":[],"mappings":"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"}