@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,419 @@
|
|
|
1
|
+
import { getLogger } from "../utils/logger.js";
|
|
2
|
+
import { AgentType, createAgentId, AgentStatus } from "./types.js";
|
|
3
|
+
class AgentRegistry {
|
|
4
|
+
registrations = /* @__PURE__ */ new Map();
|
|
5
|
+
instances = /* @__PURE__ */ new Map();
|
|
6
|
+
instancesByType = /* @__PURE__ */ new Map();
|
|
7
|
+
logger;
|
|
8
|
+
options;
|
|
9
|
+
healthCheckTimer;
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
this.logger = options.logger ?? getLogger().child("agent-registry");
|
|
12
|
+
this.options = {
|
|
13
|
+
logger: this.logger,
|
|
14
|
+
maxAgentsPerType: options.maxAgentsPerType ?? 10,
|
|
15
|
+
defaultTimeout: options.defaultTimeout ?? 3e4,
|
|
16
|
+
enableHealthMonitoring: options.enableHealthMonitoring ?? false,
|
|
17
|
+
healthCheckInterval: options.healthCheckInterval ?? 3e4
|
|
18
|
+
};
|
|
19
|
+
for (const type of Object.values(AgentType)) {
|
|
20
|
+
this.instancesByType.set(type, /* @__PURE__ */ new Set());
|
|
21
|
+
}
|
|
22
|
+
if (this.options.enableHealthMonitoring) {
|
|
23
|
+
this.startHealthMonitoring();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Registration Methods
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/**
|
|
30
|
+
* Register an agent type with its factory function
|
|
31
|
+
*/
|
|
32
|
+
register(type, factory, options) {
|
|
33
|
+
if (this.registrations.has(type)) {
|
|
34
|
+
this.logger.warn(`Overwriting existing registration for agent type: ${type}`);
|
|
35
|
+
}
|
|
36
|
+
const registration = {
|
|
37
|
+
type,
|
|
38
|
+
factory,
|
|
39
|
+
defaultConfig: options?.defaultConfig,
|
|
40
|
+
capabilities: options?.capabilities ?? [],
|
|
41
|
+
metadata: options?.metadata,
|
|
42
|
+
registeredAt: /* @__PURE__ */ new Date()
|
|
43
|
+
};
|
|
44
|
+
this.registrations.set(type, registration);
|
|
45
|
+
this.logger.info(`Registered agent type: ${type}`, {
|
|
46
|
+
capabilities: registration.capabilities.map((c) => c.name)
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Unregister an agent type
|
|
51
|
+
*/
|
|
52
|
+
unregister(type) {
|
|
53
|
+
const instances = this.instancesByType.get(type);
|
|
54
|
+
if (instances) {
|
|
55
|
+
for (const id of instances) {
|
|
56
|
+
void this.terminateAgent(id);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const result = this.registrations.delete(type);
|
|
60
|
+
if (result) {
|
|
61
|
+
this.logger.info(`Unregistered agent type: ${type}`);
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if an agent type is registered
|
|
67
|
+
*/
|
|
68
|
+
isRegistered(type) {
|
|
69
|
+
return this.registrations.has(type);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get registration info for an agent type
|
|
73
|
+
*/
|
|
74
|
+
getRegistration(type) {
|
|
75
|
+
return this.registrations.get(type);
|
|
76
|
+
}
|
|
77
|
+
// ============================================================================
|
|
78
|
+
// Agent Lifecycle Methods
|
|
79
|
+
// ============================================================================
|
|
80
|
+
/**
|
|
81
|
+
* Spawn a new agent instance
|
|
82
|
+
*/
|
|
83
|
+
async spawn(type, config, options) {
|
|
84
|
+
const registration = this.registrations.get(type);
|
|
85
|
+
if (!registration) {
|
|
86
|
+
throw new Error(`Agent type not registered: ${type}`);
|
|
87
|
+
}
|
|
88
|
+
const existingCount = this.instancesByType.get(type)?.size ?? 0;
|
|
89
|
+
if (existingCount >= this.options.maxAgentsPerType) {
|
|
90
|
+
throw new Error(
|
|
91
|
+
`Maximum agents of type ${type} reached (${this.options.maxAgentsPerType})`
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
const fullConfig = {
|
|
95
|
+
...registration.defaultConfig,
|
|
96
|
+
...config,
|
|
97
|
+
type,
|
|
98
|
+
id: options?.id ?? createAgentId(type),
|
|
99
|
+
...options?.configOverrides
|
|
100
|
+
};
|
|
101
|
+
this.logger.debug(`Spawning agent: ${fullConfig.id}`, {
|
|
102
|
+
type,
|
|
103
|
+
name: fullConfig.name
|
|
104
|
+
});
|
|
105
|
+
try {
|
|
106
|
+
const agent = await registration.factory(fullConfig);
|
|
107
|
+
this.instances.set(fullConfig.id, agent);
|
|
108
|
+
this.instancesByType.get(type)?.add(fullConfig.id);
|
|
109
|
+
this.logger.info(`Agent spawned: ${fullConfig.id}`, {
|
|
110
|
+
type,
|
|
111
|
+
name: fullConfig.name,
|
|
112
|
+
capabilities: fullConfig.capabilities
|
|
113
|
+
});
|
|
114
|
+
return agent;
|
|
115
|
+
} catch (error) {
|
|
116
|
+
this.logger.error(
|
|
117
|
+
`Failed to spawn agent: ${fullConfig.id}`,
|
|
118
|
+
error instanceof Error ? error : new Error(String(error))
|
|
119
|
+
);
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Spawn multiple agents in parallel
|
|
125
|
+
*/
|
|
126
|
+
async spawnMultiple(specs) {
|
|
127
|
+
const results = await Promise.allSettled(
|
|
128
|
+
specs.map((spec) => this.spawn(spec.type, spec.config, spec.options))
|
|
129
|
+
);
|
|
130
|
+
const agents = [];
|
|
131
|
+
const errors = [];
|
|
132
|
+
for (const result of results) {
|
|
133
|
+
if (result.status === "fulfilled") {
|
|
134
|
+
agents.push(result.value);
|
|
135
|
+
} else {
|
|
136
|
+
errors.push(result.reason);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (errors.length > 0) {
|
|
140
|
+
this.logger.warn(`${errors.length} agents failed to spawn`, {
|
|
141
|
+
totalRequested: specs.length,
|
|
142
|
+
spawned: agents.length,
|
|
143
|
+
failed: errors.length
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return agents;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get an agent instance by ID
|
|
150
|
+
*/
|
|
151
|
+
get(id) {
|
|
152
|
+
return this.instances.get(id);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get all agent instances
|
|
156
|
+
*/
|
|
157
|
+
getAll() {
|
|
158
|
+
return Array.from(this.instances.values());
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get agents by type
|
|
162
|
+
*/
|
|
163
|
+
getByType(type) {
|
|
164
|
+
const ids = this.instancesByType.get(type);
|
|
165
|
+
if (!ids) return [];
|
|
166
|
+
return Array.from(ids).map((id) => this.instances.get(id)).filter((agent) => agent !== void 0);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* List all registered agent types
|
|
170
|
+
*/
|
|
171
|
+
listTypes() {
|
|
172
|
+
return Array.from(this.registrations.entries()).map(([type, reg]) => ({
|
|
173
|
+
type,
|
|
174
|
+
capabilities: reg.capabilities,
|
|
175
|
+
instanceCount: this.instancesByType.get(type)?.size ?? 0
|
|
176
|
+
}));
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* List all active agent instances
|
|
180
|
+
*/
|
|
181
|
+
listInstances() {
|
|
182
|
+
return Array.from(this.instances.entries()).map(([id, agent]) => ({
|
|
183
|
+
id,
|
|
184
|
+
type: agent.config.type,
|
|
185
|
+
name: agent.config.name,
|
|
186
|
+
status: agent.getStatus()
|
|
187
|
+
}));
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Terminate an agent instance
|
|
191
|
+
*/
|
|
192
|
+
async terminateAgent(id) {
|
|
193
|
+
const agent = this.instances.get(id);
|
|
194
|
+
if (!agent) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
try {
|
|
198
|
+
await agent.terminate();
|
|
199
|
+
this.instances.delete(id);
|
|
200
|
+
this.instancesByType.get(agent.config.type)?.delete(id);
|
|
201
|
+
this.logger.info(`Agent terminated: ${id}`);
|
|
202
|
+
return true;
|
|
203
|
+
} catch (error) {
|
|
204
|
+
this.logger.error(
|
|
205
|
+
`Failed to terminate agent: ${id}`,
|
|
206
|
+
error instanceof Error ? error : new Error(String(error))
|
|
207
|
+
);
|
|
208
|
+
this.instances.delete(id);
|
|
209
|
+
this.instancesByType.get(agent.config.type)?.delete(id);
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Terminate all agents of a specific type
|
|
215
|
+
*/
|
|
216
|
+
async terminateByType(type) {
|
|
217
|
+
const ids = this.instancesByType.get(type);
|
|
218
|
+
if (!ids || ids.size === 0) return 0;
|
|
219
|
+
const results = await Promise.allSettled(
|
|
220
|
+
Array.from(ids).map((id) => this.terminateAgent(id))
|
|
221
|
+
);
|
|
222
|
+
return results.filter((r) => r.status === "fulfilled" && r.value).length;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Terminate all agents
|
|
226
|
+
*/
|
|
227
|
+
async terminateAll() {
|
|
228
|
+
const ids = Array.from(this.instances.keys());
|
|
229
|
+
const results = await Promise.allSettled(
|
|
230
|
+
ids.map((id) => this.terminateAgent(id))
|
|
231
|
+
);
|
|
232
|
+
return results.filter((r) => r.status === "fulfilled" && r.value).length;
|
|
233
|
+
}
|
|
234
|
+
// ============================================================================
|
|
235
|
+
// Health Monitoring Methods
|
|
236
|
+
// ============================================================================
|
|
237
|
+
/**
|
|
238
|
+
* Start health monitoring
|
|
239
|
+
*/
|
|
240
|
+
startHealthMonitoring() {
|
|
241
|
+
if (this.healthCheckTimer) {
|
|
242
|
+
clearInterval(this.healthCheckTimer);
|
|
243
|
+
}
|
|
244
|
+
this.healthCheckTimer = setInterval(async () => {
|
|
245
|
+
await this.performHealthChecks();
|
|
246
|
+
}, this.options.healthCheckInterval);
|
|
247
|
+
this.logger.debug("Health monitoring started", {
|
|
248
|
+
interval: this.options.healthCheckInterval
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Stop health monitoring
|
|
253
|
+
*/
|
|
254
|
+
stopHealthMonitoring() {
|
|
255
|
+
if (this.healthCheckTimer) {
|
|
256
|
+
clearInterval(this.healthCheckTimer);
|
|
257
|
+
this.healthCheckTimer = void 0;
|
|
258
|
+
this.logger.debug("Health monitoring stopped");
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Perform health checks on all agents
|
|
263
|
+
*/
|
|
264
|
+
async performHealthChecks() {
|
|
265
|
+
const checks = [];
|
|
266
|
+
for (const [id, agent] of this.instances) {
|
|
267
|
+
const check = {
|
|
268
|
+
agentId: id,
|
|
269
|
+
healthy: true,
|
|
270
|
+
status: agent.getStatus(),
|
|
271
|
+
lastHeartbeat: /* @__PURE__ */ new Date()
|
|
272
|
+
};
|
|
273
|
+
if (agent.state.status === AgentStatus.RUNNING) {
|
|
274
|
+
const stuckThreshold = this.options.defaultTimeout * 2;
|
|
275
|
+
const elapsed = Date.now() - agent.state.lastActivity.getTime();
|
|
276
|
+
if (elapsed > stuckThreshold) {
|
|
277
|
+
check.healthy = false;
|
|
278
|
+
check.error = `Agent appears stuck (${elapsed}ms since last activity)`;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (agent.state.errorCount > 5) {
|
|
282
|
+
check.healthy = false;
|
|
283
|
+
check.error = `High error count: ${agent.state.errorCount}`;
|
|
284
|
+
}
|
|
285
|
+
checks.push(check);
|
|
286
|
+
if (!check.healthy) {
|
|
287
|
+
this.logger.warn(`Unhealthy agent detected: ${id}`, {
|
|
288
|
+
status: check.status,
|
|
289
|
+
error: check.error
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return checks;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get health status for a specific agent
|
|
297
|
+
*/
|
|
298
|
+
async getAgentHealth(id) {
|
|
299
|
+
const agent = this.instances.get(id);
|
|
300
|
+
if (!agent) return null;
|
|
301
|
+
return {
|
|
302
|
+
agentId: id,
|
|
303
|
+
healthy: agent.state.errorCount < 5,
|
|
304
|
+
status: agent.getStatus(),
|
|
305
|
+
lastHeartbeat: agent.state.lastActivity,
|
|
306
|
+
error: agent.state.errorCount >= 5 ? `High error count: ${agent.state.errorCount}` : void 0
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
// ============================================================================
|
|
310
|
+
// Utility Methods
|
|
311
|
+
// ============================================================================
|
|
312
|
+
/**
|
|
313
|
+
* Get registry statistics
|
|
314
|
+
*/
|
|
315
|
+
getStats() {
|
|
316
|
+
const instancesByStatus = {};
|
|
317
|
+
for (const agent of this.instances.values()) {
|
|
318
|
+
const status = agent.getStatus();
|
|
319
|
+
instancesByStatus[status] = (instancesByStatus[status] ?? 0) + 1;
|
|
320
|
+
}
|
|
321
|
+
return {
|
|
322
|
+
registeredTypes: this.registrations.size,
|
|
323
|
+
totalInstances: this.instances.size,
|
|
324
|
+
instancesByType: Object.fromEntries(
|
|
325
|
+
Array.from(this.instancesByType.entries()).map(([type, ids]) => [
|
|
326
|
+
type,
|
|
327
|
+
ids.size
|
|
328
|
+
])
|
|
329
|
+
),
|
|
330
|
+
instancesByStatus
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Clear all registrations and instances
|
|
335
|
+
*/
|
|
336
|
+
async clear() {
|
|
337
|
+
await this.terminateAll();
|
|
338
|
+
this.registrations.clear();
|
|
339
|
+
this.stopHealthMonitoring();
|
|
340
|
+
this.logger.info("Registry cleared");
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Dispose of the registry
|
|
344
|
+
*/
|
|
345
|
+
async dispose() {
|
|
346
|
+
await this.clear();
|
|
347
|
+
this.logger.info("Registry disposed");
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
let defaultRegistry = null;
|
|
351
|
+
function getRegistry() {
|
|
352
|
+
if (!defaultRegistry) {
|
|
353
|
+
defaultRegistry = new AgentRegistry();
|
|
354
|
+
}
|
|
355
|
+
return defaultRegistry;
|
|
356
|
+
}
|
|
357
|
+
function createRegistry(options) {
|
|
358
|
+
return new AgentRegistry(options);
|
|
359
|
+
}
|
|
360
|
+
function setDefaultRegistry(registry) {
|
|
361
|
+
defaultRegistry = registry;
|
|
362
|
+
}
|
|
363
|
+
function registerDefaultAgents(registry, factories) {
|
|
364
|
+
const defaultCapabilities = {
|
|
365
|
+
[AgentType.RESEARCHER]: [
|
|
366
|
+
{ name: "search", description: "Information search" },
|
|
367
|
+
{ name: "analyze", description: "Data analysis" }
|
|
368
|
+
],
|
|
369
|
+
[AgentType.CODER]: [
|
|
370
|
+
{ name: "code", description: "Code generation" },
|
|
371
|
+
{ name: "refactor", description: "Code refactoring" }
|
|
372
|
+
],
|
|
373
|
+
[AgentType.TESTER]: [
|
|
374
|
+
{ name: "test", description: "Test generation" },
|
|
375
|
+
{ name: "coverage", description: "Coverage analysis" }
|
|
376
|
+
],
|
|
377
|
+
[AgentType.ANALYST]: [
|
|
378
|
+
{ name: "analyze", description: "Pattern analysis" },
|
|
379
|
+
{ name: "report", description: "Report generation" }
|
|
380
|
+
],
|
|
381
|
+
[AgentType.ARCHITECT]: [
|
|
382
|
+
{ name: "design", description: "System design" },
|
|
383
|
+
{ name: "document", description: "Architecture documentation" }
|
|
384
|
+
],
|
|
385
|
+
[AgentType.REVIEWER]: [
|
|
386
|
+
{ name: "review", description: "Code review" },
|
|
387
|
+
{ name: "feedback", description: "Feedback generation" }
|
|
388
|
+
],
|
|
389
|
+
[AgentType.COORDINATOR]: [
|
|
390
|
+
{ name: "orchestrate", description: "Task orchestration" },
|
|
391
|
+
{ name: "delegate", description: "Task delegation" }
|
|
392
|
+
],
|
|
393
|
+
[AgentType.OPTIMIZER]: [
|
|
394
|
+
{ name: "optimize", description: "Performance optimization" },
|
|
395
|
+
{ name: "benchmark", description: "Benchmarking" }
|
|
396
|
+
],
|
|
397
|
+
[AgentType.DOCUMENTER]: [
|
|
398
|
+
{ name: "document", description: "Documentation generation" },
|
|
399
|
+
{ name: "format", description: "Documentation formatting" }
|
|
400
|
+
],
|
|
401
|
+
[AgentType.CUSTOM]: []
|
|
402
|
+
};
|
|
403
|
+
for (const type of Object.values(AgentType)) {
|
|
404
|
+
const factory = factories?.[type];
|
|
405
|
+
if (factory) {
|
|
406
|
+
registry.register(type, factory, {
|
|
407
|
+
capabilities: defaultCapabilities[type]
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
export {
|
|
413
|
+
AgentRegistry,
|
|
414
|
+
createRegistry,
|
|
415
|
+
getRegistry,
|
|
416
|
+
registerDefaultAgents,
|
|
417
|
+
setDefaultRegistry
|
|
418
|
+
};
|
|
419
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sources":["../../src/agents/registry.ts"],"sourcesContent":["/**\n * Agent Registry\n *\n * Manages agent type registration, instantiation, and lifecycle.\n * Provides a factory pattern for creating agents dynamically.\n *\n * @module agents/registry\n */\n\nimport { getLogger, type Logger } from '../utils/index.js';\nimport {\n AgentType,\n AgentStatus,\n type AgentConfig,\n type AgentFactory,\n type AgentInstance,\n type AgentState,\n type AgentCapability,\n type AgentHealthCheck,\n createAgentId,\n} from './types.js';\n\n// ============================================================================\n// Registry Types\n// ============================================================================\n\n/**\n * Agent registration entry\n */\ninterface AgentRegistration {\n /** Agent type */\n type: AgentType;\n\n /** Factory function */\n factory: AgentFactory;\n\n /** Default configuration */\n defaultConfig?: Partial<AgentConfig>;\n\n /** Agent capabilities */\n capabilities: AgentCapability[];\n\n /** Registration metadata */\n metadata?: Record<string, unknown>;\n\n /** Registration timestamp */\n registeredAt: Date;\n}\n\n/**\n * Registry configuration options\n */\nexport interface RegistryOptions {\n /** Logger instance */\n logger?: Logger;\n\n /** Maximum agents per type */\n maxAgentsPerType?: number;\n\n /** Default task timeout */\n defaultTimeout?: number;\n\n /** Enable health monitoring */\n enableHealthMonitoring?: boolean;\n\n /** Health check interval in ms */\n healthCheckInterval?: number;\n}\n\n/**\n * Agent spawn options\n */\nexport interface SpawnOptions {\n /** Custom agent ID */\n id?: string;\n\n /** Override default configuration */\n configOverrides?: Partial<AgentConfig>;\n\n /** Start immediately after spawn */\n autoStart?: boolean;\n}\n\n// ============================================================================\n// Agent Registry Class\n// ============================================================================\n\n/**\n * Agent Registry\n *\n * Central registry for managing agent types and instances.\n * Supports registration, spawning, lifecycle management, and health monitoring.\n *\n * @example\n * ```typescript\n * const registry = new AgentRegistry();\n *\n * // Register an agent type\n * registry.register(AgentType.RESEARCHER, researcherFactory, {\n * capabilities: [{ name: 'search', description: 'Search capabilities' }]\n * });\n *\n * // Spawn an agent\n * const agent = await registry.spawn(AgentType.RESEARCHER, {\n * name: 'Research Assistant',\n * });\n *\n * // Execute a task\n * const result = await agent.execute(task);\n * ```\n */\nexport class AgentRegistry {\n private registrations: Map<AgentType, AgentRegistration> = new Map();\n private instances: Map<string, AgentInstance> = new Map();\n private instancesByType: Map<AgentType, Set<string>> = new Map();\n private logger: Logger;\n private options: Required<RegistryOptions>;\n private healthCheckTimer?: NodeJS.Timeout;\n\n constructor(options: RegistryOptions = {}) {\n this.logger = options.logger ?? getLogger().child('agent-registry');\n this.options = {\n logger: this.logger,\n maxAgentsPerType: options.maxAgentsPerType ?? 10,\n defaultTimeout: options.defaultTimeout ?? 30000,\n enableHealthMonitoring: options.enableHealthMonitoring ?? false,\n healthCheckInterval: options.healthCheckInterval ?? 30000,\n };\n\n // Initialize type tracking\n for (const type of Object.values(AgentType)) {\n this.instancesByType.set(type, new Set());\n }\n\n // Start health monitoring if enabled\n if (this.options.enableHealthMonitoring) {\n this.startHealthMonitoring();\n }\n }\n\n // ============================================================================\n // Registration Methods\n // ============================================================================\n\n /**\n * Register an agent type with its factory function\n */\n register(\n type: AgentType,\n factory: AgentFactory,\n options?: {\n defaultConfig?: Partial<AgentConfig>;\n capabilities?: AgentCapability[];\n metadata?: Record<string, unknown>;\n }\n ): void {\n if (this.registrations.has(type)) {\n this.logger.warn(`Overwriting existing registration for agent type: ${type}`);\n }\n\n const registration: AgentRegistration = {\n type,\n factory,\n defaultConfig: options?.defaultConfig,\n capabilities: options?.capabilities ?? [],\n metadata: options?.metadata,\n registeredAt: new Date(),\n };\n\n this.registrations.set(type, registration);\n this.logger.info(`Registered agent type: ${type}`, {\n capabilities: registration.capabilities.map(c => c.name),\n });\n }\n\n /**\n * Unregister an agent type\n */\n unregister(type: AgentType): boolean {\n // Terminate all instances of this type first\n const instances = this.instancesByType.get(type);\n if (instances) {\n for (const id of instances) {\n void this.terminateAgent(id);\n }\n }\n\n const result = this.registrations.delete(type);\n if (result) {\n this.logger.info(`Unregistered agent type: ${type}`);\n }\n return result;\n }\n\n /**\n * Check if an agent type is registered\n */\n isRegistered(type: AgentType): boolean {\n return this.registrations.has(type);\n }\n\n /**\n * Get registration info for an agent type\n */\n getRegistration(type: AgentType): AgentRegistration | undefined {\n return this.registrations.get(type);\n }\n\n // ============================================================================\n // Agent Lifecycle Methods\n // ============================================================================\n\n /**\n * Spawn a new agent instance\n */\n async spawn(\n type: AgentType,\n config: Omit<AgentConfig, 'type'>,\n options?: SpawnOptions\n ): Promise<AgentInstance> {\n const registration = this.registrations.get(type);\n if (!registration) {\n throw new Error(`Agent type not registered: ${type}`);\n }\n\n // Check max agents limit\n const existingCount = this.instancesByType.get(type)?.size ?? 0;\n if (existingCount >= this.options.maxAgentsPerType) {\n throw new Error(\n `Maximum agents of type ${type} reached (${this.options.maxAgentsPerType})`\n );\n }\n\n // Merge configurations\n const fullConfig: AgentConfig = {\n ...registration.defaultConfig,\n ...config,\n type,\n id: options?.id ?? createAgentId(type),\n ...options?.configOverrides,\n };\n\n this.logger.debug(`Spawning agent: ${fullConfig.id}`, {\n type,\n name: fullConfig.name,\n });\n\n try {\n // Create agent using factory\n const agent = await registration.factory(fullConfig);\n\n // Track instance\n this.instances.set(fullConfig.id!, agent);\n this.instancesByType.get(type)?.add(fullConfig.id!);\n\n this.logger.info(`Agent spawned: ${fullConfig.id}`, {\n type,\n name: fullConfig.name,\n capabilities: fullConfig.capabilities,\n });\n\n return agent;\n } catch (error) {\n this.logger.error(\n `Failed to spawn agent: ${fullConfig.id}`,\n error instanceof Error ? error : new Error(String(error))\n );\n throw error;\n }\n }\n\n /**\n * Spawn multiple agents in parallel\n */\n async spawnMultiple(\n specs: Array<{\n type: AgentType;\n config: Omit<AgentConfig, 'type'>;\n options?: SpawnOptions;\n }>\n ): Promise<AgentInstance[]> {\n const results = await Promise.allSettled(\n specs.map(spec => this.spawn(spec.type, spec.config, spec.options))\n );\n\n const agents: AgentInstance[] = [];\n const errors: Error[] = [];\n\n for (const result of results) {\n if (result.status === 'fulfilled') {\n agents.push(result.value);\n } else {\n errors.push(result.reason);\n }\n }\n\n if (errors.length > 0) {\n this.logger.warn(`${errors.length} agents failed to spawn`, {\n totalRequested: specs.length,\n spawned: agents.length,\n failed: errors.length,\n });\n }\n\n return agents;\n }\n\n /**\n * Get an agent instance by ID\n */\n get(id: string): AgentInstance | undefined {\n return this.instances.get(id);\n }\n\n /**\n * Get all agent instances\n */\n getAll(): AgentInstance[] {\n return Array.from(this.instances.values());\n }\n\n /**\n * Get agents by type\n */\n getByType(type: AgentType): AgentInstance[] {\n const ids = this.instancesByType.get(type);\n if (!ids) return [];\n\n return Array.from(ids)\n .map(id => this.instances.get(id))\n .filter((agent): agent is AgentInstance => agent !== undefined);\n }\n\n /**\n * List all registered agent types\n */\n listTypes(): Array<{\n type: AgentType;\n capabilities: AgentCapability[];\n instanceCount: number;\n }> {\n return Array.from(this.registrations.entries()).map(([type, reg]) => ({\n type,\n capabilities: reg.capabilities,\n instanceCount: this.instancesByType.get(type)?.size ?? 0,\n }));\n }\n\n /**\n * List all active agent instances\n */\n listInstances(): Array<{\n id: string;\n type: AgentType;\n name: string;\n status: AgentStatus;\n }> {\n return Array.from(this.instances.entries()).map(([id, agent]) => ({\n id,\n type: agent.config.type,\n name: agent.config.name,\n status: agent.getStatus(),\n }));\n }\n\n /**\n * Terminate an agent instance\n */\n async terminateAgent(id: string): Promise<boolean> {\n const agent = this.instances.get(id);\n if (!agent) {\n return false;\n }\n\n try {\n await agent.terminate();\n this.instances.delete(id);\n this.instancesByType.get(agent.config.type)?.delete(id);\n\n this.logger.info(`Agent terminated: ${id}`);\n return true;\n } catch (error) {\n this.logger.error(\n `Failed to terminate agent: ${id}`,\n error instanceof Error ? error : new Error(String(error))\n );\n // Force remove from tracking even if termination failed\n this.instances.delete(id);\n this.instancesByType.get(agent.config.type)?.delete(id);\n return false;\n }\n }\n\n /**\n * Terminate all agents of a specific type\n */\n async terminateByType(type: AgentType): Promise<number> {\n const ids = this.instancesByType.get(type);\n if (!ids || ids.size === 0) return 0;\n\n const results = await Promise.allSettled(\n Array.from(ids).map(id => this.terminateAgent(id))\n );\n\n return results.filter(r => r.status === 'fulfilled' && r.value).length;\n }\n\n /**\n * Terminate all agents\n */\n async terminateAll(): Promise<number> {\n const ids = Array.from(this.instances.keys());\n const results = await Promise.allSettled(\n ids.map(id => this.terminateAgent(id))\n );\n\n return results.filter(r => r.status === 'fulfilled' && r.value).length;\n }\n\n // ============================================================================\n // Health Monitoring Methods\n // ============================================================================\n\n /**\n * Start health monitoring\n */\n private startHealthMonitoring(): void {\n if (this.healthCheckTimer) {\n clearInterval(this.healthCheckTimer);\n }\n\n this.healthCheckTimer = setInterval(async () => {\n await this.performHealthChecks();\n }, this.options.healthCheckInterval);\n\n this.logger.debug('Health monitoring started', {\n interval: this.options.healthCheckInterval,\n });\n }\n\n /**\n * Stop health monitoring\n */\n stopHealthMonitoring(): void {\n if (this.healthCheckTimer) {\n clearInterval(this.healthCheckTimer);\n this.healthCheckTimer = undefined;\n this.logger.debug('Health monitoring stopped');\n }\n }\n\n /**\n * Perform health checks on all agents\n */\n async performHealthChecks(): Promise<AgentHealthCheck[]> {\n const checks: AgentHealthCheck[] = [];\n\n for (const [id, agent] of this.instances) {\n const check: AgentHealthCheck = {\n agentId: id,\n healthy: true,\n status: agent.getStatus(),\n lastHeartbeat: new Date(),\n };\n\n // Check for stuck agents\n if (agent.state.status === AgentStatus.RUNNING) {\n const stuckThreshold = this.options.defaultTimeout * 2;\n const elapsed = Date.now() - agent.state.lastActivity.getTime();\n\n if (elapsed > stuckThreshold) {\n check.healthy = false;\n check.error = `Agent appears stuck (${elapsed}ms since last activity)`;\n }\n }\n\n // Check error count\n if (agent.state.errorCount > 5) {\n check.healthy = false;\n check.error = `High error count: ${agent.state.errorCount}`;\n }\n\n checks.push(check);\n\n if (!check.healthy) {\n this.logger.warn(`Unhealthy agent detected: ${id}`, {\n status: check.status,\n error: check.error,\n });\n }\n }\n\n return checks;\n }\n\n /**\n * Get health status for a specific agent\n */\n async getAgentHealth(id: string): Promise<AgentHealthCheck | null> {\n const agent = this.instances.get(id);\n if (!agent) return null;\n\n return {\n agentId: id,\n healthy: agent.state.errorCount < 5,\n status: agent.getStatus(),\n lastHeartbeat: agent.state.lastActivity,\n error: agent.state.errorCount >= 5\n ? `High error count: ${agent.state.errorCount}`\n : undefined,\n };\n }\n\n // ============================================================================\n // Utility Methods\n // ============================================================================\n\n /**\n * Get registry statistics\n */\n getStats(): {\n registeredTypes: number;\n totalInstances: number;\n instancesByType: Record<string, number>;\n instancesByStatus: Record<string, number>;\n } {\n const instancesByStatus: Record<string, number> = {};\n\n for (const agent of this.instances.values()) {\n const status = agent.getStatus();\n instancesByStatus[status] = (instancesByStatus[status] ?? 0) + 1;\n }\n\n return {\n registeredTypes: this.registrations.size,\n totalInstances: this.instances.size,\n instancesByType: Object.fromEntries(\n Array.from(this.instancesByType.entries()).map(([type, ids]) => [\n type,\n ids.size,\n ])\n ),\n instancesByStatus,\n };\n }\n\n /**\n * Clear all registrations and instances\n */\n async clear(): Promise<void> {\n await this.terminateAll();\n this.registrations.clear();\n this.stopHealthMonitoring();\n this.logger.info('Registry cleared');\n }\n\n /**\n * Dispose of the registry\n */\n async dispose(): Promise<void> {\n await this.clear();\n this.logger.info('Registry disposed');\n }\n}\n\n// ============================================================================\n// Default Registry Instance\n// ============================================================================\n\nlet defaultRegistry: AgentRegistry | null = null;\n\n/**\n * Get or create the default registry instance\n */\nexport function getRegistry(): AgentRegistry {\n if (!defaultRegistry) {\n defaultRegistry = new AgentRegistry();\n }\n return defaultRegistry;\n}\n\n/**\n * Create a new registry instance\n */\nexport function createRegistry(options?: RegistryOptions): AgentRegistry {\n return new AgentRegistry(options);\n}\n\n/**\n * Set the default registry instance\n */\nexport function setDefaultRegistry(registry: AgentRegistry): void {\n defaultRegistry = registry;\n}\n\n// ============================================================================\n// Built-in Agent Registration Helpers\n// ============================================================================\n\n/**\n * Register default agent types with a registry\n *\n * This registers placeholder factories that should be replaced\n * with actual implementations.\n */\nexport function registerDefaultAgents(\n registry: AgentRegistry,\n factories?: Partial<Record<AgentType, AgentFactory>>\n): void {\n const defaultCapabilities: Record<AgentType, AgentCapability[]> = {\n [AgentType.RESEARCHER]: [\n { name: 'search', description: 'Information search' },\n { name: 'analyze', description: 'Data analysis' },\n ],\n [AgentType.CODER]: [\n { name: 'code', description: 'Code generation' },\n { name: 'refactor', description: 'Code refactoring' },\n ],\n [AgentType.TESTER]: [\n { name: 'test', description: 'Test generation' },\n { name: 'coverage', description: 'Coverage analysis' },\n ],\n [AgentType.ANALYST]: [\n { name: 'analyze', description: 'Pattern analysis' },\n { name: 'report', description: 'Report generation' },\n ],\n [AgentType.ARCHITECT]: [\n { name: 'design', description: 'System design' },\n { name: 'document', description: 'Architecture documentation' },\n ],\n [AgentType.REVIEWER]: [\n { name: 'review', description: 'Code review' },\n { name: 'feedback', description: 'Feedback generation' },\n ],\n [AgentType.COORDINATOR]: [\n { name: 'orchestrate', description: 'Task orchestration' },\n { name: 'delegate', description: 'Task delegation' },\n ],\n [AgentType.OPTIMIZER]: [\n { name: 'optimize', description: 'Performance optimization' },\n { name: 'benchmark', description: 'Benchmarking' },\n ],\n [AgentType.DOCUMENTER]: [\n { name: 'document', description: 'Documentation generation' },\n { name: 'format', description: 'Documentation formatting' },\n ],\n [AgentType.CUSTOM]: [],\n };\n\n for (const type of Object.values(AgentType)) {\n const factory = factories?.[type];\n if (factory) {\n registry.register(type, factory, {\n capabilities: defaultCapabilities[type],\n });\n }\n }\n}\n"],"names":[],"mappings":"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"}
|