@dcyfr/ai 1.0.4 → 2.1.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/CHANGELOG.md +106 -0
- package/README.md +381 -9
- package/dist/ai/agents/agent-loader.d.ts +12 -0
- package/dist/ai/agents/agent-loader.d.ts.map +1 -1
- package/dist/ai/agents/agent-loader.js +74 -65
- package/dist/ai/agents/agent-loader.js.map +1 -1
- package/dist/ai/agents/agent-registry.d.ts +2 -0
- package/dist/ai/agents/agent-registry.d.ts.map +1 -1
- package/dist/ai/agents/agent-registry.js +15 -14
- package/dist/ai/agents/agent-registry.js.map +1 -1
- package/dist/ai/agents/agent-router.d.ts +20 -5
- package/dist/ai/agents/agent-router.d.ts.map +1 -1
- package/dist/ai/agents/agent-router.js +89 -43
- package/dist/ai/agents/agent-router.js.map +1 -1
- package/dist/ai/agents/index.d.ts +6 -1
- package/dist/ai/agents/index.d.ts.map +1 -1
- package/dist/ai/agents/index.js +9 -3
- package/dist/ai/agents/index.js.map +1 -1
- package/dist/ai/agents/instruction-template.d.ts +45 -0
- package/dist/ai/agents/instruction-template.d.ts.map +1 -0
- package/dist/ai/agents/instruction-template.js +197 -0
- package/dist/ai/agents/instruction-template.js.map +1 -0
- package/dist/ai/agents/persona-resolver.d.ts +90 -0
- package/dist/ai/agents/persona-resolver.d.ts.map +1 -0
- package/dist/ai/agents/persona-resolver.js +121 -0
- package/dist/ai/agents/persona-resolver.js.map +1 -0
- package/dist/ai/agents/schema.d.ts +166 -0
- package/dist/ai/agents/schema.d.ts.map +1 -0
- package/dist/ai/agents/schema.js +94 -0
- package/dist/ai/agents/schema.js.map +1 -0
- package/dist/ai/agents/types.d.ts +102 -0
- package/dist/ai/agents/types.d.ts.map +1 -1
- package/dist/ai/agents-builtin/architecture/index.js +3 -3
- package/dist/ai/agents-builtin/content/index.js +1 -1
- package/dist/ai/agents-builtin/data/index.js +1 -1
- package/dist/ai/agents-builtin/development/index.js +4 -4
- package/dist/ai/agents-builtin/devops/index.js +1 -1
- package/dist/ai/agents-builtin/index.js +33 -33
- package/dist/ai/agents-builtin/performance/index.js +1 -1
- package/dist/ai/agents-builtin/research/index.js +1 -1
- package/dist/ai/agents-builtin/security/index.js +1 -1
- package/dist/ai/agents-builtin/testing/index.js +2 -2
- package/dist/ai/config/loader.d.ts.map +1 -1
- package/dist/ai/config/loader.js +6 -3
- package/dist/ai/config/loader.js.map +1 -1
- package/dist/ai/config/schema.d.ts +242 -1156
- package/dist/ai/config/schema.d.ts.map +1 -1
- package/dist/ai/config/schema.js +69 -20
- package/dist/ai/config/schema.js.map +1 -1
- package/dist/ai/core/provider-registry.d.ts +32 -0
- package/dist/ai/core/provider-registry.d.ts.map +1 -1
- package/dist/ai/core/provider-registry.js +189 -14
- package/dist/ai/core/provider-registry.js.map +1 -1
- package/dist/ai/core/telemetry-engine.d.ts +26 -0
- package/dist/ai/core/telemetry-engine.d.ts.map +1 -1
- package/dist/ai/core/telemetry-engine.js +81 -1
- package/dist/ai/core/telemetry-engine.js.map +1 -1
- package/dist/ai/delegation/agent-registry.d.ts +143 -0
- package/dist/ai/delegation/agent-registry.d.ts.map +1 -0
- package/dist/ai/delegation/agent-registry.js +231 -0
- package/dist/ai/delegation/agent-registry.js.map +1 -0
- package/dist/ai/delegation/blast-radius-tracker.d.ts +65 -0
- package/dist/ai/delegation/blast-radius-tracker.d.ts.map +1 -0
- package/dist/ai/delegation/blast-radius-tracker.js +81 -0
- package/dist/ai/delegation/blast-radius-tracker.js.map +1 -0
- package/dist/ai/delegation/capability-bootstrap.d.ts +40 -0
- package/dist/ai/delegation/capability-bootstrap.d.ts.map +1 -0
- package/dist/ai/delegation/capability-bootstrap.js +431 -0
- package/dist/ai/delegation/capability-bootstrap.js.map +1 -0
- package/dist/ai/delegation/capability-registry.d.ts +81 -0
- package/dist/ai/delegation/capability-registry.d.ts.map +1 -0
- package/dist/ai/delegation/capability-registry.js +339 -0
- package/dist/ai/delegation/capability-registry.js.map +1 -0
- package/dist/ai/delegation/chain-tracker.d.ts +152 -0
- package/dist/ai/delegation/chain-tracker.d.ts.map +1 -0
- package/dist/ai/delegation/chain-tracker.js +336 -0
- package/dist/ai/delegation/chain-tracker.js.map +1 -0
- package/dist/ai/delegation/circuit-breaker.d.ts +59 -0
- package/dist/ai/delegation/circuit-breaker.d.ts.map +1 -0
- package/dist/ai/delegation/circuit-breaker.js +153 -0
- package/dist/ai/delegation/circuit-breaker.js.map +1 -0
- package/dist/ai/delegation/contract-manager.d.ts +415 -0
- package/dist/ai/delegation/contract-manager.d.ts.map +1 -0
- package/dist/ai/delegation/contract-manager.js +1258 -0
- package/dist/ai/delegation/contract-manager.js.map +1 -0
- package/dist/ai/delegation/delegation-manager.d.ts +505 -0
- package/dist/ai/delegation/delegation-manager.d.ts.map +1 -0
- package/dist/ai/delegation/delegation-manager.js +773 -0
- package/dist/ai/delegation/delegation-manager.js.map +1 -0
- package/dist/ai/delegation/event-schemas.d.ts +101 -0
- package/dist/ai/delegation/event-schemas.d.ts.map +1 -0
- package/dist/ai/delegation/event-schemas.js +59 -0
- package/dist/ai/delegation/event-schemas.js.map +1 -0
- package/dist/ai/delegation/execution-mode-dashboard.d.ts +109 -0
- package/dist/ai/delegation/execution-mode-dashboard.d.ts.map +1 -0
- package/dist/ai/delegation/execution-mode-dashboard.js +167 -0
- package/dist/ai/delegation/execution-mode-dashboard.js.map +1 -0
- package/dist/ai/delegation/feature-flags.d.ts +191 -0
- package/dist/ai/delegation/feature-flags.d.ts.map +1 -0
- package/dist/ai/delegation/feature-flags.js +332 -0
- package/dist/ai/delegation/feature-flags.js.map +1 -0
- package/dist/ai/delegation/index.d.ts +51 -0
- package/dist/ai/delegation/index.d.ts.map +1 -0
- package/dist/ai/delegation/index.js +39 -0
- package/dist/ai/delegation/index.js.map +1 -0
- package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts +39 -0
- package/dist/ai/delegation/middleware/chain-depth-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/chain-depth-middleware.js +77 -0
- package/dist/ai/delegation/middleware/chain-depth-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts +46 -0
- package/dist/ai/delegation/middleware/chain-tracker-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/chain-tracker-middleware.js +89 -0
- package/dist/ai/delegation/middleware/chain-tracker-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/content-policy-middleware.d.ts +31 -0
- package/dist/ai/delegation/middleware/content-policy-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/content-policy-middleware.js +82 -0
- package/dist/ai/delegation/middleware/content-policy-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts +46 -0
- package/dist/ai/delegation/middleware/feature-flag-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/feature-flag-middleware.js +59 -0
- package/dist/ai/delegation/middleware/feature-flag-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/identity-middleware.d.ts +23 -0
- package/dist/ai/delegation/middleware/identity-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/identity-middleware.js +64 -0
- package/dist/ai/delegation/middleware/identity-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/permissions-middleware.d.ts +48 -0
- package/dist/ai/delegation/middleware/permissions-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/permissions-middleware.js +107 -0
- package/dist/ai/delegation/middleware/permissions-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts +38 -0
- package/dist/ai/delegation/middleware/rate-limiter-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/rate-limiter-middleware.js +65 -0
- package/dist/ai/delegation/middleware/rate-limiter-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/reputation-middleware.d.ts +39 -0
- package/dist/ai/delegation/middleware/reputation-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/reputation-middleware.js +75 -0
- package/dist/ai/delegation/middleware/reputation-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts +52 -0
- package/dist/ai/delegation/middleware/resource-limiter-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/resource-limiter-middleware.js +112 -0
- package/dist/ai/delegation/middleware/resource-limiter-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts +23 -0
- package/dist/ai/delegation/middleware/threat-validator-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/threat-validator-middleware.js +83 -0
- package/dist/ai/delegation/middleware/threat-validator-middleware.js.map +1 -0
- package/dist/ai/delegation/middleware/tlp-middleware.d.ts +23 -0
- package/dist/ai/delegation/middleware/tlp-middleware.d.ts.map +1 -0
- package/dist/ai/delegation/middleware/tlp-middleware.js +59 -0
- package/dist/ai/delegation/middleware/tlp-middleware.js.map +1 -0
- package/dist/ai/delegation/monitoring.d.ts +298 -0
- package/dist/ai/delegation/monitoring.d.ts.map +1 -0
- package/dist/ai/delegation/monitoring.js +584 -0
- package/dist/ai/delegation/monitoring.js.map +1 -0
- package/dist/ai/delegation/security-middleware-chain.d.ts +71 -0
- package/dist/ai/delegation/security-middleware-chain.d.ts.map +1 -0
- package/dist/ai/delegation/security-middleware-chain.js +163 -0
- package/dist/ai/delegation/security-middleware-chain.js.map +1 -0
- package/dist/ai/delegation/session-checkpoint.d.ts +77 -0
- package/dist/ai/delegation/session-checkpoint.d.ts.map +1 -0
- package/dist/ai/delegation/session-checkpoint.js +131 -0
- package/dist/ai/delegation/session-checkpoint.js.map +1 -0
- package/dist/ai/delegation/session-manager.d.ts +131 -0
- package/dist/ai/delegation/session-manager.d.ts.map +1 -0
- package/dist/ai/delegation/session-manager.js +243 -0
- package/dist/ai/delegation/session-manager.js.map +1 -0
- package/dist/ai/delegation/session-queue.d.ts +95 -0
- package/dist/ai/delegation/session-queue.d.ts.map +1 -0
- package/dist/ai/delegation/session-queue.js +136 -0
- package/dist/ai/delegation/session-queue.js.map +1 -0
- package/dist/ai/delegation/timeout-watchdog.d.ts +60 -0
- package/dist/ai/delegation/timeout-watchdog.d.ts.map +1 -0
- package/dist/ai/delegation/timeout-watchdog.js +100 -0
- package/dist/ai/delegation/timeout-watchdog.js.map +1 -0
- package/dist/ai/examples/integration-demo.d.ts +27 -0
- package/dist/ai/examples/integration-demo.d.ts.map +1 -0
- package/dist/ai/examples/integration-demo.js +536 -0
- package/dist/ai/examples/integration-demo.js.map +1 -0
- package/dist/ai/index.d.ts +25 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +31 -11
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/mcp/servers/analytics/index.js +67 -11
- package/dist/ai/mcp/servers/analytics/index.js.map +1 -1
- package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -1
- package/dist/ai/mcp/servers/content-manager/index.js +50 -4
- package/dist/ai/mcp/servers/content-manager/index.js.map +1 -1
- package/dist/ai/mcp/servers/delegation-monitor/index.d.ts +36 -0
- package/dist/ai/mcp/servers/delegation-monitor/index.d.ts.map +1 -0
- package/dist/ai/mcp/servers/delegation-monitor/index.js +757 -0
- package/dist/ai/mcp/servers/delegation-monitor/index.js.map +1 -0
- package/dist/ai/mcp/servers/design-tokens/index.d.ts.map +1 -1
- package/dist/ai/mcp/servers/design-tokens/index.js +62 -39
- package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -1
- package/dist/ai/mcp/servers/promptintel/index.js +15 -3
- package/dist/ai/mcp/servers/promptintel/index.js.map +1 -1
- package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -1
- package/dist/ai/mcp/servers/shared/rate-limiter.js +3 -1
- package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -1
- package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -1
- package/dist/ai/mcp/servers/shared/redis-client.js +54 -47
- package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -1
- package/dist/ai/mcp/servers/shared/types.d.ts +9 -0
- package/dist/ai/mcp/servers/shared/types.d.ts.map +1 -1
- package/dist/ai/mcp/servers/shared/utils.d.ts +9 -1
- package/dist/ai/mcp/servers/shared/utils.d.ts.map +1 -1
- package/dist/ai/mcp/servers/shared/utils.js +52 -2
- package/dist/ai/mcp/servers/shared/utils.js.map +1 -1
- package/dist/ai/memory/config.d.ts +18 -3
- package/dist/ai/memory/config.d.ts.map +1 -1
- package/dist/ai/memory/config.js +61 -15
- package/dist/ai/memory/config.js.map +1 -1
- package/dist/ai/memory/dcyfr-memory.d.ts +4 -0
- package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -1
- package/dist/ai/memory/dcyfr-memory.js +44 -6
- package/dist/ai/memory/dcyfr-memory.js.map +1 -1
- package/dist/ai/memory/mem0-client.d.ts.map +1 -1
- package/dist/ai/memory/mem0-client.js +53 -14
- package/dist/ai/memory/mem0-client.js.map +1 -1
- package/dist/ai/permissions/attenuation-engine.d.ts +159 -0
- package/dist/ai/permissions/attenuation-engine.d.ts.map +1 -0
- package/dist/ai/permissions/attenuation-engine.js +511 -0
- package/dist/ai/permissions/attenuation-engine.js.map +1 -0
- package/dist/ai/plugins/plugin-loader.d.ts +4 -0
- package/dist/ai/plugins/plugin-loader.d.ts.map +1 -1
- package/dist/ai/plugins/plugin-loader.js +28 -28
- package/dist/ai/plugins/plugin-loader.js.map +1 -1
- package/dist/ai/reputation/execution-mode-reputation.d.ts +104 -0
- package/dist/ai/reputation/execution-mode-reputation.d.ts.map +1 -0
- package/dist/ai/reputation/execution-mode-reputation.js +142 -0
- package/dist/ai/reputation/execution-mode-reputation.js.map +1 -0
- package/dist/ai/reputation/reputation-engine.d.ts +204 -0
- package/dist/ai/reputation/reputation-engine.d.ts.map +1 -0
- package/dist/ai/reputation/reputation-engine.js +426 -0
- package/dist/ai/reputation/reputation-engine.js.map +1 -0
- package/dist/ai/runtime/agent-runtime.d.ts +193 -0
- package/dist/ai/runtime/agent-runtime.d.ts.map +1 -0
- package/dist/ai/runtime/agent-runtime.js +1009 -0
- package/dist/ai/runtime/agent-runtime.js.map +1 -0
- package/dist/ai/runtime/index.d.ts +11 -0
- package/dist/ai/runtime/index.d.ts.map +1 -0
- package/dist/ai/runtime/index.js +9 -0
- package/dist/ai/runtime/index.js.map +1 -0
- package/dist/ai/runtime/telemetry-schema.d.ts +192 -0
- package/dist/ai/runtime/telemetry-schema.d.ts.map +1 -0
- package/dist/ai/runtime/telemetry-schema.js +200 -0
- package/dist/ai/runtime/telemetry-schema.js.map +1 -0
- package/dist/ai/runtime/types.d.ts +236 -0
- package/dist/ai/runtime/types.d.ts.map +1 -0
- package/dist/ai/runtime/types.js +10 -0
- package/dist/ai/runtime/types.js.map +1 -0
- package/dist/ai/src/batch-processor.d.ts +298 -0
- package/dist/ai/src/batch-processor.d.ts.map +1 -0
- package/dist/ai/src/batch-processor.js +520 -0
- package/dist/ai/src/batch-processor.js.map +1 -0
- package/dist/ai/src/capability-bootstrap.d.ts +222 -0
- package/dist/ai/src/capability-bootstrap.d.ts.map +1 -0
- package/dist/ai/src/capability-bootstrap.js +421 -0
- package/dist/ai/src/capability-bootstrap.js.map +1 -0
- package/dist/ai/src/capability-manifest-generator.d.ts +52 -0
- package/dist/ai/src/capability-manifest-generator.d.ts.map +1 -0
- package/dist/ai/src/capability-manifest-generator.js +691 -0
- package/dist/ai/src/capability-manifest-generator.js.map +1 -0
- package/dist/ai/src/capability-registry.d.ts +157 -0
- package/dist/ai/src/capability-registry.d.ts.map +1 -0
- package/dist/ai/src/capability-registry.js +577 -0
- package/dist/ai/src/capability-registry.js.map +1 -0
- package/dist/ai/src/cli/telemetry-dashboard.d.ts +132 -0
- package/dist/ai/src/cli/telemetry-dashboard.d.ts.map +1 -0
- package/dist/ai/src/cli/telemetry-dashboard.js +565 -0
- package/dist/ai/src/cli/telemetry-dashboard.js.map +1 -0
- package/dist/ai/src/delegation/feature-flags.d.ts +213 -0
- package/dist/ai/src/delegation/feature-flags.d.ts.map +1 -0
- package/dist/ai/src/delegation/feature-flags.js +395 -0
- package/dist/ai/src/delegation/feature-flags.js.map +1 -0
- package/dist/ai/src/delegation/liability-firebreak.d.ts +303 -0
- package/dist/ai/src/delegation/liability-firebreak.d.ts.map +1 -0
- package/dist/ai/src/delegation/liability-firebreak.js +643 -0
- package/dist/ai/src/delegation/liability-firebreak.js.map +1 -0
- package/dist/ai/src/delegation/security-threat-model.d.ts +171 -0
- package/dist/ai/src/delegation/security-threat-model.d.ts.map +1 -0
- package/dist/ai/src/delegation/security-threat-model.js +723 -0
- package/dist/ai/src/delegation/security-threat-model.js.map +1 -0
- package/dist/ai/src/delegation/tlp-enforcement.d.ts +146 -0
- package/dist/ai/src/delegation/tlp-enforcement.d.ts.map +1 -0
- package/dist/ai/src/delegation/tlp-enforcement.js +382 -0
- package/dist/ai/src/delegation/tlp-enforcement.js.map +1 -0
- package/dist/ai/src/delegation-capability-integration.d.ts +154 -0
- package/dist/ai/src/delegation-capability-integration.d.ts.map +1 -0
- package/dist/ai/src/delegation-capability-integration.js +351 -0
- package/dist/ai/src/delegation-capability-integration.js.map +1 -0
- package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts +325 -0
- package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts.map +1 -0
- package/dist/ai/src/end-to-end-workflow-orchestrator.js +801 -0
- package/dist/ai/src/end-to-end-workflow-orchestrator.js.map +1 -0
- package/dist/ai/src/enhanced-capability-detection.d.ts +237 -0
- package/dist/ai/src/enhanced-capability-detection.d.ts.map +1 -0
- package/dist/ai/src/enhanced-capability-detection.js +448 -0
- package/dist/ai/src/enhanced-capability-detection.js.map +1 -0
- package/dist/ai/src/intelligent-cache-manager.d.ts +327 -0
- package/dist/ai/src/intelligent-cache-manager.d.ts.map +1 -0
- package/dist/ai/src/intelligent-cache-manager.js +634 -0
- package/dist/ai/src/intelligent-cache-manager.js.map +1 -0
- package/dist/ai/src/mcp-auto-configuration.d.ts +232 -0
- package/dist/ai/src/mcp-auto-configuration.d.ts.map +1 -0
- package/dist/ai/src/mcp-auto-configuration.js +445 -0
- package/dist/ai/src/mcp-auto-configuration.js.map +1 -0
- package/dist/ai/src/performance-profiler.d.ts +351 -0
- package/dist/ai/src/performance-profiler.d.ts.map +1 -0
- package/dist/ai/src/performance-profiler.js +475 -0
- package/dist/ai/src/performance-profiler.js.map +1 -0
- package/dist/ai/src/personas/hooks/before-llm-call.d.ts +96 -0
- package/dist/ai/src/personas/hooks/before-llm-call.d.ts.map +1 -0
- package/dist/ai/src/personas/hooks/before-llm-call.js +83 -0
- package/dist/ai/src/personas/hooks/before-llm-call.js.map +1 -0
- package/dist/ai/src/personas/index.d.ts +10 -0
- package/dist/ai/src/personas/index.d.ts.map +1 -0
- package/dist/ai/src/personas/index.js +10 -0
- package/dist/ai/src/personas/index.js.map +1 -0
- package/dist/ai/src/personas/persona-loader.d.ts +42 -0
- package/dist/ai/src/personas/persona-loader.d.ts.map +1 -0
- package/dist/ai/src/personas/persona-loader.js +162 -0
- package/dist/ai/src/personas/persona-loader.js.map +1 -0
- package/dist/ai/src/personas/types.d.ts +199 -0
- package/dist/ai/src/personas/types.d.ts.map +1 -0
- package/dist/ai/src/personas/types.js +7 -0
- package/dist/ai/src/personas/types.js.map +1 -0
- package/dist/ai/src/personas/voice-resolver.d.ts +40 -0
- package/dist/ai/src/personas/voice-resolver.d.ts.map +1 -0
- package/dist/ai/src/personas/voice-resolver.js +201 -0
- package/dist/ai/src/personas/voice-resolver.js.map +1 -0
- package/dist/ai/src/resource-monitor.d.ts +311 -0
- package/dist/ai/src/resource-monitor.d.ts.map +1 -0
- package/dist/ai/src/resource-monitor.js +475 -0
- package/dist/ai/src/resource-monitor.js.map +1 -0
- package/dist/ai/src/runtime/agent-runtime.d.ts +340 -0
- package/dist/ai/src/runtime/agent-runtime.d.ts.map +1 -0
- package/dist/ai/src/runtime/agent-runtime.js +1084 -0
- package/dist/ai/src/runtime/agent-runtime.js.map +1 -0
- package/dist/ai/src/telemetry/delegation-telemetry.d.ts +287 -0
- package/dist/ai/src/telemetry/delegation-telemetry.d.ts.map +1 -0
- package/dist/ai/src/telemetry/delegation-telemetry.js +389 -0
- package/dist/ai/src/telemetry/delegation-telemetry.js.map +1 -0
- package/dist/ai/src/telemetry/index.d.ts +48 -0
- package/dist/ai/src/telemetry/index.d.ts.map +1 -0
- package/dist/ai/src/telemetry/index.js +48 -0
- package/dist/ai/src/telemetry/index.js.map +1 -0
- package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts +67 -0
- package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts.map +1 -0
- package/dist/ai/src/telemetry/runtime-telemetry-integration.js +415 -0
- package/dist/ai/src/telemetry/runtime-telemetry-integration.js.map +1 -0
- package/dist/ai/src/telemetry/telemetry-utils.d.ts +119 -0
- package/dist/ai/src/telemetry/telemetry-utils.d.ts.map +1 -0
- package/dist/ai/src/telemetry/telemetry-utils.js +250 -0
- package/dist/ai/src/telemetry/telemetry-utils.js.map +1 -0
- package/dist/ai/src/types/agent-capabilities.d.ts +227 -0
- package/dist/ai/src/types/agent-capabilities.d.ts.map +1 -0
- package/dist/ai/src/types/agent-capabilities.js +11 -0
- package/dist/ai/src/types/agent-capabilities.js.map +1 -0
- package/dist/ai/src/types/context-verification.d.ts +158 -0
- package/dist/ai/src/types/context-verification.d.ts.map +1 -0
- package/dist/ai/src/types/context-verification.js +73 -0
- package/dist/ai/src/types/context-verification.js.map +1 -0
- package/dist/ai/src/types/delegation-contracts.d.ts +296 -0
- package/dist/ai/src/types/delegation-contracts.d.ts.map +1 -0
- package/dist/ai/src/types/delegation-contracts.js +17 -0
- package/dist/ai/src/types/delegation-contracts.js.map +1 -0
- package/dist/ai/src/validation-pipeline-integration.d.ts +266 -0
- package/dist/ai/src/validation-pipeline-integration.d.ts.map +1 -0
- package/dist/ai/src/validation-pipeline-integration.js +695 -0
- package/dist/ai/src/validation-pipeline-integration.js.map +1 -0
- package/dist/ai/src/verification/multi-modal-formatters.d.ts +57 -0
- package/dist/ai/src/verification/multi-modal-formatters.d.ts.map +1 -0
- package/dist/ai/src/verification/multi-modal-formatters.js +655 -0
- package/dist/ai/src/verification/multi-modal-formatters.js.map +1 -0
- package/dist/ai/src/verification/output-formatter.d.ts +186 -0
- package/dist/ai/src/verification/output-formatter.d.ts.map +1 -0
- package/dist/ai/src/verification/output-formatter.js +296 -0
- package/dist/ai/src/verification/output-formatter.js.map +1 -0
- package/dist/ai/src/verification/parser-integration.d.ts +137 -0
- package/dist/ai/src/verification/parser-integration.d.ts.map +1 -0
- package/dist/ai/src/verification/parser-integration.js +273 -0
- package/dist/ai/src/verification/parser-integration.js.map +1 -0
- package/dist/ai/types/agent-capabilities.d.ts +387 -0
- package/dist/ai/types/agent-capabilities.d.ts.map +1 -0
- package/dist/ai/types/agent-capabilities.js +32 -0
- package/dist/ai/types/agent-capabilities.js.map +1 -0
- package/dist/ai/types/delegation-contracts.d.ts +291 -0
- package/dist/ai/types/delegation-contracts.d.ts.map +1 -0
- package/dist/ai/types/delegation-contracts.js +14 -0
- package/dist/ai/types/delegation-contracts.js.map +1 -0
- package/dist/ai/types/index.d.ts +4 -1
- package/dist/ai/types/index.d.ts.map +1 -1
- package/dist/ai/types/index.js +4 -1
- package/dist/ai/types/index.js.map +1 -1
- package/dist/ai/types/permission-tokens.d.ts +365 -0
- package/dist/ai/types/permission-tokens.d.ts.map +1 -0
- package/dist/ai/types/permission-tokens.js +13 -0
- package/dist/ai/types/permission-tokens.js.map +1 -0
- package/dist/ai/types/security-middleware.d.ts +130 -0
- package/dist/ai/types/security-middleware.d.ts.map +1 -0
- package/dist/ai/types/security-middleware.js +13 -0
- package/dist/ai/types/security-middleware.js.map +1 -0
- package/dist/ai/utils/storage.d.ts.map +1 -1
- package/dist/ai/utils/storage.js +6 -3
- package/dist/ai/utils/storage.js.map +1 -1
- package/dist/ai/validation/validation-framework.js +1 -1
- package/dist/ai/verification/policy-framework.d.ts +161 -0
- package/dist/ai/verification/policy-framework.d.ts.map +1 -0
- package/dist/ai/verification/policy-framework.js +436 -0
- package/dist/ai/verification/policy-framework.js.map +1 -0
- package/package.json +35 -7
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DCYFR Agent Capability Bootstrap Toolkit
|
|
3
|
+
* TLP:CLEAR
|
|
4
|
+
*
|
|
5
|
+
* Automated capability manifest generation system for new agent onboarding.
|
|
6
|
+
* Analyzes agent definitions and generates capability manifests with intelligent
|
|
7
|
+
* confidence score initialization and gradual validation support.
|
|
8
|
+
*
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @date 2026-02-14
|
|
11
|
+
* @module dcyfr-ai/capability-bootstrap
|
|
12
|
+
*/
|
|
13
|
+
import type { AgentCapabilityManifest } from './types/agent-capabilities.js';
|
|
14
|
+
/**
|
|
15
|
+
* Agent definition sources supported by the bootstrap system
|
|
16
|
+
*/
|
|
17
|
+
export type AgentSource = {
|
|
18
|
+
type: 'markdown';
|
|
19
|
+
content: string;
|
|
20
|
+
path?: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'typescript';
|
|
23
|
+
agentObject: any;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'json';
|
|
26
|
+
definition: any;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'file';
|
|
29
|
+
filePath: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Capability detection configuration
|
|
33
|
+
*/
|
|
34
|
+
export interface CapabilityDetectionConfig {
|
|
35
|
+
/**
|
|
36
|
+
* Minimum keyword matches required to assign a capability (default: 2)
|
|
37
|
+
*/
|
|
38
|
+
minimumKeywordMatches?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Enable fuzzy matching for capability keywords (default: true)
|
|
41
|
+
*/
|
|
42
|
+
fuzzyMatching?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Custom capability keyword mappings to extend default detection
|
|
45
|
+
*/
|
|
46
|
+
customKeywordMappings?: Record<string, string[]>;
|
|
47
|
+
/**
|
|
48
|
+
* Capabilities to always include regardless of detection (default: ['pattern_enforcement'])
|
|
49
|
+
*/
|
|
50
|
+
mandatoryCapabilities?: string[];
|
|
51
|
+
/**
|
|
52
|
+
* Agent tier for specialized detection ('workspace' | 'production' | 'generic')
|
|
53
|
+
*/
|
|
54
|
+
agentTier?: 'workspace' | 'production' | 'generic';
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Confidence score initialization configuration
|
|
58
|
+
*/
|
|
59
|
+
export interface ConfidenceInitConfig {
|
|
60
|
+
/**
|
|
61
|
+
* Initial confidence level for unvalidated capabilities (default: 0.50)
|
|
62
|
+
*/
|
|
63
|
+
initialConfidence?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Confidence boost for validated capabilities (default: 0.85)
|
|
66
|
+
*/
|
|
67
|
+
validatedConfidence?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Confidence boost for capabilities with successful completions (default: 0.92)
|
|
70
|
+
*/
|
|
71
|
+
provenConfidence?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Enable gradual validation approach with progressive confidence increases
|
|
74
|
+
*/
|
|
75
|
+
gradualValidation?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Number of successful completions needed to reach proven confidence
|
|
78
|
+
*/
|
|
79
|
+
completionsForProvenStatus?: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Bootstrap result metadata
|
|
83
|
+
*/
|
|
84
|
+
export interface BootstrapResult {
|
|
85
|
+
/**
|
|
86
|
+
* Agent identifier
|
|
87
|
+
*/
|
|
88
|
+
agentId: string;
|
|
89
|
+
/**
|
|
90
|
+
* Generated capability manifest
|
|
91
|
+
*/
|
|
92
|
+
manifest: AgentCapabilityManifest;
|
|
93
|
+
/**
|
|
94
|
+
* Detected capabilities with detection confidence
|
|
95
|
+
*/
|
|
96
|
+
detectedCapabilities: Array<{
|
|
97
|
+
capabilityId: string;
|
|
98
|
+
detectionConfidence: number;
|
|
99
|
+
matchedKeywords: string[];
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Bootstrap warnings (non-fatal issues)
|
|
103
|
+
*/
|
|
104
|
+
warnings: string[];
|
|
105
|
+
/**
|
|
106
|
+
* Suggested next steps for improving the manifest
|
|
107
|
+
*/
|
|
108
|
+
suggestions: string[];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Agent analyzer that extracts metadata from various agent definition formats
|
|
112
|
+
*/
|
|
113
|
+
export declare class AgentAnalyzer {
|
|
114
|
+
/**
|
|
115
|
+
* Analyze an agent from any supported source format
|
|
116
|
+
*/
|
|
117
|
+
analyze(source: AgentSource): Promise<{
|
|
118
|
+
name: string;
|
|
119
|
+
description: string;
|
|
120
|
+
content: string;
|
|
121
|
+
metadata: Record<string, any>;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Parse Markdown agent definitions (Claude .agent.md format)
|
|
125
|
+
*/
|
|
126
|
+
private analyzeMarkdown;
|
|
127
|
+
/**
|
|
128
|
+
* Parse TypeScript agent objects
|
|
129
|
+
*/
|
|
130
|
+
private analyzeTypeScript;
|
|
131
|
+
/**
|
|
132
|
+
* Parse JSON agent definitions
|
|
133
|
+
*/
|
|
134
|
+
private analyzeJSON;
|
|
135
|
+
/**
|
|
136
|
+
* Read and analyze agent from file path
|
|
137
|
+
*/
|
|
138
|
+
private analyzeFile;
|
|
139
|
+
/**
|
|
140
|
+
* Extract agent name from file path
|
|
141
|
+
*/
|
|
142
|
+
private extractNameFromPath;
|
|
143
|
+
/**
|
|
144
|
+
* Extract description from content (first paragraph or summary)
|
|
145
|
+
*/
|
|
146
|
+
private extractDescription;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Capability detector with intelligent keyword-based analysis
|
|
150
|
+
*/
|
|
151
|
+
export declare class CapabilityDetector {
|
|
152
|
+
private config;
|
|
153
|
+
/**
|
|
154
|
+
* Default capability keyword mappings (extended from bootstrap scripts)
|
|
155
|
+
*/
|
|
156
|
+
private static readonly DEFAULT_KEYWORDS;
|
|
157
|
+
constructor(config?: CapabilityDetectionConfig);
|
|
158
|
+
/**
|
|
159
|
+
* Check if capability should be added based on name matching
|
|
160
|
+
*/
|
|
161
|
+
private checkNameBasedDetection;
|
|
162
|
+
/**
|
|
163
|
+
* Add mandatory capabilities that weren't detected
|
|
164
|
+
*/
|
|
165
|
+
private addMandatoryCapabilities;
|
|
166
|
+
/**
|
|
167
|
+
* Detect capabilities from analyzed agent content
|
|
168
|
+
*/
|
|
169
|
+
detect(agentContent: string, agentName: string): Array<{
|
|
170
|
+
capabilityId: string;
|
|
171
|
+
detectionConfidence: number;
|
|
172
|
+
matchedKeywords: string[];
|
|
173
|
+
}>;
|
|
174
|
+
/** Return keywords from the list that match the content string */
|
|
175
|
+
private matchKeywords;
|
|
176
|
+
private escapeRegex;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Confidence score initializer with gradual validation support
|
|
180
|
+
*/
|
|
181
|
+
export declare class ConfidenceInitializer {
|
|
182
|
+
private config;
|
|
183
|
+
constructor(config?: ConfidenceInitConfig);
|
|
184
|
+
/**
|
|
185
|
+
* Initialize confidence score based on detection confidence and validation status
|
|
186
|
+
*/
|
|
187
|
+
initializeConfidence(detectionConfidence: number, hasValidation?: boolean, successfulCompletions?: number): number;
|
|
188
|
+
/**
|
|
189
|
+
* Get validation recommendations for improving confidence
|
|
190
|
+
*/
|
|
191
|
+
getValidationRecommendations(currentConfidence: number, successfulCompletions: number): string[];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Complete capability bootstrap toolkit
|
|
195
|
+
*/
|
|
196
|
+
export declare class CapabilityBootstrap {
|
|
197
|
+
private analyzer;
|
|
198
|
+
private detector;
|
|
199
|
+
private confidenceInit;
|
|
200
|
+
constructor(detectionConfig?: CapabilityDetectionConfig, confidenceConfig?: ConfidenceInitConfig);
|
|
201
|
+
/**
|
|
202
|
+
* Bootstrap a new agent from any supported source
|
|
203
|
+
*/
|
|
204
|
+
bootstrap(source: AgentSource): Promise<BootstrapResult>;
|
|
205
|
+
/**
|
|
206
|
+
* Bootstrap multiple agents in batch
|
|
207
|
+
*/
|
|
208
|
+
bootstrapBatch(sources: AgentSource[]): Promise<BootstrapResult[]>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Default bootstrap instance with standard configuration
|
|
212
|
+
*/
|
|
213
|
+
export declare const defaultBootstrap: CapabilityBootstrap;
|
|
214
|
+
/**
|
|
215
|
+
* Bootstrap an agent with default configuration
|
|
216
|
+
*/
|
|
217
|
+
export declare function bootstrapAgent(source: AgentSource): Promise<BootstrapResult>;
|
|
218
|
+
/**
|
|
219
|
+
* Bootstrap multiple agents with default configuration
|
|
220
|
+
*/
|
|
221
|
+
export declare function bootstrapAgents(sources: AgentSource[]): Promise<BootstrapResult[]>;
|
|
222
|
+
//# sourceMappingURL=capability-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-bootstrap.d.ts","sourceRoot":"","sources":["../../../packages/ai/src/capability-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DCYFR Agent Capability Bootstrap Toolkit
|
|
3
|
+
* TLP:CLEAR
|
|
4
|
+
*
|
|
5
|
+
* Automated capability manifest generation system for new agent onboarding.
|
|
6
|
+
* Analyzes agent definitions and generates capability manifests with intelligent
|
|
7
|
+
* confidence score initialization and gradual validation support.
|
|
8
|
+
*
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @date 2026-02-14
|
|
11
|
+
* @module dcyfr-ai/capability-bootstrap
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Agent analyzer that extracts metadata from various agent definition formats
|
|
15
|
+
*/
|
|
16
|
+
export class AgentAnalyzer {
|
|
17
|
+
/**
|
|
18
|
+
* Analyze an agent from any supported source format
|
|
19
|
+
*/
|
|
20
|
+
async analyze(source) {
|
|
21
|
+
switch (source.type) {
|
|
22
|
+
case 'markdown':
|
|
23
|
+
return this.analyzeMarkdown(source.content, source.path);
|
|
24
|
+
case 'typescript':
|
|
25
|
+
return this.analyzeTypeScript(source.agentObject);
|
|
26
|
+
case 'json':
|
|
27
|
+
return this.analyzeJSON(source.definition);
|
|
28
|
+
case 'file':
|
|
29
|
+
return this.analyzeFile(source.filePath);
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(`Unsupported agent source type: ${source.type}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse Markdown agent definitions (Claude .agent.md format)
|
|
36
|
+
*/
|
|
37
|
+
async analyzeMarkdown(content, path) {
|
|
38
|
+
// Extract frontmatter
|
|
39
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
40
|
+
const metadata = {};
|
|
41
|
+
if (frontmatterMatch) {
|
|
42
|
+
const frontmatterLines = frontmatterMatch[1].split('\n');
|
|
43
|
+
for (const line of frontmatterLines) {
|
|
44
|
+
const [key, ...valueParts] = line.split(':');
|
|
45
|
+
if (key && valueParts.length > 0) {
|
|
46
|
+
const value = valueParts.join(':').trim();
|
|
47
|
+
metadata[key.trim()] = value;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Extract name and description
|
|
52
|
+
const name = metadata.name || this.extractNameFromPath(path) || 'unknown-agent';
|
|
53
|
+
const description = metadata.description || this.extractDescription(content) || '';
|
|
54
|
+
return {
|
|
55
|
+
name,
|
|
56
|
+
description,
|
|
57
|
+
content,
|
|
58
|
+
metadata,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Parse TypeScript agent objects
|
|
63
|
+
*/
|
|
64
|
+
async analyzeTypeScript(agentObject) {
|
|
65
|
+
return {
|
|
66
|
+
name: agentObject.name || agentObject.id || 'unknown-agent',
|
|
67
|
+
description: agentObject.description || '',
|
|
68
|
+
content: JSON.stringify(agentObject, null, 2),
|
|
69
|
+
metadata: { ...agentObject },
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Parse JSON agent definitions
|
|
74
|
+
*/
|
|
75
|
+
async analyzeJSON(definition) {
|
|
76
|
+
return {
|
|
77
|
+
name: definition.name || definition.id || 'unknown-agent',
|
|
78
|
+
description: definition.description || '',
|
|
79
|
+
content: JSON.stringify(definition, null, 2),
|
|
80
|
+
metadata: { ...definition },
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Read and analyze agent from file path
|
|
85
|
+
*/
|
|
86
|
+
async analyzeFile(filePath) {
|
|
87
|
+
const { readFile } = await import('fs/promises');
|
|
88
|
+
const content = await readFile(filePath, 'utf-8');
|
|
89
|
+
if (filePath.endsWith('.md')) {
|
|
90
|
+
return this.analyzeMarkdown(content, filePath);
|
|
91
|
+
}
|
|
92
|
+
else if (filePath.endsWith('.json')) {
|
|
93
|
+
return this.analyzeJSON(JSON.parse(content));
|
|
94
|
+
}
|
|
95
|
+
else if (filePath.endsWith('.ts') || filePath.endsWith('.js')) {
|
|
96
|
+
// For TypeScript/JavaScript files, we'd need to actually import/parse them
|
|
97
|
+
// For now, treat as markdown-like content
|
|
98
|
+
return this.analyzeMarkdown(content, filePath);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw new Error(`Unsupported file type: ${filePath}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Extract agent name from file path
|
|
106
|
+
*/
|
|
107
|
+
extractNameFromPath(path) {
|
|
108
|
+
if (!path)
|
|
109
|
+
return null;
|
|
110
|
+
const fileName = path.split('/').pop() || '';
|
|
111
|
+
return fileName.replace(/\.(md|ts|js|json)$/, '');
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Extract description from content (first paragraph or summary)
|
|
115
|
+
*/
|
|
116
|
+
extractDescription(content) {
|
|
117
|
+
// Look for first paragraph after frontmatter
|
|
118
|
+
const withoutFrontmatter = content.replace(/^---\n[\s\S]*?\n---\n/, '');
|
|
119
|
+
const firstParagraph = withoutFrontmatter.trim().split('\n\n')[0];
|
|
120
|
+
if (firstParagraph && firstParagraph.length < 300) {
|
|
121
|
+
return firstParagraph.replace(/^#+\s*/, '').trim();
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Capability detector with intelligent keyword-based analysis
|
|
128
|
+
*/
|
|
129
|
+
export class CapabilityDetector {
|
|
130
|
+
config;
|
|
131
|
+
/**
|
|
132
|
+
* Default capability keyword mappings (extended from bootstrap scripts)
|
|
133
|
+
*/
|
|
134
|
+
static DEFAULT_KEYWORDS = {
|
|
135
|
+
// Production capabilities
|
|
136
|
+
design_token_compliance: [
|
|
137
|
+
'design token', 'SPACING', 'TYPOGRAPHY', 'SEMANTIC_COLORS',
|
|
138
|
+
'hardcoded', 'design system', 'token compliance', 'Tailwind'
|
|
139
|
+
],
|
|
140
|
+
pagelayout_architecture: [
|
|
141
|
+
'PageLayout', 'layout', 'ArchiveLayout', 'ArticleLayout', 'page structure'
|
|
142
|
+
],
|
|
143
|
+
production_testing: [
|
|
144
|
+
'test', 'testing', '99%', 'pass rate', 'quality', 'vitest', 'playwright', 'test coverage', 'test automation'
|
|
145
|
+
],
|
|
146
|
+
content_creation_seo: [
|
|
147
|
+
'content', 'blog', 'SEO', 'MDX', 'marketing', 'writing'
|
|
148
|
+
],
|
|
149
|
+
nextjs_architecture: [
|
|
150
|
+
'Next.js', 'App Router', 'Server Component', 'API route', 'NextJS'
|
|
151
|
+
],
|
|
152
|
+
// Core capabilities
|
|
153
|
+
code_generation: [
|
|
154
|
+
'code', 'component', 'implementation', 'generate', 'develop', 'build'
|
|
155
|
+
],
|
|
156
|
+
pattern_enforcement: [
|
|
157
|
+
'pattern', 'architecture', 'enforce', 'convention', 'standard', 'compliance'
|
|
158
|
+
],
|
|
159
|
+
performance_optimization: [
|
|
160
|
+
'performance', 'optimization', 'speed', 'lighthouse', 'Core Web Vitals', 'bundle'
|
|
161
|
+
],
|
|
162
|
+
security_scanning: [
|
|
163
|
+
'security', 'vulnerability', 'audit', 'OWASP', 'penetration', 'threat'
|
|
164
|
+
],
|
|
165
|
+
accessibility_audit: [
|
|
166
|
+
'accessibility', 'a11y', 'WCAG', 'screen reader', 'inclusive', 'contrast'
|
|
167
|
+
],
|
|
168
|
+
test_generation: [
|
|
169
|
+
'unit test', 'integration test', 'test suite', 'test coverage', 'TDD'
|
|
170
|
+
],
|
|
171
|
+
design_token_enforcement: [
|
|
172
|
+
'design token', 'token validation', 'style compliance', 'CSS tokens'
|
|
173
|
+
],
|
|
174
|
+
mcp_server_development: [
|
|
175
|
+
'MCP', 'Model Context Protocol', 'server development', 'protocol implementation'
|
|
176
|
+
],
|
|
177
|
+
prompt_engineering: [
|
|
178
|
+
'prompt', 'prompt design', 'prompt optimization', 'LLM prompting'
|
|
179
|
+
],
|
|
180
|
+
};
|
|
181
|
+
constructor(config) {
|
|
182
|
+
this.config = {
|
|
183
|
+
minimumKeywordMatches: config?.minimumKeywordMatches ?? 2,
|
|
184
|
+
fuzzyMatching: config?.fuzzyMatching ?? true,
|
|
185
|
+
customKeywordMappings: config?.customKeywordMappings ?? {},
|
|
186
|
+
mandatoryCapabilities: config?.mandatoryCapabilities ?? ['pattern_enforcement'],
|
|
187
|
+
agentTier: config?.agentTier ?? 'generic',
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Check if capability should be added based on name matching
|
|
192
|
+
*/
|
|
193
|
+
checkNameBasedDetection(capabilityId, matchedKeywords, nameLower, agentName) {
|
|
194
|
+
const idVariants = [capabilityId.replace(/_/g, '-'), capabilityId.replace(/_/g, ' ')];
|
|
195
|
+
if (idVariants.some(v => nameLower.includes(v))) {
|
|
196
|
+
return {
|
|
197
|
+
capabilityId,
|
|
198
|
+
detectionConfidence: 0.75,
|
|
199
|
+
matchedKeywords: [...matchedKeywords, `name:${agentName}`]
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Add mandatory capabilities that weren't detected
|
|
206
|
+
*/
|
|
207
|
+
addMandatoryCapabilities(capabilities) {
|
|
208
|
+
for (const mandatoryCapability of this.config.mandatoryCapabilities) {
|
|
209
|
+
if (!capabilities.some(c => c.capabilityId === mandatoryCapability)) {
|
|
210
|
+
capabilities.push({
|
|
211
|
+
capabilityId: mandatoryCapability,
|
|
212
|
+
detectionConfidence: 1.0,
|
|
213
|
+
matchedKeywords: ['mandatory'],
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Detect capabilities from analyzed agent content
|
|
220
|
+
*/
|
|
221
|
+
detect(agentContent, agentName) {
|
|
222
|
+
const capabilities = [];
|
|
223
|
+
const contentLower = agentContent.toLowerCase();
|
|
224
|
+
const nameLower = agentName.toLowerCase();
|
|
225
|
+
// Merge default and custom keyword mappings
|
|
226
|
+
const allKeywordMappings = {
|
|
227
|
+
...CapabilityDetector.DEFAULT_KEYWORDS,
|
|
228
|
+
...this.config.customKeywordMappings,
|
|
229
|
+
};
|
|
230
|
+
for (const [capabilityId, keywords] of Object.entries(allKeywordMappings)) {
|
|
231
|
+
const matchedKeywords = this.matchKeywords(keywords, contentLower);
|
|
232
|
+
const matchCount = matchedKeywords.length;
|
|
233
|
+
const detectionConfidence = Math.min(matchCount / keywords.length, 1.0);
|
|
234
|
+
if (matchCount >= this.config.minimumKeywordMatches) {
|
|
235
|
+
capabilities.push({ capabilityId, detectionConfidence, matchedKeywords });
|
|
236
|
+
}
|
|
237
|
+
else if (matchCount >= 1) {
|
|
238
|
+
const nameMatch = this.checkNameBasedDetection(capabilityId, matchedKeywords, nameLower, agentName);
|
|
239
|
+
if (nameMatch)
|
|
240
|
+
capabilities.push(nameMatch);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Add mandatory capabilities if not already detected
|
|
244
|
+
this.addMandatoryCapabilities(capabilities);
|
|
245
|
+
return capabilities;
|
|
246
|
+
}
|
|
247
|
+
/** Return keywords from the list that match the content string */
|
|
248
|
+
matchKeywords(keywords, contentLower) {
|
|
249
|
+
return keywords.filter(keyword => {
|
|
250
|
+
const kl = keyword.toLowerCase();
|
|
251
|
+
if (this.config.fuzzyMatching)
|
|
252
|
+
return contentLower.includes(kl);
|
|
253
|
+
return new RegExp(`\\b${this.escapeRegex(kl)}\\b`, 'i').test(contentLower);
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
escapeRegex(str) {
|
|
257
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Confidence score initializer with gradual validation support
|
|
262
|
+
*/
|
|
263
|
+
export class ConfidenceInitializer {
|
|
264
|
+
config;
|
|
265
|
+
constructor(config) {
|
|
266
|
+
this.config = {
|
|
267
|
+
initialConfidence: config?.initialConfidence ?? 0.50,
|
|
268
|
+
validatedConfidence: config?.validatedConfidence ?? 0.85,
|
|
269
|
+
provenConfidence: config?.provenConfidence ?? 0.92,
|
|
270
|
+
gradualValidation: config?.gradualValidation ?? true,
|
|
271
|
+
completionsForProvenStatus: config?.completionsForProvenStatus ?? 10,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Initialize confidence score based on detection confidence and validation status
|
|
276
|
+
*/
|
|
277
|
+
initializeConfidence(detectionConfidence, hasValidation = false, successfulCompletions = 0) {
|
|
278
|
+
// If agent has proven track record
|
|
279
|
+
if (successfulCompletions >= this.config.completionsForProvenStatus) {
|
|
280
|
+
return this.config.provenConfidence;
|
|
281
|
+
}
|
|
282
|
+
// If agent has validation but not proven yet
|
|
283
|
+
if (hasValidation) {
|
|
284
|
+
if (this.config.gradualValidation && successfulCompletions > 0) {
|
|
285
|
+
// Gradual confidence increase based on completions
|
|
286
|
+
const progressRatio = successfulCompletions / this.config.completionsForProvenStatus;
|
|
287
|
+
const confidenceRange = this.config.provenConfidence - this.config.validatedConfidence;
|
|
288
|
+
return this.config.validatedConfidence + (confidenceRange * progressRatio);
|
|
289
|
+
}
|
|
290
|
+
return this.config.validatedConfidence;
|
|
291
|
+
}
|
|
292
|
+
// New/unvalidated agent: use detection confidence weighted with initial baseline
|
|
293
|
+
const baselineWeight = 0.7;
|
|
294
|
+
const detectionWeight = 0.3;
|
|
295
|
+
return (this.config.initialConfidence * baselineWeight) + (detectionConfidence * detectionWeight);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Get validation recommendations for improving confidence
|
|
299
|
+
*/
|
|
300
|
+
getValidationRecommendations(currentConfidence, successfulCompletions) {
|
|
301
|
+
const recommendations = [];
|
|
302
|
+
if (currentConfidence < this.config.validatedConfidence) {
|
|
303
|
+
recommendations.push(`Add validation tests to increase confidence from ${currentConfidence.toFixed(2)} to ${this.config.validatedConfidence}`);
|
|
304
|
+
}
|
|
305
|
+
if (successfulCompletions < this.config.completionsForProvenStatus) {
|
|
306
|
+
const remaining = this.config.completionsForProvenStatus - successfulCompletions;
|
|
307
|
+
recommendations.push(`Complete ${remaining} more successful tasks to reach proven status (${this.config.provenConfidence} confidence)`);
|
|
308
|
+
}
|
|
309
|
+
if (this.config.gradualValidation && currentConfidence < this.config.provenConfidence) {
|
|
310
|
+
recommendations.push('Enable gradual validation to track progressive confidence improvements with each successful completion');
|
|
311
|
+
}
|
|
312
|
+
return recommendations;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Complete capability bootstrap toolkit
|
|
317
|
+
*/
|
|
318
|
+
export class CapabilityBootstrap {
|
|
319
|
+
analyzer;
|
|
320
|
+
detector;
|
|
321
|
+
confidenceInit;
|
|
322
|
+
constructor(detectionConfig, confidenceConfig) {
|
|
323
|
+
this.analyzer = new AgentAnalyzer();
|
|
324
|
+
this.detector = new CapabilityDetector(detectionConfig);
|
|
325
|
+
this.confidenceInit = new ConfidenceInitializer(confidenceConfig);
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Bootstrap a new agent from any supported source
|
|
329
|
+
*/
|
|
330
|
+
async bootstrap(source) {
|
|
331
|
+
// Step 1: Analyze agent source
|
|
332
|
+
const analyzed = await this.analyzer.analyze(source);
|
|
333
|
+
// Step 2: Detect capabilities
|
|
334
|
+
const detected = this.detector.detect(analyzed.content, analyzed.name);
|
|
335
|
+
// Step 3: Generate capability manifest
|
|
336
|
+
const { generateCapabilityManifest } = await import('./capability-manifest-generator.js');
|
|
337
|
+
const agentObject = {
|
|
338
|
+
manifest: {
|
|
339
|
+
name: analyzed.name,
|
|
340
|
+
description: analyzed.description,
|
|
341
|
+
capabilities: detected.map(d => d.capabilityId),
|
|
342
|
+
...analyzed.metadata,
|
|
343
|
+
},
|
|
344
|
+
};
|
|
345
|
+
const manifest = generateCapabilityManifest(agentObject);
|
|
346
|
+
// Step 4: Initialize confidence scores
|
|
347
|
+
manifest.capabilities = manifest.capabilities.map((capability, index) => {
|
|
348
|
+
const detectedCapability = detected[index];
|
|
349
|
+
const initializedConfidence = this.confidenceInit.initializeConfidence(detectedCapability?.detectionConfidence ?? 0.5, false, // No validation by default for new agents
|
|
350
|
+
0);
|
|
351
|
+
// Ensure confidence is always a valid number
|
|
352
|
+
const validConfidence = isNaN(initializedConfidence) ? 0.5 :
|
|
353
|
+
Math.max(0, Math.min(1, initializedConfidence));
|
|
354
|
+
return {
|
|
355
|
+
...capability,
|
|
356
|
+
confidence_level: validConfidence,
|
|
357
|
+
};
|
|
358
|
+
});
|
|
359
|
+
// Step 5: Calculate overall confidence with NaN protection
|
|
360
|
+
const validCapabilities = manifest.capabilities.filter(c => c.confidence_level !== undefined && !isNaN(c.confidence_level));
|
|
361
|
+
const avgConfidence = validCapabilities.length > 0 ?
|
|
362
|
+
validCapabilities.reduce((sum, c) => sum + c.confidence_level, 0) / validCapabilities.length :
|
|
363
|
+
0.5; // Default confidence when no valid capabilities
|
|
364
|
+
manifest.overall_confidence = avgConfidence;
|
|
365
|
+
// Step 6: Generate warnings and suggestions
|
|
366
|
+
const warnings = [];
|
|
367
|
+
const suggestions = [];
|
|
368
|
+
if (detected.length === 0) {
|
|
369
|
+
warnings.push('No capabilities detected - agent may need manual capability assignment');
|
|
370
|
+
}
|
|
371
|
+
if (detected.length === 1 && detected[0].capabilityId === 'pattern_enforcement') {
|
|
372
|
+
suggestions.push('Consider adding more specific capability keywords to agent description');
|
|
373
|
+
}
|
|
374
|
+
if (avgConfidence < 0.60) {
|
|
375
|
+
suggestions.push('Low overall confidence - add validation tests to improve confidence scores');
|
|
376
|
+
}
|
|
377
|
+
// Add validation recommendations
|
|
378
|
+
suggestions.push(...this.confidenceInit.getValidationRecommendations(avgConfidence, 0));
|
|
379
|
+
return {
|
|
380
|
+
agentId: analyzed.name,
|
|
381
|
+
manifest,
|
|
382
|
+
detectedCapabilities: detected,
|
|
383
|
+
warnings,
|
|
384
|
+
suggestions,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Bootstrap multiple agents in batch
|
|
389
|
+
*/
|
|
390
|
+
async bootstrapBatch(sources) {
|
|
391
|
+
const results = [];
|
|
392
|
+
for (const source of sources) {
|
|
393
|
+
try {
|
|
394
|
+
const result = await this.bootstrap(source);
|
|
395
|
+
results.push(result);
|
|
396
|
+
}
|
|
397
|
+
catch (error) {
|
|
398
|
+
console.error(`Failed to bootstrap agent from source:`, error);
|
|
399
|
+
// Continue with other agents
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return results;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Default bootstrap instance with standard configuration
|
|
407
|
+
*/
|
|
408
|
+
export const defaultBootstrap = new CapabilityBootstrap();
|
|
409
|
+
/**
|
|
410
|
+
* Bootstrap an agent with default configuration
|
|
411
|
+
*/
|
|
412
|
+
export async function bootstrapAgent(source) {
|
|
413
|
+
return defaultBootstrap.bootstrap(source);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Bootstrap multiple agents with default configuration
|
|
417
|
+
*/
|
|
418
|
+
export async function bootstrapAgents(sources) {
|
|
419
|
+
return defaultBootstrap.bootstrapBatch(sources);
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=capability-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-bootstrap.js","sourceRoot":"","sources":["../../../packages/ai/src/capability-bootstrap.ts"],"names":[],"mappings":"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"}
|