@weavelogic/knowledge-graph-agent 0.2.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.
- package/README.md +686 -304
- package/dist/_virtual/_commonjsHelpers.js +7 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/additionalItems.js +5 -0
- package/dist/_virtual/additionalItems.js.map +1 -0
- package/dist/_virtual/additionalProperties.js +5 -0
- package/dist/_virtual/additionalProperties.js.map +1 -0
- package/dist/_virtual/ajv.js +6 -0
- package/dist/_virtual/ajv.js.map +1 -0
- package/dist/_virtual/ajv2.js +5 -0
- package/dist/_virtual/ajv2.js.map +1 -0
- package/dist/_virtual/allOf.js +5 -0
- package/dist/_virtual/allOf.js.map +1 -0
- package/dist/_virtual/anyOf.js +5 -0
- package/dist/_virtual/anyOf.js.map +1 -0
- package/dist/_virtual/applicability.js +5 -0
- package/dist/_virtual/applicability.js.map +1 -0
- package/dist/_virtual/boolSchema.js +5 -0
- package/dist/_virtual/boolSchema.js.map +1 -0
- package/dist/_virtual/code.js +5 -0
- package/dist/_virtual/code.js.map +1 -0
- package/dist/_virtual/code2.js +5 -0
- package/dist/_virtual/code2.js.map +1 -0
- package/dist/_virtual/const.js +5 -0
- package/dist/_virtual/const.js.map +1 -0
- package/dist/_virtual/contains.js +5 -0
- package/dist/_virtual/contains.js.map +1 -0
- package/dist/_virtual/core.js +5 -0
- package/dist/_virtual/core.js.map +1 -0
- package/dist/_virtual/dataType.js +5 -0
- package/dist/_virtual/dataType.js.map +1 -0
- package/dist/_virtual/defaults.js +5 -0
- package/dist/_virtual/defaults.js.map +1 -0
- package/dist/_virtual/dependencies.js +5 -0
- package/dist/_virtual/dependencies.js.map +1 -0
- package/dist/_virtual/draft7.js +5 -0
- package/dist/_virtual/draft7.js.map +1 -0
- package/dist/_virtual/enum.js +5 -0
- package/dist/_virtual/enum.js.map +1 -0
- package/dist/_virtual/equal.js +5 -0
- package/dist/_virtual/equal.js.map +1 -0
- package/dist/_virtual/errors.js +5 -0
- package/dist/_virtual/errors.js.map +1 -0
- package/dist/_virtual/format.js +5 -0
- package/dist/_virtual/format.js.map +1 -0
- package/dist/_virtual/formats.js +5 -0
- package/dist/_virtual/formats.js.map +1 -0
- package/dist/_virtual/id.js +5 -0
- package/dist/_virtual/id.js.map +1 -0
- package/dist/_virtual/if.js +5 -0
- package/dist/_virtual/if.js.map +1 -0
- package/dist/_virtual/index.js +8 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index10.js +5 -0
- package/dist/_virtual/index10.js.map +1 -0
- package/dist/_virtual/index11.js +5 -0
- package/dist/_virtual/index11.js.map +1 -0
- package/dist/_virtual/index12.js +5 -0
- package/dist/_virtual/index12.js.map +1 -0
- package/dist/_virtual/index2.js +5 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +5 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +5 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/index5.js +5 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.js +5 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/index7.js +5 -0
- package/dist/_virtual/index7.js.map +1 -0
- package/dist/_virtual/index8.js +5 -0
- package/dist/_virtual/index8.js.map +1 -0
- package/dist/_virtual/index9.js +5 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/items.js +5 -0
- package/dist/_virtual/items.js.map +1 -0
- package/dist/_virtual/items2020.js +5 -0
- package/dist/_virtual/items2020.js.map +1 -0
- package/dist/_virtual/keyword.js +5 -0
- package/dist/_virtual/keyword.js.map +1 -0
- package/dist/_virtual/limit.js +5 -0
- package/dist/_virtual/limit.js.map +1 -0
- package/dist/_virtual/limitItems.js +5 -0
- package/dist/_virtual/limitItems.js.map +1 -0
- package/dist/_virtual/limitLength.js +5 -0
- package/dist/_virtual/limitLength.js.map +1 -0
- package/dist/_virtual/limitNumber.js +5 -0
- package/dist/_virtual/limitNumber.js.map +1 -0
- package/dist/_virtual/limitProperties.js +5 -0
- package/dist/_virtual/limitProperties.js.map +1 -0
- package/dist/_virtual/metadata.js +5 -0
- package/dist/_virtual/metadata.js.map +1 -0
- package/dist/_virtual/multipleOf.js +5 -0
- package/dist/_virtual/multipleOf.js.map +1 -0
- package/dist/_virtual/names.js +5 -0
- package/dist/_virtual/names.js.map +1 -0
- package/dist/_virtual/not.js +5 -0
- package/dist/_virtual/not.js.map +1 -0
- package/dist/_virtual/oneOf.js +5 -0
- package/dist/_virtual/oneOf.js.map +1 -0
- package/dist/_virtual/pattern.js +5 -0
- package/dist/_virtual/pattern.js.map +1 -0
- package/dist/_virtual/patternProperties.js +5 -0
- package/dist/_virtual/patternProperties.js.map +1 -0
- package/dist/_virtual/prefixItems.js +5 -0
- package/dist/_virtual/prefixItems.js.map +1 -0
- package/dist/_virtual/properties.js +5 -0
- package/dist/_virtual/properties.js.map +1 -0
- package/dist/_virtual/propertyNames.js +5 -0
- package/dist/_virtual/propertyNames.js.map +1 -0
- package/dist/_virtual/ref.js +5 -0
- package/dist/_virtual/ref.js.map +1 -0
- package/dist/_virtual/ref_error.js +5 -0
- package/dist/_virtual/ref_error.js.map +1 -0
- package/dist/_virtual/required.js +5 -0
- package/dist/_virtual/required.js.map +1 -0
- package/dist/_virtual/resolve.js +5 -0
- package/dist/_virtual/resolve.js.map +1 -0
- package/dist/_virtual/rules.js +5 -0
- package/dist/_virtual/rules.js.map +1 -0
- package/dist/_virtual/scope.js +5 -0
- package/dist/_virtual/scope.js.map +1 -0
- package/dist/_virtual/subschema.js +5 -0
- package/dist/_virtual/subschema.js.map +1 -0
- package/dist/_virtual/thenElse.js +5 -0
- package/dist/_virtual/thenElse.js.map +1 -0
- package/dist/_virtual/types.js +5 -0
- package/dist/_virtual/types.js.map +1 -0
- package/dist/_virtual/ucs2length.js +5 -0
- package/dist/_virtual/ucs2length.js.map +1 -0
- package/dist/_virtual/uniqueItems.js +5 -0
- package/dist/_virtual/uniqueItems.js.map +1 -0
- package/dist/_virtual/uri.js +5 -0
- package/dist/_virtual/uri.js.map +1 -0
- package/dist/_virtual/util.js +5 -0
- package/dist/_virtual/util.js.map +1 -0
- package/dist/_virtual/validation_error.js +5 -0
- package/dist/_virtual/validation_error.js.map +1 -0
- package/dist/agents/analyst-agent.d.ts +230 -0
- package/dist/agents/analyst-agent.d.ts.map +1 -0
- package/dist/agents/analyst-agent.js +793 -0
- package/dist/agents/analyst-agent.js.map +1 -0
- package/dist/agents/architect-agent.d.ts +248 -0
- package/dist/agents/architect-agent.d.ts.map +1 -0
- package/dist/agents/architect-agent.js +685 -0
- package/dist/agents/architect-agent.js.map +1 -0
- package/dist/agents/base-agent.d.ts +169 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +441 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/coder-agent.d.ts +191 -0
- package/dist/agents/coder-agent.d.ts.map +1 -0
- package/dist/agents/coder-agent.js +1008 -0
- package/dist/agents/coder-agent.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +40 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/registry.d.ts +213 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +419 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/researcher-agent.d.ts +226 -0
- package/dist/agents/researcher-agent.d.ts.map +1 -0
- package/dist/agents/researcher-agent.js +572 -0
- package/dist/agents/researcher-agent.js.map +1 -0
- package/dist/agents/rules-engine.d.ts +320 -0
- package/dist/agents/rules-engine.d.ts.map +1 -0
- package/dist/agents/rules-engine.js +552 -0
- package/dist/agents/rules-engine.js.map +1 -0
- package/dist/agents/tester-agent.d.ts +219 -0
- package/dist/agents/tester-agent.d.ts.map +1 -0
- package/dist/agents/tester-agent.js +683 -0
- package/dist/agents/tester-agent.js.map +1 -0
- package/dist/agents/types.d.ts +425 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +57 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/caching/index.d.ts +55 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +206 -0
- package/dist/caching/index.js.map +1 -0
- package/dist/caching/lru-cache.d.ts +254 -0
- package/dist/caching/lru-cache.d.ts.map +1 -0
- package/dist/caching/types.d.ts +95 -0
- package/dist/caching/types.d.ts.map +1 -0
- package/dist/chunking/chunker.d.ts +94 -0
- package/dist/chunking/chunker.d.ts.map +1 -0
- package/dist/chunking/index.d.ts +125 -0
- package/dist/chunking/index.d.ts.map +1 -0
- package/dist/chunking/index.js +283 -0
- package/dist/chunking/index.js.map +1 -0
- package/dist/chunking/types.d.ts +92 -0
- package/dist/chunking/types.d.ts.map +1 -0
- package/dist/cli/commands/commit.d.ts +11 -0
- package/dist/cli/commands/commit.d.ts.map +1 -0
- package/dist/cli/commands/commit.js +379 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/config.d.ts +8 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +107 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/cultivate.d.ts +16 -0
- package/dist/cli/commands/cultivate.d.ts.map +1 -0
- package/dist/cli/commands/cultivate.js +254 -0
- package/dist/cli/commands/cultivate.js.map +1 -0
- package/dist/cli/commands/diagnostics.d.ts +8 -0
- package/dist/cli/commands/diagnostics.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics.js +140 -0
- package/dist/cli/commands/diagnostics.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +13 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/init-primitives.d.ts +19 -0
- package/dist/cli/commands/init-primitives.d.ts.map +1 -0
- package/dist/cli/commands/init-primitives.js +208 -0
- package/dist/cli/commands/init-primitives.js.map +1 -0
- package/dist/cli/commands/sop.d.ts +14 -0
- package/dist/cli/commands/sop.d.ts.map +1 -0
- package/dist/cli/commands/sop.js +598 -0
- package/dist/cli/commands/sop.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +40 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +153 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +141 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +136 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/types.d.ts +127 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/core/cache.d.ts +185 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +435 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/cultivation/deep-analyzer.d.ts +129 -0
- package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
- package/dist/cultivation/deep-analyzer.js +322 -0
- package/dist/cultivation/deep-analyzer.js.map +1 -0
- package/dist/cultivation/index.d.ts +13 -0
- package/dist/cultivation/index.d.ts.map +1 -0
- package/dist/cultivation/seed-generator.d.ts +92 -0
- package/dist/cultivation/seed-generator.d.ts.map +1 -0
- package/dist/cultivation/seed-generator.js +1033 -0
- package/dist/cultivation/seed-generator.js.map +1 -0
- package/dist/cultivation/types.d.ts +230 -0
- package/dist/cultivation/types.d.ts.map +1 -0
- package/dist/generators/claude-md.d.ts +7 -0
- package/dist/generators/claude-md.d.ts.map +1 -1
- package/dist/generators/claude-md.js.map +1 -1
- package/dist/generators/docs-init.d.ts +6 -0
- package/dist/generators/docs-init.d.ts.map +1 -1
- package/dist/generators/docs-init.js.map +1 -1
- package/dist/health/checks.d.ts +135 -0
- package/dist/health/checks.d.ts.map +1 -0
- package/dist/health/index.d.ts +119 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +191 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/monitor.d.ts +146 -0
- package/dist/health/monitor.d.ts.map +1 -0
- package/dist/health/types.d.ts +135 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +173 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/auto-commit.d.ts +175 -0
- package/dist/integrations/auto-commit.d.ts.map +1 -0
- package/dist/integrations/auto-commit.js +399 -0
- package/dist/integrations/auto-commit.js.map +1 -0
- package/dist/integrations/git.d.ts +299 -0
- package/dist/integrations/git.d.ts.map +1 -0
- package/dist/integrations/git.js +465 -0
- package/dist/integrations/git.js.map +1 -0
- package/dist/mcp-server/bin.d.ts +11 -0
- package/dist/mcp-server/bin.d.ts.map +1 -0
- package/dist/mcp-server/handlers/index.d.ts +57 -0
- package/dist/mcp-server/handlers/index.d.ts.map +1 -0
- package/dist/mcp-server/handlers/index.js +235 -0
- package/dist/mcp-server/handlers/index.js.map +1 -0
- package/dist/mcp-server/index.d.ts +28 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/server.d.ts +133 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +280 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/agents/index.d.ts +10 -0
- package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/agents/list.d.ts +19 -0
- package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
- package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
- package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
- package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/index.d.ts +11 -0
- package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/query.d.ts +22 -0
- package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
- package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
- package/dist/mcp-server/tools/health.d.ts +21 -0
- package/dist/mcp-server/tools/health.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +13 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/registry.d.ts +90 -0
- package/dist/mcp-server/tools/registry.d.ts.map +1 -0
- package/dist/mcp-server/tools/registry.js +663 -0
- package/dist/mcp-server/tools/registry.js.map +1 -0
- package/dist/mcp-server/tools/search/index.d.ts +10 -0
- package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
- package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
- package/dist/mcp-server/tools/search/tags.d.ts +22 -0
- package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
- package/dist/mcp-server/types/index.d.ts +286 -0
- package/dist/mcp-server/types/index.d.ts.map +1 -0
- package/dist/memory/index.d.ts +10 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/vault-sync.d.ts +212 -0
- package/dist/memory/vault-sync.d.ts.map +1 -0
- package/dist/memory/vault-sync.js +463 -0
- package/dist/memory/vault-sync.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/node_modules/ajv/dist/ajv.js +84 -0
- package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
- package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/index.js +234 -0
- package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/names.js +44 -0
- package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
- package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/util.js +173 -0
- package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/dist/node_modules/ajv/dist/core.js +628 -0
- package/dist/node_modules/ajv/dist/core.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
- package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/index.js +51 -0
- package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
- package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
- package/dist/node_modules/fast-deep-equal/index.js +39 -0
- package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/fast-uri/index.js +261 -0
- package/dist/node_modules/fast-uri/index.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
- package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/utils.js +261 -0
- package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
- package/dist/node_modules/json-schema-traverse/index.js +92 -0
- package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.js +37 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +43 -0
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +13 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +492 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +405 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +58 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +82 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +60 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +87 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +341 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/reasoning/index.d.ts +74 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +124 -0
- package/dist/reasoning/index.js.map +1 -0
- package/dist/reasoning/tracker.d.ts +210 -0
- package/dist/reasoning/tracker.d.ts.map +1 -0
- package/dist/reasoning/types.d.ts +146 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/recovery/backup.d.ts +110 -0
- package/dist/recovery/backup.d.ts.map +1 -0
- package/dist/recovery/index.d.ts +70 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +186 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/integrity.d.ts +74 -0
- package/dist/recovery/integrity.d.ts.map +1 -0
- package/dist/recovery/types.d.ts +94 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/services/index.d.ts +130 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +134 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/manager.d.ts +140 -0
- package/dist/services/manager.d.ts.map +1 -0
- package/dist/services/types.d.ts +106 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/watchers.d.ts +95 -0
- package/dist/services/watchers.d.ts.map +1 -0
- package/dist/sops/compliance-checker.d.ts +83 -0
- package/dist/sops/compliance-checker.d.ts.map +1 -0
- package/dist/sops/compliance-checker.js +399 -0
- package/dist/sops/compliance-checker.js.map +1 -0
- package/dist/sops/gap-analyzer.d.ts +124 -0
- package/dist/sops/gap-analyzer.d.ts.map +1 -0
- package/dist/sops/gap-analyzer.js +313 -0
- package/dist/sops/gap-analyzer.js.map +1 -0
- package/dist/sops/index.d.ts +14 -0
- package/dist/sops/index.d.ts.map +1 -0
- package/dist/sops/overlay-manager.d.ts +115 -0
- package/dist/sops/overlay-manager.d.ts.map +1 -0
- package/dist/sops/overlay-manager.js +394 -0
- package/dist/sops/overlay-manager.js.map +1 -0
- package/dist/sops/registry.d.ts +73 -0
- package/dist/sops/registry.d.ts.map +1 -0
- package/dist/sops/registry.js +919 -0
- package/dist/sops/registry.js.map +1 -0
- package/dist/sops/types.d.ts +377 -0
- package/dist/sops/types.d.ts.map +1 -0
- package/dist/sops/types.js +46 -0
- package/dist/sops/types.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +230 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +228 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/utils/error-taxonomy.d.ts +149 -0
- package/dist/utils/error-taxonomy.d.ts.map +1 -0
- package/dist/utils/error-taxonomy.js +260 -0
- package/dist/utils/error-taxonomy.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +139 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +311 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/workflows/index.d.ts +11 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/registry.d.ts +118 -0
- package/dist/workflows/registry.d.ts.map +1 -0
- package/dist/workflows/registry.js +575 -0
- package/dist/workflows/registry.js.map +1 -0
- package/dist/workflows/types.d.ts +322 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +16 -0
- package/dist/workflows/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -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":"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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
import { createHealthMonitor, createDatabaseCheck, createMemoryCheck, createDiskCheck } from "../../health/index.js";
|
|
6
|
+
import { createIntegrityChecker } from "../../recovery/index.js";
|
|
7
|
+
function createDiagnosticsCommand() {
|
|
8
|
+
const diagnostics = new Command("diagnostics").alias("diag").description("System diagnostics and health monitoring");
|
|
9
|
+
diagnostics.command("health").description("Run health checks on all components").option("--json", "Output as JSON").action(async (options) => {
|
|
10
|
+
try {
|
|
11
|
+
const cwd = process.cwd();
|
|
12
|
+
const dbPath = join(cwd, ".kg", "knowledge.db");
|
|
13
|
+
const monitor = createHealthMonitor();
|
|
14
|
+
monitor.register(createDatabaseCheck(dbPath));
|
|
15
|
+
monitor.register(createMemoryCheck(500));
|
|
16
|
+
monitor.register(createDiskCheck(cwd));
|
|
17
|
+
console.log(chalk.cyan("Running health checks...\n"));
|
|
18
|
+
const health = await monitor.check();
|
|
19
|
+
if (options.json) {
|
|
20
|
+
console.log(JSON.stringify(health, null, 2));
|
|
21
|
+
} else {
|
|
22
|
+
printHealth(health);
|
|
23
|
+
}
|
|
24
|
+
if (health.status === "unhealthy") {
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error(chalk.red("Error running health checks:"), error);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
diagnostics.command("integrity").description("Check database integrity").option("--repair", "Attempt to repair issues").action(async (options) => {
|
|
33
|
+
try {
|
|
34
|
+
const cwd = process.cwd();
|
|
35
|
+
const dbPath = join(cwd, ".kg", "knowledge.db");
|
|
36
|
+
if (!existsSync(dbPath)) {
|
|
37
|
+
console.log(chalk.yellow('Database not found. Run "kg init" first.'));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
console.log(chalk.cyan("Checking database integrity...\n"));
|
|
41
|
+
const checker = createIntegrityChecker(dbPath);
|
|
42
|
+
const result = await checker.check();
|
|
43
|
+
if (result.valid) {
|
|
44
|
+
console.log(chalk.green("Database integrity: OK"));
|
|
45
|
+
} else {
|
|
46
|
+
console.log(chalk.red("Database integrity: FAILED"));
|
|
47
|
+
result.issues.forEach((issue) => {
|
|
48
|
+
console.log(chalk.yellow(` - ${issue}`));
|
|
49
|
+
});
|
|
50
|
+
if (options.repair) {
|
|
51
|
+
console.log(chalk.cyan("\nAttempting repairs..."));
|
|
52
|
+
const repairResult = await checker.repair();
|
|
53
|
+
if (repairResult.repaired) {
|
|
54
|
+
console.log(chalk.green("Repairs completed"));
|
|
55
|
+
repairResult.actions.forEach((action) => {
|
|
56
|
+
console.log(chalk.gray(` - ${action}`));
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
console.log(chalk.red("Some repairs failed"));
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
console.log(chalk.gray(`
|
|
65
|
+
Check completed in ${result.duration}ms`));
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.error(chalk.red("Error checking integrity:"), error);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
diagnostics.command("memory").description("Show memory usage statistics").action(() => {
|
|
72
|
+
const usage = process.memoryUsage();
|
|
73
|
+
console.log(chalk.cyan.bold("\nMemory Usage:\n"));
|
|
74
|
+
console.log(chalk.white(` Heap Used: ${formatBytes(usage.heapUsed)}`));
|
|
75
|
+
console.log(chalk.white(` Heap Total: ${formatBytes(usage.heapTotal)}`));
|
|
76
|
+
console.log(chalk.white(` RSS: ${formatBytes(usage.rss)}`));
|
|
77
|
+
console.log(chalk.white(` External: ${formatBytes(usage.external)}`));
|
|
78
|
+
console.log(chalk.white(` Array Buffers: ${formatBytes(usage.arrayBuffers)}`));
|
|
79
|
+
console.log("");
|
|
80
|
+
});
|
|
81
|
+
diagnostics.command("status").description("Show overall system status").action(async () => {
|
|
82
|
+
try {
|
|
83
|
+
const cwd = process.cwd();
|
|
84
|
+
const kgDir = join(cwd, ".kg");
|
|
85
|
+
const dbPath = join(kgDir, "knowledge.db");
|
|
86
|
+
console.log(chalk.cyan.bold("\nKnowledge Graph Status:\n"));
|
|
87
|
+
const initialized = existsSync(kgDir);
|
|
88
|
+
console.log(chalk.white("Initialized:"), initialized ? chalk.green("Yes") : chalk.red("No"));
|
|
89
|
+
const dbExists = existsSync(dbPath);
|
|
90
|
+
console.log(chalk.white("Database:"), dbExists ? chalk.green("OK") : chalk.yellow("Not found"));
|
|
91
|
+
console.log(chalk.white("\nPaths:"));
|
|
92
|
+
console.log(chalk.gray(` Project: ${cwd}`));
|
|
93
|
+
console.log(chalk.gray(` KG Dir: ${kgDir}`));
|
|
94
|
+
console.log(chalk.gray(` DB: ${dbPath}`));
|
|
95
|
+
const usage = process.memoryUsage();
|
|
96
|
+
console.log(chalk.white("\nMemory:"));
|
|
97
|
+
console.log(chalk.gray(` Heap: ${formatBytes(usage.heapUsed)} / ${formatBytes(usage.heapTotal)}`));
|
|
98
|
+
console.log("");
|
|
99
|
+
} catch (error) {
|
|
100
|
+
console.error(chalk.red("Error getting status:"), error);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return diagnostics;
|
|
105
|
+
}
|
|
106
|
+
function printHealth(health) {
|
|
107
|
+
const statusColor = {
|
|
108
|
+
healthy: chalk.green,
|
|
109
|
+
degraded: chalk.yellow,
|
|
110
|
+
unhealthy: chalk.red,
|
|
111
|
+
unknown: chalk.gray
|
|
112
|
+
};
|
|
113
|
+
console.log(chalk.white("Overall Status:"), statusColor[health.status](health.status.toUpperCase()));
|
|
114
|
+
console.log(chalk.gray(`Uptime: ${Math.floor(health.uptime / 1e3)}s`));
|
|
115
|
+
console.log("");
|
|
116
|
+
console.log(chalk.white("Components:"));
|
|
117
|
+
for (const component of health.components) {
|
|
118
|
+
const icon = component.status === "healthy" ? "[OK]" : component.status === "degraded" ? "[!]" : "[X]";
|
|
119
|
+
const colorFn = statusColor[component.status];
|
|
120
|
+
console.log(
|
|
121
|
+
` ${colorFn(icon)} ${component.name.padEnd(15)} ${colorFn(component.status)}`
|
|
122
|
+
);
|
|
123
|
+
if (component.message) {
|
|
124
|
+
console.log(chalk.gray(` ${component.message}`));
|
|
125
|
+
}
|
|
126
|
+
if (component.responseTime !== void 0) {
|
|
127
|
+
console.log(chalk.gray(` Response time: ${component.responseTime}ms`));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
console.log("");
|
|
131
|
+
}
|
|
132
|
+
function formatBytes(bytes) {
|
|
133
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
134
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(2)} KB`;
|
|
135
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
136
|
+
}
|
|
137
|
+
export {
|
|
138
|
+
createDiagnosticsCommand
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sources":["../../../src/cli/commands/diagnostics.ts"],"sourcesContent":["/**\n * Diagnostics Command\n *\n * System diagnostics and health monitoring for knowledge graph.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { join } from 'path';\nimport { existsSync } from 'fs';\nimport {\n createHealthMonitor,\n createDatabaseCheck,\n createMemoryCheck,\n createDiskCheck,\n} from '../../health/index.js';\nimport { createIntegrityChecker } from '../../recovery/index.js';\nimport type { SystemHealth, HealthStatus } from '../../health/index.js';\n\nexport function createDiagnosticsCommand(): Command {\n const diagnostics = new Command('diagnostics')\n .alias('diag')\n .description('System diagnostics and health monitoring');\n\n diagnostics\n .command('health')\n .description('Run health checks on all components')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const cwd = process.cwd();\n const dbPath = join(cwd, '.kg', 'knowledge.db');\n\n const monitor = createHealthMonitor();\n\n // Register health checks\n monitor.register(createDatabaseCheck(dbPath));\n monitor.register(createMemoryCheck(500));\n monitor.register(createDiskCheck(cwd));\n\n console.log(chalk.cyan('Running health checks...\\n'));\n\n const health = await monitor.check();\n\n if (options.json) {\n console.log(JSON.stringify(health, null, 2));\n } else {\n printHealth(health);\n }\n\n if (health.status === 'unhealthy') {\n process.exit(1);\n }\n } catch (error) {\n console.error(chalk.red('Error running health checks:'), error);\n process.exit(1);\n }\n });\n\n diagnostics\n .command('integrity')\n .description('Check database integrity')\n .option('--repair', 'Attempt to repair issues')\n .action(async (options) => {\n try {\n const cwd = process.cwd();\n const dbPath = join(cwd, '.kg', 'knowledge.db');\n\n if (!existsSync(dbPath)) {\n console.log(chalk.yellow('Database not found. Run \"kg init\" first.'));\n process.exit(1);\n }\n\n console.log(chalk.cyan('Checking database integrity...\\n'));\n\n const checker = createIntegrityChecker(dbPath);\n const result = await checker.check();\n\n if (result.valid) {\n console.log(chalk.green('Database integrity: OK'));\n } else {\n console.log(chalk.red('Database integrity: FAILED'));\n result.issues.forEach((issue: string) => {\n console.log(chalk.yellow(` - ${issue}`));\n });\n\n if (options.repair) {\n console.log(chalk.cyan('\\nAttempting repairs...'));\n const repairResult = await checker.repair();\n if (repairResult.repaired) {\n console.log(chalk.green('Repairs completed'));\n repairResult.actions.forEach((action: string) => {\n console.log(chalk.gray(` - ${action}`));\n });\n } else {\n console.log(chalk.red('Some repairs failed'));\n process.exit(1);\n }\n }\n }\n\n console.log(chalk.gray(`\\nCheck completed in ${result.duration}ms`));\n } catch (error) {\n console.error(chalk.red('Error checking integrity:'), error);\n process.exit(1);\n }\n });\n\n diagnostics\n .command('memory')\n .description('Show memory usage statistics')\n .action(() => {\n const usage = process.memoryUsage();\n\n console.log(chalk.cyan.bold('\\nMemory Usage:\\n'));\n console.log(chalk.white(` Heap Used: ${formatBytes(usage.heapUsed)}`));\n console.log(chalk.white(` Heap Total: ${formatBytes(usage.heapTotal)}`));\n console.log(chalk.white(` RSS: ${formatBytes(usage.rss)}`));\n console.log(chalk.white(` External: ${formatBytes(usage.external)}`));\n console.log(chalk.white(` Array Buffers: ${formatBytes(usage.arrayBuffers)}`));\n console.log('');\n });\n\n diagnostics\n .command('status')\n .description('Show overall system status')\n .action(async () => {\n try {\n const cwd = process.cwd();\n const kgDir = join(cwd, '.kg');\n const dbPath = join(kgDir, 'knowledge.db');\n\n console.log(chalk.cyan.bold('\\nKnowledge Graph Status:\\n'));\n\n // Check initialization\n const initialized = existsSync(kgDir);\n console.log(chalk.white('Initialized:'), initialized ? chalk.green('Yes') : chalk.red('No'));\n\n // Check database\n const dbExists = existsSync(dbPath);\n console.log(chalk.white('Database:'), dbExists ? chalk.green('OK') : chalk.yellow('Not found'));\n\n // Show paths\n console.log(chalk.white('\\nPaths:'));\n console.log(chalk.gray(` Project: ${cwd}`));\n console.log(chalk.gray(` KG Dir: ${kgDir}`));\n console.log(chalk.gray(` DB: ${dbPath}`));\n\n // Memory\n const usage = process.memoryUsage();\n console.log(chalk.white('\\nMemory:'));\n console.log(chalk.gray(` Heap: ${formatBytes(usage.heapUsed)} / ${formatBytes(usage.heapTotal)}`));\n\n console.log('');\n } catch (error) {\n console.error(chalk.red('Error getting status:'), error);\n process.exit(1);\n }\n });\n\n return diagnostics;\n}\n\nfunction printHealth(health: SystemHealth): void {\n const statusColor: Record<HealthStatus, typeof chalk.green> = {\n healthy: chalk.green,\n degraded: chalk.yellow,\n unhealthy: chalk.red,\n unknown: chalk.gray,\n };\n\n console.log(chalk.white('Overall Status:'), statusColor[health.status](health.status.toUpperCase()));\n console.log(chalk.gray(`Uptime: ${Math.floor(health.uptime / 1000)}s`));\n console.log('');\n\n console.log(chalk.white('Components:'));\n for (const component of health.components) {\n const icon = component.status === 'healthy' ? '[OK]' : component.status === 'degraded' ? '[!]' : '[X]';\n const colorFn = statusColor[component.status];\n console.log(\n ` ${colorFn(icon)} ${component.name.padEnd(15)} ${colorFn(component.status)}`\n );\n if (component.message) {\n console.log(chalk.gray(` ${component.message}`));\n }\n if (component.responseTime !== undefined) {\n console.log(chalk.gray(` Response time: ${component.responseTime}ms`));\n }\n }\n console.log('');\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(2)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate Command
|
|
3
|
+
*
|
|
4
|
+
* Generate or update knowledge graph from documentation.
|
|
5
|
+
*
|
|
6
|
+
* @module cli/commands/generate
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
/**
|
|
10
|
+
* Create the generate command
|
|
11
|
+
*/
|
|
12
|
+
export declare function createGenerateCommand(): Command;
|
|
13
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAkF/C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Primitives Command
|
|
3
|
+
*
|
|
4
|
+
* Bootstrap knowledge graph with primitive nodes from codebase analysis.
|
|
5
|
+
* Analyzes package.json, requirements.txt, Cargo.toml, go.mod, docker-compose,
|
|
6
|
+
* and other project files to generate foundational knowledge nodes.
|
|
7
|
+
*
|
|
8
|
+
* @module cli/commands/init-primitives
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
/**
|
|
12
|
+
* Create the init-primitives command
|
|
13
|
+
*/
|
|
14
|
+
export declare function createInitPrimitivesCommand(): Command;
|
|
15
|
+
/**
|
|
16
|
+
* Create the analyze-codebase command (alias for analysis without generation)
|
|
17
|
+
*/
|
|
18
|
+
export declare function createAnalyzeCodebaseCommand(): Command;
|
|
19
|
+
//# sourceMappingURL=init-primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-primitives.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init-primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAsJrD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAuGtD"}
|