@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,577 @@
1
+ import { createWorkflowConfig } from "../config.js";
2
+ import { createGOAPAdapter } from "../adapters/goap-adapter.js";
3
+ import { createWebhookRegistry, createFileWatcherIntegration } from "../handlers/webhook-handlers.js";
4
+ import { createLogger } from "../../utils/logger.js";
5
+ const logger = createLogger("workflow-service");
6
+ class WorkflowService {
7
+ config;
8
+ goapAdapter;
9
+ webhookRegistry;
10
+ fileWatcher;
11
+ isRunning = false;
12
+ activeWorkflows = /* @__PURE__ */ new Map();
13
+ lastActivity;
14
+ executionStats = {
15
+ totalExecutions: 0,
16
+ successfulExecutions: 0,
17
+ failedExecutions: 0,
18
+ totalDuration: 0
19
+ };
20
+ /**
21
+ * Create a new workflow service
22
+ *
23
+ * @param config - Service configuration options
24
+ */
25
+ constructor(config = {}) {
26
+ this.config = this.resolveConfig(config);
27
+ this.goapAdapter = createGOAPAdapter();
28
+ this.webhookRegistry = createWebhookRegistry({
29
+ secret: this.config.webhookSecret,
30
+ maxPayloadSize: this.config.maxPayloadSize
31
+ });
32
+ this.fileWatcher = createFileWatcherIntegration(this.webhookRegistry, {
33
+ inactivityThreshold: this.config.inactivityTimeout
34
+ });
35
+ this.setupEventHandlers();
36
+ }
37
+ /**
38
+ * Resolve configuration with defaults
39
+ */
40
+ resolveConfig(config) {
41
+ return {
42
+ workflow: config.workflow ?? createWorkflowConfig(),
43
+ inactivityTimeout: config.inactivityTimeout ?? 5 * 60 * 1e3,
44
+ autoStartThreshold: config.autoStartThreshold ?? 0.7,
45
+ watchPaths: config.watchPaths ?? [],
46
+ debug: config.debug ?? false,
47
+ webhookSecret: config.webhookSecret,
48
+ maxPayloadSize: config.maxPayloadSize ?? 1024 * 1024
49
+ };
50
+ }
51
+ /**
52
+ * Setup event handlers for workflow triggers
53
+ */
54
+ setupEventHandlers() {
55
+ this.webhookRegistry.on("file:changed", async (event) => {
56
+ if (event.type === "file:changed") {
57
+ logger.debug("File changed event received", { path: event.path });
58
+ this.lastActivity = /* @__PURE__ */ new Date();
59
+ await this.onDocumentChange(event.path);
60
+ }
61
+ });
62
+ this.webhookRegistry.on("file:created", async (event) => {
63
+ if (event.type === "file:created") {
64
+ logger.debug("File created event received", { path: event.path });
65
+ this.lastActivity = /* @__PURE__ */ new Date();
66
+ await this.onDocumentChange(event.path);
67
+ }
68
+ });
69
+ this.webhookRegistry.on("file:deleted", async (event) => {
70
+ if (event.type === "file:deleted") {
71
+ logger.debug("File deleted event received", { path: event.path });
72
+ this.lastActivity = /* @__PURE__ */ new Date();
73
+ }
74
+ });
75
+ this.webhookRegistry.on("timeout:inactivity", async (event) => {
76
+ if (event.type === "timeout:inactivity") {
77
+ logger.info("Inactivity timeout triggered", {
78
+ lastActivity: event.lastActivity,
79
+ threshold: event.threshold
80
+ });
81
+ await this.onInactivityTimeout();
82
+ }
83
+ });
84
+ }
85
+ // ==========================================================================
86
+ // Lifecycle Methods
87
+ // ==========================================================================
88
+ /**
89
+ * Start the workflow service
90
+ *
91
+ * Begins watching configured paths and processing events.
92
+ */
93
+ async start() {
94
+ if (this.isRunning) {
95
+ logger.warn("Workflow service is already running");
96
+ return;
97
+ }
98
+ logger.info("Starting workflow service", {
99
+ world: this.config.workflow.world,
100
+ watchPaths: this.config.watchPaths,
101
+ inactivityTimeout: this.config.inactivityTimeout
102
+ });
103
+ for (const path of this.config.watchPaths) {
104
+ this.fileWatcher.watch(path);
105
+ }
106
+ this.isRunning = true;
107
+ this.lastActivity = /* @__PURE__ */ new Date();
108
+ logger.info("Workflow service started");
109
+ }
110
+ /**
111
+ * Stop the workflow service
112
+ *
113
+ * Stops watching all paths and cleans up resources.
114
+ */
115
+ async stop() {
116
+ if (!this.isRunning) {
117
+ logger.warn("Workflow service is not running");
118
+ return;
119
+ }
120
+ logger.info("Stopping workflow service");
121
+ this.fileWatcher.unwatchAll();
122
+ this.webhookRegistry.clear();
123
+ this.isRunning = false;
124
+ logger.info("Workflow service stopped");
125
+ }
126
+ // ==========================================================================
127
+ // Event Handlers
128
+ // ==========================================================================
129
+ /**
130
+ * Handle document change event
131
+ *
132
+ * Analyzes the changed document for gaps and potentially
133
+ * starts development if completeness threshold is met.
134
+ */
135
+ async onDocumentChange(docPath) {
136
+ logger.debug("Processing document change", { docPath });
137
+ try {
138
+ const analysis = await this.analyzeGaps(docPath);
139
+ if (analysis.completeness >= this.config.autoStartThreshold) {
140
+ logger.info("Completeness threshold met, generating task spec", {
141
+ completeness: analysis.completeness,
142
+ threshold: this.config.autoStartThreshold
143
+ });
144
+ await this.generateTaskSpec(docPath, analysis);
145
+ } else {
146
+ logger.debug("Waiting for more documentation", {
147
+ completeness: analysis.completeness,
148
+ threshold: this.config.autoStartThreshold,
149
+ gaps: analysis.gaps.length
150
+ });
151
+ }
152
+ } catch (err) {
153
+ const actualError = err instanceof Error ? err : new Error(String(err));
154
+ logger.error(`Failed to process document change: ${docPath}`, actualError);
155
+ }
156
+ }
157
+ /**
158
+ * Handle inactivity timeout
159
+ *
160
+ * Checks for incomplete documentation and generates
161
+ * missing content when idle.
162
+ */
163
+ async onInactivityTimeout() {
164
+ logger.info("Inactivity timeout - checking for incomplete documentation");
165
+ const watchedPaths = this.fileWatcher.getWatchedPaths();
166
+ for (const path of watchedPaths) {
167
+ try {
168
+ const analysis = await this.analyzeGaps(path);
169
+ if (analysis.gaps.length > 0) {
170
+ logger.info("Found documentation gaps during inactivity", {
171
+ path,
172
+ gapCount: analysis.gaps.length
173
+ });
174
+ await this.generateMissingDocs(path, analysis);
175
+ }
176
+ } catch (err) {
177
+ const actualError = err instanceof Error ? err : new Error(String(err));
178
+ logger.error(`Failed to analyze path during inactivity: ${path}`, actualError);
179
+ }
180
+ }
181
+ }
182
+ // ==========================================================================
183
+ // Workflow Execution
184
+ // ==========================================================================
185
+ /**
186
+ * Start a collaboration workflow for a graph/document
187
+ *
188
+ * @param graphId - Knowledge graph identifier
189
+ * @param docPath - Path to the document
190
+ * @returns Workflow execution result
191
+ */
192
+ async startCollaborationWorkflow(graphId, docPath) {
193
+ const workflowId = this.generateWorkflowId("collab");
194
+ const startedAt = /* @__PURE__ */ new Date();
195
+ logger.info("Starting collaboration workflow", { workflowId, graphId, docPath });
196
+ const metadata = {
197
+ id: workflowId,
198
+ type: "realtime-collab",
199
+ startedAt,
200
+ status: "running",
201
+ currentStep: "initialize",
202
+ lastEventAt: startedAt
203
+ };
204
+ this.activeWorkflows.set(workflowId, metadata);
205
+ this.executionStats.totalExecutions++;
206
+ try {
207
+ const worldState = await this.initializeWorldState(docPath);
208
+ const plan = this.goapAdapter.createPlan(worldState, "start-development");
209
+ if (!plan.achievable) {
210
+ logger.warn("Goal not achievable with current state", {
211
+ worldState,
212
+ reason: plan.goal
213
+ });
214
+ }
215
+ metadata.currentStep = "executing-plan";
216
+ metadata.lastEventAt = /* @__PURE__ */ new Date();
217
+ const execution = await this.goapAdapter.executePlan(plan, worldState);
218
+ const completedAt = /* @__PURE__ */ new Date();
219
+ const duration = completedAt.getTime() - startedAt.getTime();
220
+ if (execution.success) {
221
+ this.executionStats.successfulExecutions++;
222
+ metadata.status = "completed";
223
+ } else {
224
+ this.executionStats.failedExecutions++;
225
+ metadata.status = "failed";
226
+ }
227
+ this.executionStats.totalDuration += duration;
228
+ metadata.lastEventAt = completedAt;
229
+ logger.info("Collaboration workflow completed", {
230
+ workflowId,
231
+ success: execution.success,
232
+ duration,
233
+ completedSteps: execution.completedSteps.length
234
+ });
235
+ return {
236
+ success: execution.success,
237
+ workflowId,
238
+ startedAt,
239
+ completedAt,
240
+ outcome: execution.success ? "completed" : "failed",
241
+ artifacts: execution.completedSteps,
242
+ error: execution.error
243
+ };
244
+ } catch (error) {
245
+ const completedAt = /* @__PURE__ */ new Date();
246
+ const duration = completedAt.getTime() - startedAt.getTime();
247
+ metadata.status = "failed";
248
+ metadata.lastEventAt = completedAt;
249
+ this.executionStats.failedExecutions++;
250
+ this.executionStats.totalDuration += duration;
251
+ const actualError = error instanceof Error ? error : new Error(String(error));
252
+ logger.error(`Workflow execution failed: ${workflowId}`, actualError);
253
+ return {
254
+ success: false,
255
+ workflowId,
256
+ startedAt,
257
+ completedAt,
258
+ outcome: "failed",
259
+ error: actualError.message
260
+ };
261
+ }
262
+ }
263
+ // ==========================================================================
264
+ // World State & Planning
265
+ // ==========================================================================
266
+ /**
267
+ * Initialize world state from a document
268
+ *
269
+ * @param docPath - Path to the document
270
+ * @returns Initial world state for planning
271
+ */
272
+ async initializeWorldState(docPath) {
273
+ return {
274
+ hasSpecification: true,
275
+ specCompleteness: 0,
276
+ hasAcceptanceCriteria: false,
277
+ taskDefined: false,
278
+ blockersFree: true,
279
+ developmentStarted: false,
280
+ timeSinceLastChange: 0,
281
+ lastChangeTimestamp: Date.now(),
282
+ activeCollaborators: [],
283
+ pendingGaps: []
284
+ };
285
+ }
286
+ /**
287
+ * Create a GOAP plan for a goal
288
+ *
289
+ * @param goal - Goal identifier
290
+ * @returns Generated plan
291
+ */
292
+ async createPlan(goal) {
293
+ const worldState = await this.initializeWorldState("");
294
+ return this.goapAdapter.createPlan(worldState, goal);
295
+ }
296
+ /**
297
+ * Evaluate readiness for development
298
+ *
299
+ * @param docPath - Path to the document
300
+ * @returns Readiness evaluation
301
+ */
302
+ async evaluateReadiness(docPath) {
303
+ const worldState = await this.initializeWorldState(docPath);
304
+ const analysis = await this.analyzeGaps(docPath);
305
+ worldState.specCompleteness = analysis.completeness;
306
+ worldState.hasAcceptanceCriteria = analysis.completeness >= 0.5;
307
+ worldState.pendingGaps = analysis.gaps.map((g) => g.description);
308
+ return this.goapAdapter.evaluateReadiness(worldState);
309
+ }
310
+ // ==========================================================================
311
+ // Gap Analysis & Documentation
312
+ // ==========================================================================
313
+ /**
314
+ * Analyze document for gaps
315
+ *
316
+ * @param docPath - Path to analyze
317
+ * @returns Gap analysis result
318
+ */
319
+ async analyzeGaps(docPath) {
320
+ logger.debug("Analyzing gaps", { docPath });
321
+ const requiredSections = [
322
+ "overview",
323
+ "requirements",
324
+ "acceptance-criteria",
325
+ "technical-spec"
326
+ ];
327
+ const foundCount = Math.floor(Math.random() * requiredSections.length) + 1;
328
+ const completeness = foundCount / requiredSections.length;
329
+ const gaps = [];
330
+ for (let i = foundCount; i < requiredSections.length; i++) {
331
+ gaps.push({
332
+ type: "missing_section",
333
+ description: `Missing ${requiredSections[i]} section`,
334
+ severity: "high",
335
+ suggestedContent: `# ${requiredSections[i]}
336
+
337
+ Content to be filled in.`
338
+ });
339
+ }
340
+ const recommendations = gaps.map(
341
+ (g) => `Add ${g.description.toLowerCase()}`
342
+ );
343
+ return {
344
+ docPath,
345
+ completeness,
346
+ gaps,
347
+ recommendations,
348
+ analyzedAt: /* @__PURE__ */ new Date()
349
+ };
350
+ }
351
+ /**
352
+ * Generate task specification from documentation
353
+ *
354
+ * @param docPath - Path to the source document
355
+ * @param analysis - Gap analysis results
356
+ * @returns Generated task specification
357
+ */
358
+ async generateTaskSpec(docPath, analysis) {
359
+ logger.info("Generating task spec", { docPath, completeness: analysis.completeness });
360
+ const priority = this.determinePriority(analysis.completeness);
361
+ const complexity = this.estimateComplexity(analysis);
362
+ const spec = {
363
+ id: `task-${Date.now()}`,
364
+ version: "1.0.0",
365
+ title: `Task from ${this.extractFilename(docPath)}`,
366
+ description: "Auto-generated task specification from documentation analysis",
367
+ priority,
368
+ requirements: this.extractRequirements(analysis),
369
+ acceptanceCriteria: this.generateAcceptanceCriteria(analysis),
370
+ estimatedComplexity: complexity,
371
+ sourceDoc: docPath,
372
+ generatedAt: /* @__PURE__ */ new Date(),
373
+ confidence: analysis.completeness
374
+ };
375
+ logger.debug("Task spec generated", { specId: spec.id, priority, complexity });
376
+ return spec;
377
+ }
378
+ /**
379
+ * Generate missing documentation
380
+ *
381
+ * @param docPath - Path to the document
382
+ * @param analysis - Gap analysis results
383
+ * @returns List of generated content
384
+ */
385
+ async generateMissingDocs(docPath, analysis) {
386
+ logger.info("Generating missing docs", {
387
+ docPath,
388
+ gapCount: analysis.gaps.length
389
+ });
390
+ const generatedDocs = [];
391
+ for (const gap of analysis.gaps) {
392
+ const content = gap.suggestedContent || `# ${gap.description}
393
+
394
+ This section needs to be completed.
395
+ `;
396
+ generatedDocs.push(content);
397
+ }
398
+ return generatedDocs;
399
+ }
400
+ // ==========================================================================
401
+ // Helper Methods
402
+ // ==========================================================================
403
+ /**
404
+ * Generate a unique workflow ID
405
+ */
406
+ generateWorkflowId(prefix) {
407
+ const timestamp = Date.now();
408
+ const random = Math.random().toString(36).substring(2, 11);
409
+ return `${prefix}-${timestamp}-${random}`;
410
+ }
411
+ /**
412
+ * Extract filename from path
413
+ */
414
+ extractFilename(path) {
415
+ const parts = path.split("/");
416
+ return parts[parts.length - 1] || "unknown";
417
+ }
418
+ /**
419
+ * Determine priority based on completeness
420
+ */
421
+ determinePriority(completeness) {
422
+ if (completeness >= 0.9) return "high";
423
+ if (completeness >= 0.7) return "medium";
424
+ if (completeness >= 0.5) return "low";
425
+ return "critical";
426
+ }
427
+ /**
428
+ * Estimate complexity from analysis
429
+ */
430
+ estimateComplexity(analysis) {
431
+ const baseComplexity = Math.ceil((1 - analysis.completeness) * 10);
432
+ const gapComplexity = analysis.gaps.length;
433
+ return Math.min(10, Math.max(1, baseComplexity + gapComplexity));
434
+ }
435
+ /**
436
+ * Extract requirements from analysis
437
+ */
438
+ extractRequirements(analysis) {
439
+ const requirements = analysis.recommendations.slice();
440
+ if (requirements.length === 0) {
441
+ requirements.push("Complete specification document");
442
+ }
443
+ return requirements;
444
+ }
445
+ /**
446
+ * Generate acceptance criteria from analysis
447
+ */
448
+ generateAcceptanceCriteria(analysis) {
449
+ const criteria = [
450
+ "Documentation is complete",
451
+ "All tests pass",
452
+ `Completeness score >= ${this.config.autoStartThreshold}`
453
+ ];
454
+ if (analysis.gaps.length > 0) {
455
+ criteria.push(`All ${analysis.gaps.length} gaps are addressed`);
456
+ }
457
+ return criteria;
458
+ }
459
+ // ==========================================================================
460
+ // Public API
461
+ // ==========================================================================
462
+ /**
463
+ * Add a path to watch
464
+ *
465
+ * @param path - Path to watch for changes
466
+ */
467
+ watch(path) {
468
+ this.fileWatcher.watch(path);
469
+ this.config.watchPaths.push(path);
470
+ logger.debug("Added watch path", { path });
471
+ }
472
+ /**
473
+ * Stop watching a path
474
+ *
475
+ * @param path - Path to stop watching
476
+ */
477
+ unwatch(path) {
478
+ this.fileWatcher.unwatch(path);
479
+ const index = this.config.watchPaths.indexOf(path);
480
+ if (index > -1) {
481
+ this.config.watchPaths.splice(index, 1);
482
+ }
483
+ logger.debug("Removed watch path", { path });
484
+ }
485
+ /**
486
+ * Get the webhook registry for external event handling
487
+ *
488
+ * @returns Webhook registry instance
489
+ */
490
+ getWebhookRegistry() {
491
+ return this.webhookRegistry;
492
+ }
493
+ /**
494
+ * Get the GOAP adapter for direct planning access
495
+ *
496
+ * @returns GOAP adapter instance
497
+ */
498
+ getGOAPAdapter() {
499
+ return this.goapAdapter;
500
+ }
501
+ /**
502
+ * Emit a workflow trigger event
503
+ *
504
+ * @param event - Event to emit
505
+ */
506
+ async emitEvent(event) {
507
+ await this.webhookRegistry.emit(event);
508
+ this.lastActivity = /* @__PURE__ */ new Date();
509
+ }
510
+ /**
511
+ * Get service status
512
+ *
513
+ * @returns Current service status
514
+ */
515
+ getStatus() {
516
+ const avgDuration = this.executionStats.totalExecutions > 0 ? this.executionStats.totalDuration / this.executionStats.totalExecutions : 0;
517
+ return {
518
+ isRunning: this.isRunning,
519
+ activeWorkflows: Array.from(this.activeWorkflows.values()),
520
+ watchedPaths: this.fileWatcher.getWatchedPaths(),
521
+ lastActivity: this.lastActivity,
522
+ stats: {
523
+ totalExecutions: this.executionStats.totalExecutions,
524
+ successfulExecutions: this.executionStats.successfulExecutions,
525
+ failedExecutions: this.executionStats.failedExecutions,
526
+ averageDuration: avgDuration
527
+ }
528
+ };
529
+ }
530
+ /**
531
+ * Get workflow configuration
532
+ *
533
+ * @returns Copy of the current configuration
534
+ */
535
+ getConfig() {
536
+ return {
537
+ workflow: this.config.workflow,
538
+ inactivityTimeout: this.config.inactivityTimeout,
539
+ autoStartThreshold: this.config.autoStartThreshold,
540
+ watchPaths: [...this.config.watchPaths],
541
+ debug: this.config.debug
542
+ };
543
+ }
544
+ /**
545
+ * Get a specific workflow run by ID
546
+ *
547
+ * @param workflowId - Workflow run identifier
548
+ * @returns Workflow metadata or undefined
549
+ */
550
+ getWorkflow(workflowId) {
551
+ return this.activeWorkflows.get(workflowId);
552
+ }
553
+ /**
554
+ * Cancel a running workflow
555
+ *
556
+ * @param workflowId - Workflow to cancel
557
+ * @returns Whether the workflow was cancelled
558
+ */
559
+ cancelWorkflow(workflowId) {
560
+ const workflow = this.activeWorkflows.get(workflowId);
561
+ if (workflow && workflow.status === "running") {
562
+ workflow.status = "failed";
563
+ workflow.lastEventAt = /* @__PURE__ */ new Date();
564
+ logger.info("Workflow cancelled", { workflowId });
565
+ return true;
566
+ }
567
+ return false;
568
+ }
569
+ }
570
+ function createWorkflowService(config) {
571
+ return new WorkflowService(config);
572
+ }
573
+ export {
574
+ WorkflowService,
575
+ createWorkflowService
576
+ };
577
+ //# sourceMappingURL=workflow-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-service.js","sources":["../../../src/workflow/services/workflow-service.ts"],"sourcesContent":["/**\n * Workflow Service\n *\n * Main service that orchestrates workflow execution with\n * Workflow DevKit, GOAP planning, and webhook handling.\n *\n * This service provides a unified interface for:\n * - Starting and managing workflows\n * - GOAP-based planning for task generation\n * - File watching and webhook handling\n * - Status monitoring and metrics\n *\n * @module workflow/services/workflow-service\n *\n * @example\n * ```typescript\n * import { createWorkflowService } from './workflow-service.js';\n *\n * const service = createWorkflowService({\n * inactivityTimeout: 5 * 60 * 1000,\n * autoStartThreshold: 0.7,\n * watchPaths: ['./docs'],\n * });\n *\n * await service.start();\n *\n * // Start a collaboration workflow\n * const result = await service.startCollaborationWorkflow(\n * 'graph-123',\n * './docs/spec.md'\n * );\n *\n * // Get service status\n * const status = service.getStatus();\n * console.log(`Active workflows: ${status.activeWorkflows.length}`);\n *\n * await service.stop();\n * ```\n */\n\nimport { createWorkflowConfig, type WorkflowConfig } from '../config.js';\nimport type {\n WorldState,\n GOAPPlan,\n TaskSpec,\n GapAnalysis,\n DocumentGap,\n WorkflowRunMetadata,\n ReadinessEvaluation,\n} from '../types.js';\nimport { GOAPAdapter, createGOAPAdapter } from '../adapters/goap-adapter.js';\nimport {\n createWebhookRegistry,\n createFileWatcherIntegration,\n type WebhookRegistry,\n type FileWatcherIntegration,\n type WorkflowTriggerEvent,\n} from '../handlers/webhook-handlers.js';\nimport { createLogger } from '../../utils/index.js';\n\nconst logger = createLogger('workflow-service');\n\n// ============================================================================\n// Configuration Types\n// ============================================================================\n\n/**\n * Workflow service configuration options\n */\nexport interface WorkflowServiceConfig {\n /** Workflow DevKit configuration */\n workflow?: WorkflowConfig;\n /** Inactivity timeout in ms (default: 5 minutes) */\n inactivityTimeout?: number;\n /** Auto-start development threshold (default: 0.7) */\n autoStartThreshold?: number;\n /** Paths to watch for changes */\n watchPaths?: string[];\n /** Enable debug logging */\n debug?: boolean;\n /** Webhook secret for validation */\n webhookSecret?: string;\n /** Maximum payload size for webhooks */\n maxPayloadSize?: number;\n}\n\n/**\n * Resolved configuration with defaults applied\n */\ninterface ResolvedConfig {\n workflow: WorkflowConfig;\n inactivityTimeout: number;\n autoStartThreshold: number;\n watchPaths: string[];\n debug: boolean;\n webhookSecret?: string;\n maxPayloadSize: number;\n}\n\n// ============================================================================\n// Result Types\n// ============================================================================\n\n/**\n * Workflow execution result\n */\nexport interface WorkflowExecutionResult {\n /** Whether workflow completed successfully */\n success: boolean;\n /** Unique workflow run identifier */\n workflowId: string;\n /** When the workflow started */\n startedAt: Date;\n /** When the workflow completed (if finished) */\n completedAt?: Date;\n /** Outcome of the workflow */\n outcome?: 'completed' | 'failed' | 'timeout' | 'cancelled';\n /** Artifacts produced by the workflow */\n artifacts?: string[];\n /** Error message if failed */\n error?: string;\n}\n\n/**\n * Service status information\n */\nexport interface WorkflowServiceStatus {\n /** Whether the service is currently running */\n isRunning: boolean;\n /** List of active workflow runs */\n activeWorkflows: WorkflowRunMetadata[];\n /** Paths being watched for changes */\n watchedPaths: string[];\n /** Timestamp of last activity */\n lastActivity?: Date;\n /** Execution statistics */\n stats: WorkflowExecutionStats;\n}\n\n/**\n * Execution statistics\n */\nexport interface WorkflowExecutionStats {\n /** Total number of workflow executions */\n totalExecutions: number;\n /** Number of successful executions */\n successfulExecutions: number;\n /** Number of failed executions */\n failedExecutions: number;\n /** Average execution duration in ms */\n averageDuration: number;\n}\n\n// ============================================================================\n// Workflow Service Class\n// ============================================================================\n\n/**\n * Workflow Service\n *\n * Orchestrates the entire workflow system including:\n * - GOAP planning for intelligent task generation\n * - File watching for automatic workflow triggers\n * - Webhook handling for external integrations\n * - Execution tracking and metrics collection\n */\nexport class WorkflowService {\n private config: ResolvedConfig;\n private goapAdapter: GOAPAdapter;\n private webhookRegistry: WebhookRegistry;\n private fileWatcher: FileWatcherIntegration;\n\n private isRunning = false;\n private activeWorkflows: Map<string, WorkflowRunMetadata> = new Map();\n private lastActivity?: Date;\n private executionStats = {\n totalExecutions: 0,\n successfulExecutions: 0,\n failedExecutions: 0,\n totalDuration: 0,\n };\n\n /**\n * Create a new workflow service\n *\n * @param config - Service configuration options\n */\n constructor(config: WorkflowServiceConfig = {}) {\n this.config = this.resolveConfig(config);\n this.goapAdapter = createGOAPAdapter();\n this.webhookRegistry = createWebhookRegistry({\n secret: this.config.webhookSecret,\n maxPayloadSize: this.config.maxPayloadSize,\n });\n this.fileWatcher = createFileWatcherIntegration(this.webhookRegistry, {\n inactivityThreshold: this.config.inactivityTimeout,\n });\n\n this.setupEventHandlers();\n }\n\n /**\n * Resolve configuration with defaults\n */\n private resolveConfig(config: WorkflowServiceConfig): ResolvedConfig {\n return {\n workflow: config.workflow ?? createWorkflowConfig(),\n inactivityTimeout: config.inactivityTimeout ?? 5 * 60 * 1000,\n autoStartThreshold: config.autoStartThreshold ?? 0.7,\n watchPaths: config.watchPaths ?? [],\n debug: config.debug ?? false,\n webhookSecret: config.webhookSecret,\n maxPayloadSize: config.maxPayloadSize ?? 1024 * 1024,\n };\n }\n\n /**\n * Setup event handlers for workflow triggers\n */\n private setupEventHandlers(): void {\n // Handle file changes\n this.webhookRegistry.on('file:changed', async (event) => {\n if (event.type === 'file:changed') {\n logger.debug('File changed event received', { path: event.path });\n this.lastActivity = new Date();\n await this.onDocumentChange(event.path);\n }\n });\n\n // Handle file creation\n this.webhookRegistry.on('file:created', async (event) => {\n if (event.type === 'file:created') {\n logger.debug('File created event received', { path: event.path });\n this.lastActivity = new Date();\n await this.onDocumentChange(event.path);\n }\n });\n\n // Handle file deletion\n this.webhookRegistry.on('file:deleted', async (event) => {\n if (event.type === 'file:deleted') {\n logger.debug('File deleted event received', { path: event.path });\n this.lastActivity = new Date();\n }\n });\n\n // Handle inactivity timeout\n this.webhookRegistry.on('timeout:inactivity', async (event) => {\n if (event.type === 'timeout:inactivity') {\n logger.info('Inactivity timeout triggered', {\n lastActivity: event.lastActivity,\n threshold: event.threshold,\n });\n await this.onInactivityTimeout();\n }\n });\n }\n\n // ==========================================================================\n // Lifecycle Methods\n // ==========================================================================\n\n /**\n * Start the workflow service\n *\n * Begins watching configured paths and processing events.\n */\n async start(): Promise<void> {\n if (this.isRunning) {\n logger.warn('Workflow service is already running');\n return;\n }\n\n logger.info('Starting workflow service', {\n world: this.config.workflow.world,\n watchPaths: this.config.watchPaths,\n inactivityTimeout: this.config.inactivityTimeout,\n });\n\n // Start watching configured paths\n for (const path of this.config.watchPaths) {\n this.fileWatcher.watch(path);\n }\n\n this.isRunning = true;\n this.lastActivity = new Date();\n logger.info('Workflow service started');\n }\n\n /**\n * Stop the workflow service\n *\n * Stops watching all paths and cleans up resources.\n */\n async stop(): Promise<void> {\n if (!this.isRunning) {\n logger.warn('Workflow service is not running');\n return;\n }\n\n logger.info('Stopping workflow service');\n\n // Stop watching all paths\n this.fileWatcher.unwatchAll();\n\n // Clear all webhook handlers\n this.webhookRegistry.clear();\n\n this.isRunning = false;\n logger.info('Workflow service stopped');\n }\n\n // ==========================================================================\n // Event Handlers\n // ==========================================================================\n\n /**\n * Handle document change event\n *\n * Analyzes the changed document for gaps and potentially\n * starts development if completeness threshold is met.\n */\n private async onDocumentChange(docPath: string): Promise<void> {\n logger.debug('Processing document change', { docPath });\n\n try {\n // Analyze gaps\n const analysis = await this.analyzeGaps(docPath);\n\n if (analysis.completeness >= this.config.autoStartThreshold) {\n // Generate task spec if completeness threshold met\n logger.info('Completeness threshold met, generating task spec', {\n completeness: analysis.completeness,\n threshold: this.config.autoStartThreshold,\n });\n\n await this.generateTaskSpec(docPath, analysis);\n } else {\n logger.debug('Waiting for more documentation', {\n completeness: analysis.completeness,\n threshold: this.config.autoStartThreshold,\n gaps: analysis.gaps.length,\n });\n }\n } catch (err) {\n const actualError = err instanceof Error ? err : new Error(String(err));\n logger.error(`Failed to process document change: ${docPath}`, actualError);\n }\n }\n\n /**\n * Handle inactivity timeout\n *\n * Checks for incomplete documentation and generates\n * missing content when idle.\n */\n private async onInactivityTimeout(): Promise<void> {\n logger.info('Inactivity timeout - checking for incomplete documentation');\n\n // Get all watched paths and check for gaps\n const watchedPaths = this.fileWatcher.getWatchedPaths();\n\n for (const path of watchedPaths) {\n try {\n const analysis = await this.analyzeGaps(path);\n\n if (analysis.gaps.length > 0) {\n logger.info('Found documentation gaps during inactivity', {\n path,\n gapCount: analysis.gaps.length,\n });\n\n await this.generateMissingDocs(path, analysis);\n }\n } catch (err) {\n const actualError = err instanceof Error ? err : new Error(String(err));\n logger.error(`Failed to analyze path during inactivity: ${path}`, actualError);\n }\n }\n }\n\n // ==========================================================================\n // Workflow Execution\n // ==========================================================================\n\n /**\n * Start a collaboration workflow for a graph/document\n *\n * @param graphId - Knowledge graph identifier\n * @param docPath - Path to the document\n * @returns Workflow execution result\n */\n async startCollaborationWorkflow(\n graphId: string,\n docPath: string\n ): Promise<WorkflowExecutionResult> {\n const workflowId = this.generateWorkflowId('collab');\n const startedAt = new Date();\n\n logger.info('Starting collaboration workflow', { workflowId, graphId, docPath });\n\n const metadata: WorkflowRunMetadata = {\n id: workflowId,\n type: 'realtime-collab',\n startedAt,\n status: 'running',\n currentStep: 'initialize',\n lastEventAt: startedAt,\n };\n\n this.activeWorkflows.set(workflowId, metadata);\n this.executionStats.totalExecutions++;\n\n try {\n // Initialize world state from document\n const worldState = await this.initializeWorldState(docPath);\n\n // Create GOAP plan\n const plan = this.goapAdapter.createPlan(worldState, 'start-development');\n\n if (!plan.achievable) {\n logger.warn('Goal not achievable with current state', {\n worldState,\n reason: plan.goal,\n });\n }\n\n // Update metadata\n metadata.currentStep = 'executing-plan';\n metadata.lastEventAt = new Date();\n\n // Execute plan\n const execution = await this.goapAdapter.executePlan(plan, worldState);\n\n const completedAt = new Date();\n const duration = completedAt.getTime() - startedAt.getTime();\n\n // Update stats\n if (execution.success) {\n this.executionStats.successfulExecutions++;\n metadata.status = 'completed';\n } else {\n this.executionStats.failedExecutions++;\n metadata.status = 'failed';\n }\n this.executionStats.totalDuration += duration;\n metadata.lastEventAt = completedAt;\n\n logger.info('Collaboration workflow completed', {\n workflowId,\n success: execution.success,\n duration,\n completedSteps: execution.completedSteps.length,\n });\n\n return {\n success: execution.success,\n workflowId,\n startedAt,\n completedAt,\n outcome: execution.success ? 'completed' : 'failed',\n artifacts: execution.completedSteps,\n error: execution.error,\n };\n } catch (error) {\n const completedAt = new Date();\n const duration = completedAt.getTime() - startedAt.getTime();\n\n metadata.status = 'failed';\n metadata.lastEventAt = completedAt;\n this.executionStats.failedExecutions++;\n this.executionStats.totalDuration += duration;\n\n const actualError = error instanceof Error ? error : new Error(String(error));\n logger.error(`Workflow execution failed: ${workflowId}`, actualError);\n\n return {\n success: false,\n workflowId,\n startedAt,\n completedAt,\n outcome: 'failed',\n error: actualError.message,\n };\n }\n }\n\n // ==========================================================================\n // World State & Planning\n // ==========================================================================\n\n /**\n * Initialize world state from a document\n *\n * @param docPath - Path to the document\n * @returns Initial world state for planning\n */\n private async initializeWorldState(docPath: string): Promise<WorldState> {\n // TODO: Integrate with actual document analysis\n // For now, return a basic initial state\n return {\n hasSpecification: true,\n specCompleteness: 0,\n hasAcceptanceCriteria: false,\n taskDefined: false,\n blockersFree: true,\n developmentStarted: false,\n timeSinceLastChange: 0,\n lastChangeTimestamp: Date.now(),\n activeCollaborators: [],\n pendingGaps: [],\n };\n }\n\n /**\n * Create a GOAP plan for a goal\n *\n * @param goal - Goal identifier\n * @returns Generated plan\n */\n async createPlan(goal: string): Promise<GOAPPlan> {\n const worldState = await this.initializeWorldState('');\n return this.goapAdapter.createPlan(worldState, goal);\n }\n\n /**\n * Evaluate readiness for development\n *\n * @param docPath - Path to the document\n * @returns Readiness evaluation\n */\n async evaluateReadiness(docPath: string): Promise<ReadinessEvaluation> {\n const worldState = await this.initializeWorldState(docPath);\n const analysis = await this.analyzeGaps(docPath);\n\n // Update world state with analysis results\n worldState.specCompleteness = analysis.completeness;\n worldState.hasAcceptanceCriteria = analysis.completeness >= 0.5;\n worldState.pendingGaps = analysis.gaps.map((g) => g.description);\n\n return this.goapAdapter.evaluateReadiness(worldState);\n }\n\n // ==========================================================================\n // Gap Analysis & Documentation\n // ==========================================================================\n\n /**\n * Analyze document for gaps\n *\n * @param docPath - Path to analyze\n * @returns Gap analysis result\n */\n async analyzeGaps(docPath: string): Promise<GapAnalysis> {\n logger.debug('Analyzing gaps', { docPath });\n\n // Required sections for a complete specification\n const requiredSections = [\n 'overview',\n 'requirements',\n 'acceptance-criteria',\n 'technical-spec',\n ];\n\n // TODO: Integrate with actual document analysis\n // For now, simulate finding some sections\n const foundCount = Math.floor(Math.random() * requiredSections.length) + 1;\n const completeness = foundCount / requiredSections.length;\n\n const gaps: DocumentGap[] = [];\n for (let i = foundCount; i < requiredSections.length; i++) {\n gaps.push({\n type: 'missing_section',\n description: `Missing ${requiredSections[i]} section`,\n severity: 'high',\n suggestedContent: `# ${requiredSections[i]}\\n\\nContent to be filled in.`,\n });\n }\n\n const recommendations = gaps.map(\n (g) => `Add ${g.description.toLowerCase()}`\n );\n\n return {\n docPath,\n completeness,\n gaps,\n recommendations,\n analyzedAt: new Date(),\n };\n }\n\n /**\n * Generate task specification from documentation\n *\n * @param docPath - Path to the source document\n * @param analysis - Gap analysis results\n * @returns Generated task specification\n */\n async generateTaskSpec(docPath: string, analysis: GapAnalysis): Promise<TaskSpec> {\n logger.info('Generating task spec', { docPath, completeness: analysis.completeness });\n\n const priority = this.determinePriority(analysis.completeness);\n const complexity = this.estimateComplexity(analysis);\n\n const spec: TaskSpec = {\n id: `task-${Date.now()}`,\n version: '1.0.0',\n title: `Task from ${this.extractFilename(docPath)}`,\n description: 'Auto-generated task specification from documentation analysis',\n priority,\n requirements: this.extractRequirements(analysis),\n acceptanceCriteria: this.generateAcceptanceCriteria(analysis),\n estimatedComplexity: complexity,\n sourceDoc: docPath,\n generatedAt: new Date(),\n confidence: analysis.completeness,\n };\n\n logger.debug('Task spec generated', { specId: spec.id, priority, complexity });\n return spec;\n }\n\n /**\n * Generate missing documentation\n *\n * @param docPath - Path to the document\n * @param analysis - Gap analysis results\n * @returns List of generated content\n */\n async generateMissingDocs(docPath: string, analysis: GapAnalysis): Promise<string[]> {\n logger.info('Generating missing docs', {\n docPath,\n gapCount: analysis.gaps.length,\n });\n\n const generatedDocs: string[] = [];\n\n for (const gap of analysis.gaps) {\n const content =\n gap.suggestedContent ||\n `# ${gap.description}\\n\\nThis section needs to be completed.\\n`;\n generatedDocs.push(content);\n }\n\n return generatedDocs;\n }\n\n // ==========================================================================\n // Helper Methods\n // ==========================================================================\n\n /**\n * Generate a unique workflow ID\n */\n private generateWorkflowId(prefix: string): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 11);\n return `${prefix}-${timestamp}-${random}`;\n }\n\n /**\n * Extract filename from path\n */\n private extractFilename(path: string): string {\n const parts = path.split('/');\n return parts[parts.length - 1] || 'unknown';\n }\n\n /**\n * Determine priority based on completeness\n */\n private determinePriority(\n completeness: number\n ): 'low' | 'medium' | 'high' | 'critical' {\n if (completeness >= 0.9) return 'high';\n if (completeness >= 0.7) return 'medium';\n if (completeness >= 0.5) return 'low';\n return 'critical'; // Needs more work before starting\n }\n\n /**\n * Estimate complexity from analysis\n */\n private estimateComplexity(analysis: GapAnalysis): number {\n // Base complexity on inverse of completeness\n const baseComplexity = Math.ceil((1 - analysis.completeness) * 10);\n // Add complexity for each gap\n const gapComplexity = analysis.gaps.length;\n return Math.min(10, Math.max(1, baseComplexity + gapComplexity));\n }\n\n /**\n * Extract requirements from analysis\n */\n private extractRequirements(analysis: GapAnalysis): string[] {\n const requirements = analysis.recommendations.slice();\n if (requirements.length === 0) {\n requirements.push('Complete specification document');\n }\n return requirements;\n }\n\n /**\n * Generate acceptance criteria from analysis\n */\n private generateAcceptanceCriteria(analysis: GapAnalysis): string[] {\n const criteria = [\n 'Documentation is complete',\n 'All tests pass',\n `Completeness score >= ${this.config.autoStartThreshold}`,\n ];\n\n if (analysis.gaps.length > 0) {\n criteria.push(`All ${analysis.gaps.length} gaps are addressed`);\n }\n\n return criteria;\n }\n\n // ==========================================================================\n // Public API\n // ==========================================================================\n\n /**\n * Add a path to watch\n *\n * @param path - Path to watch for changes\n */\n watch(path: string): void {\n this.fileWatcher.watch(path);\n this.config.watchPaths.push(path);\n logger.debug('Added watch path', { path });\n }\n\n /**\n * Stop watching a path\n *\n * @param path - Path to stop watching\n */\n unwatch(path: string): void {\n this.fileWatcher.unwatch(path);\n const index = this.config.watchPaths.indexOf(path);\n if (index > -1) {\n this.config.watchPaths.splice(index, 1);\n }\n logger.debug('Removed watch path', { path });\n }\n\n /**\n * Get the webhook registry for external event handling\n *\n * @returns Webhook registry instance\n */\n getWebhookRegistry(): WebhookRegistry {\n return this.webhookRegistry;\n }\n\n /**\n * Get the GOAP adapter for direct planning access\n *\n * @returns GOAP adapter instance\n */\n getGOAPAdapter(): GOAPAdapter {\n return this.goapAdapter;\n }\n\n /**\n * Emit a workflow trigger event\n *\n * @param event - Event to emit\n */\n async emitEvent(event: WorkflowTriggerEvent): Promise<void> {\n await this.webhookRegistry.emit(event);\n this.lastActivity = new Date();\n }\n\n /**\n * Get service status\n *\n * @returns Current service status\n */\n getStatus(): WorkflowServiceStatus {\n const avgDuration =\n this.executionStats.totalExecutions > 0\n ? this.executionStats.totalDuration / this.executionStats.totalExecutions\n : 0;\n\n return {\n isRunning: this.isRunning,\n activeWorkflows: Array.from(this.activeWorkflows.values()),\n watchedPaths: this.fileWatcher.getWatchedPaths(),\n lastActivity: this.lastActivity,\n stats: {\n totalExecutions: this.executionStats.totalExecutions,\n successfulExecutions: this.executionStats.successfulExecutions,\n failedExecutions: this.executionStats.failedExecutions,\n averageDuration: avgDuration,\n },\n };\n }\n\n /**\n * Get workflow configuration\n *\n * @returns Copy of the current configuration\n */\n getConfig(): WorkflowServiceConfig {\n return {\n workflow: this.config.workflow,\n inactivityTimeout: this.config.inactivityTimeout,\n autoStartThreshold: this.config.autoStartThreshold,\n watchPaths: [...this.config.watchPaths],\n debug: this.config.debug,\n };\n }\n\n /**\n * Get a specific workflow run by ID\n *\n * @param workflowId - Workflow run identifier\n * @returns Workflow metadata or undefined\n */\n getWorkflow(workflowId: string): WorkflowRunMetadata | undefined {\n return this.activeWorkflows.get(workflowId);\n }\n\n /**\n * Cancel a running workflow\n *\n * @param workflowId - Workflow to cancel\n * @returns Whether the workflow was cancelled\n */\n cancelWorkflow(workflowId: string): boolean {\n const workflow = this.activeWorkflows.get(workflowId);\n if (workflow && workflow.status === 'running') {\n workflow.status = 'failed';\n workflow.lastEventAt = new Date();\n logger.info('Workflow cancelled', { workflowId });\n return true;\n }\n return false;\n }\n}\n\n// ============================================================================\n// Factory Function\n// ============================================================================\n\n/**\n * Create a workflow service instance\n *\n * @param config - Service configuration options\n * @returns Configured workflow service\n *\n * @example\n * ```typescript\n * const service = createWorkflowService({\n * watchPaths: ['./docs', './specs'],\n * autoStartThreshold: 0.8,\n * });\n *\n * await service.start();\n * ```\n */\nexport function createWorkflowService(config?: WorkflowServiceConfig): WorkflowService {\n return new WorkflowService(config);\n}\n"],"names":[],"mappings":"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"}