@weavelogic/knowledge-graph-agent 0.2.0 → 0.4.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 +972 -303
- 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/audit/config.d.ts +150 -0
- package/dist/audit/config.d.ts.map +1 -0
- package/dist/audit/config.js +111 -0
- package/dist/audit/config.js.map +1 -0
- package/dist/audit/index.d.ts +38 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/services/audit-chain.d.ts +276 -0
- package/dist/audit/services/audit-chain.d.ts.map +1 -0
- package/dist/audit/services/audit-chain.js +502 -0
- package/dist/audit/services/audit-chain.js.map +1 -0
- package/dist/audit/services/index.d.ts +11 -0
- package/dist/audit/services/index.d.ts.map +1 -0
- package/dist/audit/services/syndication.d.ts +334 -0
- package/dist/audit/services/syndication.d.ts.map +1 -0
- package/dist/audit/services/syndication.js +589 -0
- package/dist/audit/services/syndication.js.map +1 -0
- package/dist/audit/types.d.ts +453 -0
- package/dist/audit/types.d.ts.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/audit.d.ts +21 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +621 -0
- package/dist/cli/commands/audit.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/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/commands/vector.d.ts +14 -0
- package/dist/cli/commands/vector.d.ts.map +1 -0
- package/dist/cli/commands/vector.js +429 -0
- package/dist/cli/commands/vector.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +12 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +471 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +66 -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/database/schemas/index.d.ts +85 -0
- package/dist/database/schemas/index.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 +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +182 -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/audit/checkpoint.d.ts +58 -0
- package/dist/mcp-server/tools/audit/checkpoint.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/checkpoint.js +73 -0
- package/dist/mcp-server/tools/audit/checkpoint.js.map +1 -0
- package/dist/mcp-server/tools/audit/index.d.ts +53 -0
- package/dist/mcp-server/tools/audit/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/index.js +12 -0
- package/dist/mcp-server/tools/audit/index.js.map +1 -0
- package/dist/mcp-server/tools/audit/query.d.ts +58 -0
- package/dist/mcp-server/tools/audit/query.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/query.js +125 -0
- package/dist/mcp-server/tools/audit/query.js.map +1 -0
- package/dist/mcp-server/tools/audit/sync.d.ts +58 -0
- package/dist/mcp-server/tools/audit/sync.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/sync.js +126 -0
- package/dist/mcp-server/tools/audit/sync.js.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 +16 -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 +753 -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/tools/vector/index.d.ts +12 -0
- package/dist/mcp-server/tools/vector/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/index.js +12 -0
- package/dist/mcp-server/tools/vector/index.js.map +1 -0
- package/dist/mcp-server/tools/vector/search.d.ts +41 -0
- package/dist/mcp-server/tools/vector/search.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/search.js +224 -0
- package/dist/mcp-server/tools/vector/search.js.map +1 -0
- package/dist/mcp-server/tools/vector/trajectory.d.ts +39 -0
- package/dist/mcp-server/tools/vector/trajectory.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/trajectory.js +170 -0
- package/dist/mcp-server/tools/vector/trajectory.js.map +1 -0
- package/dist/mcp-server/tools/vector/upsert.d.ts +44 -0
- package/dist/mcp-server/tools/vector/upsert.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/upsert.js +175 -0
- package/dist/mcp-server/tools/vector/upsert.js.map +1 -0
- package/dist/mcp-server/tools/workflow/index.d.ts +29 -0
- package/dist/mcp-server/tools/workflow/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/index.js +12 -0
- package/dist/mcp-server/tools/workflow/index.js.map +1 -0
- package/dist/mcp-server/tools/workflow/list.d.ts +41 -0
- package/dist/mcp-server/tools/workflow/list.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/list.js +195 -0
- package/dist/mcp-server/tools/workflow/list.js.map +1 -0
- package/dist/mcp-server/tools/workflow/start.d.ts +40 -0
- package/dist/mcp-server/tools/workflow/start.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/start.js +165 -0
- package/dist/mcp-server/tools/workflow/start.js.map +1 -0
- package/dist/mcp-server/tools/workflow/status.d.ts +38 -0
- package/dist/mcp-server/tools/workflow/status.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/status.js +97 -0
- package/dist/mcp-server/tools/workflow/status.js.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/vector/config.d.ts +300 -0
- package/dist/vector/config.d.ts.map +1 -0
- package/dist/vector/config.js +124 -0
- package/dist/vector/config.js.map +1 -0
- package/dist/vector/index.d.ts +50 -0
- package/dist/vector/index.d.ts.map +1 -0
- package/dist/vector/services/index.d.ts +13 -0
- package/dist/vector/services/index.d.ts.map +1 -0
- package/dist/vector/services/trajectory-tracker.d.ts +405 -0
- package/dist/vector/services/trajectory-tracker.d.ts.map +1 -0
- package/dist/vector/services/trajectory-tracker.js +445 -0
- package/dist/vector/services/trajectory-tracker.js.map +1 -0
- package/dist/vector/services/vector-store.d.ts +339 -0
- package/dist/vector/services/vector-store.d.ts.map +1 -0
- package/dist/vector/services/vector-store.js +748 -0
- package/dist/vector/services/vector-store.js.map +1 -0
- package/dist/vector/types.d.ts +677 -0
- package/dist/vector/types.d.ts.map +1 -0
- package/dist/workflow/adapters/goap-adapter.d.ts +196 -0
- package/dist/workflow/adapters/goap-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/goap-adapter.js +706 -0
- package/dist/workflow/adapters/goap-adapter.js.map +1 -0
- package/dist/workflow/adapters/index.d.ts +10 -0
- package/dist/workflow/adapters/index.d.ts.map +1 -0
- package/dist/workflow/config.d.ts +135 -0
- package/dist/workflow/config.d.ts.map +1 -0
- package/dist/workflow/config.js +92 -0
- package/dist/workflow/config.js.map +1 -0
- package/dist/workflow/handlers/index.d.ts +9 -0
- package/dist/workflow/handlers/index.d.ts.map +1 -0
- package/dist/workflow/handlers/webhook-handlers.d.ts +397 -0
- package/dist/workflow/handlers/webhook-handlers.d.ts.map +1 -0
- package/dist/workflow/handlers/webhook-handlers.js +454 -0
- package/dist/workflow/handlers/webhook-handlers.js.map +1 -0
- package/dist/workflow/index.d.ts +42 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/services/index.d.ts +9 -0
- package/dist/workflow/services/index.d.ts.map +1 -0
- package/dist/workflow/services/workflow-service.d.ts +318 -0
- package/dist/workflow/services/workflow-service.d.ts.map +1 -0
- package/dist/workflow/services/workflow-service.js +577 -0
- package/dist/workflow/services/workflow-service.js.map +1 -0
- package/dist/workflow/types.d.ts +470 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/workflows/realtime-collab.d.ts +245 -0
- package/dist/workflow/workflows/realtime-collab.d.ts.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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"}
|