@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 @@
|
|
|
1
|
+
{"version":3,"file":"sop.js","sources":["../../../src/cli/commands/sop.ts"],"sourcesContent":["/**\n * SOP Commands\n *\n * AI-SDLC Standard Operating Procedures commands for compliance checking,\n * gap analysis, and reporting.\n *\n * @module cli/commands/sop\n */\n\nimport { Command } from 'commander';\nimport { existsSync, writeFileSync, mkdirSync } from 'fs';\nimport { join, resolve } from 'path';\nimport {\n SOPCategory,\n ComplianceStatus,\n SOPPriority,\n getAllSOPs,\n getSOPsByCategory,\n getSOPById,\n getSopCount,\n getCategories,\n checkCompliance,\n analyzeGaps,\n createMultiLayerGraph,\n addComplianceOverlay,\n exportToVisualizationFormat,\n getComplianceSummary,\n} from '../../sops/index.js';\n\n/**\n * Create the SOP command group\n */\nexport function createSOPCommands(): Command {\n const sop = new Command('sop')\n .description('AI-SDLC SOP compliance commands');\n\n // sop init\n sop\n .command('init')\n .description('Initialize AI-SDLC SOP standards layer')\n .option('-p, --path <path>', 'Project root path', process.cwd())\n .option('-d, --docs <path>', 'Documentation path', 'docs')\n .option('-c, --categories <categories>', 'SOP categories to include (comma-separated)')\n .option('-v, --verbose', 'Verbose output')\n .action(async (options) => {\n const projectRoot = resolve(options.path);\n const docsPath = options.docs;\n const verbose = options.verbose;\n\n console.log('\\n🏛️ Initializing AI-SDLC SOP Standards Layer\\n');\n\n try {\n // Parse categories\n let categories: SOPCategory[] | undefined;\n if (options.categories) {\n categories = options.categories.split(',').map((c: string) => c.trim() as SOPCategory);\n }\n\n // Create multi-layer graph with standards\n const graph = createMultiLayerGraph({\n graphId: `sop-${Date.now()}`,\n graphName: 'AI-SDLC Compliance Graph',\n includeAllSOPs: !categories,\n categories,\n });\n\n // Save graph to docs\n const sopDir = join(projectRoot, docsPath, 'sop');\n if (!existsSync(sopDir)) {\n mkdirSync(sopDir, { recursive: true });\n }\n\n // Save standards graph\n const graphPath = join(sopDir, 'standards-graph.json');\n writeFileSync(graphPath, JSON.stringify(graph, null, 2));\n\n console.log(` ✓ Created standards layer with ${getSopCount()} SOPs`);\n console.log(` ✓ Saved graph to ${graphPath}`);\n\n if (verbose) {\n console.log('\\n Categories included:');\n for (const category of getCategories()) {\n const count = getSOPsByCategory(category).length;\n console.log(` - ${category}: ${count} SOPs`);\n }\n }\n\n // Create SOP index document\n const indexPath = join(sopDir, 'SOP-INDEX.md');\n const indexContent = generateSOPIndex(categories);\n writeFileSync(indexPath, indexContent);\n console.log(` ✓ Created SOP index at ${indexPath}`);\n\n console.log('\\n✨ SOP standards layer initialized!\\n');\n console.log('Next steps:');\n console.log(' - Run \"kg sop check\" to assess compliance');\n console.log(' - Run \"kg sop gaps\" to identify gaps');\n console.log(' - Run \"kg sop report\" to generate compliance report');\n console.log('');\n\n } catch (error) {\n console.error('\\n❌ SOP initialization failed:', error);\n process.exit(1);\n }\n });\n\n // sop check\n sop\n .command('check')\n .description('Check project compliance against AI-SDLC SOPs')\n .option('-p, --path <path>', 'Project root path', process.cwd())\n .option('-d, --docs <path>', 'Documentation path', 'docs')\n .option('-s, --sop <id>', 'Check specific SOP by ID')\n .option('-c, --category <category>', 'Check SOPs in specific category')\n .option('--deep', 'Perform deep analysis of file contents')\n .option('--threshold <number>', 'Minimum compliance threshold (0-100)', '50')\n .option('-v, --verbose', 'Verbose output')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n const projectRoot = resolve(options.path);\n const docsPath = options.docs;\n const verbose = options.verbose;\n const threshold = parseInt(options.threshold, 10);\n\n if (!options.json) {\n console.log('\\n🔍 Checking AI-SDLC SOP Compliance\\n');\n }\n\n try {\n // Build check options\n const checkOptions: Parameters<typeof checkCompliance>[0] = {\n projectRoot,\n docsPath,\n deepAnalysis: options.deep,\n assessor: 'cli-automated',\n };\n\n if (options.sop) {\n checkOptions.sopIds = [options.sop];\n }\n if (options.category) {\n checkOptions.categories = [options.category as SOPCategory];\n }\n\n // Run compliance check\n const result = await checkCompliance(checkOptions);\n\n if (options.json) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n // Display results\n console.log(` Project: ${result.projectName}`);\n console.log(` Overall Score: ${getScoreEmoji(result.overallScore)} ${result.overallScore}%\\n`);\n\n // Category breakdown\n console.log(' Category Scores:');\n for (const [category, score] of Object.entries(result.categoryScores)) {\n if (score > 0) {\n console.log(` ${getScoreEmoji(score)} ${formatCategory(category as SOPCategory)}: ${score}%`);\n }\n }\n console.log('');\n\n // Assessment summary\n const compliant = result.assessments.filter(a => a.status === ComplianceStatus.COMPLIANT).length;\n const partial = result.assessments.filter(a => a.status === ComplianceStatus.PARTIAL).length;\n const nonCompliant = result.assessments.filter(a => a.status === ComplianceStatus.NON_COMPLIANT).length;\n\n console.log(' Assessment Summary:');\n console.log(` ✅ Compliant: ${compliant}`);\n console.log(` 🟡 Partial: ${partial}`);\n console.log(` ❌ Non-compliant: ${nonCompliant}`);\n console.log('');\n\n // Verbose: show each assessment\n if (verbose) {\n console.log(' Detailed Assessments:');\n for (const assessment of result.assessments) {\n const sop = getSOPById(assessment.sopId);\n if (sop) {\n console.log(`\\n ${getStatusIcon(assessment.status)} ${sop.title}`);\n console.log(` Score: ${assessment.score}%`);\n console.log(` Met: ${assessment.requirementsMet.length}/${assessment.requirementsMet.length + assessment.requirementsGaps.length}`);\n }\n }\n console.log('');\n }\n\n // Check threshold\n if (result.overallScore < threshold) {\n console.log(` ⚠️ Below compliance threshold of ${threshold}%`);\n console.log(' Run \"kg sop gaps\" to see remediation recommendations\\n');\n } else {\n console.log(` ✨ Meets compliance threshold of ${threshold}%\\n`);\n }\n\n // Evidence summary\n if (result.evidence.length > 0 && verbose) {\n console.log(` Evidence Found: ${result.evidence.length} items`);\n }\n\n } catch (error) {\n console.error('\\n❌ Compliance check failed:', error);\n process.exit(1);\n }\n });\n\n // sop gaps\n sop\n .command('gaps')\n .description('Analyze compliance gaps and generate remediation recommendations')\n .option('-p, --path <path>', 'Project root path', process.cwd())\n .option('-d, --docs <path>', 'Documentation path', 'docs')\n .option('--priority <priority>', 'Minimum gap priority (critical, high, medium, low)')\n .option('--category <category>', 'Filter by category')\n .option('--roadmap', 'Include remediation roadmap')\n .option('-v, --verbose', 'Verbose output')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n const projectRoot = resolve(options.path);\n const docsPath = options.docs;\n const verbose = options.verbose;\n\n if (!options.json) {\n console.log('\\n📋 Analyzing Compliance Gaps\\n');\n }\n\n try {\n // First run compliance check\n const checkResult = await checkCompliance({\n projectRoot,\n docsPath,\n deepAnalysis: true,\n });\n\n // Parse filters\n let minPriority: SOPPriority | undefined;\n if (options.priority) {\n minPriority = options.priority as SOPPriority;\n }\n\n let categories: SOPCategory[] | undefined;\n if (options.category) {\n categories = [options.category as SOPCategory];\n }\n\n // Analyze gaps\n const gapResult = analyzeGaps(checkResult, {\n minPriority,\n categories,\n generateRemediation: true,\n });\n\n if (options.json) {\n console.log(JSON.stringify(gapResult, null, 2));\n return;\n }\n\n // Display summary\n console.log(` Total Gaps: ${gapResult.totalGaps}`);\n console.log(` Compliance: ${gapResult.summary.compliancePercentage}%`);\n console.log(` Complexity: ${gapResult.summary.overallComplexity}\\n`);\n\n // Priority breakdown\n console.log(' Gaps by Priority:');\n console.log(` 🔴 Critical: ${gapResult.byPriority[SOPPriority.CRITICAL].length}`);\n console.log(` 🟠 High: ${gapResult.byPriority[SOPPriority.HIGH].length}`);\n console.log(` 🟡 Medium: ${gapResult.byPriority[SOPPriority.MEDIUM].length}`);\n console.log(` 🟢 Low: ${gapResult.byPriority[SOPPriority.LOW].length}`);\n console.log('');\n\n // Category breakdown\n console.log(' Gaps by Category:');\n for (const [category, gaps] of Object.entries(gapResult.byCategory)) {\n if (gaps.length > 0) {\n console.log(` ${formatCategory(category as SOPCategory)}: ${gaps.length}`);\n }\n }\n console.log('');\n\n // Critical gaps detail\n if (gapResult.criticalGaps.length > 0) {\n console.log(' 🚨 Critical Gaps (Immediate Action Required):');\n for (const gap of gapResult.criticalGaps) {\n const sop = getSOPById(gap.sopId);\n console.log(`\\n • ${sop?.title || gap.sopId}`);\n console.log(` ${gap.description.substring(0, 80)}...`);\n console.log(` Effort: ${gap.effort}`);\n }\n console.log('');\n }\n\n // Quick wins\n if (gapResult.roadmap?.quickWins && gapResult.roadmap.quickWins.length > 0) {\n console.log(' 💡 Quick Wins (High Impact, Low Effort):');\n for (const gap of gapResult.roadmap.quickWins.slice(0, 5)) {\n const sop = getSOPById(gap.sopId);\n console.log(` • ${sop?.title || gap.sopId}`);\n }\n console.log('');\n }\n\n // Roadmap\n if (options.roadmap && gapResult.roadmap) {\n console.log(' 📍 Remediation Roadmap:');\n for (const phase of gapResult.roadmap.phases) {\n console.log(`\\n Phase ${phase.phase}: ${phase.name}`);\n console.log(` Focus: ${phase.focus}`);\n console.log(` Gaps: ${phase.gaps.length}`);\n console.log(` Effort: ${phase.effort}`);\n }\n console.log('');\n }\n\n // Verbose: show all gaps\n if (verbose) {\n console.log(' All Gaps:');\n for (const gap of gapResult.gaps) {\n console.log(`\\n [${gap.priority.toUpperCase()}] ${gap.id}`);\n console.log(` SOP: ${gap.sopId}`);\n console.log(` Description: ${gap.description.substring(0, 100)}...`);\n console.log(` Remediation: ${gap.remediation.substring(0, 100)}...`);\n }\n console.log('');\n }\n\n } catch (error) {\n console.error('\\n❌ Gap analysis failed:', error);\n process.exit(1);\n }\n });\n\n // sop report\n sop\n .command('report')\n .description('Generate comprehensive compliance report')\n .option('-p, --path <path>', 'Project root path', process.cwd())\n .option('-d, --docs <path>', 'Documentation path', 'docs')\n .option('-o, --output <file>', 'Output file path')\n .option('-f, --format <format>', 'Output format (md, json, html)', 'md')\n .option('--include-evidence', 'Include evidence details')\n .option('--include-roadmap', 'Include remediation roadmap')\n .action(async (options) => {\n const projectRoot = resolve(options.path);\n const docsPath = options.docs;\n const format = options.format;\n\n console.log('\\n📝 Generating Compliance Report\\n');\n\n try {\n // Run compliance check\n const checkResult = await checkCompliance({\n projectRoot,\n docsPath,\n deepAnalysis: true,\n });\n\n // Analyze gaps\n const gapResult = analyzeGaps(checkResult, {\n generateRemediation: true,\n });\n\n // Create multi-layer graph\n const graph = createMultiLayerGraph();\n addComplianceOverlay(graph, checkResult, gapResult);\n const summary = getComplianceSummary(graph);\n\n // Generate report content\n let report: string;\n\n if (format === 'json') {\n report = JSON.stringify({\n checkResult,\n gapResult,\n summary,\n generatedAt: new Date().toISOString(),\n }, null, 2);\n } else if (format === 'html') {\n report = generateHTMLReport(checkResult, gapResult, summary, options);\n } else {\n report = generateMarkdownReport(checkResult, gapResult, summary, options);\n }\n\n // Output\n if (options.output) {\n const outputPath = resolve(options.output);\n writeFileSync(outputPath, report);\n console.log(` ✓ Report saved to ${outputPath}`);\n } else {\n // Default output path\n const sopDir = join(projectRoot, docsPath, 'sop');\n if (!existsSync(sopDir)) {\n mkdirSync(sopDir, { recursive: true });\n }\n const outputPath = join(sopDir, `COMPLIANCE-REPORT.${format}`);\n writeFileSync(outputPath, report);\n console.log(` ✓ Report saved to ${outputPath}`);\n }\n\n console.log('\\n✨ Report generated successfully!\\n');\n\n } catch (error) {\n console.error('\\n❌ Report generation failed:', error);\n process.exit(1);\n }\n });\n\n // sop list\n sop\n .command('list')\n .description('List available AI-SDLC SOPs')\n .option('-c, --category <category>', 'Filter by category')\n .option('--irb', 'Show only SOPs requiring AI-IRB review')\n .option('--json', 'Output as JSON')\n .action((options) => {\n let sops = getAllSOPs();\n\n if (options.category) {\n sops = getSOPsByCategory(options.category as SOPCategory);\n }\n\n if (options.irb) {\n sops = sops.filter(s => s.irbTypicallyRequired);\n }\n\n if (options.json) {\n console.log(JSON.stringify(sops, null, 2));\n return;\n }\n\n console.log('\\n📚 AI-SDLC Standard Operating Procedures\\n');\n console.log(` Total: ${sops.length} SOPs\\n`);\n\n // Group by category\n const byCategory = new Map<SOPCategory, typeof sops>();\n for (const sop of sops) {\n if (!byCategory.has(sop.category)) {\n byCategory.set(sop.category, []);\n }\n byCategory.get(sop.category)!.push(sop);\n }\n\n for (const [category, categorySops] of byCategory) {\n console.log(` ${formatCategory(category)} (${categorySops.length}):`);\n for (const sop of categorySops) {\n const irb = sop.irbTypicallyRequired ? ' 🔬' : '';\n console.log(` • ${sop.id}: ${sop.title}${irb}`);\n }\n console.log('');\n }\n });\n\n return sop;\n}\n\n/**\n * Helper functions\n */\n\nfunction getScoreEmoji(score: number): string {\n if (score >= 90) return '✅';\n if (score >= 70) return '🟡';\n if (score >= 50) return '🟠';\n return '🔴';\n}\n\nfunction getStatusIcon(status: ComplianceStatus): string {\n switch (status) {\n case ComplianceStatus.COMPLIANT:\n return '✅';\n case ComplianceStatus.PARTIAL:\n return '🟡';\n case ComplianceStatus.NON_COMPLIANT:\n return '❌';\n case ComplianceStatus.NOT_APPLICABLE:\n return '⚪';\n case ComplianceStatus.PENDING:\n return '⏳';\n default:\n return '❓';\n }\n}\n\nfunction formatCategory(category: SOPCategory): string {\n return category\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\nfunction generateSOPIndex(categories?: SOPCategory[]): string {\n const sops = categories\n ? categories.flatMap(c => getSOPsByCategory(c))\n : getAllSOPs();\n\n let content = `---\ntitle: AI-SDLC SOP Index\ntype: standards\ncreated: ${new Date().toISOString().split('T')[0]}\ntags: [sop, ai-sdlc, compliance, standards]\n---\n\n# AI-SDLC Standard Operating Procedures\n\nThis document provides an index of AI-SDLC SOPs applicable to this project.\n\n## Overview\n\n- **Total SOPs**: ${sops.length}\n- **Source**: [AI-SDLC-SOPs](https://github.com/AISDLC/AI-SDLC-SOPs)\n- **Generated**: ${new Date().toISOString()}\n\n## SOPs by Category\n\n`;\n\n // Group by category\n const byCategory = new Map<SOPCategory, typeof sops>();\n for (const sop of sops) {\n if (!byCategory.has(sop.category)) {\n byCategory.set(sop.category, []);\n }\n byCategory.get(sop.category)!.push(sop);\n }\n\n for (const [category, categorySops] of byCategory) {\n content += `### ${formatCategory(category)}\\n\\n`;\n for (const sop of categorySops) {\n const irb = sop.irbTypicallyRequired ? ' 🔬' : '';\n content += `- **${sop.id}**: ${sop.title}${irb}\\n`;\n content += ` - Priority: ${sop.priority}\\n`;\n content += ` - Requirements: ${sop.requirements.length}\\n`;\n }\n content += '\\n';\n }\n\n content += `## Legend\n\n- 🔬 Requires AI-IRB review\n- Requirements count indicates number of checkable items\n\n## Next Steps\n\n1. Run \\`kg sop check\\` to assess current compliance\n2. Run \\`kg sop gaps\\` to identify remediation needs\n3. Run \\`kg sop report\\` to generate detailed report\n`;\n\n return content;\n}\n\nfunction generateMarkdownReport(\n checkResult: ReturnType<typeof checkCompliance> extends Promise<infer T> ? T : never,\n gapResult: ReturnType<typeof analyzeGaps>,\n summary: ReturnType<typeof getComplianceSummary>,\n options: { includeEvidence?: boolean; includeRoadmap?: boolean }\n): string {\n let report = `---\ntitle: AI-SDLC Compliance Report\ntype: report\ngenerated: ${new Date().toISOString()}\ntags: [compliance, sop, report]\n---\n\n# AI-SDLC Compliance Report\n\n**Project**: ${checkResult.projectName}\n**Generated**: ${checkResult.checkedAt.toISOString()}\n\n## Executive Summary\n\n| Metric | Value |\n|--------|-------|\n| Overall Score | ${checkResult.overallScore}% |\n| Compliant SOPs | ${summary.compliant} |\n| Partial Compliance | ${summary.partial} |\n| Non-Compliant | ${summary.nonCompliant} |\n| Pending Assessment | ${summary.pending} |\n| Total Gaps | ${gapResult.totalGaps} |\n\n## Category Scores\n\n`;\n\n for (const [category, score] of Object.entries(checkResult.categoryScores)) {\n if (score > 0) {\n report += `- **${formatCategory(category as SOPCategory)}**: ${score}%\\n`;\n }\n }\n\n report += `\n## Gap Analysis\n\n### By Priority\n\n| Priority | Count |\n|----------|-------|\n| Critical | ${gapResult.byPriority[SOPPriority.CRITICAL].length} |\n| High | ${gapResult.byPriority[SOPPriority.HIGH].length} |\n| Medium | ${gapResult.byPriority[SOPPriority.MEDIUM].length} |\n| Low | ${gapResult.byPriority[SOPPriority.LOW].length} |\n\n### Effort Breakdown\n\n- Low effort: ${gapResult.summary.totalEffort.low}\n- Medium effort: ${gapResult.summary.totalEffort.medium}\n- High effort: ${gapResult.summary.totalEffort.high}\n\n## Critical Gaps\n\n`;\n\n if (gapResult.criticalGaps.length > 0) {\n for (const gap of gapResult.criticalGaps) {\n const sop = getSOPById(gap.sopId);\n report += `### ${sop?.title || gap.sopId}\n\n- **Gap ID**: ${gap.id}\n- **Requirement**: ${gap.requirementId}\n- **Priority**: ${gap.priority}\n- **Effort**: ${gap.effort}\n- **Impact**: ${gap.impact}\n\n**Remediation**: ${gap.remediation}\n\n---\n\n`;\n }\n } else {\n report += 'No critical gaps identified.\\n\\n';\n }\n\n if (options.includeRoadmap && gapResult.roadmap) {\n report += `## Remediation Roadmap\n\n`;\n for (const phase of gapResult.roadmap.phases) {\n report += `### Phase ${phase.phase}: ${phase.name}\n\n- **Focus**: ${phase.focus}\n- **Effort**: ${phase.effort}\n- **Gaps**: ${phase.gaps.length}\n\n`;\n }\n }\n\n if (options.includeEvidence && checkResult.evidence.length > 0) {\n report += `## Evidence Found\n\n`;\n for (const evidence of checkResult.evidence) {\n report += `- **${evidence.requirementId}**: ${evidence.description}\n - File: \\`${evidence.filePath}\\`\n - Confidence: ${Math.round(evidence.confidence * 100)}%\n`;\n }\n }\n\n report += `\n## Recommendations\n\n`;\n\n // Generate recommendations based on gaps\n if (gapResult.criticalGaps.length > 0) {\n report += `1. **Address Critical Gaps Immediately**: ${gapResult.criticalGaps.length} critical gaps require immediate attention.\\n`;\n }\n\n if (gapResult.roadmap?.quickWins && gapResult.roadmap.quickWins.length > 0) {\n report += `2. **Quick Wins**: ${gapResult.roadmap.quickWins.length} high-impact, low-effort improvements available.\\n`;\n }\n\n if (checkResult.overallScore < 50) {\n report += `3. **Compliance Baseline**: Current score of ${checkResult.overallScore}% is below recommended baseline. Focus on foundational SOPs.\\n`;\n }\n\n report += `\n---\n\n*Report generated by Knowledge Graph Agent - AI-SDLC SOP Compliance Module*\n`;\n\n return report;\n}\n\nfunction generateHTMLReport(\n checkResult: ReturnType<typeof checkCompliance> extends Promise<infer T> ? T : never,\n gapResult: ReturnType<typeof analyzeGaps>,\n summary: ReturnType<typeof getComplianceSummary>,\n options: { includeEvidence?: boolean; includeRoadmap?: boolean }\n): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>AI-SDLC Compliance Report</title>\n <style>\n body { font-family: system-ui, sans-serif; max-width: 1200px; margin: 0 auto; padding: 2rem; }\n .score { font-size: 3rem; font-weight: bold; }\n .score.high { color: #22c55e; }\n .score.medium { color: #f59e0b; }\n .score.low { color: #ef4444; }\n .card { border: 1px solid #e5e7eb; border-radius: 8px; padding: 1rem; margin: 1rem 0; }\n .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }\n table { width: 100%; border-collapse: collapse; }\n th, td { border: 1px solid #e5e7eb; padding: 0.5rem; text-align: left; }\n th { background: #f9fafb; }\n .badge { display: inline-block; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.875rem; }\n .badge.critical { background: #fef2f2; color: #b91c1c; }\n .badge.high { background: #fff7ed; color: #c2410c; }\n .badge.medium { background: #fefce8; color: #a16207; }\n .badge.low { background: #f0fdf4; color: #15803d; }\n </style>\n</head>\n<body>\n <h1>AI-SDLC Compliance Report</h1>\n <p><strong>Project:</strong> ${checkResult.projectName}</p>\n <p><strong>Generated:</strong> ${checkResult.checkedAt.toISOString()}</p>\n\n <div class=\"grid\">\n <div class=\"card\">\n <h3>Overall Score</h3>\n <div class=\"score ${checkResult.overallScore >= 70 ? 'high' : checkResult.overallScore >= 50 ? 'medium' : 'low'}\">\n ${checkResult.overallScore}%\n </div>\n </div>\n <div class=\"card\">\n <h3>Compliance Status</h3>\n <p>✅ Compliant: ${summary.compliant}</p>\n <p>🟡 Partial: ${summary.partial}</p>\n <p>❌ Non-compliant: ${summary.nonCompliant}</p>\n </div>\n <div class=\"card\">\n <h3>Gap Summary</h3>\n <p>Total Gaps: ${gapResult.totalGaps}</p>\n <p>Critical: ${gapResult.criticalGaps.length}</p>\n <p>Complexity: ${gapResult.summary.overallComplexity}</p>\n </div>\n </div>\n\n <h2>Category Scores</h2>\n <table>\n <tr><th>Category</th><th>Score</th></tr>\n ${Object.entries(checkResult.categoryScores)\n .filter(([, score]) => score > 0)\n .map(([cat, score]) => `<tr><td>${formatCategory(cat as SOPCategory)}</td><td>${score}%</td></tr>`)\n .join('')}\n </table>\n\n <h2>Gaps by Priority</h2>\n <table>\n <tr><th>Priority</th><th>Count</th></tr>\n <tr><td><span class=\"badge critical\">Critical</span></td><td>${gapResult.byPriority[SOPPriority.CRITICAL].length}</td></tr>\n <tr><td><span class=\"badge high\">High</span></td><td>${gapResult.byPriority[SOPPriority.HIGH].length}</td></tr>\n <tr><td><span class=\"badge medium\">Medium</span></td><td>${gapResult.byPriority[SOPPriority.MEDIUM].length}</td></tr>\n <tr><td><span class=\"badge low\">Low</span></td><td>${gapResult.byPriority[SOPPriority.LOW].length}</td></tr>\n </table>\n\n ${gapResult.criticalGaps.length > 0 ? `\n <h2>Critical Gaps</h2>\n ${gapResult.criticalGaps.map(gap => {\n const sop = getSOPById(gap.sopId);\n return `\n <div class=\"card\">\n <h3>${sop?.title || gap.sopId}</h3>\n <p><strong>Gap ID:</strong> ${gap.id}</p>\n <p><strong>Impact:</strong> ${gap.impact}</p>\n <p><strong>Remediation:</strong> ${gap.remediation}</p>\n </div>\n `;\n }).join('')}\n ` : ''}\n\n <footer style=\"margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; color: #6b7280;\">\n <p>Generated by Knowledge Graph Agent - AI-SDLC SOP Compliance Module</p>\n </footer>\n</body>\n</html>`;\n}\n"],"names":["sop"],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CA4FnC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,7 +9,13 @@ import { createStatsCommand } from "./commands/stats.js";
|
|
|
9
9
|
import { createSearchCommand } from "./commands/search.js";
|
|
10
10
|
import { createConvertCommand, createFrontmatterCommand } from "./commands/convert.js";
|
|
11
11
|
import { createAnalyzeCommand } from "./commands/analyze.js";
|
|
12
|
-
|
|
12
|
+
import { createSOPCommands } from "./commands/sop.js";
|
|
13
|
+
import { createInitPrimitivesCommand, createAnalyzeCodebaseCommand } from "./commands/init-primitives.js";
|
|
14
|
+
import { createCultivateCommand } from "./commands/cultivate.js";
|
|
15
|
+
import { createCommitCommand } from "./commands/commit.js";
|
|
16
|
+
import { createConfigCommand } from "./commands/config.js";
|
|
17
|
+
import { createDiagnosticsCommand } from "./commands/diagnostics.js";
|
|
18
|
+
const VERSION = "0.3.0";
|
|
13
19
|
function createCLI() {
|
|
14
20
|
const program = new Command();
|
|
15
21
|
program.name("kg").description("Knowledge Graph Agent - Generate and manage knowledge graphs for Claude Code").version(VERSION, "-v, --version", "Display version number");
|
|
@@ -27,6 +33,13 @@ function createCLI() {
|
|
|
27
33
|
program.addCommand(createConvertCommand());
|
|
28
34
|
program.addCommand(createFrontmatterCommand());
|
|
29
35
|
program.addCommand(createAnalyzeCommand());
|
|
36
|
+
program.addCommand(createSOPCommands());
|
|
37
|
+
program.addCommand(createInitPrimitivesCommand());
|
|
38
|
+
program.addCommand(createAnalyzeCodebaseCommand());
|
|
39
|
+
program.addCommand(createCultivateCommand());
|
|
40
|
+
program.addCommand(createCommitCommand());
|
|
41
|
+
program.addCommand(createConfigCommand());
|
|
42
|
+
program.addCommand(createDiagnosticsCommand());
|
|
30
43
|
program.action(() => {
|
|
31
44
|
console.log(chalk.cyan.bold("\n Knowledge Graph Agent\n"));
|
|
32
45
|
console.log(chalk.gray(" Generate and manage knowledge graphs for Claude Code\n"));
|
|
@@ -43,6 +56,32 @@ function createCLI() {
|
|
|
43
56
|
console.log(chalk.gray(" $ kg convert docs # Convert docs/ → docs-nn/"));
|
|
44
57
|
console.log(chalk.gray(" $ kg frontmatter add # Add frontmatter to files"));
|
|
45
58
|
console.log(chalk.gray(" $ kg frontmatter validate # Validate frontmatter\n"));
|
|
59
|
+
console.log(chalk.white(" AI-SDLC SOP Compliance:"));
|
|
60
|
+
console.log(chalk.gray(" $ kg sop init # Initialize SOP standards layer"));
|
|
61
|
+
console.log(chalk.gray(" $ kg sop check # Check compliance against SOPs"));
|
|
62
|
+
console.log(chalk.gray(" $ kg sop gaps # Analyze compliance gaps"));
|
|
63
|
+
console.log(chalk.gray(" $ kg sop report # Generate compliance report"));
|
|
64
|
+
console.log(chalk.gray(" $ kg sop list # List available SOPs\n"));
|
|
65
|
+
console.log(chalk.white(" Cultivation & Primitives:"));
|
|
66
|
+
console.log(chalk.gray(" $ kg init-primitives # Bootstrap primitives from codebase"));
|
|
67
|
+
console.log(chalk.gray(" $ kg analyze-codebase # Analyze dependencies & services"));
|
|
68
|
+
console.log(chalk.gray(" $ kg init-primitives --dry-run # Preview without writing\n"));
|
|
69
|
+
console.log(chalk.white(" Git Integration:"));
|
|
70
|
+
console.log(chalk.gray(" $ kg commit # Show status and suggested message"));
|
|
71
|
+
console.log(chalk.gray(" $ kg commit -a # Auto-commit with generated message"));
|
|
72
|
+
console.log(chalk.gray(" $ kg commit -i # Interactive commit mode"));
|
|
73
|
+
console.log(chalk.gray(' $ kg commit -m "message" # Commit with custom message'));
|
|
74
|
+
console.log(chalk.gray(" $ kg commit status # Show git status with analysis"));
|
|
75
|
+
console.log(chalk.gray(" $ kg commit log # Show recent commits"));
|
|
76
|
+
console.log(chalk.gray(" $ kg commit diff # Show diff of changes\n"));
|
|
77
|
+
console.log(chalk.white(" Diagnostics & Health:"));
|
|
78
|
+
console.log(chalk.gray(" $ kg diag run # Run full diagnostics"));
|
|
79
|
+
console.log(chalk.gray(" $ kg diag run --fix # Attempt to fix issues"));
|
|
80
|
+
console.log(chalk.gray(" $ kg diag health # Check system health"));
|
|
81
|
+
console.log(chalk.gray(" $ kg diag repair # Repair database issues"));
|
|
82
|
+
console.log(chalk.gray(" $ kg diag backup # Create database backup"));
|
|
83
|
+
console.log(chalk.gray(" $ kg diag backup --list # List existing backups"));
|
|
84
|
+
console.log(chalk.gray(" $ kg diag info # Show system information\n"));
|
|
46
85
|
console.log(chalk.white(" Commands:"));
|
|
47
86
|
program.commands.forEach((cmd) => {
|
|
48
87
|
console.log(chalk.cyan(` ${cmd.name().padEnd(20)}`), chalk.gray(cmd.description() || ""));
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["/**\n * Knowledge Graph Agent CLI\n *\n * Main CLI setup and command registration.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { createInitCommand } from './commands/init.js';\nimport { createGraphCommand } from './commands/graph.js';\nimport { createDocsCommand } from './commands/docs.js';\nimport { createClaudeCommand } from './commands/claude.js';\nimport { createSyncCommand } from './commands/sync.js';\nimport { createStatsCommand } from './commands/stats.js';\nimport { createSearchCommand } from './commands/search.js';\nimport { createConvertCommand, createFrontmatterCommand } from './commands/convert.js';\nimport { createAnalyzeCommand } from './commands/analyze.js';\n\n/**\n * CLI version\n */\nconst VERSION = '0.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":["/**\n * Knowledge Graph Agent CLI\n *\n * Main CLI setup and command registration.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { createInitCommand } from './commands/init.js';\nimport { createGraphCommand } from './commands/graph.js';\nimport { createDocsCommand } from './commands/docs.js';\nimport { createClaudeCommand } from './commands/claude.js';\nimport { createSyncCommand } from './commands/sync.js';\nimport { createStatsCommand } from './commands/stats.js';\nimport { createSearchCommand } from './commands/search.js';\nimport { createConvertCommand, createFrontmatterCommand } from './commands/convert.js';\nimport { createAnalyzeCommand } from './commands/analyze.js';\nimport { createSOPCommands } from './commands/sop.js';\nimport { createInitPrimitivesCommand, createAnalyzeCodebaseCommand } from './commands/init-primitives.js';\nimport { createCultivateCommand } from './commands/cultivate.js';\nimport { createCommitCommand } from './commands/commit.js';\nimport { createConfigCommand } from './commands/config.js';\nimport { createDiagnosticsCommand } from './commands/diagnostics.js';\n\n/**\n * CLI version\n */\nconst VERSION = '0.3.0';\n\n/**\n * Create and configure the CLI program\n */\nexport function createCLI(): Command {\n const program = new Command();\n\n program\n .name('kg')\n .description('Knowledge Graph Agent - Generate and manage knowledge graphs for Claude Code')\n .version(VERSION, '-v, --version', 'Display version number');\n\n // Configure help\n program.configureHelp({\n sortSubcommands: true,\n sortOptions: true,\n });\n\n // Add commands\n program.addCommand(createInitCommand());\n program.addCommand(createGraphCommand());\n program.addCommand(createDocsCommand());\n program.addCommand(createClaudeCommand());\n program.addCommand(createSyncCommand());\n program.addCommand(createStatsCommand());\n program.addCommand(createSearchCommand());\n program.addCommand(createConvertCommand());\n program.addCommand(createFrontmatterCommand());\n program.addCommand(createAnalyzeCommand());\n program.addCommand(createSOPCommands());\n program.addCommand(createInitPrimitivesCommand());\n program.addCommand(createAnalyzeCodebaseCommand());\n program.addCommand(createCultivateCommand());\n program.addCommand(createCommitCommand());\n program.addCommand(createConfigCommand());\n program.addCommand(createDiagnosticsCommand());\n\n // Default action (show help)\n program.action(() => {\n console.log(chalk.cyan.bold('\\n Knowledge Graph Agent\\n'));\n console.log(chalk.gray(' Generate and manage knowledge graphs for Claude Code\\n'));\n\n console.log(chalk.white(' Quick Start:'));\n console.log(chalk.gray(' $ kg init # Initialize knowledge graph'));\n console.log(chalk.gray(' $ kg docs init # Initialize docs directory'));\n console.log(chalk.gray(' $ kg graph # Generate knowledge graph'));\n console.log(chalk.gray(' $ kg claude update # Update CLAUDE.md'));\n console.log(chalk.gray(' $ kg sync # Sync with claude-flow\\n'));\n\n console.log(chalk.white(' Migration & Analysis:'));\n console.log(chalk.gray(' $ kg analyze # Analyze & migrate to knowledge graph'));\n console.log(chalk.gray(' $ kg analyze deep # Deep analysis with claude-flow'));\n console.log(chalk.gray(' $ kg analyze report # Generate analysis report'));\n console.log(chalk.gray(' $ kg convert docs # Convert docs/ → docs-nn/'));\n console.log(chalk.gray(' $ kg frontmatter add # Add frontmatter to files'));\n console.log(chalk.gray(' $ kg frontmatter validate # Validate frontmatter\\n'));\n\n console.log(chalk.white(' AI-SDLC SOP Compliance:'));\n console.log(chalk.gray(' $ kg sop init # Initialize SOP standards layer'));\n console.log(chalk.gray(' $ kg sop check # Check compliance against SOPs'));\n console.log(chalk.gray(' $ kg sop gaps # Analyze compliance gaps'));\n console.log(chalk.gray(' $ kg sop report # Generate compliance report'));\n console.log(chalk.gray(' $ kg sop list # List available SOPs\\n'));\n\n console.log(chalk.white(' Cultivation & Primitives:'));\n console.log(chalk.gray(' $ kg init-primitives # Bootstrap primitives from codebase'));\n console.log(chalk.gray(' $ kg analyze-codebase # Analyze dependencies & services'));\n console.log(chalk.gray(' $ kg init-primitives --dry-run # Preview without writing\\n'));\n\n console.log(chalk.white(' Git Integration:'));\n console.log(chalk.gray(' $ kg commit # Show status and suggested message'));\n console.log(chalk.gray(' $ kg commit -a # Auto-commit with generated message'));\n console.log(chalk.gray(' $ kg commit -i # Interactive commit mode'));\n console.log(chalk.gray(' $ kg commit -m \"message\" # Commit with custom message'));\n console.log(chalk.gray(' $ kg commit status # Show git status with analysis'));\n console.log(chalk.gray(' $ kg commit log # Show recent commits'));\n console.log(chalk.gray(' $ kg commit diff # Show diff of changes\\n'));\n\n console.log(chalk.white(' Diagnostics & Health:'));\n console.log(chalk.gray(' $ kg diag run # Run full diagnostics'));\n console.log(chalk.gray(' $ kg diag run --fix # Attempt to fix issues'));\n console.log(chalk.gray(' $ kg diag health # Check system health'));\n console.log(chalk.gray(' $ kg diag repair # Repair database issues'));\n console.log(chalk.gray(' $ kg diag backup # Create database backup'));\n console.log(chalk.gray(' $ kg diag backup --list # List existing backups'));\n console.log(chalk.gray(' $ kg diag info # Show system information\\n'));\n\n console.log(chalk.white(' Commands:'));\n program.commands.forEach(cmd => {\n console.log(chalk.cyan(` ${cmd.name().padEnd(20)}`), chalk.gray(cmd.description() || ''));\n });\n\n console.log('\\n Run', chalk.cyan('kg <command> --help'), 'for more information\\n');\n });\n\n return program;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Module
|
|
3
|
+
*
|
|
4
|
+
* Provides configuration management with validation, migrations, and defaults.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Database configuration
|
|
8
|
+
*/
|
|
9
|
+
export interface DatabaseConfig {
|
|
10
|
+
/** Path to database file */
|
|
11
|
+
path: string;
|
|
12
|
+
/** Enable WAL mode */
|
|
13
|
+
walMode?: boolean;
|
|
14
|
+
/** Busy timeout in milliseconds */
|
|
15
|
+
busyTimeout?: number;
|
|
16
|
+
/** Cache size in pages */
|
|
17
|
+
cacheSize?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Cache configuration
|
|
21
|
+
*/
|
|
22
|
+
export interface CacheConfig {
|
|
23
|
+
/** Enable caching */
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
/** Maximum cache size in bytes */
|
|
26
|
+
maxSize?: number;
|
|
27
|
+
/** Default TTL in milliseconds */
|
|
28
|
+
defaultTtl?: number;
|
|
29
|
+
/** Eviction policy */
|
|
30
|
+
evictionPolicy?: 'lru' | 'lfu' | 'fifo';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Agent configuration
|
|
34
|
+
*/
|
|
35
|
+
export interface AgentConfig {
|
|
36
|
+
/** Maximum concurrent agents */
|
|
37
|
+
maxConcurrent?: number;
|
|
38
|
+
/** Default timeout in milliseconds */
|
|
39
|
+
defaultTimeout?: number;
|
|
40
|
+
/** Enable agent logging */
|
|
41
|
+
enableLogging?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Services configuration
|
|
45
|
+
*/
|
|
46
|
+
export interface ServicesConfig {
|
|
47
|
+
/** Enable file watcher */
|
|
48
|
+
fileWatcher?: boolean;
|
|
49
|
+
/** File watcher paths */
|
|
50
|
+
watchPaths?: string[];
|
|
51
|
+
/** Health check interval in milliseconds */
|
|
52
|
+
healthCheckInterval?: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Logging configuration
|
|
56
|
+
*/
|
|
57
|
+
export interface LoggingConfig {
|
|
58
|
+
/** Log level */
|
|
59
|
+
level: 'debug' | 'info' | 'warn' | 'error';
|
|
60
|
+
/** Log format */
|
|
61
|
+
format?: 'json' | 'text';
|
|
62
|
+
/** Log file path */
|
|
63
|
+
filePath?: string;
|
|
64
|
+
/** Enable console logging */
|
|
65
|
+
console?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Full knowledge graph configuration
|
|
69
|
+
*/
|
|
70
|
+
export interface KGConfiguration {
|
|
71
|
+
/** Database settings */
|
|
72
|
+
database: DatabaseConfig;
|
|
73
|
+
/** Cache settings */
|
|
74
|
+
cache?: CacheConfig;
|
|
75
|
+
/** Agent settings */
|
|
76
|
+
agents?: AgentConfig;
|
|
77
|
+
/** Services settings */
|
|
78
|
+
services?: ServicesConfig;
|
|
79
|
+
/** Logging settings */
|
|
80
|
+
logging?: LoggingConfig;
|
|
81
|
+
/** Project root path */
|
|
82
|
+
projectRoot?: string;
|
|
83
|
+
/** Docs path relative to project root */
|
|
84
|
+
docsPath?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Configuration migration
|
|
88
|
+
*/
|
|
89
|
+
export interface ConfigMigration {
|
|
90
|
+
/** Migration version */
|
|
91
|
+
version: number;
|
|
92
|
+
/** Migration description */
|
|
93
|
+
description: string;
|
|
94
|
+
/** Migration function */
|
|
95
|
+
migrate: (config: Partial<KGConfiguration>) => KGConfiguration;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get default configuration
|
|
99
|
+
*/
|
|
100
|
+
export declare function getDefaultConfig(): KGConfiguration;
|
|
101
|
+
/**
|
|
102
|
+
* Configuration Manager for loading, saving, and managing configuration
|
|
103
|
+
*/
|
|
104
|
+
export declare class ConfigManager {
|
|
105
|
+
private config;
|
|
106
|
+
private configPath;
|
|
107
|
+
private migrations;
|
|
108
|
+
constructor(configPath?: string);
|
|
109
|
+
/**
|
|
110
|
+
* Load configuration from file
|
|
111
|
+
*/
|
|
112
|
+
load(): Promise<KGConfiguration>;
|
|
113
|
+
/**
|
|
114
|
+
* Save configuration to file
|
|
115
|
+
*/
|
|
116
|
+
save(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Get current configuration
|
|
119
|
+
*/
|
|
120
|
+
get(): KGConfiguration;
|
|
121
|
+
/**
|
|
122
|
+
* Update configuration
|
|
123
|
+
*/
|
|
124
|
+
update(updates: Partial<KGConfiguration>): KGConfiguration;
|
|
125
|
+
/**
|
|
126
|
+
* Reset to defaults
|
|
127
|
+
*/
|
|
128
|
+
reset(): KGConfiguration;
|
|
129
|
+
/**
|
|
130
|
+
* Validate configuration
|
|
131
|
+
*/
|
|
132
|
+
validate(): {
|
|
133
|
+
valid: boolean;
|
|
134
|
+
errors: string[];
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Register a migration
|
|
138
|
+
*/
|
|
139
|
+
registerMigration(migration: ConfigMigration): void;
|
|
140
|
+
/**
|
|
141
|
+
* Apply migrations
|
|
142
|
+
*/
|
|
143
|
+
applyMigrations(fromVersion: number): KGConfiguration;
|
|
144
|
+
/**
|
|
145
|
+
* Merge configurations
|
|
146
|
+
*/
|
|
147
|
+
private merge;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a new ConfigManager instance
|
|
151
|
+
*/
|
|
152
|
+
export declare function createConfigManager(configPath?: string): ConfigManager;
|
|
153
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
function getDefaultConfig() {
|
|
2
|
+
return {
|
|
3
|
+
database: {
|
|
4
|
+
path: ".kg/knowledge.db",
|
|
5
|
+
walMode: true,
|
|
6
|
+
busyTimeout: 5e3,
|
|
7
|
+
cacheSize: 2e3
|
|
8
|
+
},
|
|
9
|
+
cache: {
|
|
10
|
+
enabled: true,
|
|
11
|
+
maxSize: 100 * 1024 * 1024,
|
|
12
|
+
// 100MB
|
|
13
|
+
defaultTtl: 36e5,
|
|
14
|
+
// 1 hour
|
|
15
|
+
evictionPolicy: "lru"
|
|
16
|
+
},
|
|
17
|
+
agents: {
|
|
18
|
+
maxConcurrent: 5,
|
|
19
|
+
defaultTimeout: 3e4,
|
|
20
|
+
enableLogging: true
|
|
21
|
+
},
|
|
22
|
+
services: {
|
|
23
|
+
fileWatcher: true,
|
|
24
|
+
watchPaths: ["docs", "src"],
|
|
25
|
+
healthCheckInterval: 6e4
|
|
26
|
+
},
|
|
27
|
+
logging: {
|
|
28
|
+
level: "info",
|
|
29
|
+
format: "text",
|
|
30
|
+
console: true
|
|
31
|
+
},
|
|
32
|
+
docsPath: "docs"
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
class ConfigManager {
|
|
36
|
+
config;
|
|
37
|
+
configPath;
|
|
38
|
+
migrations = [];
|
|
39
|
+
constructor(configPath) {
|
|
40
|
+
this.configPath = configPath || ".kg/config.json";
|
|
41
|
+
this.config = getDefaultConfig();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Load configuration from file
|
|
45
|
+
*/
|
|
46
|
+
async load() {
|
|
47
|
+
try {
|
|
48
|
+
const { readFileSync, existsSync } = await import("fs");
|
|
49
|
+
if (existsSync(this.configPath)) {
|
|
50
|
+
const content = readFileSync(this.configPath, "utf-8");
|
|
51
|
+
const loaded = JSON.parse(content);
|
|
52
|
+
this.config = this.merge(getDefaultConfig(), loaded);
|
|
53
|
+
}
|
|
54
|
+
} catch {
|
|
55
|
+
}
|
|
56
|
+
return this.config;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Save configuration to file
|
|
60
|
+
*/
|
|
61
|
+
async save() {
|
|
62
|
+
const { writeFileSync, mkdirSync } = await import("fs");
|
|
63
|
+
const { dirname } = await import("path");
|
|
64
|
+
mkdirSync(dirname(this.configPath), { recursive: true });
|
|
65
|
+
writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get current configuration
|
|
69
|
+
*/
|
|
70
|
+
get() {
|
|
71
|
+
return { ...this.config };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Update configuration
|
|
75
|
+
*/
|
|
76
|
+
update(updates) {
|
|
77
|
+
this.config = this.merge(this.config, updates);
|
|
78
|
+
return this.config;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Reset to defaults
|
|
82
|
+
*/
|
|
83
|
+
reset() {
|
|
84
|
+
this.config = getDefaultConfig();
|
|
85
|
+
return this.config;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Validate configuration
|
|
89
|
+
*/
|
|
90
|
+
validate() {
|
|
91
|
+
const errors = [];
|
|
92
|
+
if (!this.config.database?.path) {
|
|
93
|
+
errors.push("Database path is required");
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
valid: errors.length === 0,
|
|
97
|
+
errors
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Register a migration
|
|
102
|
+
*/
|
|
103
|
+
registerMigration(migration) {
|
|
104
|
+
this.migrations.push(migration);
|
|
105
|
+
this.migrations.sort((a, b) => a.version - b.version);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Apply migrations
|
|
109
|
+
*/
|
|
110
|
+
applyMigrations(fromVersion) {
|
|
111
|
+
for (const migration of this.migrations) {
|
|
112
|
+
if (migration.version > fromVersion) {
|
|
113
|
+
this.config = migration.migrate(this.config);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return this.config;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Merge configurations
|
|
120
|
+
*/
|
|
121
|
+
merge(base, updates) {
|
|
122
|
+
return {
|
|
123
|
+
...base,
|
|
124
|
+
...updates,
|
|
125
|
+
database: { ...base.database, ...updates.database },
|
|
126
|
+
cache: updates.cache ? { ...base.cache, ...updates.cache } : base.cache,
|
|
127
|
+
agents: updates.agents ? { ...base.agents, ...updates.agents } : base.agents,
|
|
128
|
+
services: updates.services ? { ...base.services, ...updates.services } : base.services,
|
|
129
|
+
logging: updates.logging ? { ...base.logging, ...updates.logging } : base.logging
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function createConfigManager(configPath) {
|
|
134
|
+
return new ConfigManager(configPath);
|
|
135
|
+
}
|
|
136
|
+
export {
|
|
137
|
+
ConfigManager,
|
|
138
|
+
createConfigManager,
|
|
139
|
+
getDefaultConfig
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/config/index.ts"],"sourcesContent":["/**\n * Configuration Module\n *\n * Provides configuration management with validation, migrations, and defaults.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Database configuration\n */\nexport interface DatabaseConfig {\n /** Path to database file */\n path: string;\n /** Enable WAL mode */\n walMode?: boolean;\n /** Busy timeout in milliseconds */\n busyTimeout?: number;\n /** Cache size in pages */\n cacheSize?: number;\n}\n\n/**\n * Cache configuration\n */\nexport interface CacheConfig {\n /** Enable caching */\n enabled: boolean;\n /** Maximum cache size in bytes */\n maxSize?: number;\n /** Default TTL in milliseconds */\n defaultTtl?: number;\n /** Eviction policy */\n evictionPolicy?: 'lru' | 'lfu' | 'fifo';\n}\n\n/**\n * Agent configuration\n */\nexport interface AgentConfig {\n /** Maximum concurrent agents */\n maxConcurrent?: number;\n /** Default timeout in milliseconds */\n defaultTimeout?: number;\n /** Enable agent logging */\n enableLogging?: boolean;\n}\n\n/**\n * Services configuration\n */\nexport interface ServicesConfig {\n /** Enable file watcher */\n fileWatcher?: boolean;\n /** File watcher paths */\n watchPaths?: string[];\n /** Health check interval in milliseconds */\n healthCheckInterval?: number;\n}\n\n/**\n * Logging configuration\n */\nexport interface LoggingConfig {\n /** Log level */\n level: 'debug' | 'info' | 'warn' | 'error';\n /** Log format */\n format?: 'json' | 'text';\n /** Log file path */\n filePath?: string;\n /** Enable console logging */\n console?: boolean;\n}\n\n/**\n * Full knowledge graph configuration\n */\nexport interface KGConfiguration {\n /** Database settings */\n database: DatabaseConfig;\n /** Cache settings */\n cache?: CacheConfig;\n /** Agent settings */\n agents?: AgentConfig;\n /** Services settings */\n services?: ServicesConfig;\n /** Logging settings */\n logging?: LoggingConfig;\n /** Project root path */\n projectRoot?: string;\n /** Docs path relative to project root */\n docsPath?: string;\n}\n\n/**\n * Configuration migration\n */\nexport interface ConfigMigration {\n /** Migration version */\n version: number;\n /** Migration description */\n description: string;\n /** Migration function */\n migrate: (config: Partial<KGConfiguration>) => KGConfiguration;\n}\n\n// ============================================================================\n// Default Configuration\n// ============================================================================\n\n/**\n * Get default configuration\n */\nexport function getDefaultConfig(): KGConfiguration {\n return {\n database: {\n path: '.kg/knowledge.db',\n walMode: true,\n busyTimeout: 5000,\n cacheSize: 2000,\n },\n cache: {\n enabled: true,\n maxSize: 100 * 1024 * 1024, // 100MB\n defaultTtl: 3600000, // 1 hour\n evictionPolicy: 'lru',\n },\n agents: {\n maxConcurrent: 5,\n defaultTimeout: 30000,\n enableLogging: true,\n },\n services: {\n fileWatcher: true,\n watchPaths: ['docs', 'src'],\n healthCheckInterval: 60000,\n },\n logging: {\n level: 'info',\n format: 'text',\n console: true,\n },\n docsPath: 'docs',\n };\n}\n\n// ============================================================================\n// Configuration Manager\n// ============================================================================\n\n/**\n * Configuration Manager for loading, saving, and managing configuration\n */\nexport class ConfigManager {\n private config: KGConfiguration;\n private configPath: string;\n private migrations: ConfigMigration[] = [];\n\n constructor(configPath?: string) {\n this.configPath = configPath || '.kg/config.json';\n this.config = getDefaultConfig();\n }\n\n /**\n * Load configuration from file\n */\n async load(): Promise<KGConfiguration> {\n try {\n const { readFileSync, existsSync } = await import('fs');\n if (existsSync(this.configPath)) {\n const content = readFileSync(this.configPath, 'utf-8');\n const loaded = JSON.parse(content) as Partial<KGConfiguration>;\n this.config = this.merge(getDefaultConfig(), loaded);\n }\n } catch {\n // Use defaults on error\n }\n return this.config;\n }\n\n /**\n * Save configuration to file\n */\n async save(): Promise<void> {\n const { writeFileSync, mkdirSync } = await import('fs');\n const { dirname } = await import('path');\n\n mkdirSync(dirname(this.configPath), { recursive: true });\n writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));\n }\n\n /**\n * Get current configuration\n */\n get(): KGConfiguration {\n return { ...this.config };\n }\n\n /**\n * Update configuration\n */\n update(updates: Partial<KGConfiguration>): KGConfiguration {\n this.config = this.merge(this.config, updates);\n return this.config;\n }\n\n /**\n * Reset to defaults\n */\n reset(): KGConfiguration {\n this.config = getDefaultConfig();\n return this.config;\n }\n\n /**\n * Validate configuration\n */\n validate(): { valid: boolean; errors: string[] } {\n const errors: string[] = [];\n\n if (!this.config.database?.path) {\n errors.push('Database path is required');\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * Register a migration\n */\n registerMigration(migration: ConfigMigration): void {\n this.migrations.push(migration);\n this.migrations.sort((a, b) => a.version - b.version);\n }\n\n /**\n * Apply migrations\n */\n applyMigrations(fromVersion: number): KGConfiguration {\n for (const migration of this.migrations) {\n if (migration.version > fromVersion) {\n this.config = migration.migrate(this.config);\n }\n }\n return this.config;\n }\n\n /**\n * Merge configurations\n */\n private merge(\n base: KGConfiguration,\n updates: Partial<KGConfiguration>\n ): KGConfiguration {\n return {\n ...base,\n ...updates,\n database: { ...base.database, ...updates.database },\n cache: updates.cache ? { ...base.cache, ...updates.cache } : base.cache,\n agents: updates.agents ? { ...base.agents, ...updates.agents } : base.agents,\n services: updates.services ? { ...base.services, ...updates.services } : base.services,\n logging: updates.logging ? { ...base.logging, ...updates.logging } : base.logging,\n };\n }\n}\n\n/**\n * Create a new ConfigManager instance\n */\nexport function createConfigManager(configPath?: string): ConfigManager {\n return new ConfigManager(configPath);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages Knowledge Graph configuration with migration support,
|
|
5
|
+
* persistence, and validation.
|
|
6
|
+
*
|
|
7
|
+
* @module config/manager
|
|
8
|
+
*/
|
|
9
|
+
import type { KGConfiguration, ConfigMigration } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Configuration Manager class
|
|
12
|
+
*
|
|
13
|
+
* Handles loading, saving, and migrating configuration files.
|
|
14
|
+
*/
|
|
15
|
+
export declare class ConfigManager {
|
|
16
|
+
private config;
|
|
17
|
+
private configPath;
|
|
18
|
+
private migrations;
|
|
19
|
+
/**
|
|
20
|
+
* Create a new ConfigManager instance
|
|
21
|
+
*
|
|
22
|
+
* @param projectRoot - Root directory of the project
|
|
23
|
+
* @param configPath - Optional custom config file path
|
|
24
|
+
*/
|
|
25
|
+
constructor(projectRoot: string, configPath?: string);
|
|
26
|
+
/**
|
|
27
|
+
* Load configuration from file
|
|
28
|
+
*
|
|
29
|
+
* @returns Loaded configuration merged with defaults
|
|
30
|
+
*/
|
|
31
|
+
private load;
|
|
32
|
+
/**
|
|
33
|
+
* Merge loaded configuration with defaults
|
|
34
|
+
*
|
|
35
|
+
* @param loaded - Partially loaded configuration
|
|
36
|
+
* @returns Complete configuration with defaults filled in
|
|
37
|
+
*/
|
|
38
|
+
private mergeWithDefaults;
|
|
39
|
+
/**
|
|
40
|
+
* Save configuration to file
|
|
41
|
+
*/
|
|
42
|
+
save(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get a configuration value by key
|
|
45
|
+
*
|
|
46
|
+
* @param key - Configuration key
|
|
47
|
+
* @returns Configuration value for the key
|
|
48
|
+
*/
|
|
49
|
+
get<K extends keyof KGConfiguration>(key: K): KGConfiguration[K];
|
|
50
|
+
/**
|
|
51
|
+
* Set a configuration value
|
|
52
|
+
*
|
|
53
|
+
* @param key - Configuration key
|
|
54
|
+
* @param value - Value to set
|
|
55
|
+
*/
|
|
56
|
+
set<K extends keyof KGConfiguration>(key: K, value: KGConfiguration[K]): void;
|
|
57
|
+
/**
|
|
58
|
+
* Update multiple configuration values
|
|
59
|
+
*
|
|
60
|
+
* @param updates - Partial configuration to merge
|
|
61
|
+
*/
|
|
62
|
+
update(updates: Partial<KGConfiguration>): void;
|
|
63
|
+
/**
|
|
64
|
+
* Get the complete configuration
|
|
65
|
+
*
|
|
66
|
+
* @returns Complete configuration object (copy)
|
|
67
|
+
*/
|
|
68
|
+
getAll(): KGConfiguration;
|
|
69
|
+
/**
|
|
70
|
+
* Register a configuration migration
|
|
71
|
+
*
|
|
72
|
+
* @param migration - Migration definition
|
|
73
|
+
*/
|
|
74
|
+
registerMigration(migration: ConfigMigration): void;
|
|
75
|
+
/**
|
|
76
|
+
* Run migrations to target version
|
|
77
|
+
*
|
|
78
|
+
* @param targetVersion - Target version to migrate to (defaults to latest)
|
|
79
|
+
*/
|
|
80
|
+
migrate(targetVersion?: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* Compare two version strings
|
|
83
|
+
*
|
|
84
|
+
* @param a - First version
|
|
85
|
+
* @param b - Second version
|
|
86
|
+
* @returns Negative if a < b, 0 if equal, positive if a > b
|
|
87
|
+
*/
|
|
88
|
+
private compareVersions;
|
|
89
|
+
/**
|
|
90
|
+
* Get the version before a given version
|
|
91
|
+
*
|
|
92
|
+
* @param version - Current version
|
|
93
|
+
* @returns Previous version string
|
|
94
|
+
*/
|
|
95
|
+
private getPreviousVersion;
|
|
96
|
+
/**
|
|
97
|
+
* Reset configuration to defaults
|
|
98
|
+
*/
|
|
99
|
+
reset(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Get the configuration file path
|
|
102
|
+
*
|
|
103
|
+
* @returns Path to the configuration file
|
|
104
|
+
*/
|
|
105
|
+
getConfigPath(): string;
|
|
106
|
+
/**
|
|
107
|
+
* Check if configuration file exists
|
|
108
|
+
*
|
|
109
|
+
* @returns True if config file exists
|
|
110
|
+
*/
|
|
111
|
+
exists(): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Validate the current configuration
|
|
114
|
+
*
|
|
115
|
+
* @returns Validation result with any errors
|
|
116
|
+
*/
|
|
117
|
+
validate(): {
|
|
118
|
+
valid: boolean;
|
|
119
|
+
errors: string[];
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Create a new ConfigManager instance
|
|
124
|
+
*
|
|
125
|
+
* @param projectRoot - Root directory of the project
|
|
126
|
+
* @param configPath - Optional custom config file path
|
|
127
|
+
* @returns ConfigManager instance
|
|
128
|
+
*/
|
|
129
|
+
export declare function createConfigManager(projectRoot: string, configPath?: string): ConfigManager;
|
|
130
|
+
/**
|
|
131
|
+
* Get a copy of the default configuration
|
|
132
|
+
*
|
|
133
|
+
* @returns Default configuration object
|
|
134
|
+
*/
|
|
135
|
+
export declare function getDefaultConfig(): KGConfiguration;
|
|
136
|
+
//# sourceMappingURL=manager.d.ts.map
|