@weavelogic/knowledge-graph-agent 0.1.0 → 0.3.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 (601) hide show
  1. package/README.md +733 -152
  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/caching/index.d.ts +55 -0
  181. package/dist/caching/index.d.ts.map +1 -0
  182. package/dist/caching/index.js +206 -0
  183. package/dist/caching/index.js.map +1 -0
  184. package/dist/caching/lru-cache.d.ts +254 -0
  185. package/dist/caching/lru-cache.d.ts.map +1 -0
  186. package/dist/caching/types.d.ts +95 -0
  187. package/dist/caching/types.d.ts.map +1 -0
  188. package/dist/chunking/chunker.d.ts +94 -0
  189. package/dist/chunking/chunker.d.ts.map +1 -0
  190. package/dist/chunking/index.d.ts +125 -0
  191. package/dist/chunking/index.d.ts.map +1 -0
  192. package/dist/chunking/index.js +283 -0
  193. package/dist/chunking/index.js.map +1 -0
  194. package/dist/chunking/types.d.ts +92 -0
  195. package/dist/chunking/types.d.ts.map +1 -0
  196. package/dist/cli/commands/analyze.d.ts +12 -0
  197. package/dist/cli/commands/analyze.d.ts.map +1 -0
  198. package/dist/cli/commands/analyze.js +269 -0
  199. package/dist/cli/commands/analyze.js.map +1 -0
  200. package/dist/cli/commands/commit.d.ts +11 -0
  201. package/dist/cli/commands/commit.d.ts.map +1 -0
  202. package/dist/cli/commands/commit.js +379 -0
  203. package/dist/cli/commands/commit.js.map +1 -0
  204. package/dist/cli/commands/config.d.ts +8 -0
  205. package/dist/cli/commands/config.d.ts.map +1 -0
  206. package/dist/cli/commands/config.js +107 -0
  207. package/dist/cli/commands/config.js.map +1 -0
  208. package/dist/cli/commands/convert.d.ts +15 -0
  209. package/dist/cli/commands/convert.d.ts.map +1 -0
  210. package/dist/cli/commands/convert.js +203 -0
  211. package/dist/cli/commands/convert.js.map +1 -0
  212. package/dist/cli/commands/cultivate.d.ts +16 -0
  213. package/dist/cli/commands/cultivate.d.ts.map +1 -0
  214. package/dist/cli/commands/cultivate.js +254 -0
  215. package/dist/cli/commands/cultivate.js.map +1 -0
  216. package/dist/cli/commands/diagnostics.d.ts +8 -0
  217. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  218. package/dist/cli/commands/diagnostics.js +140 -0
  219. package/dist/cli/commands/diagnostics.js.map +1 -0
  220. package/dist/cli/commands/generate.d.ts +13 -0
  221. package/dist/cli/commands/generate.d.ts.map +1 -0
  222. package/dist/cli/commands/init-primitives.d.ts +19 -0
  223. package/dist/cli/commands/init-primitives.d.ts.map +1 -0
  224. package/dist/cli/commands/init-primitives.js +208 -0
  225. package/dist/cli/commands/init-primitives.js.map +1 -0
  226. package/dist/cli/commands/sop.d.ts +14 -0
  227. package/dist/cli/commands/sop.d.ts.map +1 -0
  228. package/dist/cli/commands/sop.js +598 -0
  229. package/dist/cli/commands/sop.js.map +1 -0
  230. package/dist/cli/index.d.ts.map +1 -1
  231. package/dist/cli/index.js +52 -1
  232. package/dist/cli/index.js.map +1 -1
  233. package/dist/config/index.d.ts +153 -0
  234. package/dist/config/index.d.ts.map +1 -0
  235. package/dist/config/index.js +141 -0
  236. package/dist/config/index.js.map +1 -0
  237. package/dist/config/manager.d.ts +136 -0
  238. package/dist/config/manager.d.ts.map +1 -0
  239. package/dist/config/types.d.ts +127 -0
  240. package/dist/config/types.d.ts.map +1 -0
  241. package/dist/core/cache.d.ts +185 -0
  242. package/dist/core/cache.d.ts.map +1 -0
  243. package/dist/core/cache.js +435 -0
  244. package/dist/core/cache.js.map +1 -0
  245. package/dist/cultivation/deep-analyzer.d.ts +129 -0
  246. package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
  247. package/dist/cultivation/deep-analyzer.js +322 -0
  248. package/dist/cultivation/deep-analyzer.js.map +1 -0
  249. package/dist/cultivation/index.d.ts +13 -0
  250. package/dist/cultivation/index.d.ts.map +1 -0
  251. package/dist/cultivation/seed-generator.d.ts +92 -0
  252. package/dist/cultivation/seed-generator.d.ts.map +1 -0
  253. package/dist/cultivation/seed-generator.js +1033 -0
  254. package/dist/cultivation/seed-generator.js.map +1 -0
  255. package/dist/cultivation/types.d.ts +230 -0
  256. package/dist/cultivation/types.d.ts.map +1 -0
  257. package/dist/generators/claude-md.d.ts +7 -0
  258. package/dist/generators/claude-md.d.ts.map +1 -1
  259. package/dist/generators/claude-md.js.map +1 -1
  260. package/dist/generators/docs-analyzer.d.ts +75 -0
  261. package/dist/generators/docs-analyzer.d.ts.map +1 -0
  262. package/dist/generators/docs-analyzer.js +567 -0
  263. package/dist/generators/docs-analyzer.js.map +1 -0
  264. package/dist/generators/docs-convert.d.ts +91 -0
  265. package/dist/generators/docs-convert.d.ts.map +1 -0
  266. package/dist/generators/docs-convert.js +474 -0
  267. package/dist/generators/docs-convert.js.map +1 -0
  268. package/dist/generators/docs-init.d.ts +6 -0
  269. package/dist/generators/docs-init.d.ts.map +1 -1
  270. package/dist/generators/docs-init.js.map +1 -1
  271. package/dist/health/checks.d.ts +135 -0
  272. package/dist/health/checks.d.ts.map +1 -0
  273. package/dist/health/index.d.ts +119 -0
  274. package/dist/health/index.d.ts.map +1 -0
  275. package/dist/health/index.js +191 -0
  276. package/dist/health/index.js.map +1 -0
  277. package/dist/health/monitor.d.ts +146 -0
  278. package/dist/health/monitor.d.ts.map +1 -0
  279. package/dist/health/types.d.ts +135 -0
  280. package/dist/health/types.d.ts.map +1 -0
  281. package/dist/index.d.ts +34 -0
  282. package/dist/index.d.ts.map +1 -1
  283. package/dist/index.js +179 -1
  284. package/dist/index.js.map +1 -1
  285. package/dist/integrations/auto-commit.d.ts +175 -0
  286. package/dist/integrations/auto-commit.d.ts.map +1 -0
  287. package/dist/integrations/auto-commit.js +399 -0
  288. package/dist/integrations/auto-commit.js.map +1 -0
  289. package/dist/integrations/git.d.ts +299 -0
  290. package/dist/integrations/git.d.ts.map +1 -0
  291. package/dist/integrations/git.js +465 -0
  292. package/dist/integrations/git.js.map +1 -0
  293. package/dist/mcp-server/bin.d.ts +11 -0
  294. package/dist/mcp-server/bin.d.ts.map +1 -0
  295. package/dist/mcp-server/handlers/index.d.ts +57 -0
  296. package/dist/mcp-server/handlers/index.d.ts.map +1 -0
  297. package/dist/mcp-server/handlers/index.js +235 -0
  298. package/dist/mcp-server/handlers/index.js.map +1 -0
  299. package/dist/mcp-server/index.d.ts +28 -0
  300. package/dist/mcp-server/index.d.ts.map +1 -0
  301. package/dist/mcp-server/server.d.ts +133 -0
  302. package/dist/mcp-server/server.d.ts.map +1 -0
  303. package/dist/mcp-server/server.js +280 -0
  304. package/dist/mcp-server/server.js.map +1 -0
  305. package/dist/mcp-server/tools/agents/index.d.ts +10 -0
  306. package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
  307. package/dist/mcp-server/tools/agents/list.d.ts +19 -0
  308. package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
  309. package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
  310. package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
  311. package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
  312. package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
  313. package/dist/mcp-server/tools/graph/index.d.ts +11 -0
  314. package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
  315. package/dist/mcp-server/tools/graph/query.d.ts +22 -0
  316. package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
  317. package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
  318. package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
  319. package/dist/mcp-server/tools/health.d.ts +21 -0
  320. package/dist/mcp-server/tools/health.d.ts.map +1 -0
  321. package/dist/mcp-server/tools/index.d.ts +13 -0
  322. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  323. package/dist/mcp-server/tools/registry.d.ts +90 -0
  324. package/dist/mcp-server/tools/registry.d.ts.map +1 -0
  325. package/dist/mcp-server/tools/registry.js +663 -0
  326. package/dist/mcp-server/tools/registry.js.map +1 -0
  327. package/dist/mcp-server/tools/search/index.d.ts +10 -0
  328. package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
  329. package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
  330. package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
  331. package/dist/mcp-server/tools/search/tags.d.ts +22 -0
  332. package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
  333. package/dist/mcp-server/types/index.d.ts +286 -0
  334. package/dist/mcp-server/types/index.d.ts.map +1 -0
  335. package/dist/memory/index.d.ts +10 -0
  336. package/dist/memory/index.d.ts.map +1 -0
  337. package/dist/memory/vault-sync.d.ts +212 -0
  338. package/dist/memory/vault-sync.d.ts.map +1 -0
  339. package/dist/memory/vault-sync.js +463 -0
  340. package/dist/memory/vault-sync.js.map +1 -0
  341. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
  342. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  343. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
  344. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  345. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
  346. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  347. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
  348. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  349. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
  350. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  351. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
  352. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  353. package/dist/node_modules/ajv/dist/ajv.js +84 -0
  354. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  355. package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
  356. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  357. package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
  358. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  359. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
  360. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  361. package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
  362. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  363. package/dist/node_modules/ajv/dist/compile/index.js +234 -0
  364. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  365. package/dist/node_modules/ajv/dist/compile/names.js +44 -0
  366. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  367. package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
  368. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  369. package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
  370. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  371. package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
  372. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  373. package/dist/node_modules/ajv/dist/compile/util.js +173 -0
  374. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  375. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
  376. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  377. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
  378. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  379. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
  380. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  381. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
  382. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  383. package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
  384. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  385. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
  386. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  387. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
  388. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  389. package/dist/node_modules/ajv/dist/core.js +628 -0
  390. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  391. package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
  392. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  393. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
  394. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  395. package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
  396. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  397. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
  398. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  399. package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
  400. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  401. package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
  402. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  403. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
  404. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  405. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
  406. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  407. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
  408. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  409. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
  410. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  411. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
  412. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  413. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
  414. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  415. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
  416. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  417. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
  418. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  419. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
  420. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  421. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
  422. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  423. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
  424. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  425. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  426. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  427. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
  428. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  429. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
  430. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  431. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
  432. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  433. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
  434. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  435. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
  436. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  437. package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
  438. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  439. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
  440. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  441. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
  442. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  443. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
  444. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  445. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
  446. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  447. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
  448. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  449. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
  450. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  451. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
  452. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  453. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
  454. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  455. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
  456. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  457. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
  458. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  459. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
  460. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  461. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
  462. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  463. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
  464. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  465. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
  466. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  467. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
  468. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  469. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
  470. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  471. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
  472. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  473. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
  474. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  475. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
  476. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  477. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
  478. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  479. package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
  480. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  481. package/dist/node_modules/ajv-formats/dist/index.js +51 -0
  482. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  483. package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
  484. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  485. package/dist/node_modules/fast-deep-equal/index.js +39 -0
  486. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  487. package/dist/node_modules/fast-uri/index.js +261 -0
  488. package/dist/node_modules/fast-uri/index.js.map +1 -0
  489. package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
  490. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  491. package/dist/node_modules/fast-uri/lib/utils.js +261 -0
  492. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  493. package/dist/node_modules/json-schema-traverse/index.js +92 -0
  494. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  495. package/dist/node_modules/zod/v4/classic/errors.js +37 -0
  496. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  497. package/dist/node_modules/zod/v4/classic/iso.js +43 -0
  498. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  499. package/dist/node_modules/zod/v4/classic/parse.js +13 -0
  500. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  501. package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
  502. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  503. package/dist/node_modules/zod/v4/core/api.js +492 -0
  504. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  505. package/dist/node_modules/zod/v4/core/checks.js +405 -0
  506. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  507. package/dist/node_modules/zod/v4/core/core.js +58 -0
  508. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  509. package/dist/node_modules/zod/v4/core/doc.js +38 -0
  510. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  511. package/dist/node_modules/zod/v4/core/errors.js +82 -0
  512. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  513. package/dist/node_modules/zod/v4/core/parse.js +60 -0
  514. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  515. package/dist/node_modules/zod/v4/core/regexes.js +87 -0
  516. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  517. package/dist/node_modules/zod/v4/core/registries.js +52 -0
  518. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  519. package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
  520. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  521. package/dist/node_modules/zod/v4/core/util.js +341 -0
  522. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  523. package/dist/node_modules/zod/v4/core/versions.js +9 -0
  524. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  525. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
  526. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  527. package/dist/reasoning/index.d.ts +74 -0
  528. package/dist/reasoning/index.d.ts.map +1 -0
  529. package/dist/reasoning/index.js +124 -0
  530. package/dist/reasoning/index.js.map +1 -0
  531. package/dist/reasoning/tracker.d.ts +210 -0
  532. package/dist/reasoning/tracker.d.ts.map +1 -0
  533. package/dist/reasoning/types.d.ts +146 -0
  534. package/dist/reasoning/types.d.ts.map +1 -0
  535. package/dist/recovery/backup.d.ts +110 -0
  536. package/dist/recovery/backup.d.ts.map +1 -0
  537. package/dist/recovery/index.d.ts +70 -0
  538. package/dist/recovery/index.d.ts.map +1 -0
  539. package/dist/recovery/index.js +186 -0
  540. package/dist/recovery/index.js.map +1 -0
  541. package/dist/recovery/integrity.d.ts +74 -0
  542. package/dist/recovery/integrity.d.ts.map +1 -0
  543. package/dist/recovery/types.d.ts +94 -0
  544. package/dist/recovery/types.d.ts.map +1 -0
  545. package/dist/services/index.d.ts +130 -0
  546. package/dist/services/index.d.ts.map +1 -0
  547. package/dist/services/index.js +134 -0
  548. package/dist/services/index.js.map +1 -0
  549. package/dist/services/manager.d.ts +140 -0
  550. package/dist/services/manager.d.ts.map +1 -0
  551. package/dist/services/types.d.ts +106 -0
  552. package/dist/services/types.d.ts.map +1 -0
  553. package/dist/services/watchers.d.ts +95 -0
  554. package/dist/services/watchers.d.ts.map +1 -0
  555. package/dist/sops/compliance-checker.d.ts +83 -0
  556. package/dist/sops/compliance-checker.d.ts.map +1 -0
  557. package/dist/sops/compliance-checker.js +399 -0
  558. package/dist/sops/compliance-checker.js.map +1 -0
  559. package/dist/sops/gap-analyzer.d.ts +124 -0
  560. package/dist/sops/gap-analyzer.d.ts.map +1 -0
  561. package/dist/sops/gap-analyzer.js +313 -0
  562. package/dist/sops/gap-analyzer.js.map +1 -0
  563. package/dist/sops/index.d.ts +14 -0
  564. package/dist/sops/index.d.ts.map +1 -0
  565. package/dist/sops/overlay-manager.d.ts +115 -0
  566. package/dist/sops/overlay-manager.d.ts.map +1 -0
  567. package/dist/sops/overlay-manager.js +394 -0
  568. package/dist/sops/overlay-manager.js.map +1 -0
  569. package/dist/sops/registry.d.ts +73 -0
  570. package/dist/sops/registry.d.ts.map +1 -0
  571. package/dist/sops/registry.js +919 -0
  572. package/dist/sops/registry.js.map +1 -0
  573. package/dist/sops/types.d.ts +377 -0
  574. package/dist/sops/types.d.ts.map +1 -0
  575. package/dist/sops/types.js +46 -0
  576. package/dist/sops/types.js.map +1 -0
  577. package/dist/utils/error-recovery.d.ts +230 -0
  578. package/dist/utils/error-recovery.d.ts.map +1 -0
  579. package/dist/utils/error-recovery.js +228 -0
  580. package/dist/utils/error-recovery.js.map +1 -0
  581. package/dist/utils/error-taxonomy.d.ts +149 -0
  582. package/dist/utils/error-taxonomy.d.ts.map +1 -0
  583. package/dist/utils/error-taxonomy.js +260 -0
  584. package/dist/utils/error-taxonomy.js.map +1 -0
  585. package/dist/utils/index.d.ts +11 -0
  586. package/dist/utils/index.d.ts.map +1 -0
  587. package/dist/utils/logger.d.ts +139 -0
  588. package/dist/utils/logger.d.ts.map +1 -0
  589. package/dist/utils/logger.js +311 -0
  590. package/dist/utils/logger.js.map +1 -0
  591. package/dist/workflows/index.d.ts +11 -0
  592. package/dist/workflows/index.d.ts.map +1 -0
  593. package/dist/workflows/registry.d.ts +118 -0
  594. package/dist/workflows/registry.d.ts.map +1 -0
  595. package/dist/workflows/registry.js +575 -0
  596. package/dist/workflows/registry.js.map +1 -0
  597. package/dist/workflows/types.d.ts +322 -0
  598. package/dist/workflows/types.d.ts.map +1 -0
  599. package/dist/workflows/types.js +16 -0
  600. package/dist/workflows/types.js.map +1 -0
  601. package/package.json +1 -1
@@ -0,0 +1,203 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ import { existsSync } from "fs";
5
+ import { join } from "path";
6
+ import { convertDocs, addFrontmatter, validateFrontmatter } from "../../generators/docs-convert.js";
7
+ import { validateProjectRoot } from "../../core/security.js";
8
+ function createConvertCommand() {
9
+ const command = new Command("convert");
10
+ command.description("Convert existing docs to weave-nn structure");
11
+ command.command("docs").description("Convert existing documentation to docs-nn/ with proper structure").option("-p, --path <path>", "Project root path", ".").option("-s, --source <dir>", "Source docs directory", "docs").option("-t, --target <dir>", "Target directory", "docs-nn").option("--no-auto-category", "Disable auto-categorization").option("-f, --force", "Overwrite existing files").option("--dry-run", "Show what would be done without making changes").action(async (options) => {
12
+ const spinner = ora("Converting documentation...").start();
13
+ try {
14
+ const projectRoot = validateProjectRoot(options.path);
15
+ const sourceDir = options.source;
16
+ const targetDir = options.target;
17
+ if (!existsSync(join(projectRoot, sourceDir))) {
18
+ spinner.fail(`Source directory not found: ${sourceDir}`);
19
+ console.log(chalk.gray(" Specify source with --source <dir>"));
20
+ process.exit(1);
21
+ }
22
+ if (options.dryRun) {
23
+ spinner.text = "Analyzing documentation (dry run)...";
24
+ }
25
+ const result = await convertDocs({
26
+ sourceDir,
27
+ targetDir,
28
+ projectRoot,
29
+ preserveOriginal: true,
30
+ force: options.force,
31
+ autoCategory: options.autoCategory !== false,
32
+ dryRun: options.dryRun
33
+ });
34
+ if (result.success) {
35
+ if (options.dryRun) {
36
+ spinner.succeed("Dry run complete!");
37
+ } else {
38
+ spinner.succeed("Documentation converted!");
39
+ }
40
+ } else {
41
+ spinner.warn("Conversion completed with errors");
42
+ }
43
+ console.log();
44
+ console.log(chalk.white(" Summary:"));
45
+ console.log(chalk.gray(` Source: ${sourceDir}/`));
46
+ console.log(chalk.gray(` Target: ${targetDir}/`));
47
+ console.log(chalk.green(` Converted: ${result.filesConverted}`));
48
+ console.log(chalk.yellow(` Skipped: ${result.filesSkipped}`));
49
+ console.log(chalk.gray(` Total: ${result.filesProcessed}`));
50
+ if (result.converted.length > 0 && result.converted.length <= 10) {
51
+ console.log();
52
+ console.log(chalk.white(" Converted files:"));
53
+ result.converted.forEach(({ source, target, type }) => {
54
+ console.log(chalk.gray(` ${source}`));
55
+ console.log(chalk.cyan(` → ${target}`) + chalk.gray(` [${type}]`));
56
+ });
57
+ } else if (result.converted.length > 10) {
58
+ console.log();
59
+ console.log(chalk.white(" Sample conversions:"));
60
+ result.converted.slice(0, 5).forEach(({ source, target, type }) => {
61
+ console.log(chalk.gray(` ${source}`));
62
+ console.log(chalk.cyan(` → ${target}`) + chalk.gray(` [${type}]`));
63
+ });
64
+ console.log(chalk.gray(` ... and ${result.converted.length - 5} more`));
65
+ }
66
+ if (result.errors.length > 0) {
67
+ console.log();
68
+ console.log(chalk.red(" Errors:"));
69
+ result.errors.slice(0, 5).forEach((err) => {
70
+ console.log(chalk.gray(` - ${err}`));
71
+ });
72
+ if (result.errors.length > 5) {
73
+ console.log(chalk.gray(` ... and ${result.errors.length - 5} more`));
74
+ }
75
+ }
76
+ if (!options.dryRun && result.filesConverted > 0) {
77
+ console.log();
78
+ console.log(chalk.cyan("Next steps:"));
79
+ console.log(chalk.white(` 1. Review ${targetDir}/ structure`));
80
+ console.log(chalk.white(" 2. Run: kg graph --docs " + targetDir));
81
+ console.log(chalk.white(" 3. Run: kg stats"));
82
+ }
83
+ console.log();
84
+ } catch (error) {
85
+ spinner.fail("Conversion failed");
86
+ console.error(chalk.red(String(error)));
87
+ process.exit(1);
88
+ }
89
+ });
90
+ return command;
91
+ }
92
+ function createFrontmatterCommand() {
93
+ const command = new Command("frontmatter");
94
+ command.description("Manage frontmatter in markdown files");
95
+ command.command("add [target]").description("Add frontmatter to files missing it").option("-p, --path <path>", "Project root path", ".").option("-t, --type <type>", "Node type (concept, technical, feature, service, guide, standard, integration)").option("-s, --status <status>", "Status (draft, active, deprecated, archived)", "active").option("--tags <tags>", "Comma-separated tags").option("-f, --force", "Overwrite existing frontmatter").option("--dry-run", "Show what would be done").action(async (target, options) => {
96
+ const spinner = ora("Adding frontmatter...").start();
97
+ try {
98
+ const projectRoot = validateProjectRoot(options.path);
99
+ const targetPath = target || "docs";
100
+ const tags = options.tags ? options.tags.split(",").map((t) => t.trim()) : [];
101
+ const result = await addFrontmatter({
102
+ target: targetPath,
103
+ projectRoot,
104
+ type: options.type,
105
+ status: options.status,
106
+ tags,
107
+ force: options.force,
108
+ dryRun: options.dryRun
109
+ });
110
+ if (result.success) {
111
+ spinner.succeed(options.dryRun ? "Dry run complete!" : "Frontmatter added!");
112
+ } else {
113
+ spinner.warn("Completed with errors");
114
+ }
115
+ console.log();
116
+ console.log(chalk.white(" Summary:"));
117
+ console.log(chalk.green(` Updated: ${result.filesUpdated}`));
118
+ console.log(chalk.yellow(` Skipped: ${result.filesSkipped}`));
119
+ console.log(chalk.gray(` Total: ${result.filesProcessed}`));
120
+ if (result.errors.length > 0) {
121
+ console.log();
122
+ console.log(chalk.red(" Errors:"));
123
+ result.errors.forEach((err) => {
124
+ console.log(chalk.gray(` - ${err}`));
125
+ });
126
+ }
127
+ console.log();
128
+ } catch (error) {
129
+ spinner.fail("Failed to add frontmatter");
130
+ console.error(chalk.red(String(error)));
131
+ process.exit(1);
132
+ }
133
+ });
134
+ command.command("validate [target]").description("Validate frontmatter in markdown files").option("-p, --path <path>", "Project root path", ".").action(async (target, options) => {
135
+ const spinner = ora("Validating frontmatter...").start();
136
+ try {
137
+ const projectRoot = validateProjectRoot(options.path);
138
+ const targetPath = target || "docs";
139
+ const result = await validateFrontmatter(targetPath, projectRoot);
140
+ spinner.succeed("Validation complete!");
141
+ console.log();
142
+ console.log(chalk.white(" Frontmatter Validation:"));
143
+ console.log(chalk.green(` Valid: ${result.valid}`));
144
+ console.log(chalk.red(` Invalid: ${result.invalid}`));
145
+ console.log(chalk.yellow(` Missing: ${result.missing}`));
146
+ if (result.issues.length > 0) {
147
+ console.log();
148
+ console.log(chalk.yellow(" Issues found:"));
149
+ result.issues.slice(0, 10).forEach(({ file, issues }) => {
150
+ console.log(chalk.white(` ${file}`));
151
+ issues.forEach((issue) => {
152
+ console.log(chalk.gray(` - ${issue}`));
153
+ });
154
+ });
155
+ if (result.issues.length > 10) {
156
+ console.log(chalk.gray(` ... and ${result.issues.length - 10} more files`));
157
+ }
158
+ console.log();
159
+ console.log(chalk.cyan("Fix with: ") + chalk.white("kg frontmatter add <target>"));
160
+ }
161
+ console.log();
162
+ } catch (error) {
163
+ spinner.fail("Validation failed");
164
+ console.error(chalk.red(String(error)));
165
+ process.exit(1);
166
+ }
167
+ });
168
+ command.command("update [target]").description("Update/regenerate frontmatter (overwrites existing)").option("-p, --path <path>", "Project root path", ".").option("-t, --type <type>", "Force specific node type").option("--dry-run", "Show what would be done").action(async (target, options) => {
169
+ const spinner = ora("Updating frontmatter...").start();
170
+ try {
171
+ const projectRoot = validateProjectRoot(options.path);
172
+ const targetPath = target || "docs";
173
+ const result = await addFrontmatter({
174
+ target: targetPath,
175
+ projectRoot,
176
+ type: options.type,
177
+ force: true,
178
+ dryRun: options.dryRun
179
+ });
180
+ if (result.success) {
181
+ spinner.succeed(options.dryRun ? "Dry run complete!" : "Frontmatter updated!");
182
+ } else {
183
+ spinner.warn("Completed with errors");
184
+ }
185
+ console.log();
186
+ console.log(chalk.green(` Updated: ${result.filesUpdated} files`));
187
+ if (result.errors.length > 0) {
188
+ console.log(chalk.red(` Errors: ${result.errors.length}`));
189
+ }
190
+ console.log();
191
+ } catch (error) {
192
+ spinner.fail("Failed to update frontmatter");
193
+ console.error(chalk.red(String(error)));
194
+ process.exit(1);
195
+ }
196
+ });
197
+ return command;
198
+ }
199
+ export {
200
+ createConvertCommand,
201
+ createFrontmatterCommand
202
+ };
203
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sources":["../../../src/cli/commands/convert.ts"],"sourcesContent":["/**\n * Convert Command\n *\n * Convert existing documentation to weave-nn structure.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { existsSync } from 'fs';\nimport { join } from 'path';\nimport {\n convertDocs,\n addFrontmatter,\n validateFrontmatter,\n} from '../../generators/docs-convert.js';\nimport { validateProjectRoot, validateDocsPath } from '../../core/security.js';\n\n/**\n * Create convert command\n */\nexport function createConvertCommand(): Command {\n const command = new Command('convert');\n\n command\n .description('Convert existing docs to weave-nn structure');\n\n // Main convert subcommand\n command\n .command('docs')\n .description('Convert existing documentation to docs-nn/ with proper structure')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-s, --source <dir>', 'Source docs directory', 'docs')\n .option('-t, --target <dir>', 'Target directory', 'docs-nn')\n .option('--no-auto-category', 'Disable auto-categorization')\n .option('-f, --force', 'Overwrite existing files')\n .option('--dry-run', 'Show what would be done without making changes')\n .action(async (options) => {\n const spinner = ora('Converting documentation...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const sourceDir = options.source;\n const targetDir = options.target;\n\n // Check source exists\n if (!existsSync(join(projectRoot, sourceDir))) {\n spinner.fail(`Source directory not found: ${sourceDir}`);\n console.log(chalk.gray(' Specify source with --source <dir>'));\n process.exit(1);\n }\n\n if (options.dryRun) {\n spinner.text = 'Analyzing documentation (dry run)...';\n }\n\n const result = await convertDocs({\n sourceDir,\n targetDir,\n projectRoot,\n preserveOriginal: true,\n force: options.force,\n autoCategory: options.autoCategory !== false,\n dryRun: options.dryRun,\n });\n\n if (result.success) {\n if (options.dryRun) {\n spinner.succeed('Dry run complete!');\n } else {\n spinner.succeed('Documentation converted!');\n }\n } else {\n spinner.warn('Conversion completed with errors');\n }\n\n console.log();\n console.log(chalk.white(' Summary:'));\n console.log(chalk.gray(` Source: ${sourceDir}/`));\n console.log(chalk.gray(` Target: ${targetDir}/`));\n console.log(chalk.green(` Converted: ${result.filesConverted}`));\n console.log(chalk.yellow(` Skipped: ${result.filesSkipped}`));\n console.log(chalk.gray(` Total: ${result.filesProcessed}`));\n\n if (result.converted.length > 0 && result.converted.length <= 10) {\n console.log();\n console.log(chalk.white(' Converted files:'));\n result.converted.forEach(({ source, target, type }) => {\n console.log(chalk.gray(` ${source}`));\n console.log(chalk.cyan(` → ${target}`) + chalk.gray(` [${type}]`));\n });\n } else if (result.converted.length > 10) {\n console.log();\n console.log(chalk.white(' Sample conversions:'));\n result.converted.slice(0, 5).forEach(({ source, target, type }) => {\n console.log(chalk.gray(` ${source}`));\n console.log(chalk.cyan(` → ${target}`) + chalk.gray(` [${type}]`));\n });\n console.log(chalk.gray(` ... and ${result.converted.length - 5} more`));\n }\n\n if (result.errors.length > 0) {\n console.log();\n console.log(chalk.red(' Errors:'));\n result.errors.slice(0, 5).forEach(err => {\n console.log(chalk.gray(` - ${err}`));\n });\n if (result.errors.length > 5) {\n console.log(chalk.gray(` ... and ${result.errors.length - 5} more`));\n }\n }\n\n if (!options.dryRun && result.filesConverted > 0) {\n console.log();\n console.log(chalk.cyan('Next steps:'));\n console.log(chalk.white(` 1. Review ${targetDir}/ structure`));\n console.log(chalk.white(' 2. Run: kg graph --docs ' + targetDir));\n console.log(chalk.white(' 3. Run: kg stats'));\n }\n\n console.log();\n\n } catch (error) {\n spinner.fail('Conversion failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n return command;\n}\n\n/**\n * Create frontmatter command\n */\nexport function createFrontmatterCommand(): Command {\n const command = new Command('frontmatter');\n\n command\n .description('Manage frontmatter in markdown files');\n\n // Add frontmatter\n command\n .command('add [target]')\n .description('Add frontmatter to files missing it')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-t, --type <type>', 'Node type (concept, technical, feature, service, guide, standard, integration)')\n .option('-s, --status <status>', 'Status (draft, active, deprecated, archived)', 'active')\n .option('--tags <tags>', 'Comma-separated tags')\n .option('-f, --force', 'Overwrite existing frontmatter')\n .option('--dry-run', 'Show what would be done')\n .action(async (target, options) => {\n const spinner = ora('Adding frontmatter...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const targetPath = target || 'docs';\n\n const tags = options.tags ? options.tags.split(',').map((t: string) => t.trim()) : [];\n\n const result = await addFrontmatter({\n target: targetPath,\n projectRoot,\n type: options.type,\n status: options.status,\n tags,\n force: options.force,\n dryRun: options.dryRun,\n });\n\n if (result.success) {\n spinner.succeed(options.dryRun ? 'Dry run complete!' : 'Frontmatter added!');\n } else {\n spinner.warn('Completed with errors');\n }\n\n console.log();\n console.log(chalk.white(' Summary:'));\n console.log(chalk.green(` Updated: ${result.filesUpdated}`));\n console.log(chalk.yellow(` Skipped: ${result.filesSkipped}`));\n console.log(chalk.gray(` Total: ${result.filesProcessed}`));\n\n if (result.errors.length > 0) {\n console.log();\n console.log(chalk.red(' Errors:'));\n result.errors.forEach(err => {\n console.log(chalk.gray(` - ${err}`));\n });\n }\n\n console.log();\n\n } catch (error) {\n spinner.fail('Failed to add frontmatter');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // Validate frontmatter\n command\n .command('validate [target]')\n .description('Validate frontmatter in markdown files')\n .option('-p, --path <path>', 'Project root path', '.')\n .action(async (target, options) => {\n const spinner = ora('Validating frontmatter...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const targetPath = target || 'docs';\n\n const result = await validateFrontmatter(targetPath, projectRoot);\n\n spinner.succeed('Validation complete!');\n\n console.log();\n console.log(chalk.white(' Frontmatter Validation:'));\n console.log(chalk.green(` Valid: ${result.valid}`));\n console.log(chalk.red(` Invalid: ${result.invalid}`));\n console.log(chalk.yellow(` Missing: ${result.missing}`));\n\n if (result.issues.length > 0) {\n console.log();\n console.log(chalk.yellow(' Issues found:'));\n result.issues.slice(0, 10).forEach(({ file, issues }) => {\n console.log(chalk.white(` ${file}`));\n issues.forEach(issue => {\n console.log(chalk.gray(` - ${issue}`));\n });\n });\n if (result.issues.length > 10) {\n console.log(chalk.gray(` ... and ${result.issues.length - 10} more files`));\n }\n\n console.log();\n console.log(chalk.cyan('Fix with: ') + chalk.white('kg frontmatter add <target>'));\n }\n\n console.log();\n\n } catch (error) {\n spinner.fail('Validation failed');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n // Update frontmatter (force mode)\n command\n .command('update [target]')\n .description('Update/regenerate frontmatter (overwrites existing)')\n .option('-p, --path <path>', 'Project root path', '.')\n .option('-t, --type <type>', 'Force specific node type')\n .option('--dry-run', 'Show what would be done')\n .action(async (target, options) => {\n const spinner = ora('Updating frontmatter...').start();\n\n try {\n const projectRoot = validateProjectRoot(options.path);\n const targetPath = target || 'docs';\n\n const result = await addFrontmatter({\n target: targetPath,\n projectRoot,\n type: options.type,\n force: true,\n dryRun: options.dryRun,\n });\n\n if (result.success) {\n spinner.succeed(options.dryRun ? 'Dry run complete!' : 'Frontmatter updated!');\n } else {\n spinner.warn('Completed with errors');\n }\n\n console.log();\n console.log(chalk.green(` Updated: ${result.filesUpdated} files`));\n\n if (result.errors.length > 0) {\n console.log(chalk.red(` Errors: ${result.errors.length}`));\n }\n\n console.log();\n\n } catch (error) {\n spinner.fail('Failed to update frontmatter');\n console.error(chalk.red(String(error)));\n process.exit(1);\n }\n });\n\n return command;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Cultivate Command - Systematically enhance the knowledge graph
3
+ *
4
+ * This command provides cultivation tasks:
5
+ * - Seed primitives from codebase analysis
6
+ * - Deep analysis with claude-flow integration
7
+ * - Graph enhancement and optimization
8
+ *
9
+ * @module cli/commands/cultivate
10
+ */
11
+ import { Command } from 'commander';
12
+ /**
13
+ * Create cultivate command
14
+ */
15
+ export declare function createCultivateCommand(): Command;
16
+ //# sourceMappingURL=cultivate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cultivate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cultivate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CA4OhD"}
@@ -0,0 +1,254 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { resolve } from "path";
4
+ import { SeedGenerator } from "../../cultivation/seed-generator.js";
5
+ import { loadShadowCache } from "../../core/cache.js";
6
+ function createCultivateCommand() {
7
+ return new Command("cultivate").description("Systematically cultivate and enhance the knowledge graph").argument("[path]", "Directory to cultivate (defaults to current directory)", ".").option("--dry-run", "Preview changes without executing", false).option("-d, --docs <path>", "Documentation path", "docs").option("-v, --verbose", "Verbose output", false).option("--seed", "Bootstrap vault with primitives from codebase analysis", false).option("--deep-analysis", "Use claude-flow agents for deep analysis", false).option("--cache", "Use shadow cache for incremental updates", true).option("--ecosystem <ecosystems>", "Filter to specific ecosystems (comma-separated)", void 0).option("--include-dev", "Include dev dependencies", false).option("--major-only", "Only process major dependencies", false).option("--refresh-cache", "Force refresh the shadow cache", false).action(async (targetPath, options) => {
8
+ const projectRoot = resolve(targetPath);
9
+ const docsPath = options.docs || "docs";
10
+ const verbose = options.verbose || false;
11
+ const dryRun = options.dryRun || false;
12
+ console.log(chalk.bold.green("\n🌱 Knowledge Graph Cultivator\n"));
13
+ console.log(` Project: ${projectRoot}`);
14
+ console.log(` Docs: ${docsPath}`);
15
+ if (dryRun) {
16
+ console.log(` Mode: ${chalk.yellow("Dry Run")}`);
17
+ }
18
+ console.log("");
19
+ const tasks = {
20
+ seed: options.seed || false,
21
+ deepAnalysis: options.deepAnalysis || false
22
+ };
23
+ if (!tasks.seed && !tasks.deepAnalysis) {
24
+ console.log(chalk.yellow("šŸ’” No tasks selected. Use one or more of:"));
25
+ console.log(" --seed Bootstrap vault with primitives from codebase");
26
+ console.log(" --deep-analysis Use claude-flow for deep codebase analysis");
27
+ console.log("");
28
+ console.log(chalk.gray("Options:"));
29
+ console.log(" --dry-run Preview without writing files");
30
+ console.log(" --cache Use shadow cache for incremental updates (default: true)");
31
+ console.log(" --refresh-cache Force refresh the shadow cache");
32
+ console.log(" --ecosystem Filter to ecosystems (nodejs,python,rust,go,php,java)");
33
+ console.log(" --include-dev Include dev dependencies");
34
+ console.log(" --major-only Only process major dependencies");
35
+ console.log("");
36
+ console.log('Run "kg cultivate --help" for more options');
37
+ return;
38
+ }
39
+ const startTime = Date.now();
40
+ const result = {
41
+ success: true,
42
+ seed: { created: 0, documents: [] },
43
+ analysis: { filesProcessed: 0, dependenciesFound: 0, servicesFound: 0 },
44
+ cache: { updated: 0, hits: 0, misses: 0 },
45
+ duration: 0,
46
+ warnings: [],
47
+ errors: []
48
+ };
49
+ try {
50
+ let cache;
51
+ if (options.cache !== false) {
52
+ console.log(chalk.cyan("šŸ“¦ Initializing shadow cache..."));
53
+ cache = await loadShadowCache(projectRoot);
54
+ if (options.refreshCache) {
55
+ cache.clear();
56
+ console.log(chalk.gray(" Cache cleared (refresh mode)"));
57
+ }
58
+ const stats = cache.getStats();
59
+ console.log(chalk.gray(` Entries: ${stats.totalEntries}, Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`));
60
+ console.log("");
61
+ }
62
+ if (tasks.seed) {
63
+ console.log(chalk.cyan("🌱 Seeding primitives from codebase...\n"));
64
+ let ecosystems;
65
+ if (options.ecosystem) {
66
+ ecosystems = options.ecosystem.split(",").map((e) => e.trim());
67
+ console.log(chalk.gray(` Ecosystems: ${ecosystems.join(", ")}`));
68
+ }
69
+ const generator = await SeedGenerator.create(projectRoot, docsPath);
70
+ console.log(chalk.gray(" Analyzing codebase..."));
71
+ const analysis = await generator.analyze();
72
+ result.analysis = {
73
+ filesProcessed: analysis.metadata.filesScanned,
74
+ dependenciesFound: analysis.dependencies.length,
75
+ servicesFound: analysis.services.length
76
+ };
77
+ console.log(`
78
+ ${chalk.bold("Analysis Results:")}`);
79
+ console.log(` Languages: ${analysis.languages.join(", ") || "none"}`);
80
+ console.log(` Dependencies: ${analysis.dependencies.length}`);
81
+ console.log(` Frameworks: ${analysis.frameworks.length}`);
82
+ console.log(` Services: ${analysis.services.length}`);
83
+ console.log(` Deployments: ${analysis.deployments.length}`);
84
+ if (verbose) {
85
+ displayDetailedAnalysis(analysis);
86
+ }
87
+ console.log("");
88
+ console.log(chalk.gray(" Generating primitive nodes..."));
89
+ const documents = await generator.generatePrimitives(analysis);
90
+ if (dryRun) {
91
+ console.log(`
92
+ ${chalk.yellow("[DRY RUN]")} Would create ${documents.length} primitives:`);
93
+ for (const doc of documents.slice(0, 10)) {
94
+ console.log(` - ${doc.frontmatter.type}: ${doc.title}`);
95
+ }
96
+ if (documents.length > 10) {
97
+ console.log(` ... and ${documents.length - 10} more`);
98
+ }
99
+ result.seed.documents = documents.map((d) => ({
100
+ title: d.title,
101
+ path: d.path,
102
+ type: d.frontmatter.type || "unknown"
103
+ }));
104
+ } else {
105
+ const writeResult = await generator.writePrimitives(documents);
106
+ result.seed.created = writeResult.documentsGenerated.length;
107
+ result.seed.documents = writeResult.documentsGenerated;
108
+ console.log(`
109
+ ${chalk.green("āœ“")} Created ${writeResult.documentsGenerated.length} primitives`);
110
+ if (writeResult.warnings.length > 0) {
111
+ result.warnings.push(...writeResult.warnings);
112
+ if (verbose) {
113
+ console.log(chalk.yellow(` Warnings: ${writeResult.warnings.length}`));
114
+ }
115
+ }
116
+ if (writeResult.errors.length > 0) {
117
+ result.errors.push(...writeResult.errors);
118
+ console.log(chalk.red(` Errors: ${writeResult.errors.length}`));
119
+ }
120
+ }
121
+ console.log("");
122
+ }
123
+ if (tasks.deepAnalysis) {
124
+ console.log(chalk.cyan("🧠 Running deep analysis with claude-flow...\n"));
125
+ const hasClaudeFlow = await checkClaudeFlowAvailable();
126
+ if (!hasClaudeFlow) {
127
+ console.log(chalk.yellow(" āš ļø claude-flow not available"));
128
+ console.log(chalk.gray(" Install with: npm install -g claude-flow@alpha"));
129
+ result.warnings.push("claude-flow not available for deep analysis");
130
+ } else {
131
+ if (dryRun) {
132
+ console.log(chalk.yellow(" [DRY RUN] Would spawn claude-flow agents:"));
133
+ console.log(" - Researcher: Analyze codebase patterns");
134
+ console.log(" - Analyst: Identify architectural decisions");
135
+ console.log(" - Coder: Detect implementation patterns");
136
+ console.log(" - Tester: Analyze testing coverage");
137
+ } else {
138
+ try {
139
+ const { DeepAnalyzer } = await import("../../cultivation/deep-analyzer.js");
140
+ const analyzer = new DeepAnalyzer({
141
+ projectRoot,
142
+ docsPath,
143
+ verbose
144
+ });
145
+ const deepResult = await analyzer.analyze();
146
+ console.log(` ${chalk.green("āœ“")} Deep analysis complete`);
147
+ console.log(` Agents spawned: ${deepResult.agentsSpawned}`);
148
+ console.log(` Insights generated: ${deepResult.insightsCount}`);
149
+ console.log(` Documentation created: ${deepResult.documentsCreated}`);
150
+ } catch (error) {
151
+ result.errors.push(`Deep analysis failed: ${error instanceof Error ? error.message : String(error)}`);
152
+ console.log(chalk.red(` āœ— Deep analysis failed: ${error instanceof Error ? error.message : String(error)}`));
153
+ }
154
+ }
155
+ }
156
+ console.log("");
157
+ }
158
+ if (cache) {
159
+ const stats = cache.getStats();
160
+ result.cache = {
161
+ updated: stats.totalEntries,
162
+ hits: stats.hitCount,
163
+ misses: stats.missCount
164
+ };
165
+ await cache.save();
166
+ }
167
+ result.duration = Date.now() - startTime;
168
+ result.success = result.errors.length === 0;
169
+ displaySummary(result, dryRun);
170
+ } catch (error) {
171
+ console.error(chalk.red("\nāŒ Cultivation failed:"), error);
172
+ process.exit(1);
173
+ }
174
+ });
175
+ }
176
+ function displayDetailedAnalysis(analysis) {
177
+ if (analysis.frameworks.length > 0) {
178
+ console.log(`
179
+ ${chalk.gray("Frameworks:")}`);
180
+ for (const fw of analysis.frameworks) {
181
+ console.log(` - ${fw.name} (${fw.ecosystem}) v${fw.version}`);
182
+ }
183
+ }
184
+ if (analysis.services.length > 0) {
185
+ console.log(`
186
+ ${chalk.gray("Services:")}`);
187
+ for (const svc of analysis.services) {
188
+ console.log(` - ${svc.name}: ${svc.type} (${svc.technology})`);
189
+ }
190
+ }
191
+ if (analysis.deployments.length > 0) {
192
+ console.log(`
193
+ ${chalk.gray("Deployments:")}`);
194
+ for (const dep of analysis.deployments) {
195
+ console.log(` - ${dep}`);
196
+ }
197
+ }
198
+ }
199
+ function displaySummary(result, dryRun) {
200
+ console.log(chalk.bold.blue("šŸ“Š Cultivation Summary\n"));
201
+ if (dryRun) {
202
+ console.log(chalk.yellow("[DRY RUN] No changes were made\n"));
203
+ }
204
+ console.log(" Analysis:");
205
+ console.log(` Files processed: ${result.analysis.filesProcessed}`);
206
+ console.log(` Dependencies: ${result.analysis.dependenciesFound}`);
207
+ console.log(` Services: ${result.analysis.servicesFound}`);
208
+ if (result.seed.created > 0 || result.seed.documents.length > 0) {
209
+ console.log("\n Seed:");
210
+ console.log(` Primitives ${dryRun ? "would create" : "created"}: ${dryRun ? result.seed.documents.length : result.seed.created}`);
211
+ }
212
+ if (result.cache.updated > 0) {
213
+ console.log("\n Cache:");
214
+ console.log(` Entries: ${result.cache.updated}`);
215
+ const hitRate = result.cache.hits + result.cache.misses > 0 ? (result.cache.hits / (result.cache.hits + result.cache.misses) * 100).toFixed(1) : 0;
216
+ console.log(` Hit rate: ${hitRate}%`);
217
+ }
218
+ console.log(`
219
+ Duration: ${(result.duration / 1e3).toFixed(2)}s`);
220
+ if (result.warnings.length > 0) {
221
+ console.log(chalk.yellow(`
222
+ āš ļø Warnings: ${result.warnings.length}`));
223
+ for (const warning of result.warnings.slice(0, 5)) {
224
+ console.log(chalk.gray(` - ${warning}`));
225
+ }
226
+ }
227
+ if (result.errors.length > 0) {
228
+ console.log(chalk.red(`
229
+ āŒ Errors: ${result.errors.length}`));
230
+ for (const error of result.errors.slice(0, 5)) {
231
+ console.log(chalk.gray(` - ${error}`));
232
+ }
233
+ }
234
+ if (result.success && !dryRun) {
235
+ console.log(chalk.bold.green("\n✨ Cultivation complete!\n"));
236
+ } else if (!result.success) {
237
+ console.log(chalk.yellow("\nāš ļø Cultivation completed with errors\n"));
238
+ } else {
239
+ console.log(chalk.gray("\nRun without --dry-run to apply changes\n"));
240
+ }
241
+ }
242
+ async function checkClaudeFlowAvailable() {
243
+ try {
244
+ const { execSync } = await import("child_process");
245
+ execSync("npx claude-flow@alpha --version", { stdio: "pipe", timeout: 5e3 });
246
+ return true;
247
+ } catch {
248
+ return false;
249
+ }
250
+ }
251
+ export {
252
+ createCultivateCommand
253
+ };
254
+ //# sourceMappingURL=cultivate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cultivate.js","sources":["../../../src/cli/commands/cultivate.ts"],"sourcesContent":["/**\n * Cultivate Command - Systematically enhance the knowledge graph\n *\n * This command provides cultivation tasks:\n * - Seed primitives from codebase analysis\n * - Deep analysis with claude-flow integration\n * - Graph enhancement and optimization\n *\n * @module cli/commands/cultivate\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { resolve, join, relative } from 'path';\nimport { existsSync, mkdirSync, readFileSync, readdirSync, statSync } from 'fs';\nimport { SeedGenerator } from '../../cultivation/seed-generator.js';\nimport { ShadowCache, loadShadowCache } from '../../core/cache.js';\nimport type { CultivationOptions, Ecosystem, SeedAnalysis } from '../../cultivation/types.js';\n\n/**\n * Cultivation result\n */\ninterface CultivationResult {\n success: boolean;\n seed: {\n created: number;\n documents: Array<{ title: string; path: string; type: string }>;\n };\n analysis: {\n filesProcessed: number;\n dependenciesFound: number;\n servicesFound: number;\n };\n cache: {\n updated: number;\n hits: number;\n misses: number;\n };\n duration: number;\n warnings: string[];\n errors: string[];\n}\n\n/**\n * Create cultivate command\n */\nexport function createCultivateCommand(): Command {\n return new Command('cultivate')\n .description('Systematically cultivate and enhance the knowledge graph')\n .argument('[path]', 'Directory to cultivate (defaults to current directory)', '.')\n .option('--dry-run', 'Preview changes without executing', false)\n .option('-d, --docs <path>', 'Documentation path', 'docs')\n .option('-v, --verbose', 'Verbose output', false)\n .option('--seed', 'Bootstrap vault with primitives from codebase analysis', false)\n .option('--deep-analysis', 'Use claude-flow agents for deep analysis', false)\n .option('--cache', 'Use shadow cache for incremental updates', true)\n .option('--ecosystem <ecosystems>', 'Filter to specific ecosystems (comma-separated)', undefined)\n .option('--include-dev', 'Include dev dependencies', false)\n .option('--major-only', 'Only process major dependencies', false)\n .option('--refresh-cache', 'Force refresh the shadow cache', false)\n .action(async (targetPath: string, options: {\n dryRun?: boolean;\n docs?: string;\n verbose?: boolean;\n seed?: boolean;\n deepAnalysis?: boolean;\n cache?: boolean;\n ecosystem?: string;\n includeDev?: boolean;\n majorOnly?: boolean;\n refreshCache?: boolean;\n }) => {\n const projectRoot = resolve(targetPath);\n const docsPath = options.docs || 'docs';\n const verbose = options.verbose || false;\n const dryRun = options.dryRun || false;\n\n console.log(chalk.bold.green('\\n🌱 Knowledge Graph Cultivator\\n'));\n console.log(` Project: ${projectRoot}`);\n console.log(` Docs: ${docsPath}`);\n if (dryRun) {\n console.log(` Mode: ${chalk.yellow('Dry Run')}`);\n }\n console.log('');\n\n // Determine tasks\n const tasks = {\n seed: options.seed || false,\n deepAnalysis: options.deepAnalysis || false,\n };\n\n // If no tasks selected, show help\n if (!tasks.seed && !tasks.deepAnalysis) {\n console.log(chalk.yellow('šŸ’” No tasks selected. Use one or more of:'));\n console.log(' --seed Bootstrap vault with primitives from codebase');\n console.log(' --deep-analysis Use claude-flow for deep codebase analysis');\n console.log('');\n console.log(chalk.gray('Options:'));\n console.log(' --dry-run Preview without writing files');\n console.log(' --cache Use shadow cache for incremental updates (default: true)');\n console.log(' --refresh-cache Force refresh the shadow cache');\n console.log(' --ecosystem Filter to ecosystems (nodejs,python,rust,go,php,java)');\n console.log(' --include-dev Include dev dependencies');\n console.log(' --major-only Only process major dependencies');\n console.log('');\n console.log('Run \"kg cultivate --help\" for more options');\n return;\n }\n\n const startTime = Date.now();\n const result: CultivationResult = {\n success: true,\n seed: { created: 0, documents: [] },\n analysis: { filesProcessed: 0, dependenciesFound: 0, servicesFound: 0 },\n cache: { updated: 0, hits: 0, misses: 0 },\n duration: 0,\n warnings: [],\n errors: [],\n };\n\n try {\n // Initialize shadow cache\n let cache: ShadowCache | undefined;\n if (options.cache !== false) {\n console.log(chalk.cyan('šŸ“¦ Initializing shadow cache...'));\n cache = await loadShadowCache(projectRoot);\n\n if (options.refreshCache) {\n cache.clear();\n console.log(chalk.gray(' Cache cleared (refresh mode)'));\n }\n\n const stats = cache.getStats();\n console.log(chalk.gray(` Entries: ${stats.totalEntries}, Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`));\n console.log('');\n }\n\n // Task 1: Seed primitives\n if (tasks.seed) {\n console.log(chalk.cyan('🌱 Seeding primitives from codebase...\\n'));\n\n // Parse ecosystem filter\n let ecosystems: Ecosystem[] | undefined;\n if (options.ecosystem) {\n ecosystems = options.ecosystem.split(',').map(e => e.trim() as Ecosystem);\n console.log(chalk.gray(` Ecosystems: ${ecosystems.join(', ')}`));\n }\n\n // Create generator\n const generator = await SeedGenerator.create(projectRoot, docsPath);\n\n // Analyze\n console.log(chalk.gray(' Analyzing codebase...'));\n const analysis = await generator.analyze();\n\n result.analysis = {\n filesProcessed: analysis.metadata.filesScanned,\n dependenciesFound: analysis.dependencies.length,\n servicesFound: analysis.services.length,\n };\n\n // Display analysis\n console.log(`\\n ${chalk.bold('Analysis Results:')}`);\n console.log(` Languages: ${analysis.languages.join(', ') || 'none'}`);\n console.log(` Dependencies: ${analysis.dependencies.length}`);\n console.log(` Frameworks: ${analysis.frameworks.length}`);\n console.log(` Services: ${analysis.services.length}`);\n console.log(` Deployments: ${analysis.deployments.length}`);\n\n if (verbose) {\n displayDetailedAnalysis(analysis);\n }\n\n console.log('');\n\n // Generate primitives\n console.log(chalk.gray(' Generating primitive nodes...'));\n const documents = await generator.generatePrimitives(analysis);\n\n if (dryRun) {\n console.log(`\\n ${chalk.yellow('[DRY RUN]')} Would create ${documents.length} primitives:`);\n for (const doc of documents.slice(0, 10)) {\n console.log(` - ${doc.frontmatter.type}: ${doc.title}`);\n }\n if (documents.length > 10) {\n console.log(` ... and ${documents.length - 10} more`);\n }\n result.seed.documents = documents.map(d => ({\n title: d.title,\n path: d.path,\n type: d.frontmatter.type || 'unknown',\n }));\n } else {\n const writeResult = await generator.writePrimitives(documents);\n result.seed.created = writeResult.documentsGenerated.length;\n result.seed.documents = writeResult.documentsGenerated;\n\n console.log(`\\n ${chalk.green('āœ“')} Created ${writeResult.documentsGenerated.length} primitives`);\n\n if (writeResult.warnings.length > 0) {\n result.warnings.push(...writeResult.warnings);\n if (verbose) {\n console.log(chalk.yellow(` Warnings: ${writeResult.warnings.length}`));\n }\n }\n\n if (writeResult.errors.length > 0) {\n result.errors.push(...writeResult.errors);\n console.log(chalk.red(` Errors: ${writeResult.errors.length}`));\n }\n }\n\n console.log('');\n }\n\n // Task 2: Deep Analysis with claude-flow\n if (tasks.deepAnalysis) {\n console.log(chalk.cyan('🧠 Running deep analysis with claude-flow...\\n'));\n\n // Check if claude-flow is available\n const hasClaudeFlow = await checkClaudeFlowAvailable();\n\n if (!hasClaudeFlow) {\n console.log(chalk.yellow(' āš ļø claude-flow not available'));\n console.log(chalk.gray(' Install with: npm install -g claude-flow@alpha'));\n result.warnings.push('claude-flow not available for deep analysis');\n } else {\n if (dryRun) {\n console.log(chalk.yellow(' [DRY RUN] Would spawn claude-flow agents:'));\n console.log(' - Researcher: Analyze codebase patterns');\n console.log(' - Analyst: Identify architectural decisions');\n console.log(' - Coder: Detect implementation patterns');\n console.log(' - Tester: Analyze testing coverage');\n } else {\n // Import and run DeepAnalyzer\n try {\n const { DeepAnalyzer } = await import('../../cultivation/deep-analyzer.js');\n const analyzer = new DeepAnalyzer({\n projectRoot,\n docsPath,\n verbose,\n });\n\n const deepResult = await analyzer.analyze();\n\n console.log(` ${chalk.green('āœ“')} Deep analysis complete`);\n console.log(` Agents spawned: ${deepResult.agentsSpawned}`);\n console.log(` Insights generated: ${deepResult.insightsCount}`);\n console.log(` Documentation created: ${deepResult.documentsCreated}`);\n } catch (error) {\n result.errors.push(`Deep analysis failed: ${error instanceof Error ? error.message : String(error)}`);\n console.log(chalk.red(` āœ— Deep analysis failed: ${error instanceof Error ? error.message : String(error)}`));\n }\n }\n }\n\n console.log('');\n }\n\n // Update cache\n if (cache) {\n const stats = cache.getStats();\n result.cache = {\n updated: stats.totalEntries,\n hits: stats.hitCount,\n misses: stats.missCount,\n };\n\n await cache.save();\n }\n\n result.duration = Date.now() - startTime;\n result.success = result.errors.length === 0;\n\n // Final summary\n displaySummary(result, dryRun);\n\n } catch (error) {\n console.error(chalk.red('\\nāŒ Cultivation failed:'), error);\n process.exit(1);\n }\n });\n}\n\n/**\n * Display detailed analysis output\n */\nfunction displayDetailedAnalysis(analysis: SeedAnalysis): void {\n if (analysis.frameworks.length > 0) {\n console.log(`\\n ${chalk.gray('Frameworks:')}`);\n for (const fw of analysis.frameworks) {\n console.log(` - ${fw.name} (${fw.ecosystem}) v${fw.version}`);\n }\n }\n\n if (analysis.services.length > 0) {\n console.log(`\\n ${chalk.gray('Services:')}`);\n for (const svc of analysis.services) {\n console.log(` - ${svc.name}: ${svc.type} (${svc.technology})`);\n }\n }\n\n if (analysis.deployments.length > 0) {\n console.log(`\\n ${chalk.gray('Deployments:')}`);\n for (const dep of analysis.deployments) {\n console.log(` - ${dep}`);\n }\n }\n}\n\n/**\n * Display cultivation summary\n */\nfunction displaySummary(result: CultivationResult, dryRun: boolean): void {\n console.log(chalk.bold.blue('šŸ“Š Cultivation Summary\\n'));\n\n if (dryRun) {\n console.log(chalk.yellow('[DRY RUN] No changes were made\\n'));\n }\n\n console.log(' Analysis:');\n console.log(` Files processed: ${result.analysis.filesProcessed}`);\n console.log(` Dependencies: ${result.analysis.dependenciesFound}`);\n console.log(` Services: ${result.analysis.servicesFound}`);\n\n if (result.seed.created > 0 || result.seed.documents.length > 0) {\n console.log('\\n Seed:');\n console.log(` Primitives ${dryRun ? 'would create' : 'created'}: ${dryRun ? result.seed.documents.length : result.seed.created}`);\n }\n\n if (result.cache.updated > 0) {\n console.log('\\n Cache:');\n console.log(` Entries: ${result.cache.updated}`);\n const hitRate = result.cache.hits + result.cache.misses > 0\n ? (result.cache.hits / (result.cache.hits + result.cache.misses) * 100).toFixed(1)\n : 0;\n console.log(` Hit rate: ${hitRate}%`);\n }\n\n console.log(`\\n Duration: ${(result.duration / 1000).toFixed(2)}s`);\n\n if (result.warnings.length > 0) {\n console.log(chalk.yellow(`\\n āš ļø Warnings: ${result.warnings.length}`));\n for (const warning of result.warnings.slice(0, 5)) {\n console.log(chalk.gray(` - ${warning}`));\n }\n }\n\n if (result.errors.length > 0) {\n console.log(chalk.red(`\\n āŒ Errors: ${result.errors.length}`));\n for (const error of result.errors.slice(0, 5)) {\n console.log(chalk.gray(` - ${error}`));\n }\n }\n\n if (result.success && !dryRun) {\n console.log(chalk.bold.green('\\n✨ Cultivation complete!\\n'));\n } else if (!result.success) {\n console.log(chalk.yellow('\\nāš ļø Cultivation completed with errors\\n'));\n } else {\n console.log(chalk.gray('\\nRun without --dry-run to apply changes\\n'));\n }\n}\n\n/**\n * Check if claude-flow is available\n */\nasync function checkClaudeFlowAvailable(): Promise<boolean> {\n try {\n const { execSync } = await import('child_process');\n execSync('npx claude-flow@alpha --version', { stdio: 'pipe', timeout: 5000 });\n return true;\n } catch {\n return false;\n }\n}\n"],"names":[],"mappings":";;;;;AA8CO,SAAS,yBAAkC;AAChD,SAAO,IAAI,QAAQ,WAAW,EAC3B,YAAY,0DAA0D,EACtE,SAAS,UAAU,0DAA0D,GAAG,EAChF,OAAO,aAAa,qCAAqC,KAAK,EAC9D,OAAO,qBAAqB,sBAAsB,MAAM,EACxD,OAAO,iBAAiB,kBAAkB,KAAK,EAC/C,OAAO,UAAU,0DAA0D,KAAK,EAChF,OAAO,mBAAmB,4CAA4C,KAAK,EAC3E,OAAO,WAAW,4CAA4C,IAAI,EAClE,OAAO,4BAA4B,mDAAmD,MAAS,EAC/F,OAAO,iBAAiB,4BAA4B,KAAK,EACzD,OAAO,gBAAgB,mCAAmC,KAAK,EAC/D,OAAO,mBAAmB,kCAAkC,KAAK,EACjE,OAAO,OAAO,YAAoB,YAW7B;AACJ,UAAM,cAAc,QAAQ,UAAU;AACtC,UAAM,WAAW,QAAQ,QAAQ;AACjC,UAAM,UAAU,QAAQ,WAAW;AACnC,UAAM,SAAS,QAAQ,UAAU;AAEjC,YAAQ,IAAI,MAAM,KAAK,MAAM,mCAAmC,CAAC;AACjE,YAAQ,IAAI,cAAc,WAAW,EAAE;AACvC,YAAQ,IAAI,WAAW,QAAQ,EAAE;AACjC,QAAI,QAAQ;AACV,cAAQ,IAAI,WAAW,MAAM,OAAO,SAAS,CAAC,EAAE;AAAA,IAClD;AACA,YAAQ,IAAI,EAAE;AAGd,UAAM,QAAQ;AAAA,MACZ,MAAM,QAAQ,QAAQ;AAAA,MACtB,cAAc,QAAQ,gBAAgB;AAAA,IAAA;AAIxC,QAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,cAAc;AACtC,cAAQ,IAAI,MAAM,OAAO,2CAA2C,CAAC;AACrE,cAAQ,IAAI,kEAAkE;AAC9E,cAAQ,IAAI,+DAA+D;AAC3E,cAAQ,IAAI,EAAE;AACd,cAAQ,IAAI,MAAM,KAAK,UAAU,CAAC;AAClC,cAAQ,IAAI,kDAAkD;AAC9D,cAAQ,IAAI,6EAA6E;AACzF,cAAQ,IAAI,mDAAmD;AAC/D,cAAQ,IAAI,0EAA0E;AACtF,cAAQ,IAAI,6CAA6C;AACzD,cAAQ,IAAI,oDAAoD;AAChE,cAAQ,IAAI,EAAE;AACd,cAAQ,IAAI,4CAA4C;AACxD;AAAA,IACF;AAEA,UAAM,YAAY,KAAK,IAAA;AACvB,UAAM,SAA4B;AAAA,MAChC,SAAS;AAAA,MACT,MAAM,EAAE,SAAS,GAAG,WAAW,CAAA,EAAC;AAAA,MAChC,UAAU,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,eAAe,EAAA;AAAA,MACpE,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,EAAA;AAAA,MACtC,UAAU;AAAA,MACV,UAAU,CAAA;AAAA,MACV,QAAQ,CAAA;AAAA,IAAC;AAGX,QAAI;AAEF,UAAI;AACJ,UAAI,QAAQ,UAAU,OAAO;AAC3B,gBAAQ,IAAI,MAAM,KAAK,iCAAiC,CAAC;AACzD,gBAAQ,MAAM,gBAAgB,WAAW;AAEzC,YAAI,QAAQ,cAAc;AACxB,gBAAM,MAAA;AACN,kBAAQ,IAAI,MAAM,KAAK,gCAAgC,CAAC;AAAA,QAC1D;AAEA,cAAM,QAAQ,MAAM,SAAA;AACpB,gBAAQ,IAAI,MAAM,KAAK,cAAc,MAAM,YAAY,gBAAgB,MAAM,UAAU,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC;AAC1G,gBAAQ,IAAI,EAAE;AAAA,MAChB;AAGA,UAAI,MAAM,MAAM;AACd,gBAAQ,IAAI,MAAM,KAAK,0CAA0C,CAAC;AAGlE,YAAI;AACJ,YAAI,QAAQ,WAAW;AACrB,uBAAa,QAAQ,UAAU,MAAM,GAAG,EAAE,IAAI,CAAA,MAAK,EAAE,MAAmB;AACxE,kBAAQ,IAAI,MAAM,KAAK,iBAAiB,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC;AAAA,QAClE;AAGA,cAAM,YAAY,MAAM,cAAc,OAAO,aAAa,QAAQ;AAGlE,gBAAQ,IAAI,MAAM,KAAK,yBAAyB,CAAC;AACjD,cAAM,WAAW,MAAM,UAAU,QAAA;AAEjC,eAAO,WAAW;AAAA,UAChB,gBAAgB,SAAS,SAAS;AAAA,UAClC,mBAAmB,SAAS,aAAa;AAAA,UACzC,eAAe,SAAS,SAAS;AAAA,QAAA;AAInC,gBAAQ,IAAI;AAAA,IAAO,MAAM,KAAK,mBAAmB,CAAC,EAAE;AACpD,gBAAQ,IAAI,kBAAkB,SAAS,UAAU,KAAK,IAAI,KAAK,MAAM,EAAE;AACvE,gBAAQ,IAAI,qBAAqB,SAAS,aAAa,MAAM,EAAE;AAC/D,gBAAQ,IAAI,mBAAmB,SAAS,WAAW,MAAM,EAAE;AAC3D,gBAAQ,IAAI,iBAAiB,SAAS,SAAS,MAAM,EAAE;AACvD,gBAAQ,IAAI,oBAAoB,SAAS,YAAY,MAAM,EAAE;AAE7D,YAAI,SAAS;AACX,kCAAwB,QAAQ;AAAA,QAClC;AAEA,gBAAQ,IAAI,EAAE;AAGd,gBAAQ,IAAI,MAAM,KAAK,iCAAiC,CAAC;AACzD,cAAM,YAAY,MAAM,UAAU,mBAAmB,QAAQ;AAE7D,YAAI,QAAQ;AACV,kBAAQ,IAAI;AAAA,IAAO,MAAM,OAAO,WAAW,CAAC,iBAAiB,UAAU,MAAM,cAAc;AAC3F,qBAAW,OAAO,UAAU,MAAM,GAAG,EAAE,GAAG;AACxC,oBAAQ,IAAI,SAAS,IAAI,YAAY,IAAI,KAAK,IAAI,KAAK,EAAE;AAAA,UAC3D;AACA,cAAI,UAAU,SAAS,IAAI;AACzB,oBAAQ,IAAI,eAAe,UAAU,SAAS,EAAE,OAAO;AAAA,UACzD;AACA,iBAAO,KAAK,YAAY,UAAU,IAAI,CAAA,OAAM;AAAA,YAC1C,OAAO,EAAE;AAAA,YACT,MAAM,EAAE;AAAA,YACR,MAAM,EAAE,YAAY,QAAQ;AAAA,UAAA,EAC5B;AAAA,QACJ,OAAO;AACL,gBAAM,cAAc,MAAM,UAAU,gBAAgB,SAAS;AAC7D,iBAAO,KAAK,UAAU,YAAY,mBAAmB;AACrD,iBAAO,KAAK,YAAY,YAAY;AAEpC,kBAAQ,IAAI;AAAA,IAAO,MAAM,MAAM,GAAG,CAAC,YAAY,YAAY,mBAAmB,MAAM,aAAa;AAEjG,cAAI,YAAY,SAAS,SAAS,GAAG;AACnC,mBAAO,SAAS,KAAK,GAAG,YAAY,QAAQ;AAC5C,gBAAI,SAAS;AACX,sBAAQ,IAAI,MAAM,OAAO,eAAe,YAAY,SAAS,MAAM,EAAE,CAAC;AAAA,YACxE;AAAA,UACF;AAEA,cAAI,YAAY,OAAO,SAAS,GAAG;AACjC,mBAAO,OAAO,KAAK,GAAG,YAAY,MAAM;AACxC,oBAAQ,IAAI,MAAM,IAAI,aAAa,YAAY,OAAO,MAAM,EAAE,CAAC;AAAA,UACjE;AAAA,QACF;AAEA,gBAAQ,IAAI,EAAE;AAAA,MAChB;AAGA,UAAI,MAAM,cAAc;AACtB,gBAAQ,IAAI,MAAM,KAAK,gDAAgD,CAAC;AAGxE,cAAM,gBAAgB,MAAM,yBAAA;AAE5B,YAAI,CAAC,eAAe;AAClB,kBAAQ,IAAI,MAAM,OAAO,iCAAiC,CAAC;AAC3D,kBAAQ,IAAI,MAAM,KAAK,kDAAkD,CAAC;AAC1E,iBAAO,SAAS,KAAK,6CAA6C;AAAA,QACpE,OAAO;AACL,cAAI,QAAQ;AACV,oBAAQ,IAAI,MAAM,OAAO,6CAA6C,CAAC;AACvE,oBAAQ,IAAI,6CAA6C;AACzD,oBAAQ,IAAI,iDAAiD;AAC7D,oBAAQ,IAAI,6CAA6C;AACzD,oBAAQ,IAAI,wCAAwC;AAAA,UACtD,OAAO;AAEL,gBAAI;AACF,oBAAM,EAAE,aAAA,IAAiB,MAAM,OAAO,oCAAoC;AAC1E,oBAAM,WAAW,IAAI,aAAa;AAAA,gBAChC;AAAA,gBACA;AAAA,gBACA;AAAA,cAAA,CACD;AAED,oBAAM,aAAa,MAAM,SAAS,QAAA;AAElC,sBAAQ,IAAI,KAAK,MAAM,MAAM,GAAG,CAAC,yBAAyB;AAC1D,sBAAQ,IAAI,uBAAuB,WAAW,aAAa,EAAE;AAC7D,sBAAQ,IAAI,2BAA2B,WAAW,aAAa,EAAE;AACjE,sBAAQ,IAAI,8BAA8B,WAAW,gBAAgB,EAAE;AAAA,YACzE,SAAS,OAAO;AACd,qBAAO,OAAO,KAAK,yBAAyB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,EAAE;AACpG,sBAAQ,IAAI,MAAM,IAAI,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC,EAAE,CAAC;AAAA,YAC9G;AAAA,UACF;AAAA,QACF;AAEA,gBAAQ,IAAI,EAAE;AAAA,MAChB;AAGA,UAAI,OAAO;AACT,cAAM,QAAQ,MAAM,SAAA;AACpB,eAAO,QAAQ;AAAA,UACb,SAAS,MAAM;AAAA,UACf,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM;AAAA,QAAA;AAGhB,cAAM,MAAM,KAAA;AAAA,MACd;AAEA,aAAO,WAAW,KAAK,IAAA,IAAQ;AAC/B,aAAO,UAAU,OAAO,OAAO,WAAW;AAG1C,qBAAe,QAAQ,MAAM;AAAA,IAE/B,SAAS,OAAO;AACd,cAAQ,MAAM,MAAM,IAAI,yBAAyB,GAAG,KAAK;AACzD,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF,CAAC;AACL;AAKA,SAAS,wBAAwB,UAA8B;AAC7D,MAAI,SAAS,WAAW,SAAS,GAAG;AAClC,YAAQ,IAAI;AAAA,MAAS,MAAM,KAAK,aAAa,CAAC,EAAE;AAChD,eAAW,MAAM,SAAS,YAAY;AACpC,cAAQ,IAAI,WAAW,GAAG,IAAI,KAAK,GAAG,SAAS,MAAM,GAAG,OAAO,EAAE;AAAA,IACnE;AAAA,EACF;AAEA,MAAI,SAAS,SAAS,SAAS,GAAG;AAChC,YAAQ,IAAI;AAAA,MAAS,MAAM,KAAK,WAAW,CAAC,EAAE;AAC9C,eAAW,OAAO,SAAS,UAAU;AACnC,cAAQ,IAAI,WAAW,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,UAAU,GAAG;AAAA,IACpE;AAAA,EACF;AAEA,MAAI,SAAS,YAAY,SAAS,GAAG;AACnC,YAAQ,IAAI;AAAA,MAAS,MAAM,KAAK,cAAc,CAAC,EAAE;AACjD,eAAW,OAAO,SAAS,aAAa;AACtC,cAAQ,IAAI,WAAW,GAAG,EAAE;AAAA,IAC9B;AAAA,EACF;AACF;AAKA,SAAS,eAAe,QAA2B,QAAuB;AACxE,UAAQ,IAAI,MAAM,KAAK,KAAK,0BAA0B,CAAC;AAEvD,MAAI,QAAQ;AACV,YAAQ,IAAI,MAAM,OAAO,kCAAkC,CAAC;AAAA,EAC9D;AAEA,UAAQ,IAAI,aAAa;AACzB,UAAQ,IAAI,wBAAwB,OAAO,SAAS,cAAc,EAAE;AACpE,UAAQ,IAAI,qBAAqB,OAAO,SAAS,iBAAiB,EAAE;AACpE,UAAQ,IAAI,iBAAiB,OAAO,SAAS,aAAa,EAAE;AAE5D,MAAI,OAAO,KAAK,UAAU,KAAK,OAAO,KAAK,UAAU,SAAS,GAAG;AAC/D,YAAQ,IAAI,WAAW;AACvB,YAAQ,IAAI,kBAAkB,SAAS,iBAAiB,SAAS,KAAK,SAAS,OAAO,KAAK,UAAU,SAAS,OAAO,KAAK,OAAO,EAAE;AAAA,EACrI;AAEA,MAAI,OAAO,MAAM,UAAU,GAAG;AAC5B,YAAQ,IAAI,YAAY;AACxB,YAAQ,IAAI,gBAAgB,OAAO,MAAM,OAAO,EAAE;AAClD,UAAM,UAAU,OAAO,MAAM,OAAO,OAAO,MAAM,SAAS,KACrD,OAAO,MAAM,QAAQ,OAAO,MAAM,OAAO,OAAO,MAAM,UAAU,KAAK,QAAQ,CAAC,IAC/E;AACJ,YAAQ,IAAI,iBAAiB,OAAO,GAAG;AAAA,EACzC;AAEA,UAAQ,IAAI;AAAA,eAAkB,OAAO,WAAW,KAAM,QAAQ,CAAC,CAAC,GAAG;AAEnE,MAAI,OAAO,SAAS,SAAS,GAAG;AAC9B,YAAQ,IAAI,MAAM,OAAO;AAAA,kBAAqB,OAAO,SAAS,MAAM,EAAE,CAAC;AACvE,eAAW,WAAW,OAAO,SAAS,MAAM,GAAG,CAAC,GAAG;AACjD,cAAQ,IAAI,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;AAAA,IAC5C;AAAA,EACF;AAEA,MAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,YAAQ,IAAI,MAAM,IAAI;AAAA,cAAiB,OAAO,OAAO,MAAM,EAAE,CAAC;AAC9D,eAAW,SAAS,OAAO,OAAO,MAAM,GAAG,CAAC,GAAG;AAC7C,cAAQ,IAAI,MAAM,KAAK,SAAS,KAAK,EAAE,CAAC;AAAA,IAC1C;AAAA,EACF;AAEA,MAAI,OAAO,WAAW,CAAC,QAAQ;AAC7B,YAAQ,IAAI,MAAM,KAAK,MAAM,6BAA6B,CAAC;AAAA,EAC7D,WAAW,CAAC,OAAO,SAAS;AAC1B,YAAQ,IAAI,MAAM,OAAO,2CAA2C,CAAC;AAAA,EACvE,OAAO;AACL,YAAQ,IAAI,MAAM,KAAK,4CAA4C,CAAC;AAAA,EACtE;AACF;AAKA,eAAe,2BAA6C;AAC1D,MAAI;AACF,UAAM,EAAE,SAAA,IAAa,MAAM,OAAO,eAAe;AACjD,aAAS,mCAAmC,EAAE,OAAO,QAAQ,SAAS,KAAM;AAC5E,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Diagnostics Command
3
+ *
4
+ * System diagnostics and health monitoring for knowledge graph.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare function createDiagnosticsCommand(): Command;
8
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,wBAAwB,IAAI,OAAO,CA8IlD"}