@weavelogic/knowledge-graph-agent 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +733 -152
- 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/analyze.d.ts +12 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +269 -0
- package/dist/cli/commands/analyze.js.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/convert.d.ts +15 -0
- package/dist/cli/commands/convert.d.ts.map +1 -0
- package/dist/cli/commands/convert.js +203 -0
- package/dist/cli/commands/convert.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 +52 -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-analyzer.d.ts +75 -0
- package/dist/generators/docs-analyzer.d.ts.map +1 -0
- package/dist/generators/docs-analyzer.js +567 -0
- package/dist/generators/docs-analyzer.js.map +1 -0
- package/dist/generators/docs-convert.d.ts +91 -0
- package/dist/generators/docs-convert.d.ts.map +1 -0
- package/dist/generators/docs-convert.js +474 -0
- package/dist/generators/docs-convert.js.map +1 -0
- 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 +34 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +179 -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,465 @@
|
|
|
1
|
+
import simpleGit from "simple-git";
|
|
2
|
+
import { KnowledgeGraphError, ErrorSeverity, ErrorCategory } from "../utils/error-taxonomy.js";
|
|
3
|
+
import { createLogger } from "../utils/logger.js";
|
|
4
|
+
class GitError extends KnowledgeGraphError {
|
|
5
|
+
gitCommand;
|
|
6
|
+
gitOutput;
|
|
7
|
+
constructor(message, gitCommand, gitOutput) {
|
|
8
|
+
super(message, {
|
|
9
|
+
category: ErrorCategory.RESOURCE,
|
|
10
|
+
severity: ErrorSeverity.ERROR,
|
|
11
|
+
retryable: false,
|
|
12
|
+
code: "GIT_ERROR",
|
|
13
|
+
context: { gitCommand, gitOutput }
|
|
14
|
+
});
|
|
15
|
+
this.name = "GitError";
|
|
16
|
+
this.gitCommand = gitCommand;
|
|
17
|
+
this.gitOutput = gitOutput;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
class GitClient {
|
|
21
|
+
git;
|
|
22
|
+
logger;
|
|
23
|
+
workingDirectory;
|
|
24
|
+
constructor(config = {}) {
|
|
25
|
+
this.workingDirectory = config.workingDirectory || process.cwd();
|
|
26
|
+
this.logger = config.logger || createLogger("git");
|
|
27
|
+
this.git = simpleGit({
|
|
28
|
+
baseDir: this.workingDirectory,
|
|
29
|
+
binary: "git",
|
|
30
|
+
maxConcurrentProcesses: 6,
|
|
31
|
+
timeout: {
|
|
32
|
+
block: config.timeout || 3e4
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if the current directory is a git repository
|
|
38
|
+
*/
|
|
39
|
+
async isRepo() {
|
|
40
|
+
try {
|
|
41
|
+
await this.git.revparse(["--git-dir"]);
|
|
42
|
+
return true;
|
|
43
|
+
} catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the current git status
|
|
49
|
+
*/
|
|
50
|
+
async getStatus() {
|
|
51
|
+
try {
|
|
52
|
+
const status = await this.git.status();
|
|
53
|
+
const files = status.files.map((f) => ({
|
|
54
|
+
path: f.path,
|
|
55
|
+
indexStatus: f.index || " ",
|
|
56
|
+
workingTreeStatus: f.working_dir || " ",
|
|
57
|
+
isStaged: f.index !== " " && f.index !== "?"
|
|
58
|
+
}));
|
|
59
|
+
return {
|
|
60
|
+
branch: status.current || "HEAD",
|
|
61
|
+
isClean: status.isClean(),
|
|
62
|
+
staged: status.staged.length,
|
|
63
|
+
modified: status.modified.length,
|
|
64
|
+
untracked: status.not_added.length,
|
|
65
|
+
deleted: status.deleted.length,
|
|
66
|
+
renamed: status.renamed.length,
|
|
67
|
+
conflicted: status.conflicted.length,
|
|
68
|
+
tracking: status.tracking ? {
|
|
69
|
+
ahead: status.ahead,
|
|
70
|
+
behind: status.behind,
|
|
71
|
+
remote: status.tracking
|
|
72
|
+
} : void 0,
|
|
73
|
+
files
|
|
74
|
+
};
|
|
75
|
+
} catch (error) {
|
|
76
|
+
throw new GitError(
|
|
77
|
+
`Failed to get git status: ${error instanceof Error ? error.message : String(error)}`,
|
|
78
|
+
"git status",
|
|
79
|
+
String(error)
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get the diff of changes
|
|
85
|
+
*/
|
|
86
|
+
async getDiff(options = {}) {
|
|
87
|
+
try {
|
|
88
|
+
const args = ["--stat"];
|
|
89
|
+
if (options.staged || options.cached) {
|
|
90
|
+
args.push("--cached");
|
|
91
|
+
}
|
|
92
|
+
if (options.file) {
|
|
93
|
+
args.push("--", options.file);
|
|
94
|
+
}
|
|
95
|
+
const diffResult = await this.git.diffSummary(args);
|
|
96
|
+
return {
|
|
97
|
+
changed: diffResult.changed,
|
|
98
|
+
insertions: diffResult.insertions,
|
|
99
|
+
deletions: diffResult.deletions,
|
|
100
|
+
files: diffResult.files.map((f) => ({
|
|
101
|
+
file: f.file,
|
|
102
|
+
insertions: "insertions" in f ? f.insertions : 0,
|
|
103
|
+
deletions: "deletions" in f ? f.deletions : 0,
|
|
104
|
+
binary: f.binary
|
|
105
|
+
}))
|
|
106
|
+
};
|
|
107
|
+
} catch (error) {
|
|
108
|
+
throw new GitError(
|
|
109
|
+
`Failed to get diff: ${error instanceof Error ? error.message : String(error)}`,
|
|
110
|
+
"git diff",
|
|
111
|
+
String(error)
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the full diff content
|
|
117
|
+
*/
|
|
118
|
+
async getDiffContent(options = {}) {
|
|
119
|
+
try {
|
|
120
|
+
const args = [];
|
|
121
|
+
if (options.staged) {
|
|
122
|
+
args.push("--cached");
|
|
123
|
+
}
|
|
124
|
+
if (options.file) {
|
|
125
|
+
args.push("--", options.file);
|
|
126
|
+
}
|
|
127
|
+
return await this.git.diff(args);
|
|
128
|
+
} catch (error) {
|
|
129
|
+
throw new GitError(
|
|
130
|
+
`Failed to get diff content: ${error instanceof Error ? error.message : String(error)}`,
|
|
131
|
+
"git diff",
|
|
132
|
+
String(error)
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Stage files for commit
|
|
138
|
+
*/
|
|
139
|
+
async add(files = ".") {
|
|
140
|
+
try {
|
|
141
|
+
const fileList = Array.isArray(files) ? files : [files];
|
|
142
|
+
await this.git.add(fileList);
|
|
143
|
+
this.logger.debug("Staged files", { files: fileList });
|
|
144
|
+
} catch (error) {
|
|
145
|
+
throw new GitError(
|
|
146
|
+
`Failed to stage files: ${error instanceof Error ? error.message : String(error)}`,
|
|
147
|
+
"git add",
|
|
148
|
+
String(error)
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Unstage files
|
|
154
|
+
*/
|
|
155
|
+
async reset(files) {
|
|
156
|
+
try {
|
|
157
|
+
const fileList = Array.isArray(files) ? files : [files];
|
|
158
|
+
await this.git.reset(["HEAD", "--", ...fileList]);
|
|
159
|
+
this.logger.debug("Unstaged files", { files: fileList });
|
|
160
|
+
} catch (error) {
|
|
161
|
+
throw new GitError(
|
|
162
|
+
`Failed to unstage files: ${error instanceof Error ? error.message : String(error)}`,
|
|
163
|
+
"git reset",
|
|
164
|
+
String(error)
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Create a commit
|
|
170
|
+
*/
|
|
171
|
+
async commit(options) {
|
|
172
|
+
try {
|
|
173
|
+
const commitArgs = [];
|
|
174
|
+
if (options.amend) {
|
|
175
|
+
commitArgs.push("--amend");
|
|
176
|
+
}
|
|
177
|
+
if (options.allowEmpty) {
|
|
178
|
+
commitArgs.push("--allow-empty");
|
|
179
|
+
}
|
|
180
|
+
if (options.author) {
|
|
181
|
+
commitArgs.push(`--author="${options.author.name} <${options.author.email}>"`);
|
|
182
|
+
}
|
|
183
|
+
if (options.files && options.files.length > 0) {
|
|
184
|
+
await this.add(options.files);
|
|
185
|
+
}
|
|
186
|
+
const result = await this.git.commit(options.message, void 0, {
|
|
187
|
+
"--message": options.message
|
|
188
|
+
});
|
|
189
|
+
this.logger.info("Created commit", {
|
|
190
|
+
hash: result.commit,
|
|
191
|
+
branch: result.branch
|
|
192
|
+
});
|
|
193
|
+
return {
|
|
194
|
+
success: true,
|
|
195
|
+
hash: result.commit,
|
|
196
|
+
branch: result.branch,
|
|
197
|
+
summary: {
|
|
198
|
+
changes: result.summary.changes,
|
|
199
|
+
insertions: result.summary.insertions,
|
|
200
|
+
deletions: result.summary.deletions
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
} catch (error) {
|
|
204
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
205
|
+
this.logger.error("Failed to create commit", new Error(errorMessage));
|
|
206
|
+
return {
|
|
207
|
+
success: false,
|
|
208
|
+
error: errorMessage
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get commit log
|
|
214
|
+
*/
|
|
215
|
+
async getLog(options = {}) {
|
|
216
|
+
try {
|
|
217
|
+
const logArgs = [];
|
|
218
|
+
if (options.maxCount) {
|
|
219
|
+
logArgs.push(`-n${options.maxCount}`);
|
|
220
|
+
}
|
|
221
|
+
if (options.since) {
|
|
222
|
+
logArgs.push(`--since=${options.since.toISOString()}`);
|
|
223
|
+
}
|
|
224
|
+
if (options.until) {
|
|
225
|
+
logArgs.push(`--until=${options.until.toISOString()}`);
|
|
226
|
+
}
|
|
227
|
+
if (options.author) {
|
|
228
|
+
logArgs.push(`--author=${options.author}`);
|
|
229
|
+
}
|
|
230
|
+
if (options.file) {
|
|
231
|
+
logArgs.push("--", options.file);
|
|
232
|
+
}
|
|
233
|
+
const log = await this.git.log(logArgs);
|
|
234
|
+
return log.all.map((entry) => ({
|
|
235
|
+
hash: entry.hash,
|
|
236
|
+
hashAbbrev: entry.hash.substring(0, 7),
|
|
237
|
+
author: entry.author_name,
|
|
238
|
+
email: entry.author_email,
|
|
239
|
+
date: new Date(entry.date),
|
|
240
|
+
message: entry.message,
|
|
241
|
+
body: entry.body || void 0,
|
|
242
|
+
parents: entry.refs ? entry.refs.split(",").map((r) => r.trim()) : []
|
|
243
|
+
}));
|
|
244
|
+
} catch (error) {
|
|
245
|
+
throw new GitError(
|
|
246
|
+
`Failed to get log: ${error instanceof Error ? error.message : String(error)}`,
|
|
247
|
+
"git log",
|
|
248
|
+
String(error)
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get current branch information
|
|
254
|
+
*/
|
|
255
|
+
async getBranch() {
|
|
256
|
+
try {
|
|
257
|
+
const branchSummary = await this.git.branch(["-a"]);
|
|
258
|
+
const local = [];
|
|
259
|
+
const remote = [];
|
|
260
|
+
for (const [name, branch] of Object.entries(branchSummary.branches)) {
|
|
261
|
+
if (name.startsWith("remotes/")) {
|
|
262
|
+
remote.push(name.replace("remotes/", ""));
|
|
263
|
+
} else {
|
|
264
|
+
local.push(name);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
current: branchSummary.current,
|
|
269
|
+
detached: branchSummary.detached,
|
|
270
|
+
local,
|
|
271
|
+
remote
|
|
272
|
+
};
|
|
273
|
+
} catch (error) {
|
|
274
|
+
throw new GitError(
|
|
275
|
+
`Failed to get branch info: ${error instanceof Error ? error.message : String(error)}`,
|
|
276
|
+
"git branch",
|
|
277
|
+
String(error)
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get remote information
|
|
283
|
+
*/
|
|
284
|
+
async getRemotes() {
|
|
285
|
+
try {
|
|
286
|
+
const remotes = await this.git.getRemotes(true);
|
|
287
|
+
return remotes.map((remote) => ({
|
|
288
|
+
name: remote.name,
|
|
289
|
+
fetchUrl: remote.refs.fetch || "",
|
|
290
|
+
pushUrl: remote.refs.push || ""
|
|
291
|
+
}));
|
|
292
|
+
} catch (error) {
|
|
293
|
+
throw new GitError(
|
|
294
|
+
`Failed to get remotes: ${error instanceof Error ? error.message : String(error)}`,
|
|
295
|
+
"git remote",
|
|
296
|
+
String(error)
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Push to remote
|
|
302
|
+
*/
|
|
303
|
+
async push(options = {}) {
|
|
304
|
+
try {
|
|
305
|
+
const remote = options.remote || "origin";
|
|
306
|
+
const args = [];
|
|
307
|
+
if (options.setUpstream) {
|
|
308
|
+
args.push("-u");
|
|
309
|
+
}
|
|
310
|
+
if (options.force) {
|
|
311
|
+
args.push("--force");
|
|
312
|
+
}
|
|
313
|
+
args.push(remote);
|
|
314
|
+
if (options.branch) {
|
|
315
|
+
args.push(options.branch);
|
|
316
|
+
}
|
|
317
|
+
await this.git.push(args);
|
|
318
|
+
this.logger.info("Pushed to remote", { remote, branch: options.branch });
|
|
319
|
+
} catch (error) {
|
|
320
|
+
throw new GitError(
|
|
321
|
+
`Failed to push: ${error instanceof Error ? error.message : String(error)}`,
|
|
322
|
+
"git push",
|
|
323
|
+
String(error)
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Pull from remote
|
|
329
|
+
*/
|
|
330
|
+
async pull(options = {}) {
|
|
331
|
+
try {
|
|
332
|
+
const remote = options.remote || "origin";
|
|
333
|
+
const pullArgs = [];
|
|
334
|
+
if (options.rebase) {
|
|
335
|
+
pullArgs.push("--rebase");
|
|
336
|
+
}
|
|
337
|
+
pullArgs.push(remote);
|
|
338
|
+
if (options.branch) {
|
|
339
|
+
pullArgs.push(options.branch);
|
|
340
|
+
}
|
|
341
|
+
await this.git.pull(pullArgs);
|
|
342
|
+
this.logger.info("Pulled from remote", { remote, branch: options.branch });
|
|
343
|
+
} catch (error) {
|
|
344
|
+
throw new GitError(
|
|
345
|
+
`Failed to pull: ${error instanceof Error ? error.message : String(error)}`,
|
|
346
|
+
"git pull",
|
|
347
|
+
String(error)
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Fetch from remote
|
|
353
|
+
*/
|
|
354
|
+
async fetch(options = {}) {
|
|
355
|
+
try {
|
|
356
|
+
const args = [];
|
|
357
|
+
if (options.all) {
|
|
358
|
+
args.push("--all");
|
|
359
|
+
}
|
|
360
|
+
if (options.prune) {
|
|
361
|
+
args.push("--prune");
|
|
362
|
+
}
|
|
363
|
+
if (options.remote) {
|
|
364
|
+
args.push(options.remote);
|
|
365
|
+
}
|
|
366
|
+
await this.git.fetch(args);
|
|
367
|
+
this.logger.debug("Fetched from remote", options);
|
|
368
|
+
} catch (error) {
|
|
369
|
+
throw new GitError(
|
|
370
|
+
`Failed to fetch: ${error instanceof Error ? error.message : String(error)}`,
|
|
371
|
+
"git fetch",
|
|
372
|
+
String(error)
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Stash changes
|
|
378
|
+
*/
|
|
379
|
+
async stash(options = {}) {
|
|
380
|
+
try {
|
|
381
|
+
const args = ["push"];
|
|
382
|
+
if (options.message) {
|
|
383
|
+
args.push("-m", options.message);
|
|
384
|
+
}
|
|
385
|
+
if (options.includeUntracked) {
|
|
386
|
+
args.push("--include-untracked");
|
|
387
|
+
}
|
|
388
|
+
await this.git.stash(args);
|
|
389
|
+
this.logger.debug("Stashed changes", options);
|
|
390
|
+
} catch (error) {
|
|
391
|
+
throw new GitError(
|
|
392
|
+
`Failed to stash: ${error instanceof Error ? error.message : String(error)}`,
|
|
393
|
+
"git stash",
|
|
394
|
+
String(error)
|
|
395
|
+
);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Pop stash
|
|
400
|
+
*/
|
|
401
|
+
async stashPop() {
|
|
402
|
+
try {
|
|
403
|
+
await this.git.stash(["pop"]);
|
|
404
|
+
this.logger.debug("Popped stash");
|
|
405
|
+
} catch (error) {
|
|
406
|
+
throw new GitError(
|
|
407
|
+
`Failed to pop stash: ${error instanceof Error ? error.message : String(error)}`,
|
|
408
|
+
"git stash pop",
|
|
409
|
+
String(error)
|
|
410
|
+
);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Get the root directory of the git repository
|
|
415
|
+
*/
|
|
416
|
+
async getRoot() {
|
|
417
|
+
try {
|
|
418
|
+
const root = await this.git.revparse(["--show-toplevel"]);
|
|
419
|
+
return root.trim();
|
|
420
|
+
} catch (error) {
|
|
421
|
+
throw new GitError(
|
|
422
|
+
`Failed to get repository root: ${error instanceof Error ? error.message : String(error)}`,
|
|
423
|
+
"git rev-parse",
|
|
424
|
+
String(error)
|
|
425
|
+
);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Get the current HEAD commit hash
|
|
430
|
+
*/
|
|
431
|
+
async getHead() {
|
|
432
|
+
try {
|
|
433
|
+
const head = await this.git.revparse(["HEAD"]);
|
|
434
|
+
return head.trim();
|
|
435
|
+
} catch (error) {
|
|
436
|
+
throw new GitError(
|
|
437
|
+
`Failed to get HEAD: ${error instanceof Error ? error.message : String(error)}`,
|
|
438
|
+
"git rev-parse",
|
|
439
|
+
String(error)
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Check if there are uncommitted changes
|
|
445
|
+
*/
|
|
446
|
+
async hasUncommittedChanges() {
|
|
447
|
+
const status = await this.getStatus();
|
|
448
|
+
return !status.isClean;
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Get the underlying simple-git instance for advanced operations
|
|
452
|
+
*/
|
|
453
|
+
getRawClient() {
|
|
454
|
+
return this.git;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
function createGitClient(config = {}) {
|
|
458
|
+
return new GitClient(config);
|
|
459
|
+
}
|
|
460
|
+
export {
|
|
461
|
+
GitClient,
|
|
462
|
+
GitError,
|
|
463
|
+
createGitClient
|
|
464
|
+
};
|
|
465
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sources":["../../src/integrations/git.ts"],"sourcesContent":["/**\n * Git Integration\n *\n * Provides Git operations for the knowledge graph agent using simple-git.\n *\n * @module integrations/git\n */\n\nimport simpleGit, {\n SimpleGit,\n StatusResult,\n DiffResult,\n LogResult,\n DefaultLogFields,\n} from 'simple-git';\nimport { createLogger, Logger, KnowledgeGraphError, ErrorCategory, ErrorSeverity } from '../utils/index.js';\n\n/**\n * Git client configuration\n */\nexport interface GitClientConfig {\n /** Working directory for git operations */\n workingDirectory?: string;\n /** Logger instance */\n logger?: Logger;\n /** Timeout for git operations in milliseconds */\n timeout?: number;\n}\n\n/**\n * Git status summary\n */\nexport interface GitStatusSummary {\n /** Current branch name */\n branch: string;\n /** Whether the repository is clean */\n isClean: boolean;\n /** Number of staged files */\n staged: number;\n /** Number of modified files */\n modified: number;\n /** Number of untracked files */\n untracked: number;\n /** Number of deleted files */\n deleted: number;\n /** Number of renamed files */\n renamed: number;\n /** Number of conflicted files */\n conflicted: number;\n /** Tracking information */\n tracking?: {\n ahead: number;\n behind: number;\n remote?: string;\n };\n /** List of changed files */\n files: GitFileStatus[];\n}\n\n/**\n * Individual file status\n */\nexport interface GitFileStatus {\n /** File path */\n path: string;\n /** Index status (staged) */\n indexStatus: string;\n /** Working tree status */\n workingTreeStatus: string;\n /** Whether the file is staged */\n isStaged: boolean;\n}\n\n/**\n * Git diff summary\n */\nexport interface GitDiffSummary {\n /** Number of changed files */\n changed: number;\n /** Number of insertions */\n insertions: number;\n /** Number of deletions */\n deletions: number;\n /** List of changed files with details */\n files: GitDiffFile[];\n}\n\n/**\n * Git diff file details\n */\nexport interface GitDiffFile {\n /** File path */\n file: string;\n /** Number of insertions */\n insertions: number;\n /** Number of deletions */\n deletions: number;\n /** Whether the file is binary */\n binary: boolean;\n}\n\n/**\n * Git commit info\n */\nexport interface GitCommitInfo {\n /** Commit hash */\n hash: string;\n /** Abbreviated commit hash */\n hashAbbrev: string;\n /** Author name */\n author: string;\n /** Author email */\n email: string;\n /** Commit date */\n date: Date;\n /** Commit message */\n message: string;\n /** Commit body */\n body?: string;\n /** Parent commit hashes */\n parents: string[];\n}\n\n/**\n * Git remote info\n */\nexport interface GitRemoteInfo {\n /** Remote name */\n name: string;\n /** Fetch URL */\n fetchUrl: string;\n /** Push URL */\n pushUrl: string;\n}\n\n/**\n * Git branch info\n */\nexport interface GitBranchInfo {\n /** Current branch name */\n current: string;\n /** Whether the branch is detached */\n detached: boolean;\n /** All local branches */\n local: string[];\n /** All remote branches */\n remote: string[];\n}\n\n/**\n * Git commit options\n */\nexport interface GitCommitOptions {\n /** Commit message */\n message: string;\n /** Whether to amend the previous commit */\n amend?: boolean;\n /** Whether to allow empty commits */\n allowEmpty?: boolean;\n /** Specific files to commit (all staged if empty) */\n files?: string[];\n /** Author override */\n author?: {\n name: string;\n email: string;\n };\n}\n\n/**\n * Git commit result\n */\nexport interface GitCommitResult {\n /** Whether the commit was successful */\n success: boolean;\n /** Commit hash */\n hash?: string;\n /** Branch name */\n branch?: string;\n /** Commit summary */\n summary?: {\n changes: number;\n insertions: number;\n deletions: number;\n };\n /** Error message if failed */\n error?: string;\n}\n\n/**\n * Git error class\n */\nexport class GitError extends KnowledgeGraphError {\n public readonly gitCommand?: string;\n public readonly gitOutput?: string;\n\n constructor(\n message: string,\n gitCommand?: string,\n gitOutput?: string\n ) {\n super(message, {\n category: ErrorCategory.RESOURCE,\n severity: ErrorSeverity.ERROR,\n retryable: false,\n code: 'GIT_ERROR',\n context: { gitCommand, gitOutput },\n });\n this.name = 'GitError';\n this.gitCommand = gitCommand;\n this.gitOutput = gitOutput;\n }\n}\n\n/**\n * Git Client\n *\n * Provides a high-level interface for Git operations.\n */\nexport class GitClient {\n private git: SimpleGit;\n private logger: Logger;\n private workingDirectory: string;\n\n constructor(config: GitClientConfig = {}) {\n this.workingDirectory = config.workingDirectory || process.cwd();\n this.logger = config.logger || createLogger('git');\n\n this.git = simpleGit({\n baseDir: this.workingDirectory,\n binary: 'git',\n maxConcurrentProcesses: 6,\n timeout: {\n block: config.timeout || 30000,\n },\n });\n }\n\n /**\n * Check if the current directory is a git repository\n */\n async isRepo(): Promise<boolean> {\n try {\n await this.git.revparse(['--git-dir']);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get the current git status\n */\n async getStatus(): Promise<GitStatusSummary> {\n try {\n const status: StatusResult = await this.git.status();\n\n const files: GitFileStatus[] = status.files.map(f => ({\n path: f.path,\n indexStatus: f.index || ' ',\n workingTreeStatus: f.working_dir || ' ',\n isStaged: f.index !== ' ' && f.index !== '?',\n }));\n\n return {\n branch: status.current || 'HEAD',\n isClean: status.isClean(),\n staged: status.staged.length,\n modified: status.modified.length,\n untracked: status.not_added.length,\n deleted: status.deleted.length,\n renamed: status.renamed.length,\n conflicted: status.conflicted.length,\n tracking: status.tracking\n ? {\n ahead: status.ahead,\n behind: status.behind,\n remote: status.tracking,\n }\n : undefined,\n files,\n };\n } catch (error) {\n throw new GitError(\n `Failed to get git status: ${error instanceof Error ? error.message : String(error)}`,\n 'git status',\n String(error)\n );\n }\n }\n\n /**\n * Get the diff of changes\n */\n async getDiff(options: {\n staged?: boolean;\n file?: string;\n cached?: boolean;\n } = {}): Promise<GitDiffSummary> {\n try {\n const args: string[] = ['--stat'];\n\n if (options.staged || options.cached) {\n args.push('--cached');\n }\n\n if (options.file) {\n args.push('--', options.file);\n }\n\n const diffResult: DiffResult = await this.git.diffSummary(args);\n\n return {\n changed: diffResult.changed,\n insertions: diffResult.insertions,\n deletions: diffResult.deletions,\n files: diffResult.files.map(f => ({\n file: f.file,\n insertions: 'insertions' in f ? f.insertions : 0,\n deletions: 'deletions' in f ? f.deletions : 0,\n binary: f.binary,\n })),\n };\n } catch (error) {\n throw new GitError(\n `Failed to get diff: ${error instanceof Error ? error.message : String(error)}`,\n 'git diff',\n String(error)\n );\n }\n }\n\n /**\n * Get the full diff content\n */\n async getDiffContent(options: {\n staged?: boolean;\n file?: string;\n } = {}): Promise<string> {\n try {\n const args: string[] = [];\n\n if (options.staged) {\n args.push('--cached');\n }\n\n if (options.file) {\n args.push('--', options.file);\n }\n\n return await this.git.diff(args);\n } catch (error) {\n throw new GitError(\n `Failed to get diff content: ${error instanceof Error ? error.message : String(error)}`,\n 'git diff',\n String(error)\n );\n }\n }\n\n /**\n * Stage files for commit\n */\n async add(files: string[] | string = '.'): Promise<void> {\n try {\n const fileList = Array.isArray(files) ? files : [files];\n await this.git.add(fileList);\n this.logger.debug('Staged files', { files: fileList });\n } catch (error) {\n throw new GitError(\n `Failed to stage files: ${error instanceof Error ? error.message : String(error)}`,\n 'git add',\n String(error)\n );\n }\n }\n\n /**\n * Unstage files\n */\n async reset(files: string[] | string): Promise<void> {\n try {\n const fileList = Array.isArray(files) ? files : [files];\n await this.git.reset(['HEAD', '--', ...fileList]);\n this.logger.debug('Unstaged files', { files: fileList });\n } catch (error) {\n throw new GitError(\n `Failed to unstage files: ${error instanceof Error ? error.message : String(error)}`,\n 'git reset',\n String(error)\n );\n }\n }\n\n /**\n * Create a commit\n */\n async commit(options: GitCommitOptions): Promise<GitCommitResult> {\n try {\n const commitArgs: string[] = [];\n\n if (options.amend) {\n commitArgs.push('--amend');\n }\n\n if (options.allowEmpty) {\n commitArgs.push('--allow-empty');\n }\n\n if (options.author) {\n commitArgs.push(`--author=\"${options.author.name} <${options.author.email}>\"`);\n }\n\n // Handle specific files\n if (options.files && options.files.length > 0) {\n await this.add(options.files);\n }\n\n const result = await this.git.commit(options.message, undefined, {\n '--message': options.message,\n });\n\n this.logger.info('Created commit', {\n hash: result.commit,\n branch: result.branch,\n });\n\n return {\n success: true,\n hash: result.commit,\n branch: result.branch,\n summary: {\n changes: result.summary.changes,\n insertions: result.summary.insertions,\n deletions: result.summary.deletions,\n },\n };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error('Failed to create commit', new Error(errorMessage));\n\n return {\n success: false,\n error: errorMessage,\n };\n }\n }\n\n /**\n * Get commit log\n */\n async getLog(options: {\n maxCount?: number;\n file?: string;\n since?: Date;\n until?: Date;\n author?: string;\n } = {}): Promise<GitCommitInfo[]> {\n try {\n // Build log options as simple-git expects\n const logArgs: string[] = [];\n\n if (options.maxCount) {\n logArgs.push(`-n${options.maxCount}`);\n }\n\n if (options.since) {\n logArgs.push(`--since=${options.since.toISOString()}`);\n }\n\n if (options.until) {\n logArgs.push(`--until=${options.until.toISOString()}`);\n }\n\n if (options.author) {\n logArgs.push(`--author=${options.author}`);\n }\n\n if (options.file) {\n logArgs.push('--', options.file);\n }\n\n const log: LogResult<DefaultLogFields> = await this.git.log(logArgs);\n\n return log.all.map(entry => ({\n hash: entry.hash,\n hashAbbrev: entry.hash.substring(0, 7),\n author: entry.author_name,\n email: entry.author_email,\n date: new Date(entry.date),\n message: entry.message,\n body: entry.body || undefined,\n parents: entry.refs ? entry.refs.split(',').map(r => r.trim()) : [],\n }));\n } catch (error) {\n throw new GitError(\n `Failed to get log: ${error instanceof Error ? error.message : String(error)}`,\n 'git log',\n String(error)\n );\n }\n }\n\n /**\n * Get current branch information\n */\n async getBranch(): Promise<GitBranchInfo> {\n try {\n const branchSummary = await this.git.branch(['-a']);\n\n const local: string[] = [];\n const remote: string[] = [];\n\n for (const [name, branch] of Object.entries(branchSummary.branches)) {\n if (name.startsWith('remotes/')) {\n remote.push(name.replace('remotes/', ''));\n } else {\n local.push(name);\n }\n }\n\n return {\n current: branchSummary.current,\n detached: branchSummary.detached,\n local,\n remote,\n };\n } catch (error) {\n throw new GitError(\n `Failed to get branch info: ${error instanceof Error ? error.message : String(error)}`,\n 'git branch',\n String(error)\n );\n }\n }\n\n /**\n * Get remote information\n */\n async getRemotes(): Promise<GitRemoteInfo[]> {\n try {\n const remotes = await this.git.getRemotes(true);\n\n return remotes.map(remote => ({\n name: remote.name,\n fetchUrl: remote.refs.fetch || '',\n pushUrl: remote.refs.push || '',\n }));\n } catch (error) {\n throw new GitError(\n `Failed to get remotes: ${error instanceof Error ? error.message : String(error)}`,\n 'git remote',\n String(error)\n );\n }\n }\n\n /**\n * Push to remote\n */\n async push(options: {\n remote?: string;\n branch?: string;\n setUpstream?: boolean;\n force?: boolean;\n } = {}): Promise<void> {\n try {\n const remote = options.remote || 'origin';\n const args: string[] = [];\n\n if (options.setUpstream) {\n args.push('-u');\n }\n\n if (options.force) {\n args.push('--force');\n }\n\n args.push(remote);\n\n if (options.branch) {\n args.push(options.branch);\n }\n\n await this.git.push(args);\n this.logger.info('Pushed to remote', { remote, branch: options.branch });\n } catch (error) {\n throw new GitError(\n `Failed to push: ${error instanceof Error ? error.message : String(error)}`,\n 'git push',\n String(error)\n );\n }\n }\n\n /**\n * Pull from remote\n */\n async pull(options: {\n remote?: string;\n branch?: string;\n rebase?: boolean;\n } = {}): Promise<void> {\n try {\n const remote = options.remote || 'origin';\n const pullArgs: string[] = [];\n\n if (options.rebase) {\n pullArgs.push('--rebase');\n }\n\n pullArgs.push(remote);\n\n if (options.branch) {\n pullArgs.push(options.branch);\n }\n\n await this.git.pull(pullArgs);\n this.logger.info('Pulled from remote', { remote, branch: options.branch });\n } catch (error) {\n throw new GitError(\n `Failed to pull: ${error instanceof Error ? error.message : String(error)}`,\n 'git pull',\n String(error)\n );\n }\n }\n\n /**\n * Fetch from remote\n */\n async fetch(options: {\n remote?: string;\n all?: boolean;\n prune?: boolean;\n } = {}): Promise<void> {\n try {\n const args: string[] = [];\n\n if (options.all) {\n args.push('--all');\n }\n\n if (options.prune) {\n args.push('--prune');\n }\n\n if (options.remote) {\n args.push(options.remote);\n }\n\n await this.git.fetch(args);\n this.logger.debug('Fetched from remote', options);\n } catch (error) {\n throw new GitError(\n `Failed to fetch: ${error instanceof Error ? error.message : String(error)}`,\n 'git fetch',\n String(error)\n );\n }\n }\n\n /**\n * Stash changes\n */\n async stash(options: {\n message?: string;\n includeUntracked?: boolean;\n } = {}): Promise<void> {\n try {\n const args: string[] = ['push'];\n\n if (options.message) {\n args.push('-m', options.message);\n }\n\n if (options.includeUntracked) {\n args.push('--include-untracked');\n }\n\n await this.git.stash(args);\n this.logger.debug('Stashed changes', options);\n } catch (error) {\n throw new GitError(\n `Failed to stash: ${error instanceof Error ? error.message : String(error)}`,\n 'git stash',\n String(error)\n );\n }\n }\n\n /**\n * Pop stash\n */\n async stashPop(): Promise<void> {\n try {\n await this.git.stash(['pop']);\n this.logger.debug('Popped stash');\n } catch (error) {\n throw new GitError(\n `Failed to pop stash: ${error instanceof Error ? error.message : String(error)}`,\n 'git stash pop',\n String(error)\n );\n }\n }\n\n /**\n * Get the root directory of the git repository\n */\n async getRoot(): Promise<string> {\n try {\n const root = await this.git.revparse(['--show-toplevel']);\n return root.trim();\n } catch (error) {\n throw new GitError(\n `Failed to get repository root: ${error instanceof Error ? error.message : String(error)}`,\n 'git rev-parse',\n String(error)\n );\n }\n }\n\n /**\n * Get the current HEAD commit hash\n */\n async getHead(): Promise<string> {\n try {\n const head = await this.git.revparse(['HEAD']);\n return head.trim();\n } catch (error) {\n throw new GitError(\n `Failed to get HEAD: ${error instanceof Error ? error.message : String(error)}`,\n 'git rev-parse',\n String(error)\n );\n }\n }\n\n /**\n * Check if there are uncommitted changes\n */\n async hasUncommittedChanges(): Promise<boolean> {\n const status = await this.getStatus();\n return !status.isClean;\n }\n\n /**\n * Get the underlying simple-git instance for advanced operations\n */\n getRawClient(): SimpleGit {\n return this.git;\n }\n}\n\n/**\n * Create a GitClient instance\n */\nexport function createGitClient(config: GitClientConfig = {}): GitClient {\n return new GitClient(config);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Knowledge Graph MCP Server CLI
|
|
4
|
+
*
|
|
5
|
+
* Entry point for running the MCP server from command line.
|
|
6
|
+
* Initializes database, cache, and server components.
|
|
7
|
+
*
|
|
8
|
+
* @module mcp-server/bin
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=bin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/mcp-server/bin.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Request Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles incoming tool call requests from MCP clients.
|
|
5
|
+
* Validates parameters, executes handlers, and formats responses.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp-server/handlers
|
|
8
|
+
*/
|
|
9
|
+
import { McpError, type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
10
|
+
import type { ToolContext, ToolResult } from '../types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* MCP CallToolRequest params structure
|
|
13
|
+
*/
|
|
14
|
+
interface CallToolParams {
|
|
15
|
+
name: string;
|
|
16
|
+
arguments?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* MCP request structure
|
|
20
|
+
*/
|
|
21
|
+
interface MCPRequest {
|
|
22
|
+
params: CallToolParams;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Handle tool call requests from MCP clients
|
|
26
|
+
*
|
|
27
|
+
* @param request - MCP call tool request
|
|
28
|
+
* @returns MCP response with tool result
|
|
29
|
+
* @throws McpError if tool not found or execution fails
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleToolCall(request: MCPRequest): Promise<CallToolResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Handle errors and convert to MCP errors
|
|
34
|
+
*
|
|
35
|
+
* @param error - Original error
|
|
36
|
+
* @param context - Tool execution context
|
|
37
|
+
* @returns MCP error
|
|
38
|
+
*/
|
|
39
|
+
export declare function handleError(error: unknown, context: ToolContext): McpError;
|
|
40
|
+
/**
|
|
41
|
+
* Create error response for tool failures
|
|
42
|
+
*
|
|
43
|
+
* @param error - Error message or object
|
|
44
|
+
* @param toolName - Tool that failed
|
|
45
|
+
* @returns Tool result indicating failure
|
|
46
|
+
*/
|
|
47
|
+
export declare function createErrorResult(error: unknown, toolName: string): ToolResult;
|
|
48
|
+
/**
|
|
49
|
+
* Create success response for tool results
|
|
50
|
+
*
|
|
51
|
+
* @param data - Result data
|
|
52
|
+
* @param metadata - Additional metadata
|
|
53
|
+
* @returns Tool result indicating success
|
|
54
|
+
*/
|
|
55
|
+
export declare function createSuccessResult(data: unknown, metadata?: Record<string, unknown>): ToolResult;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,QAAQ,EACR,KAAK,cAAc,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMjE;;GAEG;AACH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CA0DjF;AAmSD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,QAAQ,CAgD1E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAS9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,UAAU,CASZ"}
|