@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 @@
|
|
|
1
|
+
{"version":3,"file":"coder-agent.js","sources":["../../src/agents/coder-agent.ts"],"sourcesContent":["/**\n * Coder Agent\n *\n * Specialized agent for code generation, refactoring suggestions, and optimization.\n * Extends BaseAgent with TDD-oriented approach and knowledge graph integration.\n *\n * @module agents/coder-agent\n */\n\nimport * as path from 'path';\nimport { BaseAgent } from './base-agent.js';\nimport {\n AgentType,\n type AgentTask,\n type AgentResult,\n type CoderAgentConfig,\n type ResultArtifact,\n} from './types.js';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Code generation request\n */\nexport interface CodeGenerationRequest {\n /** Description of what to generate */\n description: string;\n /** Target language */\n language: 'typescript' | 'javascript';\n /** Target file path (optional) */\n targetPath?: string;\n /** Whether to include tests */\n includeTests?: boolean;\n /** Whether to include JSDoc */\n includeJsdoc?: boolean;\n /** Template to use */\n template?: 'class' | 'function' | 'module' | 'component' | 'service';\n /** Context from existing code */\n context?: string;\n}\n\n/**\n * Generated code output\n */\nexport interface GeneratedCode {\n /** Generated source code */\n code: string;\n /** Target file path */\n path: string;\n /** Generated test code (if requested) */\n testCode?: string;\n /** Test file path (if tests generated) */\n testPath?: string;\n /** Imports required */\n imports: string[];\n /** Exports provided */\n exports: string[];\n /** Dependencies to add */\n dependencies?: string[];\n}\n\n/**\n * Refactoring suggestion\n */\nexport interface RefactoringSuggestion {\n /** Type of refactoring */\n type:\n | 'extract-function'\n | 'extract-class'\n | 'rename'\n | 'inline'\n | 'move'\n | 'simplify'\n | 'modernize'\n | 'remove-duplication';\n /** Affected file */\n file: string;\n /** Line range */\n lineRange: { start: number; end: number };\n /** Current code */\n currentCode: string;\n /** Suggested code */\n suggestedCode: string;\n /** Explanation */\n explanation: string;\n /** Priority (1-10) */\n priority: number;\n /** Estimated complexity reduction */\n complexityReduction?: number;\n}\n\n/**\n * Complexity metrics for code\n */\nexport interface ComplexityMetrics {\n /** Cyclomatic complexity */\n cyclomatic: number;\n /** Cognitive complexity */\n cognitive: number;\n /** Lines of code */\n linesOfCode: number;\n /** Number of functions */\n functionCount: number;\n /** Average function length */\n avgFunctionLength: number;\n /** Maximum nesting depth */\n maxNestingDepth: number;\n /** Maintainability index (0-100) */\n maintainabilityIndex: number;\n}\n\n/**\n * Code analysis result\n */\nexport interface CodeAnalysisResult {\n /** File analyzed */\n file: string;\n /** Complexity metrics */\n complexity: ComplexityMetrics;\n /** Refactoring suggestions */\n suggestions: RefactoringSuggestion[];\n /** Detected patterns */\n patterns: string[];\n}\n\n/**\n * Coder task type\n */\nexport type CoderTaskType = 'generate' | 'refactor' | 'analyze' | 'optimize';\n\n// ============================================================================\n// Coder Agent\n// ============================================================================\n\n/**\n * Coder Agent\n *\n * Capabilities:\n * - Code generation from descriptions\n * - Refactoring suggestions\n * - Complexity analysis\n * - TDD-oriented development support\n *\n * @example\n * ```typescript\n * const coder = new CoderAgent({\n * name: 'coder-agent',\n * type: AgentType.CODER,\n * language: 'typescript',\n * });\n *\n * const result = await coder.execute({\n * id: 'task-1',\n * description: 'Generate User service with CRUD operations',\n * priority: TaskPriority.MEDIUM,\n * input: {\n * data: {\n * description: 'User service with CRUD operations',\n * language: 'typescript',\n * template: 'service',\n * includeTests: true\n * }\n * },\n * createdAt: new Date()\n * });\n * ```\n */\nexport class CoderAgent extends BaseAgent {\n constructor(config: Partial<CoderAgentConfig> & { name: string }) {\n super({\n type: AgentType.CODER,\n taskTimeout: 180000, // 3 minutes\n capabilities: ['code-generation', 'refactoring', 'optimization'],\n ...config,\n });\n }\n\n // ==========================================================================\n // Task Execution\n // ==========================================================================\n\n /**\n * Execute coder task\n */\n protected async executeTask(task: AgentTask): Promise<AgentResult> {\n const startTime = new Date();\n const taskType = (task.input?.parameters?.taskType as CoderTaskType) || 'generate';\n\n switch (taskType) {\n case 'generate':\n return this.handleGenerateTask(task, startTime);\n case 'refactor':\n return this.handleRefactorTask(task, startTime);\n case 'analyze':\n return this.handleAnalyzeTask(task, startTime);\n case 'optimize':\n return this.handleOptimizeTask(task, startTime);\n default:\n return this.createErrorResult(\n 'INVALID_TASK_TYPE',\n `Unknown task type: ${taskType}`,\n startTime\n );\n }\n }\n\n // ==========================================================================\n // Public Methods\n // ==========================================================================\n\n /**\n * Generate code from description\n */\n async generateCode(request: CodeGenerationRequest): Promise<GeneratedCode> {\n this.logger.info('Generating code', {\n description: request.description.slice(0, 50),\n template: request.template,\n });\n\n switch (request.template) {\n case 'class':\n return this.generateClass(request);\n case 'function':\n return this.generateFunction(request);\n case 'module':\n return this.generateModule(request);\n case 'component':\n return this.generateComponent(request);\n case 'service':\n return this.generateService(request);\n default:\n return this.generateModule(request);\n }\n }\n\n /**\n * Suggest refactoring for code\n */\n async suggestRefactoring(code: string, filePath: string): Promise<RefactoringSuggestion[]> {\n this.logger.info('Analyzing code for refactoring', { file: filePath });\n\n const suggestions: RefactoringSuggestion[] = [];\n const lines = code.split('\\n');\n\n suggestions.push(...this.findLongFunctions(code, lines, filePath));\n suggestions.push(...this.findDuplicateCode(code, lines, filePath));\n suggestions.push(...this.findModernizationOpportunities(code, lines, filePath));\n suggestions.push(...this.findComplexityIssues(code, lines, filePath));\n\n return suggestions.sort((a, b) => b.priority - a.priority);\n }\n\n /**\n * Analyze code complexity\n */\n async analyzeComplexity(code: string, filePath: string): Promise<ComplexityMetrics> {\n this.logger.debug('Analyzing complexity', { file: filePath });\n\n const lines = code.split('\\n');\n const nonEmptyLines = lines.filter(l => l.trim().length > 0);\n\n const cyclomatic = this.calculateCyclomaticComplexity(code);\n const cognitive = this.calculateCognitiveComplexity(code);\n const functionCount = this.countFunctions(code);\n const avgFunctionLength = this.calculateAverageFunctionLength(code);\n const maxNestingDepth = this.calculateMaxNestingDepth(code);\n\n const halsteadVolume = Math.log2(nonEmptyLines.length + 1) * nonEmptyLines.length;\n const maintainabilityIndex = Math.max(\n 0,\n Math.min(\n 100,\n 171 - 5.2 * Math.log(halsteadVolume) - 0.23 * cyclomatic - 16.2 * Math.log(nonEmptyLines.length)\n )\n );\n\n return {\n cyclomatic,\n cognitive,\n linesOfCode: nonEmptyLines.length,\n functionCount,\n avgFunctionLength: Math.round(avgFunctionLength),\n maxNestingDepth,\n maintainabilityIndex: Math.round(maintainabilityIndex),\n };\n }\n\n // ==========================================================================\n // Private Task Handlers\n // ==========================================================================\n\n private async handleGenerateTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<GeneratedCode>> {\n const request = task.input?.data as CodeGenerationRequest | undefined;\n\n if (!request?.description) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Code generation request with description is required',\n startTime\n ) as AgentResult<GeneratedCode>;\n }\n\n try {\n const generated = await this.generateCode(request);\n const artifacts: ResultArtifact[] = [\n {\n type: 'code',\n name: path.basename(generated.path),\n content: generated.code,\n mimeType: 'text/typescript',\n },\n ];\n\n if (generated.testCode && generated.testPath) {\n artifacts.push({\n type: 'code',\n name: path.basename(generated.testPath),\n content: generated.testCode,\n mimeType: 'text/typescript',\n });\n }\n\n return this.createSuccessResult(generated, startTime, artifacts);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('GENERATION_ERROR', `Code generation failed: ${message}`, startTime) as AgentResult<GeneratedCode>;\n }\n }\n\n private async handleRefactorTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<RefactoringSuggestion[]>> {\n const input = task.input?.data as { code: string; filePath: string } | undefined;\n\n if (!input?.code) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Code and file path are required for refactoring',\n startTime\n ) as AgentResult<RefactoringSuggestion[]>;\n }\n\n try {\n const suggestions = await this.suggestRefactoring(input.code, input.filePath);\n return this.createSuccessResult(suggestions, startTime);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('REFACTOR_ERROR', `Refactoring analysis failed: ${message}`, startTime) as AgentResult<RefactoringSuggestion[]>;\n }\n }\n\n private async handleAnalyzeTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<CodeAnalysisResult>> {\n const input = task.input?.data as { code: string; filePath: string } | undefined;\n\n if (!input?.code) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Code and file path are required for analysis',\n startTime\n ) as AgentResult<CodeAnalysisResult>;\n }\n\n try {\n const complexity = await this.analyzeComplexity(input.code, input.filePath);\n const suggestions = await this.suggestRefactoring(input.code, input.filePath);\n const patterns = this.detectPatterns(input.code);\n\n return this.createSuccessResult({\n file: input.filePath,\n complexity,\n suggestions,\n patterns,\n }, startTime);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('ANALYSIS_ERROR', `Code analysis failed: ${message}`, startTime) as AgentResult<CodeAnalysisResult>;\n }\n }\n\n private async handleOptimizeTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<{ suggestions: RefactoringSuggestion[]; metrics: ComplexityMetrics }>> {\n const input = task.input?.data as { code: string; filePath: string } | undefined;\n\n if (!input?.code) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Code and file path are required for optimization',\n startTime\n ) as AgentResult<{ suggestions: RefactoringSuggestion[]; metrics: ComplexityMetrics }>;\n }\n\n try {\n const metrics = await this.analyzeComplexity(input.code, input.filePath);\n const allSuggestions = await this.suggestRefactoring(input.code, input.filePath);\n\n const optimizationSuggestions = allSuggestions.filter(\n s => s.type === 'simplify' || s.type === 'inline' || s.complexityReduction\n );\n\n return this.createSuccessResult({ suggestions: optimizationSuggestions, metrics }, startTime);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('OPTIMIZATION_ERROR', `Optimization analysis failed: ${message}`, startTime) as AgentResult<{ suggestions: RefactoringSuggestion[]; metrics: ComplexityMetrics }>;\n }\n }\n\n // ==========================================================================\n // Code Generation Methods\n // ==========================================================================\n\n private generateClass(request: CodeGenerationRequest): GeneratedCode {\n const className = this.toClassName(request.description);\n const isTs = request.language === 'typescript';\n\n let code = '';\n const imports: string[] = [];\n const exports: string[] = [className];\n\n if (request.includeJsdoc) {\n code += `/**\\n * ${request.description}\\n *\\n * @class ${className}\\n */\\n`;\n }\n\n code += `export class ${className} {\\n`;\n\n if (isTs) {\n code += ` private readonly logger: Console;\\n\\n`;\n code += ` constructor() {\\n`;\n code += ` this.logger = console;\\n`;\n code += ` }\\n\\n`;\n } else {\n code += ` constructor() {\\n`;\n code += ` this.logger = console;\\n`;\n code += ` }\\n\\n`;\n }\n\n code += ` /**\\n * Initialize the ${className}\\n */\\n`;\n code += ` async initialize()${isTs ? ': Promise<void>' : ''} {\\n`;\n code += ` this.logger.log('${className} initialized');\\n`;\n code += ` }\\n\\n`;\n\n code += ` /**\\n * Dispose resources\\n */\\n`;\n code += ` async dispose()${isTs ? ': Promise<void>' : ''} {\\n`;\n code += ` this.logger.log('${className} disposed');\\n`;\n code += ` }\\n`;\n\n code += `}\\n`;\n\n let testCode: string | undefined;\n let testPath: string | undefined;\n\n if (request.includeTests) {\n testCode = this.generateClassTest(className, isTs);\n testPath = request.targetPath?.replace(/\\.(ts|js)$/, '.test.$1')\n || `${this.toFileName(className)}.test.${isTs ? 'ts' : 'js'}`;\n }\n\n return {\n code,\n path: request.targetPath || `${this.toFileName(className)}.${isTs ? 'ts' : 'js'}`,\n testCode,\n testPath,\n imports,\n exports,\n };\n }\n\n private generateFunction(request: CodeGenerationRequest): GeneratedCode {\n const funcName = this.toFunctionName(request.description);\n const isTs = request.language === 'typescript';\n\n let code = '';\n const imports: string[] = [];\n const exports: string[] = [funcName];\n\n if (request.includeJsdoc) {\n code += `/**\\n * ${request.description}\\n *\\n * @param options - Configuration options\\n * @returns Result of the operation\\n */\\n`;\n }\n\n if (isTs) {\n code += `export async function ${funcName}(\\n`;\n code += ` options: Record<string, unknown> = {}\\n`;\n code += `): Promise<{ success: boolean; data?: unknown; error?: string }> {\\n`;\n } else {\n code += `export async function ${funcName}(options = {}) {\\n`;\n }\n\n code += ` try {\\n`;\n code += ` // TODO: Implement ${funcName}\\n`;\n code += ` console.log('Executing ${funcName}', options);\\n`;\n code += ` return { success: true };\\n`;\n code += ` } catch (error) {\\n`;\n code += ` const message = error instanceof Error ? error.message : String(error);\\n`;\n code += ` return { success: false, error: message };\\n`;\n code += ` }\\n`;\n code += `}\\n`;\n\n let testCode: string | undefined;\n let testPath: string | undefined;\n\n if (request.includeTests) {\n testCode = this.generateFunctionTest(funcName, isTs);\n testPath = request.targetPath?.replace(/\\.(ts|js)$/, '.test.$1')\n || `${this.toFileName(funcName)}.test.${isTs ? 'ts' : 'js'}`;\n }\n\n return {\n code,\n path: request.targetPath || `${this.toFileName(funcName)}.${isTs ? 'ts' : 'js'}`,\n testCode,\n testPath,\n imports,\n exports,\n };\n }\n\n private generateModule(request: CodeGenerationRequest): GeneratedCode {\n const moduleName = this.toModuleName(request.description);\n const isTs = request.language === 'typescript';\n\n let code = '';\n const imports: string[] = [];\n const exports: string[] = [];\n\n code += `/**\\n * ${request.description}\\n *\\n * @module ${moduleName}\\n */\\n\\n`;\n\n if (isTs) {\n code += `// ============================================================================\\n`;\n code += `// Types\\n`;\n code += `// ============================================================================\\n\\n`;\n code += `export interface ${this.toClassName(moduleName)}Options {\\n`;\n code += ` /** Enable debug mode */\\n`;\n code += ` debug?: boolean;\\n`;\n code += ` /** Configuration object */\\n`;\n code += ` config?: Record<string, unknown>;\\n`;\n code += `}\\n\\n`;\n exports.push(`${this.toClassName(moduleName)}Options`);\n }\n\n code += `// ============================================================================\\n`;\n code += `// Main Functions\\n`;\n code += `// ============================================================================\\n\\n`;\n\n const mainFunc = this.toFunctionName(`create ${moduleName}`);\n exports.push(mainFunc);\n\n if (request.includeJsdoc) {\n code += `/**\\n * Create and initialize ${moduleName}\\n */\\n`;\n }\n\n if (isTs) {\n code += `export function ${mainFunc}(\\n`;\n code += ` options: ${this.toClassName(moduleName)}Options = {}\\n`;\n code += `): { initialized: boolean } {\\n`;\n } else {\n code += `export function ${mainFunc}(options = {}) {\\n`;\n }\n\n code += ` if (options.debug) {\\n`;\n code += ` console.log('Creating ${moduleName}', options);\\n`;\n code += ` }\\n\\n`;\n code += ` return { initialized: true };\\n`;\n code += `}\\n`;\n\n return {\n code,\n path: request.targetPath || `${this.toFileName(moduleName)}.${isTs ? 'ts' : 'js'}`,\n imports,\n exports,\n };\n }\n\n private generateComponent(request: CodeGenerationRequest): GeneratedCode {\n const componentName = this.toClassName(request.description);\n const isTs = request.language === 'typescript';\n\n let code = '';\n const imports = ['React'];\n const exports = [componentName];\n\n if (isTs) {\n code += `export interface ${componentName}Props {\\n`;\n code += ` /** Component children */\\n`;\n code += ` children?: React.ReactNode;\\n`;\n code += ` /** Additional CSS classes */\\n`;\n code += ` className?: string;\\n`;\n code += `}\\n\\n`;\n }\n\n if (request.includeJsdoc) {\n code += `/**\\n * ${request.description}\\n */\\n`;\n }\n\n if (isTs) {\n code += `export const ${componentName}: React.FC<${componentName}Props> = ({\\n`;\n code += ` children,\\n`;\n code += ` className = '',\\n`;\n code += `}) => {\\n`;\n } else {\n code += `export const ${componentName} = ({ children, className = '' }) => {\\n`;\n }\n\n code += ` return (\\n`;\n code += ` <div className={\\`${this.toKebabCase(componentName)} \\${className}\\`}>\\n`;\n code += ` {children}\\n`;\n code += ` </div>\\n`;\n code += ` );\\n`;\n code += `};\\n`;\n\n return {\n code: `import React from 'react';\\n\\n${code}`,\n path: request.targetPath || `${componentName}.${isTs ? 'tsx' : 'jsx'}`,\n imports,\n exports,\n dependencies: ['react'],\n };\n }\n\n private generateService(request: CodeGenerationRequest): GeneratedCode {\n const serviceName = this.toClassName(request.description);\n const isTs = request.language === 'typescript';\n\n let code = '';\n const imports: string[] = [];\n const exports = [serviceName];\n\n if (request.includeJsdoc) {\n code += `/**\\n * ${request.description}\\n *\\n * @class ${serviceName}\\n */\\n`;\n }\n\n code += `export class ${serviceName} {\\n`;\n\n if (isTs) {\n code += ` private initialized: boolean = false;\\n\\n`;\n } else {\n code += ` initialized = false;\\n\\n`;\n }\n\n code += ` constructor() {\\n`;\n code += ` this.initialized = false;\\n`;\n code += ` }\\n\\n`;\n\n code += ` /**\\n * Initialize the service\\n */\\n`;\n code += ` async initialize()${isTs ? ': Promise<void>' : ''} {\\n`;\n code += ` if (this.initialized) return;\\n`;\n code += ` // TODO: Add initialization logic\\n`;\n code += ` this.initialized = true;\\n`;\n code += ` }\\n\\n`;\n\n const entityName = this.extractEntityName(request.description);\n\n code += ` /**\\n * Create a new ${entityName}\\n */\\n`;\n code += ` async create(data${isTs ? ': Record<string, unknown>' : ''})${isTs ? ': Promise<{ id: string; data: Record<string, unknown> }>' : ''} {\\n`;\n code += ` const id = crypto.randomUUID();\\n`;\n code += ` return { id, data };\\n`;\n code += ` }\\n\\n`;\n\n code += ` /**\\n * Get ${entityName} by ID\\n */\\n`;\n code += ` async getById(id${isTs ? ': string' : ''})${isTs ? ': Promise<Record<string, unknown> | null>' : ''} {\\n`;\n code += ` // TODO: Implement get by ID\\n`;\n code += ` return null;\\n`;\n code += ` }\\n\\n`;\n\n code += ` /**\\n * Update ${entityName}\\n */\\n`;\n code += ` async update(id${isTs ? ': string' : ''}, data${isTs ? ': Record<string, unknown>' : ''})${isTs ? ': Promise<boolean>' : ''} {\\n`;\n code += ` // TODO: Implement update\\n`;\n code += ` return true;\\n`;\n code += ` }\\n\\n`;\n\n code += ` /**\\n * Delete ${entityName}\\n */\\n`;\n code += ` async delete(id${isTs ? ': string' : ''})${isTs ? ': Promise<boolean>' : ''} {\\n`;\n code += ` // TODO: Implement delete\\n`;\n code += ` return true;\\n`;\n code += ` }\\n`;\n\n code += `}\\n`;\n\n let testCode: string | undefined;\n let testPath: string | undefined;\n\n if (request.includeTests) {\n testCode = this.generateServiceTest(serviceName, isTs);\n testPath = request.targetPath?.replace(/\\.(ts|js)$/, '.test.$1')\n || `${this.toFileName(serviceName)}.test.${isTs ? 'ts' : 'js'}`;\n }\n\n return {\n code,\n path: request.targetPath || `${this.toFileName(serviceName)}.${isTs ? 'ts' : 'js'}`,\n testCode,\n testPath,\n imports,\n exports,\n };\n }\n\n // ==========================================================================\n // Test Generation Methods\n // ==========================================================================\n\n private generateClassTest(className: string, isTs: boolean): string {\n let code = '';\n code += `import { describe, it, expect, beforeEach } from 'vitest';\\n`;\n code += `import { ${className} } from './${this.toFileName(className)}';\\n\\n`;\n\n code += `describe('${className}', () => {\\n`;\n code += ` let instance${isTs ? `: ${className}` : ''};\\n\\n`;\n\n code += ` beforeEach(() => {\\n`;\n code += ` instance = new ${className}();\\n`;\n code += ` });\\n\\n`;\n\n code += ` describe('initialize', () => {\\n`;\n code += ` it('should initialize successfully', async () => {\\n`;\n code += ` await expect(instance.initialize()).resolves.toBeUndefined();\\n`;\n code += ` });\\n`;\n code += ` });\\n\\n`;\n\n code += ` describe('dispose', () => {\\n`;\n code += ` it('should dispose resources', async () => {\\n`;\n code += ` await expect(instance.dispose()).resolves.toBeUndefined();\\n`;\n code += ` });\\n`;\n code += ` });\\n`;\n\n code += `});\\n`;\n\n return code;\n }\n\n private generateFunctionTest(funcName: string, isTs: boolean): string {\n let code = '';\n code += `import { describe, it, expect } from 'vitest';\\n`;\n code += `import { ${funcName} } from './${this.toFileName(funcName)}';\\n\\n`;\n\n code += `describe('${funcName}', () => {\\n`;\n\n code += ` it('should execute successfully with default options', async () => {\\n`;\n code += ` const result = await ${funcName}();\\n`;\n code += ` expect(result.success).toBe(true);\\n`;\n code += ` });\\n\\n`;\n\n code += ` it('should handle options correctly', async () => {\\n`;\n code += ` const result = await ${funcName}({ key: 'value' });\\n`;\n code += ` expect(result.success).toBe(true);\\n`;\n code += ` });\\n`;\n\n code += `});\\n`;\n\n return code;\n }\n\n private generateServiceTest(serviceName: string, isTs: boolean): string {\n let code = '';\n code += `import { describe, it, expect, beforeEach } from 'vitest';\\n`;\n code += `import { ${serviceName} } from './${this.toFileName(serviceName)}';\\n\\n`;\n\n code += `describe('${serviceName}', () => {\\n`;\n code += ` let service${isTs ? `: ${serviceName}` : ''};\\n\\n`;\n\n code += ` beforeEach(() => {\\n`;\n code += ` service = new ${serviceName}();\\n`;\n code += ` });\\n\\n`;\n\n code += ` describe('initialize', () => {\\n`;\n code += ` it('should initialize the service', async () => {\\n`;\n code += ` await service.initialize();\\n`;\n code += ` expect(service['initialized']).toBe(true);\\n`;\n code += ` });\\n\\n`;\n\n code += ` it('should be idempotent', async () => {\\n`;\n code += ` await service.initialize();\\n`;\n code += ` await service.initialize();\\n`;\n code += ` expect(service['initialized']).toBe(true);\\n`;\n code += ` });\\n`;\n code += ` });\\n\\n`;\n\n code += ` describe('CRUD operations', () => {\\n`;\n code += ` it('should create an entity', async () => {\\n`;\n code += ` const result = await service.create({ name: 'test' });\\n`;\n code += ` expect(result.id).toBeDefined();\\n`;\n code += ` expect(result.data).toEqual({ name: 'test' });\\n`;\n code += ` });\\n\\n`;\n\n code += ` it('should return null for non-existent entity', async () => {\\n`;\n code += ` const result = await service.getById('non-existent');\\n`;\n code += ` expect(result).toBeNull();\\n`;\n code += ` });\\n`;\n code += ` });\\n`;\n\n code += `});\\n`;\n\n return code;\n }\n\n // ==========================================================================\n // Refactoring Detection Methods\n // ==========================================================================\n\n private findLongFunctions(code: string, lines: string[], filePath: string): RefactoringSuggestion[] {\n const suggestions: RefactoringSuggestion[] = [];\n const functionRegex = /(?:function\\s+(\\w+)|(\\w+)\\s*[=:]\\s*(?:async\\s+)?(?:\\([^)]*\\)|[\\w]+)\\s*=>)/g;\n\n let match;\n while ((match = functionRegex.exec(code)) !== null) {\n const funcName = match[1] || match[2];\n const startLine = code.slice(0, match.index).split('\\n').length;\n\n let braceCount = 0;\n let endLine = startLine;\n let inFunction = false;\n\n for (let i = startLine - 1; i < lines.length; i++) {\n const line = lines[i];\n for (const char of line) {\n if (char === '{') {\n braceCount++;\n inFunction = true;\n } else if (char === '}') {\n braceCount--;\n if (inFunction && braceCount === 0) {\n endLine = i + 1;\n break;\n }\n }\n }\n if (inFunction && braceCount === 0) break;\n }\n\n const functionLength = endLine - startLine + 1;\n if (functionLength > 30) {\n suggestions.push({\n type: 'extract-function',\n file: filePath,\n lineRange: { start: startLine, end: endLine },\n currentCode: lines.slice(startLine - 1, endLine).join('\\n'),\n suggestedCode: `// Consider extracting parts of ${funcName} into smaller functions`,\n explanation: `Function '${funcName}' is ${functionLength} lines long. Consider breaking it into smaller, focused functions.`,\n priority: functionLength > 50 ? 8 : 5,\n complexityReduction: Math.min(30, functionLength - 20),\n });\n }\n }\n\n return suggestions;\n }\n\n private findDuplicateCode(code: string, lines: string[], filePath: string): RefactoringSuggestion[] {\n const suggestions: RefactoringSuggestion[] = [];\n const codeBlocks = new Map<string, number[]>();\n\n for (let i = 0; i < lines.length - 2; i++) {\n const block = lines.slice(i, i + 3).join('\\n').trim();\n if (block.length > 30) {\n const normalized = block.replace(/\\s+/g, ' ');\n if (!codeBlocks.has(normalized)) {\n codeBlocks.set(normalized, []);\n }\n codeBlocks.get(normalized)!.push(i + 1);\n }\n }\n\n for (const [_, lineNumbers] of codeBlocks) {\n if (lineNumbers.length > 1) {\n suggestions.push({\n type: 'remove-duplication',\n file: filePath,\n lineRange: { start: lineNumbers[0], end: lineNumbers[0] + 2 },\n currentCode: lines.slice(lineNumbers[0] - 1, lineNumbers[0] + 2).join('\\n'),\n suggestedCode: '// Extract duplicated code into a reusable function',\n explanation: `Similar code found at lines ${lineNumbers.join(', ')}. Consider extracting into a shared function.`,\n priority: 6,\n });\n break;\n }\n }\n\n return suggestions;\n }\n\n private findModernizationOpportunities(code: string, lines: string[], filePath: string): RefactoringSuggestion[] {\n const suggestions: RefactoringSuggestion[] = [];\n\n const varMatches = code.matchAll(/\\bvar\\s+(\\w+)/g);\n for (const match of varMatches) {\n const lineNum = code.slice(0, match.index).split('\\n').length;\n suggestions.push({\n type: 'modernize',\n file: filePath,\n lineRange: { start: lineNum, end: lineNum },\n currentCode: lines[lineNum - 1],\n suggestedCode: lines[lineNum - 1].replace(/\\bvar\\b/, 'const'),\n explanation: `Replace 'var' with 'const' or 'let' for better scoping.`,\n priority: 3,\n });\n }\n\n if (code.includes('.then(') && !code.includes('async')) {\n const thenMatch = code.match(/\\.then\\s*\\(/);\n if (thenMatch) {\n const lineNum = code.slice(0, thenMatch.index).split('\\n').length;\n suggestions.push({\n type: 'modernize',\n file: filePath,\n lineRange: { start: lineNum, end: lineNum },\n currentCode: lines[lineNum - 1],\n suggestedCode: '// Consider using async/await instead of .then()',\n explanation: 'Consider converting Promise chains to async/await for better readability.',\n priority: 4,\n });\n }\n }\n\n return suggestions;\n }\n\n private findComplexityIssues(code: string, lines: string[], filePath: string): RefactoringSuggestion[] {\n const suggestions: RefactoringSuggestion[] = [];\n\n let maxNesting = 0;\n let maxNestingLine = 0;\n let currentNesting = 0;\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n currentNesting += (line.match(/{/g) || []).length;\n currentNesting -= (line.match(/}/g) || []).length;\n\n if (currentNesting > maxNesting) {\n maxNesting = currentNesting;\n maxNestingLine = i + 1;\n }\n }\n\n if (maxNesting > 4) {\n suggestions.push({\n type: 'simplify',\n file: filePath,\n lineRange: { start: maxNestingLine, end: maxNestingLine },\n currentCode: lines[maxNestingLine - 1],\n suggestedCode: '// Consider early returns or extracting nested logic',\n explanation: `Deep nesting (${maxNesting} levels) detected. Consider using early returns or extracting nested logic.`,\n priority: 7,\n complexityReduction: maxNesting - 3,\n });\n }\n\n return suggestions;\n }\n\n // ==========================================================================\n // Complexity Calculation Methods\n // ==========================================================================\n\n private calculateCyclomaticComplexity(code: string): number {\n let complexity = 1;\n\n const patterns = [\n /\\bif\\s*\\(/g,\n /\\belse\\s+if\\s*\\(/g,\n /\\bfor\\s*\\(/g,\n /\\bwhile\\s*\\(/g,\n /\\bcase\\s+/g,\n /\\bcatch\\s*\\(/g,\n /\\?\\s*[^:]+\\s*:/g,\n /&&/g,\n /\\|\\|/g,\n ];\n\n for (const pattern of patterns) {\n const matches = code.match(pattern);\n if (matches) {\n complexity += matches.length;\n }\n }\n\n return complexity;\n }\n\n private calculateCognitiveComplexity(code: string): number {\n let complexity = 0;\n let nestingLevel = 0;\n\n const lines = code.split('\\n');\n\n for (const line of lines) {\n if (/\\b(if|for|while|switch)\\s*\\(/.test(line)) {\n complexity += 1 + nestingLevel;\n nestingLevel++;\n }\n\n if (/\\belse\\b/.test(line)) {\n complexity += 1;\n }\n\n const closingBraces = (line.match(/}/g) || []).length;\n nestingLevel = Math.max(0, nestingLevel - closingBraces);\n\n const logicalOps = (line.match(/&&|\\|\\|/g) || []).length;\n complexity += logicalOps;\n }\n\n return complexity;\n }\n\n private countFunctions(code: string): number {\n const functionPatterns = [\n /function\\s+\\w+/g,\n /\\w+\\s*[=:]\\s*(?:async\\s+)?function/g,\n /\\w+\\s*[=:]\\s*(?:async\\s+)?\\([^)]*\\)\\s*=>/g,\n ];\n\n let count = 0;\n for (const pattern of functionPatterns) {\n const matches = code.match(pattern);\n if (matches) {\n count += matches.length;\n }\n }\n\n return count;\n }\n\n private calculateAverageFunctionLength(code: string): number {\n const functionCount = this.countFunctions(code);\n if (functionCount === 0) return 0;\n\n const lines = code.split('\\n').filter(l => l.trim().length > 0);\n return lines.length / functionCount;\n }\n\n private calculateMaxNestingDepth(code: string): number {\n let maxDepth = 0;\n let currentDepth = 0;\n\n for (const char of code) {\n if (char === '{') {\n currentDepth++;\n maxDepth = Math.max(maxDepth, currentDepth);\n } else if (char === '}') {\n currentDepth = Math.max(0, currentDepth - 1);\n }\n }\n\n return maxDepth;\n }\n\n // ==========================================================================\n // Pattern Detection\n // ==========================================================================\n\n private detectPatterns(code: string): string[] {\n const patterns: string[] = [];\n\n const patternChecks: Array<{ name: string; regex: RegExp }> = [\n { name: 'Singleton', regex: /getInstance\\s*\\(|private\\s+static\\s+instance/ },\n { name: 'Factory', regex: /create[A-Z]\\w+\\s*\\(|factory/i },\n { name: 'Observer', regex: /subscribe\\s*\\(|addEventListener|emit\\s*\\(/ },\n { name: 'Async/Await', regex: /async\\s+\\w+[\\s\\S]*?await\\s+/ },\n { name: 'Error Handling', regex: /try\\s*\\{[\\s\\S]*?catch/ },\n ];\n\n for (const check of patternChecks) {\n if (check.regex.test(code)) {\n patterns.push(check.name);\n }\n }\n\n return patterns;\n }\n\n // ==========================================================================\n // Utility Methods\n // ==========================================================================\n\n private toClassName(description: string): string {\n return description\n .replace(/[^a-zA-Z0-9\\s]/g, '')\n .split(/\\s+/)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join('');\n }\n\n private toFunctionName(description: string): string {\n const words = description\n .replace(/[^a-zA-Z0-9\\s]/g, '')\n .split(/\\s+/)\n .filter(w => w.length > 0);\n\n if (words.length === 0) return 'doSomething';\n\n return words[0].toLowerCase() +\n words.slice(1).map(w => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()).join('');\n }\n\n private toModuleName(description: string): string {\n return description\n .replace(/[^a-zA-Z0-9\\s]/g, '')\n .split(/\\s+/)\n .join('-')\n .toLowerCase();\n }\n\n private toFileName(name: string): string {\n return name\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase();\n }\n\n private toKebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase();\n }\n\n private extractEntityName(description: string): string {\n const match = description.match(/(\\w+)\\s*service/i);\n if (match) return match[1].toLowerCase();\n\n const words = description.split(/\\s+/);\n return words[0]?.toLowerCase() || 'entity';\n }\n}\n\n"],"names":["exports"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agents Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the agent system for multi-agent orchestration including
|
|
5
|
+
* type definitions, registry management, and base agent implementation.
|
|
6
|
+
*
|
|
7
|
+
* @module agents
|
|
8
|
+
*/
|
|
9
|
+
export { AgentType, AgentStatus, TaskPriority, MessageType, type AgentConfig, type ResearcherAgentConfig, type CoderAgentConfig, type TesterAgentConfig, type AnalystAgentConfig, type ArchitectAgentConfig, type SpecializedAgentConfig, type TaskInput, type AgentTask, type AgentResult, type AgentError, type ExecutionMetrics, type ResultArtifact, type AgentMessage, type TaskRequestMessage, type TaskResponseMessage, type StatusMessage, type ErrorMessage, type CoordinationMessage, type AgentMessageUnion, type AgentState, type AgentFactory, type AgentInstance, type AgentCapability, type AgentHealthCheck, createMessageId, createTaskId, createAgentId, } from './types.js';
|
|
10
|
+
export { AgentRegistry, getRegistry, createRegistry, setDefaultRegistry, registerDefaultAgents, type RegistryOptions, type SpawnOptions, } from './registry.js';
|
|
11
|
+
export { BaseAgent, createTask, isAgentResult, isAgentError, } from './base-agent.js';
|
|
12
|
+
export { RulesEngine, createRulesEngine, createRule, createConditionalRule, createFileChangeLogRule, createGraphUpdateNotificationRule, createAgentCompletionRule, type RuleTrigger, type RulePriority, type RuleExecutionStatus, type RuleContext, type RuleCondition, type RuleAction, type AgentRule, type RuleExecutionLog, type RuleStatistics, type EngineStatistics, type RulesEngineConfig, } from './rules-engine.js';
|
|
13
|
+
export { ResearcherAgent } from './researcher-agent.js';
|
|
14
|
+
export { CoderAgent } from './coder-agent.js';
|
|
15
|
+
export { TesterAgent } from './tester-agent.js';
|
|
16
|
+
export { AnalystAgent } from './analyst-agent.js';
|
|
17
|
+
export { ArchitectAgent } from './architect-agent.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAEL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EAGX,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAG3B,KAAK,SAAS,EACd,KAAK,SAAS,EAGd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAGnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAGtB,KAAK,UAAU,EAGf,KAAK,YAAY,EACjB,KAAK,aAAa,EAGlB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAGrB,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,iCAAiC,EACjC,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AgentStatus, AgentType, MessageType, TaskPriority, createAgentId, createMessageId, createTaskId } from "./types.js";
|
|
2
|
+
import { AgentRegistry, createRegistry, getRegistry, registerDefaultAgents, setDefaultRegistry } from "./registry.js";
|
|
3
|
+
import { BaseAgent, createTask, isAgentError, isAgentResult } from "./base-agent.js";
|
|
4
|
+
import { RulesEngine, createAgentCompletionRule, createConditionalRule, createFileChangeLogRule, createGraphUpdateNotificationRule, createRule, createRulesEngine } from "./rules-engine.js";
|
|
5
|
+
import { ResearcherAgent } from "./researcher-agent.js";
|
|
6
|
+
import { CoderAgent } from "./coder-agent.js";
|
|
7
|
+
import { TesterAgent } from "./tester-agent.js";
|
|
8
|
+
import { AnalystAgent } from "./analyst-agent.js";
|
|
9
|
+
import { ArchitectAgent } from "./architect-agent.js";
|
|
10
|
+
export {
|
|
11
|
+
AgentRegistry,
|
|
12
|
+
AgentStatus,
|
|
13
|
+
AgentType,
|
|
14
|
+
AnalystAgent,
|
|
15
|
+
ArchitectAgent,
|
|
16
|
+
BaseAgent,
|
|
17
|
+
CoderAgent,
|
|
18
|
+
MessageType,
|
|
19
|
+
ResearcherAgent,
|
|
20
|
+
RulesEngine,
|
|
21
|
+
TaskPriority,
|
|
22
|
+
TesterAgent,
|
|
23
|
+
createAgentCompletionRule,
|
|
24
|
+
createAgentId,
|
|
25
|
+
createConditionalRule,
|
|
26
|
+
createFileChangeLogRule,
|
|
27
|
+
createGraphUpdateNotificationRule,
|
|
28
|
+
createMessageId,
|
|
29
|
+
createRegistry,
|
|
30
|
+
createRule,
|
|
31
|
+
createRulesEngine,
|
|
32
|
+
createTask,
|
|
33
|
+
createTaskId,
|
|
34
|
+
getRegistry,
|
|
35
|
+
isAgentError,
|
|
36
|
+
isAgentResult,
|
|
37
|
+
registerDefaultAgents,
|
|
38
|
+
setDefaultRegistry
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Registry
|
|
3
|
+
*
|
|
4
|
+
* Manages agent type registration, instantiation, and lifecycle.
|
|
5
|
+
* Provides a factory pattern for creating agents dynamically.
|
|
6
|
+
*
|
|
7
|
+
* @module agents/registry
|
|
8
|
+
*/
|
|
9
|
+
import { type Logger } from '../utils/index.js';
|
|
10
|
+
import { AgentType, AgentStatus, type AgentConfig, type AgentFactory, type AgentInstance, type AgentCapability, type AgentHealthCheck } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Agent registration entry
|
|
13
|
+
*/
|
|
14
|
+
interface AgentRegistration {
|
|
15
|
+
/** Agent type */
|
|
16
|
+
type: AgentType;
|
|
17
|
+
/** Factory function */
|
|
18
|
+
factory: AgentFactory;
|
|
19
|
+
/** Default configuration */
|
|
20
|
+
defaultConfig?: Partial<AgentConfig>;
|
|
21
|
+
/** Agent capabilities */
|
|
22
|
+
capabilities: AgentCapability[];
|
|
23
|
+
/** Registration metadata */
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
/** Registration timestamp */
|
|
26
|
+
registeredAt: Date;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Registry configuration options
|
|
30
|
+
*/
|
|
31
|
+
export interface RegistryOptions {
|
|
32
|
+
/** Logger instance */
|
|
33
|
+
logger?: Logger;
|
|
34
|
+
/** Maximum agents per type */
|
|
35
|
+
maxAgentsPerType?: number;
|
|
36
|
+
/** Default task timeout */
|
|
37
|
+
defaultTimeout?: number;
|
|
38
|
+
/** Enable health monitoring */
|
|
39
|
+
enableHealthMonitoring?: boolean;
|
|
40
|
+
/** Health check interval in ms */
|
|
41
|
+
healthCheckInterval?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Agent spawn options
|
|
45
|
+
*/
|
|
46
|
+
export interface SpawnOptions {
|
|
47
|
+
/** Custom agent ID */
|
|
48
|
+
id?: string;
|
|
49
|
+
/** Override default configuration */
|
|
50
|
+
configOverrides?: Partial<AgentConfig>;
|
|
51
|
+
/** Start immediately after spawn */
|
|
52
|
+
autoStart?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Agent Registry
|
|
56
|
+
*
|
|
57
|
+
* Central registry for managing agent types and instances.
|
|
58
|
+
* Supports registration, spawning, lifecycle management, and health monitoring.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const registry = new AgentRegistry();
|
|
63
|
+
*
|
|
64
|
+
* // Register an agent type
|
|
65
|
+
* registry.register(AgentType.RESEARCHER, researcherFactory, {
|
|
66
|
+
* capabilities: [{ name: 'search', description: 'Search capabilities' }]
|
|
67
|
+
* });
|
|
68
|
+
*
|
|
69
|
+
* // Spawn an agent
|
|
70
|
+
* const agent = await registry.spawn(AgentType.RESEARCHER, {
|
|
71
|
+
* name: 'Research Assistant',
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* // Execute a task
|
|
75
|
+
* const result = await agent.execute(task);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare class AgentRegistry {
|
|
79
|
+
private registrations;
|
|
80
|
+
private instances;
|
|
81
|
+
private instancesByType;
|
|
82
|
+
private logger;
|
|
83
|
+
private options;
|
|
84
|
+
private healthCheckTimer?;
|
|
85
|
+
constructor(options?: RegistryOptions);
|
|
86
|
+
/**
|
|
87
|
+
* Register an agent type with its factory function
|
|
88
|
+
*/
|
|
89
|
+
register(type: AgentType, factory: AgentFactory, options?: {
|
|
90
|
+
defaultConfig?: Partial<AgentConfig>;
|
|
91
|
+
capabilities?: AgentCapability[];
|
|
92
|
+
metadata?: Record<string, unknown>;
|
|
93
|
+
}): void;
|
|
94
|
+
/**
|
|
95
|
+
* Unregister an agent type
|
|
96
|
+
*/
|
|
97
|
+
unregister(type: AgentType): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Check if an agent type is registered
|
|
100
|
+
*/
|
|
101
|
+
isRegistered(type: AgentType): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Get registration info for an agent type
|
|
104
|
+
*/
|
|
105
|
+
getRegistration(type: AgentType): AgentRegistration | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* Spawn a new agent instance
|
|
108
|
+
*/
|
|
109
|
+
spawn(type: AgentType, config: Omit<AgentConfig, 'type'>, options?: SpawnOptions): Promise<AgentInstance>;
|
|
110
|
+
/**
|
|
111
|
+
* Spawn multiple agents in parallel
|
|
112
|
+
*/
|
|
113
|
+
spawnMultiple(specs: Array<{
|
|
114
|
+
type: AgentType;
|
|
115
|
+
config: Omit<AgentConfig, 'type'>;
|
|
116
|
+
options?: SpawnOptions;
|
|
117
|
+
}>): Promise<AgentInstance[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Get an agent instance by ID
|
|
120
|
+
*/
|
|
121
|
+
get(id: string): AgentInstance | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* Get all agent instances
|
|
124
|
+
*/
|
|
125
|
+
getAll(): AgentInstance[];
|
|
126
|
+
/**
|
|
127
|
+
* Get agents by type
|
|
128
|
+
*/
|
|
129
|
+
getByType(type: AgentType): AgentInstance[];
|
|
130
|
+
/**
|
|
131
|
+
* List all registered agent types
|
|
132
|
+
*/
|
|
133
|
+
listTypes(): Array<{
|
|
134
|
+
type: AgentType;
|
|
135
|
+
capabilities: AgentCapability[];
|
|
136
|
+
instanceCount: number;
|
|
137
|
+
}>;
|
|
138
|
+
/**
|
|
139
|
+
* List all active agent instances
|
|
140
|
+
*/
|
|
141
|
+
listInstances(): Array<{
|
|
142
|
+
id: string;
|
|
143
|
+
type: AgentType;
|
|
144
|
+
name: string;
|
|
145
|
+
status: AgentStatus;
|
|
146
|
+
}>;
|
|
147
|
+
/**
|
|
148
|
+
* Terminate an agent instance
|
|
149
|
+
*/
|
|
150
|
+
terminateAgent(id: string): Promise<boolean>;
|
|
151
|
+
/**
|
|
152
|
+
* Terminate all agents of a specific type
|
|
153
|
+
*/
|
|
154
|
+
terminateByType(type: AgentType): Promise<number>;
|
|
155
|
+
/**
|
|
156
|
+
* Terminate all agents
|
|
157
|
+
*/
|
|
158
|
+
terminateAll(): Promise<number>;
|
|
159
|
+
/**
|
|
160
|
+
* Start health monitoring
|
|
161
|
+
*/
|
|
162
|
+
private startHealthMonitoring;
|
|
163
|
+
/**
|
|
164
|
+
* Stop health monitoring
|
|
165
|
+
*/
|
|
166
|
+
stopHealthMonitoring(): void;
|
|
167
|
+
/**
|
|
168
|
+
* Perform health checks on all agents
|
|
169
|
+
*/
|
|
170
|
+
performHealthChecks(): Promise<AgentHealthCheck[]>;
|
|
171
|
+
/**
|
|
172
|
+
* Get health status for a specific agent
|
|
173
|
+
*/
|
|
174
|
+
getAgentHealth(id: string): Promise<AgentHealthCheck | null>;
|
|
175
|
+
/**
|
|
176
|
+
* Get registry statistics
|
|
177
|
+
*/
|
|
178
|
+
getStats(): {
|
|
179
|
+
registeredTypes: number;
|
|
180
|
+
totalInstances: number;
|
|
181
|
+
instancesByType: Record<string, number>;
|
|
182
|
+
instancesByStatus: Record<string, number>;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Clear all registrations and instances
|
|
186
|
+
*/
|
|
187
|
+
clear(): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* Dispose of the registry
|
|
190
|
+
*/
|
|
191
|
+
dispose(): Promise<void>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get or create the default registry instance
|
|
195
|
+
*/
|
|
196
|
+
export declare function getRegistry(): AgentRegistry;
|
|
197
|
+
/**
|
|
198
|
+
* Create a new registry instance
|
|
199
|
+
*/
|
|
200
|
+
export declare function createRegistry(options?: RegistryOptions): AgentRegistry;
|
|
201
|
+
/**
|
|
202
|
+
* Set the default registry instance
|
|
203
|
+
*/
|
|
204
|
+
export declare function setDefaultRegistry(registry: AgentRegistry): void;
|
|
205
|
+
/**
|
|
206
|
+
* Register default agent types with a registry
|
|
207
|
+
*
|
|
208
|
+
* This registers placeholder factories that should be replaced
|
|
209
|
+
* with actual implementations.
|
|
210
|
+
*/
|
|
211
|
+
export declare function registerDefaultAgents(registry: AgentRegistry, factories?: Partial<Record<AgentType, AgentFactory>>): void;
|
|
212
|
+
export {};
|
|
213
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
|