@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 @@
1
+ {"version":3,"file":"audit.js","sources":["../../../src/cli/commands/audit.ts"],"sourcesContent":["/**\n * Audit Command\n *\n * CLI commands for querying and managing the exochain audit log.\n * Provides access to:\n * - Query audit events with filtering\n * - Create checkpoints for chain finality\n * - Verify audit chain integrity\n * - Check and manage sync status with peers\n * - Export audit log data\n *\n * @module cli/commands/audit\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { existsSync } from 'fs';\nimport { join } from 'path';\nimport { writeFile } from 'fs/promises';\nimport {\n createAuditChain,\n createAuditChainConfig,\n type LedgerEvent,\n type EventQueryOptions,\n type ChainStats,\n type Checkpoint,\n type HybridLogicalClock,\n} from '../../audit/index.js';\nimport {\n createSyndicationService,\n type PeerInfo,\n type SyncResult,\n} from '../../audit/services/syndication.js';\nimport { validateProjectRoot } from '../../core/security.js';\n\n/**\n * Format a date for display\n *\n * @param date - Date to format\n * @returns Formatted date string\n */\nfunction formatDate(date: Date | undefined): string {\n if (!date) return 'N/A';\n return date.toISOString().replace('T', ' ').replace(/\\.\\d{3}Z$/, '');\n}\n\n/**\n * Format HLC timestamp for display\n *\n * @param hlc - Hybrid logical clock to format\n * @returns Formatted timestamp string\n */\nfunction formatHLC(hlc: HybridLogicalClock): string {\n const date = new Date(hlc.physicalMs);\n return `${formatDate(date)} (L:${hlc.logical})`;\n}\n\n/**\n * Format duration in milliseconds for display\n *\n * @param ms - Duration in milliseconds\n * @returns Formatted duration string\n */\nfunction formatDuration(ms: number): string {\n if (ms < 1000) return `${ms}ms`;\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n return `${(ms / 60000).toFixed(1)}m`;\n}\n\n/**\n * Print events in a table format\n *\n * @param events - Events to display\n */\nfunction printEventsTable(events: LedgerEvent[]): void {\n if (events.length === 0) {\n console.log(chalk.gray(' No events found'));\n return;\n }\n\n // Header\n console.log(\n chalk.gray(\n ' ' +\n 'ID'.padEnd(16) +\n 'Type'.padEnd(24) +\n 'Author'.padEnd(20) +\n 'Timestamp'\n )\n );\n console.log(chalk.gray(' ' + '-'.repeat(80)));\n\n // Rows\n for (const event of events) {\n const id = event.id.substring(0, 14) + '..';\n const type = event.envelope.payload.type;\n const author = event.envelope.author.substring(0, 18);\n const timestamp = formatHLC(event.envelope.hlc);\n\n const typeColor =\n type.includes('Created') ? chalk.green :\n type.includes('Deleted') ? chalk.red :\n type.includes('Updated') ? chalk.yellow :\n type.includes('Completed') ? chalk.cyan :\n type.includes('Started') ? chalk.blue :\n chalk.white;\n\n console.log(\n ' ' +\n chalk.gray(id.padEnd(16)) +\n typeColor(type.padEnd(24)) +\n chalk.gray(author.padEnd(20)) +\n chalk.gray(timestamp)\n );\n }\n}\n\n/**\n * Print chain statistics\n *\n * @param stats - Chain statistics to display\n */\nfunction printChainStats(stats: ChainStats): void {\n const statusColor =\n stats.status === 'healthy' ? chalk.green :\n stats.status === 'syncing' ? chalk.yellow :\n chalk.red;\n\n console.log(chalk.white(' Overview'));\n console.log(chalk.gray(` Status: `) + statusColor(stats.status));\n console.log(chalk.gray(` Total events: ${stats.totalEvents}`));\n console.log(chalk.gray(` Checkpoint height: ${stats.checkpointHeight}`));\n console.log(chalk.gray(` Unique authors: ${stats.uniqueAuthors}`));\n if (stats.lastEventTime) {\n console.log(chalk.gray(` Last event: ${formatDate(stats.lastEventTime)}`));\n }\n\n if (Object.keys(stats.eventsByType).length > 0) {\n console.log();\n console.log(chalk.white(' Events by Type'));\n const sortedTypes = Object.entries(stats.eventsByType)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [type, count] of sortedTypes) {\n const bar = '|'.repeat(Math.min(Math.ceil(count / 5), 30));\n console.log(\n chalk.gray(` ${type.padEnd(24)} ${String(count).padStart(5)} `) +\n chalk.blue(bar)\n );\n }\n }\n}\n\n/**\n * Print checkpoint information\n *\n * @param checkpoint - Checkpoint to display\n */\nfunction printCheckpoint(checkpoint: Checkpoint | null): void {\n if (!checkpoint) {\n console.log(chalk.gray(' No checkpoints created yet'));\n return;\n }\n\n console.log(chalk.white(' Latest Checkpoint'));\n console.log(chalk.gray(` Height: ${checkpoint.height}`));\n console.log(chalk.gray(` Event root: ${checkpoint.eventRoot.substring(0, 32)}...`));\n console.log(chalk.gray(` State root: ${checkpoint.stateRoot.substring(0, 32)}...`));\n console.log(chalk.gray(` Timestamp: ${formatDate(checkpoint.timestamp)}`));\n console.log(chalk.gray(` Signatures: ${checkpoint.validatorSignatures.length}`));\n}\n\n/**\n * Print peer information in table format\n *\n * @param peers - Peers to display\n */\nfunction printPeersTable(peers: PeerInfo[]): void {\n if (peers.length === 0) {\n console.log(chalk.gray(' No peers configured'));\n return;\n }\n\n console.log(\n chalk.gray(\n ' ' +\n 'ID'.padEnd(16) +\n 'Status'.padEnd(14) +\n 'Last Sync'.padEnd(22) +\n 'Events (Rx/Tx)'\n )\n );\n console.log(chalk.gray(' ' + '-'.repeat(70)));\n\n for (const peer of peers) {\n const statusColor =\n peer.status === 'connected' ? chalk.green :\n peer.status === 'syncing' ? chalk.yellow :\n peer.status === 'error' ? chalk.red :\n chalk.gray;\n\n const lastSync = peer.lastSyncTime ? formatDate(peer.lastSyncTime) : 'Never';\n const events = `${peer.eventsReceived}/${peer.eventsSent}`;\n\n console.log(\n ' ' +\n chalk.gray(peer.id.padEnd(16)) +\n statusColor(peer.status.padEnd(14)) +\n chalk.gray(lastSync.padEnd(22)) +\n chalk.gray(events)\n );\n\n if (peer.lastError) {\n console.log(chalk.red(` Error: ${peer.lastError}`));\n }\n }\n}\n\n/**\n * Print sync results\n *\n * @param results - Sync results to display\n */\nfunction printSyncResults(results: SyncResult[]): void {\n if (results.length === 0) {\n console.log(chalk.gray(' No sync operations performed'));\n return;\n }\n\n console.log(\n chalk.gray(\n ' ' +\n 'Peer'.padEnd(16) +\n 'Status'.padEnd(10) +\n 'Received'.padEnd(10) +\n 'Sent'.padEnd(10) +\n 'Duration'\n )\n );\n console.log(chalk.gray(' ' + '-'.repeat(60)));\n\n for (const result of results) {\n const statusColor = result.success ? chalk.green : chalk.red;\n const status = result.success ? 'OK' : 'FAIL';\n\n console.log(\n ' ' +\n chalk.gray(result.peerId.substring(0, 14).padEnd(16)) +\n statusColor(status.padEnd(10)) +\n chalk.gray(String(result.eventsReceived).padEnd(10)) +\n chalk.gray(String(result.eventsSent).padEnd(10)) +\n chalk.gray(formatDuration(result.duration))\n );\n\n if (result.error) {\n console.log(chalk.red(` Error: ${result.error}`));\n }\n }\n}\n\n/**\n * Parse date string to HLC for filtering\n *\n * @param dateStr - Date string to parse\n * @returns HLC timestamp or undefined\n */\nfunction parseDateToHLC(dateStr: string | undefined): HybridLogicalClock | undefined {\n if (!dateStr) return undefined;\n\n const date = new Date(dateStr);\n if (isNaN(date.getTime())) {\n throw new Error(`Invalid date format: ${dateStr}`);\n }\n\n return {\n physicalMs: date.getTime(),\n logical: 0,\n };\n}\n\n/**\n * Create audit command with subcommands\n *\n * @returns Configured audit command\n */\nexport function createAuditCommand(): Command {\n const audit = new Command('audit')\n .description('Query and manage the exochain audit log');\n\n // ============================================================================\n // Query subcommand\n // ============================================================================\n audit\n .command('query')\n .description('Query the audit log')\n .option('-t, --type <type>', 'Filter by event type (e.g., NodeCreated, WorkflowCompleted)')\n .option('-s, --start <date>', 'Start date (ISO format, e.g., 2024-01-01)')\n .option('-e, --end <date>', 'End date (ISO format)')\n .option('-l, --limit <n>', 'Maximum results to return', '50')\n .option('-a, --author <did>', 'Filter by author DID')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Querying audit log...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n\n // Build query options\n const queryOptions: EventQueryOptions = {\n limit: parseInt(options.limit, 10) || 50,\n includeProof: false,\n };\n\n if (options.type) {\n queryOptions.type = options.type;\n }\n\n if (options.author) {\n queryOptions.author = options.author;\n }\n\n if (options.start) {\n queryOptions.since = parseDateToHLC(options.start);\n }\n\n if (options.end) {\n queryOptions.until = parseDateToHLC(options.end);\n }\n\n const result = await auditChain.queryEvents(queryOptions);\n\n spinner.stop();\n\n if (options.json) {\n console.log(JSON.stringify({\n events: result.events.map(e => ({\n id: e.id,\n type: e.envelope.payload.type,\n author: e.envelope.author,\n timestamp: e.envelope.hlc.physicalMs,\n parents: e.envelope.parents,\n payload: e.envelope.payload,\n })),\n totalCount: result.totalCount,\n hasMore: result.hasMore,\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Audit Log Query Results\\n'));\n console.log(chalk.gray(` Found ${result.totalCount} events (showing ${result.events.length})`));\n if (result.hasMore) {\n console.log(chalk.gray(' (more results available, increase --limit to see more)'));\n }\n console.log();\n\n printEventsTable(result.events);\n\n // Show chain stats summary\n console.log();\n const stats = auditChain.getStats();\n console.log(chalk.gray(` Chain status: `) + chalk.green(stats.status));\n console.log();\n\n } catch (error) {\n spinner.fail('Query failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // ============================================================================\n // Checkpoint subcommand\n // ============================================================================\n audit\n .command('checkpoint')\n .description('Create a checkpoint in the audit chain')\n .option('-n, --name <name>', 'Checkpoint name/label')\n .option('-t, --tags <tags>', 'Comma-separated tags')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Creating checkpoint...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n\n // Create the checkpoint\n const checkpoint = await auditChain.createCheckpoint();\n\n spinner.succeed('Checkpoint created!');\n\n if (options.json) {\n console.log(JSON.stringify({\n height: checkpoint.height,\n eventRoot: checkpoint.eventRoot,\n stateRoot: checkpoint.stateRoot,\n timestamp: checkpoint.timestamp.toISOString(),\n signatures: checkpoint.validatorSignatures.length,\n name: options.name,\n tags: options.tags?.split(',').map((t: string) => t.trim()),\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Checkpoint Details\\n'));\n\n if (options.name) {\n console.log(chalk.white(` Name: ${options.name}`));\n }\n if (options.tags) {\n const tags = options.tags.split(',').map((t: string) => t.trim());\n console.log(chalk.white(` Tags: ${tags.join(', ')}`));\n }\n\n console.log();\n printCheckpoint(checkpoint);\n console.log();\n\n } catch (error) {\n spinner.fail('Checkpoint creation failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // ============================================================================\n // Verify subcommand\n // ============================================================================\n audit\n .command('verify')\n .description('Verify audit chain integrity')\n .option('--full', 'Perform full chain verification (slower)')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Verifying audit chain integrity...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n\n const startTime = Date.now();\n const stats = auditChain.getStats();\n const checkpoint = auditChain.getLatestCheckpoint();\n\n // Verify chain structure\n const issues: string[] = [];\n const warnings: string[] = [];\n\n // Check for basic chain health\n if (stats.status === 'degraded') {\n issues.push('Chain status is degraded');\n }\n\n // Check checkpoint consistency\n if (stats.checkpointHeight > 0 && !checkpoint) {\n issues.push('Checkpoint height > 0 but no checkpoint found');\n }\n\n // Check for orphan events (no parents and not genesis)\n const chainData = auditChain.export();\n let genesisCount = 0;\n for (const event of chainData.events) {\n if (event.envelope.parents.length === 0) {\n genesisCount++;\n }\n }\n if (genesisCount > 1) {\n warnings.push(`Multiple genesis events found: ${genesisCount}`);\n }\n\n // Verify tips are valid\n const tips = auditChain.getTips();\n if (tips.length === 0 && chainData.events.length > 0) {\n issues.push('No chain tips but events exist');\n }\n\n // Check event ordering if full verification\n if (options.full) {\n spinner.text = 'Performing full chain verification...';\n\n // Verify event IDs and signatures\n for (const event of chainData.events) {\n // Check parent existence\n for (const parentId of event.envelope.parents) {\n const parent = chainData.events.find(e => e.id === parentId);\n if (!parent) {\n issues.push(`Event ${event.id.substring(0, 12)}.. references missing parent ${parentId.substring(0, 12)}..`);\n }\n }\n }\n }\n\n const duration = Date.now() - startTime;\n const valid = issues.length === 0;\n\n spinner.stop();\n\n if (options.json) {\n console.log(JSON.stringify({\n valid,\n issues,\n warnings,\n stats: {\n totalEvents: stats.totalEvents,\n checkpointHeight: stats.checkpointHeight,\n status: stats.status,\n tips: tips.length,\n },\n duration,\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Audit Chain Verification\\n'));\n\n if (valid) {\n console.log(chalk.green(' Status: VALID'));\n } else {\n console.log(chalk.red(' Status: INVALID'));\n }\n\n console.log();\n console.log(chalk.white(' Statistics'));\n console.log(chalk.gray(` Events verified: ${stats.totalEvents}`));\n console.log(chalk.gray(` Checkpoint height: ${stats.checkpointHeight}`));\n console.log(chalk.gray(` Chain tips: ${tips.length}`));\n console.log(chalk.gray(` Verification time: ${formatDuration(duration)}`));\n\n if (issues.length > 0) {\n console.log();\n console.log(chalk.red(' Issues Found'));\n for (const issue of issues) {\n console.log(chalk.red(` - ${issue}`));\n }\n }\n\n if (warnings.length > 0) {\n console.log();\n console.log(chalk.yellow(' Warnings'));\n for (const warning of warnings) {\n console.log(chalk.yellow(` - ${warning}`));\n }\n }\n\n console.log();\n\n if (!valid) {\n process.exit(1);\n }\n\n } catch (error) {\n spinner.fail('Verification failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // ============================================================================\n // Sync subcommand group\n // ============================================================================\n const sync = audit\n .command('sync')\n .description('Manage audit chain synchronization');\n\n // sync status\n sync\n .command('status')\n .description('Check synchronization status')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Checking sync status...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n const syndication = createSyndicationService({ auditChain });\n\n const stats = syndication.getStats();\n const chainStats = auditChain.getStats();\n\n spinner.stop();\n\n if (options.json) {\n console.log(JSON.stringify({\n service: {\n running: stats.isRunning,\n autoSyncEnabled: stats.autoSyncEnabled,\n syncInterval: stats.syncInterval,\n },\n peers: {\n total: stats.totalPeers,\n connected: stats.connectedPeers,\n syncing: stats.syncingPeers,\n error: stats.errorPeers,\n },\n transfer: {\n received: stats.totalEventsReceived,\n sent: stats.totalEventsSent,\n errors: stats.totalErrors,\n },\n chain: {\n status: chainStats.status,\n events: chainStats.totalEvents,\n checkpointHeight: chainStats.checkpointHeight,\n },\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Sync Status\\n'));\n\n // Service status\n console.log(chalk.white(' Service'));\n console.log(chalk.gray(` Running: `) + (stats.isRunning ? chalk.green('Yes') : chalk.gray('No')));\n console.log(chalk.gray(` Auto-sync: `) + (stats.autoSyncEnabled ? chalk.green('Enabled') : chalk.gray('Disabled')));\n if (stats.autoSyncEnabled) {\n console.log(chalk.gray(` Interval: ${formatDuration(stats.syncInterval)}`));\n }\n\n // Peer status\n console.log();\n console.log(chalk.white(' Peers'));\n console.log(chalk.gray(` Total: ${stats.totalPeers}`));\n console.log(chalk.gray(` Connected: `) + chalk.green(String(stats.connectedPeers)));\n if (stats.syncingPeers > 0) {\n console.log(chalk.gray(` Syncing: `) + chalk.yellow(String(stats.syncingPeers)));\n }\n if (stats.errorPeers > 0) {\n console.log(chalk.gray(` Errors: `) + chalk.red(String(stats.errorPeers)));\n }\n\n // Transfer stats\n console.log();\n console.log(chalk.white(' Transfer Statistics'));\n console.log(chalk.gray(` Events received: ${stats.totalEventsReceived}`));\n console.log(chalk.gray(` Events sent: ${stats.totalEventsSent}`));\n if (stats.totalErrors > 0) {\n console.log(chalk.gray(` Errors: `) + chalk.red(String(stats.totalErrors)));\n }\n\n // Chain status\n console.log();\n console.log(chalk.white(' Chain'));\n const chainStatusColor =\n chainStats.status === 'healthy' ? chalk.green :\n chainStats.status === 'syncing' ? chalk.yellow :\n chalk.red;\n console.log(chalk.gray(` Status: `) + chainStatusColor(chainStats.status));\n console.log(chalk.gray(` Events: ${chainStats.totalEvents}`));\n console.log(chalk.gray(` Checkpoint: ${chainStats.checkpointHeight}`));\n\n console.log();\n\n } catch (error) {\n spinner.fail('Status check failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // sync peers\n sync\n .command('peers')\n .description('List sync peers')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Fetching peer list...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n const syndication = createSyndicationService({ auditChain });\n\n const peers = syndication.getAllPeers();\n\n spinner.stop();\n\n if (options.json) {\n console.log(JSON.stringify({\n peers: peers.map(p => ({\n id: p.id,\n endpoint: p.endpoint,\n did: p.did,\n status: p.status,\n lastSync: p.lastSyncTime?.toISOString(),\n lastCheckpointHeight: p.lastCheckpointHeight,\n eventsReceived: p.eventsReceived,\n eventsSent: p.eventsSent,\n errors: p.errors,\n lastError: p.lastError,\n latency: p.latency,\n })),\n summary: {\n total: peers.length,\n connected: peers.filter(p => p.status === 'connected').length,\n error: peers.filter(p => p.status === 'error').length,\n },\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Sync Peers\\n'));\n\n printPeersTable(peers);\n\n // Summary\n const connected = peers.filter(p => p.status === 'connected').length;\n const errors = peers.filter(p => p.status === 'error').length;\n\n console.log();\n console.log(chalk.gray(` Total: ${peers.length}, Connected: ${connected}, Errors: ${errors}`));\n console.log();\n\n } catch (error) {\n spinner.fail('Failed to fetch peers');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // sync now (force immediate sync)\n sync\n .command('now')\n .description('Force immediate synchronization with all peers')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Syncing with peers...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n const syndication = createSyndicationService({ auditChain });\n\n await syndication.start();\n const results = await syndication.forceSyncNow();\n await syndication.stop();\n\n spinner.stop();\n\n if (options.json) {\n console.log(JSON.stringify({\n results: results.map(r => ({\n peerId: r.peerId,\n success: r.success,\n eventsReceived: r.eventsReceived,\n eventsSent: r.eventsSent,\n newCheckpointHeight: r.newCheckpointHeight,\n duration: r.duration,\n error: r.error,\n })),\n summary: {\n total: results.length,\n successful: results.filter(r => r.success).length,\n failed: results.filter(r => !r.success).length,\n },\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Sync Results\\n'));\n\n printSyncResults(results);\n\n // Summary\n const successful = results.filter(r => r.success).length;\n const failed = results.filter(r => !r.success).length;\n const totalReceived = results.reduce((sum, r) => sum + r.eventsReceived, 0);\n const totalSent = results.reduce((sum, r) => sum + r.eventsSent, 0);\n\n console.log();\n console.log(chalk.gray(` Peers: ${results.length} (${successful} successful, ${failed} failed)`));\n console.log(chalk.gray(` Events: ${totalReceived} received, ${totalSent} sent`));\n console.log();\n\n if (failed > 0) {\n process.exit(1);\n }\n\n } catch (error) {\n spinner.fail('Sync failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // ============================================================================\n // Export subcommand\n // ============================================================================\n audit\n .command('export')\n .description('Export audit log data')\n .option('-o, --output <file>', 'Output file path')\n .option('-f, --format <format>', 'Export format (json|jsonl)', 'json')\n .option('-t, --type <type>', 'Filter by event type')\n .option('-s, --start <date>', 'Start date filter')\n .option('-e, --end <date>', 'End date filter')\n .option('-l, --limit <n>', 'Maximum events to export')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n const spinner = ora('Exporting audit log...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n\n // Build query options\n const queryOptions: EventQueryOptions = {\n includeProof: true,\n };\n\n if (options.type) {\n queryOptions.type = options.type;\n }\n\n if (options.start) {\n queryOptions.since = parseDateToHLC(options.start);\n }\n\n if (options.end) {\n queryOptions.until = parseDateToHLC(options.end);\n }\n\n if (options.limit) {\n queryOptions.limit = parseInt(options.limit, 10);\n }\n\n const result = await auditChain.queryEvents(queryOptions);\n const chainData = auditChain.export();\n const checkpoint = auditChain.getLatestCheckpoint();\n\n // Format export data\n const exportData = {\n metadata: {\n exportedAt: new Date().toISOString(),\n chainStatus: auditChain.getStats().status,\n totalEvents: result.totalCount,\n exportedEvents: result.events.length,\n checkpointHeight: checkpoint?.height ?? 0,\n filters: {\n type: options.type,\n startDate: options.start,\n endDate: options.end,\n limit: options.limit,\n },\n },\n checkpoint: checkpoint ? {\n height: checkpoint.height,\n eventRoot: checkpoint.eventRoot,\n stateRoot: checkpoint.stateRoot,\n timestamp: checkpoint.timestamp.toISOString(),\n signatures: checkpoint.validatorSignatures.length,\n } : null,\n events: result.events.map(e => ({\n id: e.id,\n type: e.envelope.payload.type,\n author: e.envelope.author,\n timestamp: new Date(e.envelope.hlc.physicalMs).toISOString(),\n hlc: e.envelope.hlc,\n parents: e.envelope.parents,\n payload: e.envelope.payload,\n signature: e.signature,\n })),\n tips: chainData.tips,\n };\n\n let output: string;\n if (options.format === 'jsonl') {\n // JSON Lines format - one event per line\n const lines = [\n JSON.stringify({ type: 'metadata', data: exportData.metadata }),\n ...(exportData.checkpoint ? [JSON.stringify({ type: 'checkpoint', data: exportData.checkpoint })] : []),\n ...exportData.events.map(e => JSON.stringify({ type: 'event', data: e })),\n ];\n output = lines.join('\\n');\n } else {\n output = JSON.stringify(exportData, null, 2);\n }\n\n spinner.stop();\n\n if (options.output) {\n const outputPath = join(projectRoot, options.output);\n await writeFile(outputPath, output, 'utf-8');\n console.log(chalk.green(`\\n Exported ${result.events.length} events to ${outputPath}\\n`));\n } else {\n console.log(output);\n }\n\n } catch (error) {\n spinner.fail('Export failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // ============================================================================\n // Stats subcommand\n // ============================================================================\n audit\n .command('stats')\n .description('Show audit chain statistics')\n .option('--json', 'Output as JSON')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (options) => {\n try {\n const projectRoot = validateProjectRoot(options.path);\n const auditChain = createAuditChain(createAuditChainConfig());\n\n const stats = auditChain.getStats();\n const checkpoint = auditChain.getLatestCheckpoint();\n const tips = auditChain.getTips();\n\n if (options.json) {\n console.log(JSON.stringify({\n stats,\n checkpoint: checkpoint ? {\n height: checkpoint.height,\n eventRoot: checkpoint.eventRoot,\n stateRoot: checkpoint.stateRoot,\n timestamp: checkpoint.timestamp.toISOString(),\n signatures: checkpoint.validatorSignatures.length,\n } : null,\n tips: {\n count: tips.length,\n ids: tips,\n },\n }, null, 2));\n return;\n }\n\n console.log(chalk.cyan('\\n Audit Chain Statistics\\n'));\n\n printChainStats(stats);\n\n console.log();\n printCheckpoint(checkpoint);\n\n if (tips.length > 0) {\n console.log();\n console.log(chalk.white(' Chain Tips'));\n console.log(chalk.gray(` Count: ${tips.length}`));\n for (const tip of tips.slice(0, 5)) {\n console.log(chalk.gray(` - ${tip.substring(0, 32)}...`));\n }\n if (tips.length > 5) {\n console.log(chalk.gray(` ... and ${tips.length - 5} more`));\n }\n }\n\n console.log();\n\n } catch (error) {\n console.error(chalk.red('Failed to get statistics:'), String(error));\n process.exit(1);\n }\n });\n\n return audit;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Commit Command
3
+ *
4
+ * CLI command for creating commits with optional AI-powered message generation.
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Create commit command
9
+ */
10
+ export declare function createCommitCommand(): Command;
11
+ //# sourceMappingURL=commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsTpC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyM7C"}
@@ -0,0 +1,379 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ import inquirer from "inquirer";
5
+ import { createGitClient } from "../../integrations/git.js";
6
+ import { createAutoCommit } from "../../integrations/auto-commit.js";
7
+ import { validateProjectRoot } from "../../core/security.js";
8
+ function formatStatus(status) {
9
+ console.log();
10
+ console.log(chalk.cyan.bold(" Git Status"));
11
+ console.log();
12
+ console.log(chalk.white(` Branch: ${chalk.green(status.branch)}`));
13
+ if (status.tracking) {
14
+ const ahead = status.tracking.ahead > 0 ? chalk.green(`+${status.tracking.ahead}`) : "";
15
+ const behind = status.tracking.behind > 0 ? chalk.red(`-${status.tracking.behind}`) : "";
16
+ const tracking = [ahead, behind].filter(Boolean).join(" ");
17
+ console.log(chalk.gray(` Tracking: ${status.tracking.remote} ${tracking}`));
18
+ }
19
+ console.log();
20
+ if (status.isClean) {
21
+ console.log(chalk.green(" Working tree is clean"));
22
+ return;
23
+ }
24
+ const counts = [];
25
+ if (status.staged > 0) counts.push(chalk.green(`${status.staged} staged`));
26
+ if (status.modified > 0) counts.push(chalk.yellow(`${status.modified} modified`));
27
+ if (status.untracked > 0) counts.push(chalk.gray(`${status.untracked} untracked`));
28
+ if (status.deleted > 0) counts.push(chalk.red(`${status.deleted} deleted`));
29
+ if (status.conflicted > 0) counts.push(chalk.red(`${status.conflicted} conflicted`));
30
+ console.log(chalk.white(` Changes: ${counts.join(", ")}`));
31
+ console.log();
32
+ const staged = status.files.filter((f) => f.isStaged);
33
+ const unstaged = status.files.filter((f) => !f.isStaged);
34
+ if (staged.length > 0) {
35
+ console.log(chalk.green(" Staged Changes:"));
36
+ staged.slice(0, 10).forEach((f) => {
37
+ const icon = getStatusIcon(f.indexStatus);
38
+ console.log(chalk.green(` ${icon} ${f.path}`));
39
+ });
40
+ if (staged.length > 10) {
41
+ console.log(chalk.gray(` ... and ${staged.length - 10} more`));
42
+ }
43
+ console.log();
44
+ }
45
+ if (unstaged.length > 0) {
46
+ console.log(chalk.yellow(" Unstaged Changes:"));
47
+ unstaged.slice(0, 10).forEach((f) => {
48
+ const icon = getStatusIcon(f.workingTreeStatus);
49
+ console.log(chalk.yellow(` ${icon} ${f.path}`));
50
+ });
51
+ if (unstaged.length > 10) {
52
+ console.log(chalk.gray(` ... and ${unstaged.length - 10} more`));
53
+ }
54
+ console.log();
55
+ }
56
+ }
57
+ function getStatusIcon(status) {
58
+ switch (status) {
59
+ case "M":
60
+ return "modified:";
61
+ case "A":
62
+ return "added: ";
63
+ case "D":
64
+ return "deleted: ";
65
+ case "R":
66
+ return "renamed: ";
67
+ case "?":
68
+ return "new: ";
69
+ case "U":
70
+ return "conflict:";
71
+ default:
72
+ return " ";
73
+ }
74
+ }
75
+ function formatAnalysis(analysis) {
76
+ console.log();
77
+ console.log(chalk.cyan.bold(" Change Analysis"));
78
+ console.log();
79
+ console.log(chalk.white(` Type: ${chalk.yellow(analysis.type)}`));
80
+ if (analysis.scope) {
81
+ console.log(chalk.white(` Scope: ${chalk.blue(analysis.scope)}`));
82
+ }
83
+ console.log(chalk.white(` Description: ${analysis.description}`));
84
+ if (analysis.breaking) {
85
+ console.log(chalk.red(` Breaking Change: Yes`));
86
+ }
87
+ console.log();
88
+ }
89
+ async function interactiveCommit(git, autoCommit, status, analysis, options) {
90
+ formatStatus(status);
91
+ formatAnalysis(analysis);
92
+ const suggestedMessage = autoCommit.generateCommitMessage(analysis);
93
+ console.log(chalk.cyan.bold(" Suggested Commit Message:"));
94
+ console.log();
95
+ console.log(chalk.gray(" ---"));
96
+ suggestedMessage.split("\n").forEach((line) => {
97
+ console.log(chalk.white(` ${line}`));
98
+ });
99
+ console.log(chalk.gray(" ---"));
100
+ console.log();
101
+ const { action } = await inquirer.prompt([
102
+ {
103
+ type: "list",
104
+ name: "action",
105
+ message: "What would you like to do?",
106
+ choices: [
107
+ { name: "Commit with suggested message", value: "commit" },
108
+ { name: "Edit message", value: "edit" },
109
+ { name: "Stage all changes first", value: "stage-all" },
110
+ { name: "Select files to stage", value: "select" },
111
+ { name: "View diff", value: "diff" },
112
+ { name: "Cancel", value: "cancel" }
113
+ ]
114
+ }
115
+ ]);
116
+ switch (action) {
117
+ case "commit":
118
+ return performCommit(git, autoCommit, suggestedMessage, options);
119
+ case "edit":
120
+ const { editedMessage } = await inquirer.prompt([
121
+ {
122
+ type: "editor",
123
+ name: "editedMessage",
124
+ message: "Edit commit message:",
125
+ default: suggestedMessage
126
+ }
127
+ ]);
128
+ return performCommit(git, autoCommit, editedMessage.trim(), options);
129
+ case "stage-all":
130
+ await git.add(".");
131
+ const newStatus = await git.getStatus();
132
+ const newAnalysis = await autoCommit.analyzeChanges(newStatus);
133
+ return interactiveCommit(git, autoCommit, newStatus, newAnalysis, options);
134
+ case "select":
135
+ const unstaged = status.files.filter((f) => !f.isStaged);
136
+ if (unstaged.length === 0) {
137
+ console.log(chalk.yellow("\n No unstaged files to select.\n"));
138
+ return interactiveCommit(git, autoCommit, status, analysis, options);
139
+ }
140
+ const { filesToStage } = await inquirer.prompt([
141
+ {
142
+ type: "checkbox",
143
+ name: "filesToStage",
144
+ message: "Select files to stage:",
145
+ choices: unstaged.map((f) => ({
146
+ name: `${getStatusIcon(f.workingTreeStatus).trim()} ${f.path}`,
147
+ value: f.path
148
+ }))
149
+ }
150
+ ]);
151
+ if (filesToStage.length > 0) {
152
+ await git.add(filesToStage);
153
+ }
154
+ const updatedStatus = await git.getStatus();
155
+ const updatedAnalysis = await autoCommit.analyzeChanges(updatedStatus);
156
+ return interactiveCommit(git, autoCommit, updatedStatus, updatedAnalysis, options);
157
+ case "diff":
158
+ const diff = await git.getDiffContent({ staged: true });
159
+ console.log();
160
+ console.log(chalk.cyan.bold(" Staged Diff:"));
161
+ console.log(chalk.gray(" ---"));
162
+ if (diff) {
163
+ diff.split("\n").slice(0, 50).forEach((line) => {
164
+ if (line.startsWith("+") && !line.startsWith("+++")) {
165
+ console.log(chalk.green(` ${line}`));
166
+ } else if (line.startsWith("-") && !line.startsWith("---")) {
167
+ console.log(chalk.red(` ${line}`));
168
+ } else {
169
+ console.log(chalk.gray(` ${line}`));
170
+ }
171
+ });
172
+ if (diff.split("\n").length > 50) {
173
+ console.log(chalk.gray(" ... (truncated)"));
174
+ }
175
+ } else {
176
+ console.log(chalk.gray(" No staged changes"));
177
+ }
178
+ console.log(chalk.gray(" ---"));
179
+ console.log();
180
+ return interactiveCommit(git, autoCommit, status, analysis, options);
181
+ case "cancel":
182
+ default:
183
+ console.log(chalk.yellow("\n Commit cancelled.\n"));
184
+ return false;
185
+ }
186
+ }
187
+ async function performCommit(git, autoCommit, message, options) {
188
+ const spinner = ora("Creating commit...").start();
189
+ try {
190
+ const result = await autoCommit.commit({
191
+ message,
192
+ stageAll: options.all,
193
+ dryRun: options.dryRun
194
+ });
195
+ if (options.dryRun) {
196
+ spinner.info("Dry run - no commit created");
197
+ console.log();
198
+ console.log(chalk.cyan(" Would commit with message:"));
199
+ console.log(chalk.gray(" ---"));
200
+ message.split("\n").forEach((line) => {
201
+ console.log(chalk.white(` ${line}`));
202
+ });
203
+ console.log(chalk.gray(" ---"));
204
+ console.log();
205
+ return true;
206
+ }
207
+ if (!result.success) {
208
+ spinner.fail("Commit failed");
209
+ console.error(chalk.red(` Error: ${result.error}`));
210
+ return false;
211
+ }
212
+ spinner.succeed("Commit created");
213
+ console.log();
214
+ console.log(chalk.white(` Hash: ${chalk.green(result.hash || "unknown")}`));
215
+ console.log();
216
+ if (options.push) {
217
+ const pushSpinner = ora("Pushing to remote...").start();
218
+ try {
219
+ await git.push();
220
+ pushSpinner.succeed("Pushed to remote");
221
+ } catch (error) {
222
+ pushSpinner.fail("Push failed");
223
+ console.error(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}`));
224
+ return false;
225
+ }
226
+ }
227
+ return true;
228
+ } catch (error) {
229
+ spinner.fail("Commit failed");
230
+ console.error(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}`));
231
+ return false;
232
+ }
233
+ }
234
+ function createCommitCommand() {
235
+ const command = new Command("commit");
236
+ command.description("Create a git commit with optional auto-generated message").option("-m, --message <message>", "Commit message (skips auto-generation)").option("-n, --dry-run", "Show what would be committed without committing", false).option("-a, --auto", "Automatically generate commit message", false).option("-p, --push", "Push to remote after committing", false).option("--path <path>", "Repository path", ".").option("-i, --interactive", "Interactive mode for reviewing changes", false).option("-A, --all", "Stage all changes before committing", false).option("--amend", "Amend the previous commit", false).action(async (options) => {
237
+ try {
238
+ const projectRoot = validateProjectRoot(options.path);
239
+ const git = createGitClient({ workingDirectory: projectRoot });
240
+ const autoCommit = createAutoCommit({
241
+ workingDirectory: projectRoot,
242
+ stageAll: options.all
243
+ });
244
+ if (!await git.isRepo()) {
245
+ console.error(chalk.red("\n Error: Not a git repository\n"));
246
+ process.exit(1);
247
+ }
248
+ const status = await git.getStatus();
249
+ if (status.isClean && !options.amend) {
250
+ console.log(chalk.yellow("\n Nothing to commit, working tree clean\n"));
251
+ process.exit(0);
252
+ }
253
+ const analysis = await autoCommit.analyzeChanges(status);
254
+ if (options.interactive) {
255
+ const success = await interactiveCommit(git, autoCommit, status, analysis, options);
256
+ process.exit(success ? 0 : 1);
257
+ }
258
+ if (options.message) {
259
+ const success = await performCommit(git, autoCommit, options.message, options);
260
+ process.exit(success ? 0 : 1);
261
+ }
262
+ if (options.auto) {
263
+ const message = autoCommit.generateCommitMessage(analysis);
264
+ const success = await performCommit(git, autoCommit, message, options);
265
+ process.exit(success ? 0 : 1);
266
+ }
267
+ formatStatus(status);
268
+ formatAnalysis(analysis);
269
+ const suggestedMessage = autoCommit.generateCommitMessage(analysis);
270
+ console.log(chalk.cyan.bold(" Suggested Commit Message:"));
271
+ console.log();
272
+ console.log(chalk.gray(" ---"));
273
+ suggestedMessage.split("\n").forEach((line) => {
274
+ console.log(chalk.white(` ${line}`));
275
+ });
276
+ console.log(chalk.gray(" ---"));
277
+ console.log();
278
+ console.log(chalk.gray(" Use -a/--auto to commit with this message"));
279
+ console.log(chalk.gray(" Use -i/--interactive for interactive mode"));
280
+ console.log(chalk.gray(" Use -m/--message to provide your own message"));
281
+ console.log();
282
+ } catch (error) {
283
+ console.error(chalk.red(`
284
+ Error: ${error instanceof Error ? error.message : String(error)}
285
+ `));
286
+ process.exit(1);
287
+ }
288
+ });
289
+ command.command("status").description("Show git status with analysis").option("--path <path>", "Repository path", ".").action(async (opts) => {
290
+ try {
291
+ const projectRoot = validateProjectRoot(opts.path);
292
+ const git = createGitClient({ workingDirectory: projectRoot });
293
+ const autoCommit = createAutoCommit({ workingDirectory: projectRoot });
294
+ if (!await git.isRepo()) {
295
+ console.error(chalk.red("\n Error: Not a git repository\n"));
296
+ process.exit(1);
297
+ }
298
+ const status = await git.getStatus();
299
+ formatStatus(status);
300
+ if (!status.isClean) {
301
+ const analysis = await autoCommit.analyzeChanges(status);
302
+ formatAnalysis(analysis);
303
+ }
304
+ } catch (error) {
305
+ console.error(chalk.red(`
306
+ Error: ${error instanceof Error ? error.message : String(error)}
307
+ `));
308
+ process.exit(1);
309
+ }
310
+ });
311
+ command.command("log").description("Show recent commits").option("--path <path>", "Repository path", ".").option("-n, --count <count>", "Number of commits to show", "10").action(async (opts) => {
312
+ try {
313
+ const projectRoot = validateProjectRoot(opts.path);
314
+ const git = createGitClient({ workingDirectory: projectRoot });
315
+ if (!await git.isRepo()) {
316
+ console.error(chalk.red("\n Error: Not a git repository\n"));
317
+ process.exit(1);
318
+ }
319
+ const log = await git.getLog({ maxCount: parseInt(opts.count, 10) });
320
+ console.log();
321
+ console.log(chalk.cyan.bold(" Recent Commits"));
322
+ console.log();
323
+ log.forEach((commit) => {
324
+ const date = commit.date.toISOString().split("T")[0];
325
+ console.log(chalk.yellow(` ${commit.hashAbbrev}`) + chalk.gray(` (${date})`) + chalk.white(` ${commit.message}`));
326
+ console.log(chalk.gray(` ${commit.author} <${commit.email}>`));
327
+ });
328
+ console.log();
329
+ } catch (error) {
330
+ console.error(chalk.red(`
331
+ Error: ${error instanceof Error ? error.message : String(error)}
332
+ `));
333
+ process.exit(1);
334
+ }
335
+ });
336
+ command.command("diff").description("Show diff of changes").option("--path <path>", "Repository path", ".").option("-s, --staged", "Show only staged changes", false).option("-f, --file <file>", "Show diff for specific file").action(async (opts) => {
337
+ try {
338
+ const projectRoot = validateProjectRoot(opts.path);
339
+ const git = createGitClient({ workingDirectory: projectRoot });
340
+ if (!await git.isRepo()) {
341
+ console.error(chalk.red("\n Error: Not a git repository\n"));
342
+ process.exit(1);
343
+ }
344
+ const diff = await git.getDiffContent({
345
+ staged: opts.staged,
346
+ file: opts.file
347
+ });
348
+ if (!diff) {
349
+ console.log(chalk.yellow("\n No changes to show\n"));
350
+ process.exit(0);
351
+ }
352
+ console.log();
353
+ diff.split("\n").forEach((line) => {
354
+ if (line.startsWith("+") && !line.startsWith("+++")) {
355
+ console.log(chalk.green(line));
356
+ } else if (line.startsWith("-") && !line.startsWith("---")) {
357
+ console.log(chalk.red(line));
358
+ } else if (line.startsWith("@@")) {
359
+ console.log(chalk.cyan(line));
360
+ } else if (line.startsWith("diff ") || line.startsWith("index ")) {
361
+ console.log(chalk.blue(line));
362
+ } else {
363
+ console.log(line);
364
+ }
365
+ });
366
+ console.log();
367
+ } catch (error) {
368
+ console.error(chalk.red(`
369
+ Error: ${error instanceof Error ? error.message : String(error)}
370
+ `));
371
+ process.exit(1);
372
+ }
373
+ });
374
+ return command;
375
+ }
376
+ export {
377
+ createCommitCommand
378
+ };
379
+ //# sourceMappingURL=commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.js","sources":["../../../src/cli/commands/commit.ts"],"sourcesContent":["/**\n * Commit Command\n *\n * CLI command for creating commits with optional AI-powered message generation.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport inquirer from 'inquirer';\nimport { createGitClient, GitClient, GitStatusSummary } from '../../integrations/git.js';\nimport { createAutoCommit, AutoCommit, ChangeAnalysis, ChangeType } from '../../integrations/auto-commit.js';\nimport { validateProjectRoot } from '../../core/security.js';\n\n/**\n * Commit command options\n */\ninterface CommitOptions {\n message?: string;\n dryRun: boolean;\n auto: boolean;\n push: boolean;\n path: string;\n interactive: boolean;\n all: boolean;\n amend: boolean;\n}\n\n/**\n * Format status for display\n */\nfunction formatStatus(status: GitStatusSummary): void {\n console.log();\n console.log(chalk.cyan.bold(' Git Status'));\n console.log();\n console.log(chalk.white(` Branch: ${chalk.green(status.branch)}`));\n\n if (status.tracking) {\n const ahead = status.tracking.ahead > 0 ? chalk.green(`+${status.tracking.ahead}`) : '';\n const behind = status.tracking.behind > 0 ? chalk.red(`-${status.tracking.behind}`) : '';\n const tracking = [ahead, behind].filter(Boolean).join(' ');\n console.log(chalk.gray(` Tracking: ${status.tracking.remote} ${tracking}`));\n }\n\n console.log();\n\n if (status.isClean) {\n console.log(chalk.green(' Working tree is clean'));\n return;\n }\n\n // Show file counts\n const counts: string[] = [];\n if (status.staged > 0) counts.push(chalk.green(`${status.staged} staged`));\n if (status.modified > 0) counts.push(chalk.yellow(`${status.modified} modified`));\n if (status.untracked > 0) counts.push(chalk.gray(`${status.untracked} untracked`));\n if (status.deleted > 0) counts.push(chalk.red(`${status.deleted} deleted`));\n if (status.conflicted > 0) counts.push(chalk.red(`${status.conflicted} conflicted`));\n\n console.log(chalk.white(` Changes: ${counts.join(', ')}`));\n console.log();\n\n // Group files by status\n const staged = status.files.filter(f => f.isStaged);\n const unstaged = status.files.filter(f => !f.isStaged);\n\n if (staged.length > 0) {\n console.log(chalk.green(' Staged Changes:'));\n staged.slice(0, 10).forEach(f => {\n const icon = getStatusIcon(f.indexStatus);\n console.log(chalk.green(` ${icon} ${f.path}`));\n });\n if (staged.length > 10) {\n console.log(chalk.gray(` ... and ${staged.length - 10} more`));\n }\n console.log();\n }\n\n if (unstaged.length > 0) {\n console.log(chalk.yellow(' Unstaged Changes:'));\n unstaged.slice(0, 10).forEach(f => {\n const icon = getStatusIcon(f.workingTreeStatus);\n console.log(chalk.yellow(` ${icon} ${f.path}`));\n });\n if (unstaged.length > 10) {\n console.log(chalk.gray(` ... and ${unstaged.length - 10} more`));\n }\n console.log();\n }\n}\n\n/**\n * Get icon for file status\n */\nfunction getStatusIcon(status: string): string {\n switch (status) {\n case 'M':\n return 'modified:';\n case 'A':\n return 'added: ';\n case 'D':\n return 'deleted: ';\n case 'R':\n return 'renamed: ';\n case '?':\n return 'new: ';\n case 'U':\n return 'conflict:';\n default:\n return ' ';\n }\n}\n\n/**\n * Format analysis for display\n */\nfunction formatAnalysis(analysis: ChangeAnalysis): void {\n console.log();\n console.log(chalk.cyan.bold(' Change Analysis'));\n console.log();\n console.log(chalk.white(` Type: ${chalk.yellow(analysis.type)}`));\n if (analysis.scope) {\n console.log(chalk.white(` Scope: ${chalk.blue(analysis.scope)}`));\n }\n console.log(chalk.white(` Description: ${analysis.description}`));\n if (analysis.breaking) {\n console.log(chalk.red(` Breaking Change: Yes`));\n }\n console.log();\n}\n\n/**\n * Interactive mode for reviewing and editing commit\n */\nasync function interactiveCommit(\n git: GitClient,\n autoCommit: AutoCommit,\n status: GitStatusSummary,\n analysis: ChangeAnalysis,\n options: CommitOptions\n): Promise<boolean> {\n // Show current state\n formatStatus(status);\n formatAnalysis(analysis);\n\n // Generate suggested message\n const suggestedMessage = autoCommit.generateCommitMessage(analysis);\n\n console.log(chalk.cyan.bold(' Suggested Commit Message:'));\n console.log();\n console.log(chalk.gray(' ---'));\n suggestedMessage.split('\\n').forEach(line => {\n console.log(chalk.white(` ${line}`));\n });\n console.log(chalk.gray(' ---'));\n console.log();\n\n // Ask for confirmation\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: 'What would you like to do?',\n choices: [\n { name: 'Commit with suggested message', value: 'commit' },\n { name: 'Edit message', value: 'edit' },\n { name: 'Stage all changes first', value: 'stage-all' },\n { name: 'Select files to stage', value: 'select' },\n { name: 'View diff', value: 'diff' },\n { name: 'Cancel', value: 'cancel' },\n ],\n },\n ]);\n\n switch (action) {\n case 'commit':\n return performCommit(git, autoCommit, suggestedMessage, options);\n\n case 'edit':\n const { editedMessage } = await inquirer.prompt([\n {\n type: 'editor',\n name: 'editedMessage',\n message: 'Edit commit message:',\n default: suggestedMessage,\n },\n ]);\n return performCommit(git, autoCommit, editedMessage.trim(), options);\n\n case 'stage-all':\n await git.add('.');\n const newStatus = await git.getStatus();\n const newAnalysis = await autoCommit.analyzeChanges(newStatus);\n return interactiveCommit(git, autoCommit, newStatus, newAnalysis, options);\n\n case 'select':\n const unstaged = status.files.filter(f => !f.isStaged);\n if (unstaged.length === 0) {\n console.log(chalk.yellow('\\n No unstaged files to select.\\n'));\n return interactiveCommit(git, autoCommit, status, analysis, options);\n }\n\n const { filesToStage } = await inquirer.prompt([\n {\n type: 'checkbox',\n name: 'filesToStage',\n message: 'Select files to stage:',\n choices: unstaged.map(f => ({\n name: `${getStatusIcon(f.workingTreeStatus).trim()} ${f.path}`,\n value: f.path,\n })),\n },\n ]);\n\n if (filesToStage.length > 0) {\n await git.add(filesToStage);\n }\n const updatedStatus = await git.getStatus();\n const updatedAnalysis = await autoCommit.analyzeChanges(updatedStatus);\n return interactiveCommit(git, autoCommit, updatedStatus, updatedAnalysis, options);\n\n case 'diff':\n const diff = await git.getDiffContent({ staged: true });\n console.log();\n console.log(chalk.cyan.bold(' Staged Diff:'));\n console.log(chalk.gray(' ---'));\n if (diff) {\n diff.split('\\n').slice(0, 50).forEach(line => {\n if (line.startsWith('+') && !line.startsWith('+++')) {\n console.log(chalk.green(` ${line}`));\n } else if (line.startsWith('-') && !line.startsWith('---')) {\n console.log(chalk.red(` ${line}`));\n } else {\n console.log(chalk.gray(` ${line}`));\n }\n });\n if (diff.split('\\n').length > 50) {\n console.log(chalk.gray(' ... (truncated)'));\n }\n } else {\n console.log(chalk.gray(' No staged changes'));\n }\n console.log(chalk.gray(' ---'));\n console.log();\n return interactiveCommit(git, autoCommit, status, analysis, options);\n\n case 'cancel':\n default:\n console.log(chalk.yellow('\\n Commit cancelled.\\n'));\n return false;\n }\n}\n\n/**\n * Perform the actual commit\n */\nasync function performCommit(\n git: GitClient,\n autoCommit: AutoCommit,\n message: string,\n options: CommitOptions\n): Promise<boolean> {\n const spinner = ora('Creating commit...').start();\n\n try {\n const result = await autoCommit.commit({\n message,\n stageAll: options.all,\n dryRun: options.dryRun,\n });\n\n if (options.dryRun) {\n spinner.info('Dry run - no commit created');\n console.log();\n console.log(chalk.cyan(' Would commit with message:'));\n console.log(chalk.gray(' ---'));\n message.split('\\n').forEach(line => {\n console.log(chalk.white(` ${line}`));\n });\n console.log(chalk.gray(' ---'));\n console.log();\n return true;\n }\n\n if (!result.success) {\n spinner.fail('Commit failed');\n console.error(chalk.red(` Error: ${result.error}`));\n return false;\n }\n\n spinner.succeed('Commit created');\n console.log();\n console.log(chalk.white(` Hash: ${chalk.green(result.hash || 'unknown')}`));\n console.log();\n\n // Push if requested\n if (options.push) {\n const pushSpinner = ora('Pushing to remote...').start();\n try {\n await git.push();\n pushSpinner.succeed('Pushed to remote');\n } catch (error) {\n pushSpinner.fail('Push failed');\n console.error(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}`));\n return false;\n }\n }\n\n return true;\n } catch (error) {\n spinner.fail('Commit failed');\n console.error(chalk.red(` Error: ${error instanceof Error ? error.message : String(error)}`));\n return false;\n }\n}\n\n/**\n * Create commit command\n */\nexport function createCommitCommand(): Command {\n const command = new Command('commit');\n\n command\n .description('Create a git commit with optional auto-generated message')\n .option('-m, --message <message>', 'Commit message (skips auto-generation)')\n .option('-n, --dry-run', 'Show what would be committed without committing', false)\n .option('-a, --auto', 'Automatically generate commit message', false)\n .option('-p, --push', 'Push to remote after committing', false)\n .option('--path <path>', 'Repository path', '.')\n .option('-i, --interactive', 'Interactive mode for reviewing changes', false)\n .option('-A, --all', 'Stage all changes before committing', false)\n .option('--amend', 'Amend the previous commit', false)\n .action(async (options: CommitOptions) => {\n try {\n // Validate path\n const projectRoot = validateProjectRoot(options.path);\n\n // Create clients\n const git = createGitClient({ workingDirectory: projectRoot });\n const autoCommit = createAutoCommit({\n workingDirectory: projectRoot,\n stageAll: options.all,\n });\n\n // Check if this is a git repository\n if (!(await git.isRepo())) {\n console.error(chalk.red('\\n Error: Not a git repository\\n'));\n process.exit(1);\n }\n\n // Get current status\n const status = await git.getStatus();\n\n // Handle clean working directory\n if (status.isClean && !options.amend) {\n console.log(chalk.yellow('\\n Nothing to commit, working tree clean\\n'));\n process.exit(0);\n }\n\n // Analyze changes\n const analysis = await autoCommit.analyzeChanges(status);\n\n // Interactive mode\n if (options.interactive) {\n const success = await interactiveCommit(git, autoCommit, status, analysis, options);\n process.exit(success ? 0 : 1);\n }\n\n // If message provided, use it directly\n if (options.message) {\n const success = await performCommit(git, autoCommit, options.message, options);\n process.exit(success ? 0 : 1);\n }\n\n // Auto mode - generate and commit\n if (options.auto) {\n const message = autoCommit.generateCommitMessage(analysis);\n const success = await performCommit(git, autoCommit, message, options);\n process.exit(success ? 0 : 1);\n }\n\n // Default: show status and suggested message\n formatStatus(status);\n formatAnalysis(analysis);\n\n const suggestedMessage = autoCommit.generateCommitMessage(analysis);\n\n console.log(chalk.cyan.bold(' Suggested Commit Message:'));\n console.log();\n console.log(chalk.gray(' ---'));\n suggestedMessage.split('\\n').forEach(line => {\n console.log(chalk.white(` ${line}`));\n });\n console.log(chalk.gray(' ---'));\n console.log();\n\n console.log(chalk.gray(' Use -a/--auto to commit with this message'));\n console.log(chalk.gray(' Use -i/--interactive for interactive mode'));\n console.log(chalk.gray(' Use -m/--message to provide your own message'));\n console.log();\n\n } catch (error) {\n console.error(chalk.red(`\\n Error: ${error instanceof Error ? error.message : String(error)}\\n`));\n process.exit(1);\n }\n });\n\n // Status subcommand\n command\n .command('status')\n .description('Show git status with analysis')\n .option('--path <path>', 'Repository path', '.')\n .action(async (opts) => {\n try {\n const projectRoot = validateProjectRoot(opts.path);\n const git = createGitClient({ workingDirectory: projectRoot });\n const autoCommit = createAutoCommit({ workingDirectory: projectRoot });\n\n if (!(await git.isRepo())) {\n console.error(chalk.red('\\n Error: Not a git repository\\n'));\n process.exit(1);\n }\n\n const status = await git.getStatus();\n formatStatus(status);\n\n if (!status.isClean) {\n const analysis = await autoCommit.analyzeChanges(status);\n formatAnalysis(analysis);\n }\n } catch (error) {\n console.error(chalk.red(`\\n Error: ${error instanceof Error ? error.message : String(error)}\\n`));\n process.exit(1);\n }\n });\n\n // Log subcommand\n command\n .command('log')\n .description('Show recent commits')\n .option('--path <path>', 'Repository path', '.')\n .option('-n, --count <count>', 'Number of commits to show', '10')\n .action(async (opts) => {\n try {\n const projectRoot = validateProjectRoot(opts.path);\n const git = createGitClient({ workingDirectory: projectRoot });\n\n if (!(await git.isRepo())) {\n console.error(chalk.red('\\n Error: Not a git repository\\n'));\n process.exit(1);\n }\n\n const log = await git.getLog({ maxCount: parseInt(opts.count, 10) });\n\n console.log();\n console.log(chalk.cyan.bold(' Recent Commits'));\n console.log();\n\n log.forEach(commit => {\n const date = commit.date.toISOString().split('T')[0];\n console.log(chalk.yellow(` ${commit.hashAbbrev}`) + chalk.gray(` (${date})`) + chalk.white(` ${commit.message}`));\n console.log(chalk.gray(` ${commit.author} <${commit.email}>`));\n });\n\n console.log();\n } catch (error) {\n console.error(chalk.red(`\\n Error: ${error instanceof Error ? error.message : String(error)}\\n`));\n process.exit(1);\n }\n });\n\n // Diff subcommand\n command\n .command('diff')\n .description('Show diff of changes')\n .option('--path <path>', 'Repository path', '.')\n .option('-s, --staged', 'Show only staged changes', false)\n .option('-f, --file <file>', 'Show diff for specific file')\n .action(async (opts) => {\n try {\n const projectRoot = validateProjectRoot(opts.path);\n const git = createGitClient({ workingDirectory: projectRoot });\n\n if (!(await git.isRepo())) {\n console.error(chalk.red('\\n Error: Not a git repository\\n'));\n process.exit(1);\n }\n\n const diff = await git.getDiffContent({\n staged: opts.staged,\n file: opts.file,\n });\n\n if (!diff) {\n console.log(chalk.yellow('\\n No changes to show\\n'));\n process.exit(0);\n }\n\n console.log();\n diff.split('\\n').forEach(line => {\n if (line.startsWith('+') && !line.startsWith('+++')) {\n console.log(chalk.green(line));\n } else if (line.startsWith('-') && !line.startsWith('---')) {\n console.log(chalk.red(line));\n } else if (line.startsWith('@@')) {\n console.log(chalk.cyan(line));\n } else if (line.startsWith('diff ') || line.startsWith('index ')) {\n console.log(chalk.blue(line));\n } else {\n console.log(line);\n }\n });\n console.log();\n } catch (error) {\n console.error(chalk.red(`\\n Error: ${error instanceof Error ? error.message : String(error)}\\n`));\n process.exit(1);\n }\n });\n\n return command;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Config Command
3
+ *
4
+ * Manage knowledge graph configuration.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function createConfigCommand(): Command;
8
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,IAAI,OAAO,CA8H7C"}