@dcyfr/ai 1.0.3 → 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/LICENSE +27 -1
- package/README.md +720 -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 +27 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +32 -10
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/mcp/index.d.ts +14 -2
- package/dist/ai/mcp/index.d.ts.map +1 -1
- package/dist/ai/mcp/index.js +11 -1
- package/dist/ai/mcp/index.js.map +1 -1
- package/dist/ai/mcp/servers/analytics/index.d.ts +19 -0
- package/dist/ai/mcp/servers/analytics/index.d.ts.map +1 -0
- package/dist/ai/mcp/servers/analytics/index.js +612 -0
- package/dist/ai/mcp/servers/analytics/index.js.map +1 -0
- package/dist/ai/mcp/servers/content-manager/content-provider.d.ts +61 -0
- package/dist/ai/mcp/servers/content-manager/content-provider.d.ts.map +1 -0
- package/dist/ai/mcp/servers/content-manager/content-provider.js +8 -0
- package/dist/ai/mcp/servers/content-manager/content-provider.js.map +1 -0
- package/dist/ai/mcp/servers/content-manager/index.d.ts +19 -0
- package/dist/ai/mcp/servers/content-manager/index.d.ts.map +1 -0
- package/dist/ai/mcp/servers/content-manager/index.js +282 -0
- package/dist/ai/mcp/servers/content-manager/index.js.map +1 -0
- 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 +19 -0
- package/dist/ai/mcp/servers/design-tokens/index.d.ts.map +1 -0
- package/dist/ai/mcp/servers/design-tokens/index.js +445 -0
- package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -0
- package/dist/ai/mcp/servers/design-tokens/token-provider.d.ts +59 -0
- package/dist/ai/mcp/servers/design-tokens/token-provider.d.ts.map +1 -0
- package/dist/ai/mcp/servers/design-tokens/token-provider.js +8 -0
- package/dist/ai/mcp/servers/design-tokens/token-provider.js.map +1 -0
- package/dist/ai/mcp/servers/promptintel/index.d.ts +19 -0
- package/dist/ai/mcp/servers/promptintel/index.d.ts.map +1 -0
- package/dist/ai/mcp/servers/promptintel/index.js +335 -0
- package/dist/ai/mcp/servers/promptintel/index.js.map +1 -0
- package/dist/ai/mcp/servers/shared/cache.d.ts +62 -0
- package/dist/ai/mcp/servers/shared/cache.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/cache.js +117 -0
- package/dist/ai/mcp/servers/shared/cache.js.map +1 -0
- package/dist/ai/mcp/servers/shared/promptintel-client.d.ts +53 -0
- package/dist/ai/mcp/servers/shared/promptintel-client.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/promptintel-client.js +185 -0
- package/dist/ai/mcp/servers/shared/promptintel-client.js.map +1 -0
- package/dist/ai/mcp/servers/shared/promptintel-types.d.ts +85 -0
- package/dist/ai/mcp/servers/shared/promptintel-types.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/promptintel-types.js +7 -0
- package/dist/ai/mcp/servers/shared/promptintel-types.js.map +1 -0
- package/dist/ai/mcp/servers/shared/rate-limiter.d.ts +54 -0
- package/dist/ai/mcp/servers/shared/rate-limiter.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/rate-limiter.js +124 -0
- package/dist/ai/mcp/servers/shared/rate-limiter.js.map +1 -0
- package/dist/ai/mcp/servers/shared/redis-client.d.ts +54 -0
- package/dist/ai/mcp/servers/shared/redis-client.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/redis-client.js +232 -0
- package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -0
- package/dist/ai/mcp/servers/shared/types.d.ts +301 -0
- package/dist/ai/mcp/servers/shared/types.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/types.js +6 -0
- package/dist/ai/mcp/servers/shared/types.js.map +1 -0
- package/dist/ai/mcp/servers/shared/utils.d.ts +49 -0
- package/dist/ai/mcp/servers/shared/utils.d.ts.map +1 -0
- package/dist/ai/mcp/servers/shared/utils.js +233 -0
- package/dist/ai/mcp/servers/shared/utils.js.map +1 -0
- package/dist/ai/memory/config.d.ts +102 -0
- package/dist/ai/memory/config.d.ts.map +1 -0
- package/dist/ai/memory/config.js +200 -0
- package/dist/ai/memory/config.js.map +1 -0
- package/dist/ai/memory/dcyfr-memory.d.ts +67 -0
- package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -0
- package/dist/ai/memory/dcyfr-memory.js +308 -0
- package/dist/ai/memory/dcyfr-memory.js.map +1 -0
- package/dist/ai/memory/index.d.ts +15 -0
- package/dist/ai/memory/index.d.ts.map +1 -0
- package/dist/ai/memory/index.js +15 -0
- package/dist/ai/memory/index.js.map +1 -0
- package/dist/ai/memory/mem0-client.d.ts +108 -0
- package/dist/ai/memory/mem0-client.d.ts.map +1 -0
- package/dist/ai/memory/mem0-client.js +205 -0
- package/dist/ai/memory/mem0-client.js.map +1 -0
- package/dist/ai/memory/types.d.ts +175 -0
- package/dist/ai/memory/types.d.ts.map +1 -0
- package/dist/ai/memory/types.js +10 -0
- package/dist/ai/memory/types.js.map +1 -0
- 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 +56 -6
package/README.md
CHANGED
|
@@ -1,18 +1,85 @@
|
|
|
1
1
|
# @dcyfr/ai
|
|
2
2
|
|
|
3
|
+
[](https://deepwiki.com/dcyfr/dcyfr-ai)
|
|
4
|
+
|
|
3
5
|
> Portable AI agent framework with plugin architecture for multi-provider integration, telemetry tracking, and quality validation.
|
|
4
6
|
|
|
5
|
-
[](https://www.npmjs.com/package/@dcyfr/ai)
|
|
8
|
+
[](https://www.npmjs.com/package/@dcyfr/ai)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](https://bundlephobia.com/package/@dcyfr/ai)
|
|
9
12
|
|
|
10
13
|
Portable AI agent framework with plugin architecture for managing multiple AI providers, tracking telemetry, and ensuring quality compliance.
|
|
11
14
|
|
|
15
|
+
## 🔍 @dcyfr/ai vs. Alternatives
|
|
16
|
+
|
|
17
|
+
| Feature | @dcyfr/ai | LangChain | Vercel AI SDK | AutoGPT |
|
|
18
|
+
| ------------------ | ------------------- | ------------ | ------------- | ------------ |
|
|
19
|
+
| Multi-Provider | ✅ | ✅ | ✅ | ❌ |
|
|
20
|
+
| Plugin System | ✅ Custom | ✅ Complex | ❌ | ❌ |
|
|
21
|
+
| Telemetry | ✅ Built-in | ❌ | ❌ | ❌ |
|
|
22
|
+
| Zero Config | ✅ | ❌ | ✅ | ❌ |
|
|
23
|
+
| Bundle Size | ~200KB gzipped | ~2.3MB | ~450KB | N/A |
|
|
24
|
+
| TypeScript | ✅ Strict | Partial | ✅ | ❌ |
|
|
25
|
+
| Quality Gates | ✅ | ❌ | ❌ | ❌ |
|
|
26
|
+
| Config System | YAML/JSON/package | Code-only | Code-only | JSON |
|
|
27
|
+
| Learning Curve | Low | High | Low | High |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 📊 npm Statistics
|
|
32
|
+
|
|
33
|
+
[](https://www.npmjs.com/package/@dcyfr/ai)
|
|
34
|
+
[](https://www.npmjs.com/package/@dcyfr/ai)
|
|
35
|
+
[](https://bundlephobia.com/package/@dcyfr/ai)
|
|
36
|
+
|
|
37
|
+
- **Weekly Downloads:** Check [npm stats](https://www.npmjs.com/package/@dcyfr/ai)
|
|
38
|
+
- **Dependencies:** 12 production dependencies (zero bloat)
|
|
39
|
+
- **Bundle Size:** ~200KB gzipped with tree shaking
|
|
40
|
+
- **TypeScript:** Full type definitions included
|
|
41
|
+
- **ESM Support:** ✅ Full ESM modules with tree shaking
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Table of Contents
|
|
46
|
+
|
|
47
|
+
<details>
|
|
48
|
+
<summary>📑 Table of Contents</summary>
|
|
49
|
+
|
|
50
|
+
- [Features](#features)
|
|
51
|
+
- [Installation](#installation)
|
|
52
|
+
- [Quick Start](#quick-start)
|
|
53
|
+
- [Configuration](#configuration)
|
|
54
|
+
- [File Formats](#file-formats)
|
|
55
|
+
- [Three-Layer Merge](#three-layer-merge)
|
|
56
|
+
- [Environment Overrides](#environment-overrides)
|
|
57
|
+
- [Architecture](#architecture)
|
|
58
|
+
- [Plugin System](#plugin-system)
|
|
59
|
+
- [Built-in Agents](#built-in-agents)
|
|
60
|
+
- [Custom Plugins](#custom-plugins)
|
|
61
|
+
- [CLI Commands](#cli-commands)
|
|
62
|
+
- [Examples](#examples)
|
|
63
|
+
- [Documentation](#documentation)
|
|
64
|
+
- [Contributing](#contributing)
|
|
65
|
+
- [Troubleshooting](#-troubleshooting)
|
|
66
|
+
- [Installation Issues](#installation-issues)
|
|
67
|
+
- [Configuration Issues](#configuration-issues)
|
|
68
|
+
- [Plugin Issues](#plugin-issues)
|
|
69
|
+
- [CLI Issues](#cli-issues)
|
|
70
|
+
- [FAQ](#-faq)
|
|
71
|
+
- [Performance Benchmarks](#-performance-benchmarks)
|
|
72
|
+
- [Security](#-security)
|
|
73
|
+
- [Known Limitations](#️-known-limitations)
|
|
74
|
+
- [License & Sponsorship](#-license--sponsorship)
|
|
75
|
+
|
|
76
|
+
</details>
|
|
77
|
+
|
|
12
78
|
## Features
|
|
13
79
|
|
|
14
80
|
- 🔌 **Plugin Architecture** - Extensible validation system with custom agents
|
|
15
|
-
- 🔄 **Multi-Provider Support** -
|
|
81
|
+
- 🔄 **Multi-Provider Support** - OpenAI, Anthropic, Ollama, Msty Vibe CLI Proxy, GitHub Copilot
|
|
82
|
+
- 🎯 **Msty Vibe Integration** - Unified multi-model routing with local OpenAI-compatible endpoint
|
|
16
83
|
- ⚙️ **Configuration System** - YAML/JSON config with three-layer merge
|
|
17
84
|
- 📊 **Comprehensive Telemetry** - Track usage, costs, quality metrics, performance
|
|
18
85
|
- ✅ **Validation Framework** - Quality gates with parallel/serial execution
|
|
@@ -88,6 +155,379 @@ npx @dcyfr/ai config:validate
|
|
|
88
155
|
npx @dcyfr/ai config:validate --verbose
|
|
89
156
|
```
|
|
90
157
|
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 🔄 Migration Guides
|
|
161
|
+
|
|
162
|
+
### Migrating from LangChain
|
|
163
|
+
|
|
164
|
+
**Why migrate:** 10x smaller bundle (~200KB vs 2.3MB), built-in telemetry, simpler API
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
// LangChain (before)
|
|
168
|
+
import { ChatOpenAI } from "langchain/chat_models/openai";
|
|
169
|
+
import { HumanMessage } from "langchain/schema";
|
|
170
|
+
|
|
171
|
+
const model = new ChatOpenAI({ temperature: 0.9 });
|
|
172
|
+
const response = await model.call([new HumanMessage("Hello")]);
|
|
173
|
+
|
|
174
|
+
// @dcyfr/ai (after)
|
|
175
|
+
import { AgentRuntime } from '@dcyfr/ai';
|
|
176
|
+
|
|
177
|
+
const runtime = new AgentRuntime({
|
|
178
|
+
provider: 'openai',
|
|
179
|
+
model: 'gpt-4',
|
|
180
|
+
temperature: 0.9
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
const response = await runtime.chat({ messages: [{ role: 'user', content: 'Hello' }] });
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Key Differences:**
|
|
187
|
+
- Simpler configuration (YAML/JSON vs code-only)
|
|
188
|
+
- Built-in telemetry tracking (no additional setup)
|
|
189
|
+
- Smaller bundle size (200KB vs 2.3MB)
|
|
190
|
+
- Type-safe validation with Zod
|
|
191
|
+
- Quality gates included out of the box
|
|
192
|
+
|
|
193
|
+
### Migrating from Vercel AI SDK
|
|
194
|
+
|
|
195
|
+
**Why migrate:** Quality gates, telemetry, multi-provider validation framework
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
// Vercel AI SDK (before)
|
|
199
|
+
import { openai } from '@ai-sdk/openai';
|
|
200
|
+
import { generateText } from 'ai';
|
|
201
|
+
|
|
202
|
+
const { text } = await generateText({
|
|
203
|
+
model: openai('gpt-4-turbo'),
|
|
204
|
+
prompt: 'Hello'
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// @dcyfr/ai (after)
|
|
208
|
+
import { AgentRuntime, ValidationFramework } from '@dcyfr/ai';
|
|
209
|
+
|
|
210
|
+
const runtime = new AgentRuntime({
|
|
211
|
+
provider: 'openai',
|
|
212
|
+
model: 'gpt-4-turbo'
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
const response = await runtime.chat({
|
|
216
|
+
messages: [{ role: 'user', content: 'Hello' }]
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
// Bonus: Built-in validation
|
|
220
|
+
const validator = new ValidationFramework();
|
|
221
|
+
const report = await validator.validate({ /* config */ });
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**Key Differences:**
|
|
225
|
+
- Configuration system (YAML/JSON files)
|
|
226
|
+
- Validation framework with quality gates
|
|
227
|
+
- Comprehensive telemetry tracking
|
|
228
|
+
- Plugin system for custom validators
|
|
229
|
+
- Zero-config startup option
|
|
230
|
+
|
|
231
|
+
**Full Migration Docs:** See [docs/migrations/](./docs/migrations/) for detailed guides
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Getting Started with AgentRuntime (Phase 0 Autonomous Operations)
|
|
236
|
+
|
|
237
|
+
### Prerequisites
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# Node.js 18+ required
|
|
241
|
+
node --version
|
|
242
|
+
|
|
243
|
+
# Install @dcyfr/ai
|
|
244
|
+
npm install @dcyfr/ai
|
|
245
|
+
|
|
246
|
+
# Optional: Configure LLM providers
|
|
247
|
+
export OPENAI_API_KEY=your_openai_key
|
|
248
|
+
export ANTHROPIC_API_KEY=your_anthropic_key
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 1. Basic AgentRuntime Setup
|
|
252
|
+
|
|
253
|
+
```typescript
|
|
254
|
+
import {
|
|
255
|
+
AgentRuntime,
|
|
256
|
+
ProviderRegistry,
|
|
257
|
+
TelemetryEngine,
|
|
258
|
+
DCYFRMemory
|
|
259
|
+
} from '@dcyfr/ai';
|
|
260
|
+
|
|
261
|
+
// Initialize components
|
|
262
|
+
const providerRegistry = new ProviderRegistry();
|
|
263
|
+
const telemetryEngine = new TelemetryEngine({ storage: 'sqlite' });
|
|
264
|
+
const memory = new DCYFRMemory({ storage: 'memory' });
|
|
265
|
+
|
|
266
|
+
// Create runtime
|
|
267
|
+
const runtime = new AgentRuntime({
|
|
268
|
+
providerRegistry,
|
|
269
|
+
memory,
|
|
270
|
+
telemetry: telemetryEngine
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// Verify setup
|
|
274
|
+
console.log(`Runtime ready: ${runtime.isReady()}`);
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### 2. Execute Autonomous Tasks
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
// Simple task execution
|
|
281
|
+
const result = await runtime.executeTask('Explain quantum computing briefly');
|
|
282
|
+
|
|
283
|
+
if (result.success) {
|
|
284
|
+
console.log('Output:', result.output);
|
|
285
|
+
console.log('Memory used:', result.memoryRetrievalUsed);
|
|
286
|
+
} else {
|
|
287
|
+
console.error('Error:', result.error);
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### 3. Memory-Enhanced Execution
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
// Task with memory context
|
|
295
|
+
const result = await runtime.executeTask('Continue the quantum computing explanation', {
|
|
296
|
+
timeout: 30000,
|
|
297
|
+
memoryConfig: {
|
|
298
|
+
maxResults: 10, // Maximum context entries
|
|
299
|
+
minScore: 0.7 // Relevance threshold (0.0-1.0)
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
// Memory is automatically retrieved, injected, and persisted
|
|
304
|
+
console.log('Previous context used:', result.memoryRetrievalUsed);
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### 4. Working Memory for Multi-Step Tasks
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
// Access working memory for ephemeral state
|
|
311
|
+
const workingMemory = runtime.getWorkingMemory();
|
|
312
|
+
|
|
313
|
+
// Step 1: Research overview
|
|
314
|
+
workingMemory.set('research-topic', 'AI ethics');
|
|
315
|
+
const overviewResult = await runtime.executeTask(
|
|
316
|
+
'Provide overview of AI ethics and key considerations'
|
|
317
|
+
);
|
|
318
|
+
|
|
319
|
+
// Step 2: Deep dive (with context from step 1)
|
|
320
|
+
workingMemory.set('overview-complete', overviewResult.output);
|
|
321
|
+
const deepDiveResult = await runtime.executeTask(
|
|
322
|
+
'Analyze specific ethical challenges in AI deployment'
|
|
323
|
+
);
|
|
324
|
+
|
|
325
|
+
console.log('Working memory keys:', Array.from(workingMemory.keys()));
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### 5. Hook System for Extensions
|
|
329
|
+
|
|
330
|
+
```typescript
|
|
331
|
+
// Add before-execution hook
|
|
332
|
+
runtime.addHook('beforeExecute', async (task: string) => {
|
|
333
|
+
console.log(`🚀 Starting task: ${task}`);
|
|
334
|
+
|
|
335
|
+
// Custom validation
|
|
336
|
+
if (task.includes('sensitive')) {
|
|
337
|
+
return { approved: false, reason: 'Sensitive content detected' };
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
return { approved: true };
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
// Add after-execution hook
|
|
344
|
+
runtime.addHook('afterExecute', async (task, result, success) => {
|
|
345
|
+
console.log(`✅ Task completed: ${success ? 'SUCCESS' : 'FAILED'}`);
|
|
346
|
+
|
|
347
|
+
// Custom telemetry
|
|
348
|
+
if (success) {
|
|
349
|
+
await customAnalytics.track({
|
|
350
|
+
task: task.substring(0, 50),
|
|
351
|
+
duration: result.duration,
|
|
352
|
+
memoryUsed: result.memoryRetrievalUsed
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### 6. Provider Configuration & Fallback
|
|
359
|
+
|
|
360
|
+
```typescript
|
|
361
|
+
// Multi-provider setup with fallback
|
|
362
|
+
const runtime = new AgentRuntime({
|
|
363
|
+
providerRegistry: new ProviderRegistry(),
|
|
364
|
+
memory,
|
|
365
|
+
telemetry
|
|
366
|
+
});
|
|
367
|
+
|
|
368
|
+
// Providers automatically fallback: OpenAI → Anthropic → Ollama
|
|
369
|
+
const result = await runtime.executeTask('Analyze market trends');
|
|
370
|
+
|
|
371
|
+
// Check which provider was used
|
|
372
|
+
const events = await telemetryEngine.getEvents();
|
|
373
|
+
const lastExecution = events.filter(e => e.type === 'start').pop();
|
|
374
|
+
console.log('Provider used:', lastExecution?.provider);
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### 7. Telemetry Monitoring & Analysis
|
|
378
|
+
|
|
379
|
+
```typescript
|
|
380
|
+
// Get telemetry engine for analytics
|
|
381
|
+
const telemetry = runtime.getTelemetryEngine();
|
|
382
|
+
|
|
383
|
+
// Get recent events
|
|
384
|
+
const events = await telemetry.getEvents();
|
|
385
|
+
console.log(`Total events: ${events.length}`);
|
|
386
|
+
|
|
387
|
+
// Filter memory events
|
|
388
|
+
const memoryEvents = events.filter(e => e.type === 'memory_retrieval');
|
|
389
|
+
const hitRate = memoryEvents.length > 0
|
|
390
|
+
? memoryEvents.filter(e => e.memoriesRelevant > 0).length / memoryEvents.length
|
|
391
|
+
: 0;
|
|
392
|
+
console.log(`Memory hit rate: ${(hitRate * 100).toFixed(1)}%`);
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### 8. CLI Dashboard Commands
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# View telemetry dashboard
|
|
399
|
+
npx @dcyfr/ai telemetry
|
|
400
|
+
|
|
401
|
+
# Show recent activity
|
|
402
|
+
npx @dcyfr/ai telemetry --recent 20
|
|
403
|
+
|
|
404
|
+
# Cost analysis
|
|
405
|
+
npx @dcyfr/ai telemetry --costs
|
|
406
|
+
|
|
407
|
+
# Provider summary
|
|
408
|
+
npx @dcyfr/ai telemetry --providers
|
|
409
|
+
|
|
410
|
+
# Runtime validation
|
|
411
|
+
npx @dcyfr/ai validate-runtime
|
|
412
|
+
|
|
413
|
+
# Export data
|
|
414
|
+
npx @dcyfr/ai telemetry --export usage_data.csv
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### 9. Provider Setup
|
|
418
|
+
|
|
419
|
+
**OpenAI:**
|
|
420
|
+
```bash
|
|
421
|
+
export OPENAI_API_KEY=sk-your-key-here
|
|
422
|
+
# Supports: gpt-4, gpt-4o, gpt-3.5-turbo
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Anthropic:**
|
|
426
|
+
```bash
|
|
427
|
+
export ANTHROPIC_API_KEY=sk-ant-your-key-here
|
|
428
|
+
# Supports: claude-3-5-sonnet, claude-3-haiku, claude-3-opus
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Ollama (Local):**
|
|
432
|
+
```bash
|
|
433
|
+
# Install Ollama
|
|
434
|
+
curl -fsSL https://ollama.ai/install.sh | sh
|
|
435
|
+
|
|
436
|
+
# Install a model
|
|
437
|
+
ollama pull llama2
|
|
438
|
+
# OR: ollama pull codellama, qwen2.5, etc.
|
|
439
|
+
|
|
440
|
+
# Optional: Custom host
|
|
441
|
+
export OLLAMA_HOST=localhost:11434
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### 10. Configuration Examples
|
|
445
|
+
|
|
446
|
+
**Development:**
|
|
447
|
+
```typescript
|
|
448
|
+
const devConfig = {
|
|
449
|
+
providerRegistry: new ProviderRegistry(),
|
|
450
|
+
memory: new DCYFRMemory({
|
|
451
|
+
storage: 'memory',
|
|
452
|
+
maxEntries: 100
|
|
453
|
+
}),
|
|
454
|
+
telemetry: new TelemetryEngine({
|
|
455
|
+
storage: 'memory' // No persistence for dev
|
|
456
|
+
})
|
|
457
|
+
};
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
**Production:**
|
|
461
|
+
```typescript
|
|
462
|
+
const prodConfig = {
|
|
463
|
+
providerRegistry: new ProviderRegistry(),
|
|
464
|
+
memory: new DCYFRMemory({
|
|
465
|
+
storage: 'file',
|
|
466
|
+
filePath: './data/memory.json'
|
|
467
|
+
}),
|
|
468
|
+
telemetry: new TelemetryEngine({
|
|
469
|
+
storage: 'sqlite',
|
|
470
|
+
dbPath: './data/telemetry.db'
|
|
471
|
+
})
|
|
472
|
+
};
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### 11. Real-World Example
|
|
476
|
+
|
|
477
|
+
See our comprehensive example: **[Autonomous Research Agent](../dcyfr-ai-agents/examples/autonomous-research-agent/)**
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
cd dcyfr-ai-agents/examples/autonomous-research-agent
|
|
481
|
+
npm run demo -- --topic "quantum computing applications"
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
This example demonstrates:
|
|
485
|
+
- 5-step autonomous research pipeline
|
|
486
|
+
- Memory context integration
|
|
487
|
+
- Working memory coordination
|
|
488
|
+
- Hook system extensions
|
|
489
|
+
- Telemetry monitoring
|
|
490
|
+
- Provider fallback handling
|
|
491
|
+
- Configuration management
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
## Architecture
|
|
496
|
+
|
|
497
|
+
The DCYFR AI framework follows a layered architecture with clear separation of concerns:
|
|
498
|
+
|
|
499
|
+
```mermaid
|
|
500
|
+
graph TB
|
|
501
|
+
A[Configuration Files] -->|Load & Merge| B[Config Loader]
|
|
502
|
+
B -->|Initialize| C[Plugin Registry]
|
|
503
|
+
C -->|Register| D[Validation Engine]
|
|
504
|
+
C -->|Register| E[Telemetry Engine]
|
|
505
|
+
D -->|Execute| F[Quality Gates]
|
|
506
|
+
E -->|Track| G[Storage Adapters]
|
|
507
|
+
B -->|Configure| H[CLI Interface]
|
|
508
|
+
H -->|Commands| I[User]
|
|
509
|
+
|
|
510
|
+
style A fill:#e1f5ff
|
|
511
|
+
style B fill:#fff3cd
|
|
512
|
+
style C fill:#d4edda
|
|
513
|
+
style D fill:#d4edda
|
|
514
|
+
style E fill:#d4edda
|
|
515
|
+
style H fill:#cfe2ff
|
|
516
|
+
style I fill:#f8d7da
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
### Key Components
|
|
520
|
+
|
|
521
|
+
- **Config Loader**: Three-layer merge system (defaults → project config → env vars)
|
|
522
|
+
- **Plugin Registry**: Manages custom and built-in validation agents
|
|
523
|
+
- **Validation Engine**: Executes quality gates in parallel or serial mode
|
|
524
|
+
- **Telemetry Engine**: Tracks usage, costs, quality metrics with pluggable storage
|
|
525
|
+
- **CLI Interface**: User-facing commands for config management and validation
|
|
526
|
+
|
|
527
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
528
|
+
|
|
529
|
+
---
|
|
530
|
+
|
|
91
531
|
## Configuration
|
|
92
532
|
|
|
93
533
|
### File Formats
|
|
@@ -154,6 +594,10 @@ const loader = new PluginLoader();
|
|
|
154
594
|
await loader.loadPlugin(customPlugin);
|
|
155
595
|
```
|
|
156
596
|
|
|
597
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
157
601
|
## CLI Commands
|
|
158
602
|
|
|
159
603
|
```bash
|
|
@@ -174,6 +618,10 @@ npx @dcyfr/ai config:schema
|
|
|
174
618
|
npx @dcyfr/ai help
|
|
175
619
|
```
|
|
176
620
|
|
|
621
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
177
625
|
## Examples
|
|
178
626
|
|
|
179
627
|
See [examples/](./examples/) directory:
|
|
@@ -183,10 +631,12 @@ See [examples/](./examples/) directory:
|
|
|
183
631
|
|
|
184
632
|
## Documentation
|
|
185
633
|
|
|
186
|
-
- [Getting Started](./docs/
|
|
187
|
-
- [
|
|
188
|
-
- [
|
|
189
|
-
- [
|
|
634
|
+
- [Getting Started](./docs/GETTING-STARTED.md)
|
|
635
|
+
- [Provider Integrations](./docs/PROVIDER_INTEGRATIONS.md) - **OpenAI, Anthropic, Ollama, Msty Vibe CLI Proxy**
|
|
636
|
+
- [Memory Setup](./docs/MEMORY_SETUP.md) - Vector database and memory configuration
|
|
637
|
+
- [Plugin Development](./docs/PLUGINS.md)
|
|
638
|
+
- [API Reference](./docs/API.md)
|
|
639
|
+
- [TUI Dashboard](./docs/TUI.md)
|
|
190
640
|
- [Release Management](./docs/RELEASE_MANAGEMENT.md) - Publishing and versioning
|
|
191
641
|
- [Quick Release Guide](./docs/RELEASE_QUICK_START.md) - TL;DR for releases
|
|
192
642
|
|
|
@@ -212,3 +662,264 @@ git commit -m "feat: your feature"
|
|
|
212
662
|
- Changesets automatically creates Release PRs
|
|
213
663
|
- Merging a Release PR publishes to npm
|
|
214
664
|
- See [Release Management](./docs/RELEASE_MANAGEMENT.md) for full details
|
|
665
|
+
|
|
666
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
## 🔧 Troubleshooting
|
|
671
|
+
|
|
672
|
+
### Installation Issues
|
|
673
|
+
|
|
674
|
+
**Issue: `npm install @dcyfr/ai` fails with 404**
|
|
675
|
+
- **Cause:** Package may not be published yet or npm registry issue
|
|
676
|
+
- **Solution:** Verify package exists: `npm view @dcyfr/ai`, or install from GitHub: `npm install git+https://github.com/dcyfr/dcyfr-ai.git`
|
|
677
|
+
- **Check:** Visit https://www.npmjs.com/package/@dcyfr/ai to confirm publication status
|
|
678
|
+
|
|
679
|
+
**Issue: "Cannot find module '@dcyfr/ai'"**
|
|
680
|
+
- **Cause:** Package not in `node_modules` or incorrect import path
|
|
681
|
+
- **Solution:** Run `npm install`, verify import: `import { loadConfig } from '@dcyfr/ai'`
|
|
682
|
+
- **TypeScript:** Ensure `moduleResolution: "bundler"` or `"node16"` in tsconfig.json
|
|
683
|
+
|
|
684
|
+
### Configuration Issues
|
|
685
|
+
|
|
686
|
+
**Issue: `.dcyfr.yaml` not detected**
|
|
687
|
+
- **Cause:** File in wrong location or invalid YAML syntax
|
|
688
|
+
- **Solution:**
|
|
689
|
+
1. Place `.dcyfr.yaml` in project root (same directory as package.json)
|
|
690
|
+
2. Validate YAML syntax with `npx @dcyfr/ai config:validate`
|
|
691
|
+
3. Check for tabs (use spaces), missing colons, incorrect indentation
|
|
692
|
+
- **Alternative:** Use `.dcyfr.json` or add `dcyfr` key to `package.json`
|
|
693
|
+
|
|
694
|
+
**Issue: "Invalid configuration schema"**
|
|
695
|
+
- **Cause:** Missing required fields or incorrect types
|
|
696
|
+
- **Solution:**
|
|
697
|
+
1. Run `npx @dcyfr/ai config:schema` to see full schema
|
|
698
|
+
2. Ensure required fields present: `version`, `projectName`
|
|
699
|
+
3. Check types match (strings in quotes, booleans without quotes, arrays with brackets)
|
|
700
|
+
- **Example:** Valid config minimum:
|
|
701
|
+
```yaml
|
|
702
|
+
version: '1.0.0'
|
|
703
|
+
projectName: my-app
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
**Issue: Environment variables not overriding config**
|
|
707
|
+
- **Cause:** Incorrect env var naming or precedence
|
|
708
|
+
- **Solution:** Use `DCYFR_` prefix with nested path: `DCYFR_AGENTS_DESIGNTOKENS_COMPLIANCE=0.95`
|
|
709
|
+
- **Format:** `DCYFR_<SECTION>_<SUBSECTION>_<KEY>=<value>` (uppercase, underscores)
|
|
710
|
+
- **Debug:** Log final config to see what values are being used
|
|
711
|
+
|
|
712
|
+
### Plugin Issues
|
|
713
|
+
|
|
714
|
+
**Issue: Custom plugin not loading**
|
|
715
|
+
- **Cause:** Plugin doesn't implement required interface or missing manifest
|
|
716
|
+
- **Solution:** Ensure plugin exports:
|
|
717
|
+
1. `manifest` object with `name`, `version`, `description`
|
|
718
|
+
2. `onValidate` method (async function)
|
|
719
|
+
3. Proper TypeScript types if using TypeScript
|
|
720
|
+
- **Example:** See [examples/plugin-system.ts](./examples/plugin-system.ts)
|
|
721
|
+
|
|
722
|
+
**Issue: Validation fails with "No plugins loaded"**
|
|
723
|
+
- **Cause:** Plugins not registered with PluginLoader before validation
|
|
724
|
+
- **Solution:**
|
|
725
|
+
```typescript
|
|
726
|
+
import { PluginLoader } from '@dcyfr/ai';
|
|
727
|
+
const loader = new PluginLoader();
|
|
728
|
+
await loader.loadPlugin(myPlugin);
|
|
729
|
+
await loader.runValidation();
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
### CLI Issues
|
|
733
|
+
|
|
734
|
+
**Issue: `npx @dcyfr/ai` command not found**
|
|
735
|
+
- **Cause:** Package not installed or PATH issue
|
|
736
|
+
- **Solution:**
|
|
737
|
+
- Local: Add to devDependencies: `npm install --save-dev @dcyfr/ai`
|
|
738
|
+
- Global: `npm install -g @dcyfr/ai`
|
|
739
|
+
- npx: Use full package name: `npx @dcyfr/ai@latest`
|
|
740
|
+
|
|
741
|
+
**Issue: CLI commands hang or timeout**
|
|
742
|
+
- **Cause:** Large project or slow file system operations
|
|
743
|
+
- **Solution:**
|
|
744
|
+
1. Use `--files` flag to target specific files: `npx @dcyfr/ai validate --files "src/**/*.ts"`
|
|
745
|
+
2. Increase timeout in config: `timeout: 60000` (60 seconds)
|
|
746
|
+
3. Check for infinite loops in custom plugins
|
|
747
|
+
|
|
748
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
749
|
+
|
|
750
|
+
---
|
|
751
|
+
|
|
752
|
+
## 📚 FAQ
|
|
753
|
+
|
|
754
|
+
**Q: Is @dcyfr/ai published to npm?**
|
|
755
|
+
|
|
756
|
+
A: Yes, it's published as a public package on npm. Install with `npm install @dcyfr/ai`. Check https://www.npmjs.com/package/@dcyfr/ai for latest version and stats.
|
|
757
|
+
|
|
758
|
+
**Q: Can I use @dcyfr/ai with JavaScript (no TypeScript)?**
|
|
759
|
+
|
|
760
|
+
A: Yes, but TypeScript is strongly recommended for better type safety and IDE support. The framework provides full TypeScript support with Zod validation for runtime type checking. If using JavaScript, you'll miss compile-time type checking but runtime validation still works.
|
|
761
|
+
|
|
762
|
+
**Q: How do I create a custom validation plugin?**
|
|
763
|
+
|
|
764
|
+
A: Implement the `Plugin` interface with `manifest` and `onValidate` method:
|
|
765
|
+
```typescript
|
|
766
|
+
export const myPlugin = {
|
|
767
|
+
manifest: {
|
|
768
|
+
name: 'my-plugin',
|
|
769
|
+
version: '1.0.0',
|
|
770
|
+
description: 'My custom validation'
|
|
771
|
+
},
|
|
772
|
+
async onValidate(context) {
|
|
773
|
+
// Your validation logic here
|
|
774
|
+
return { passed: true, issues: [] };
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
```
|
|
778
|
+
See [docs/plugins.md](./docs/plugins.md) and [examples/plugin-system.ts](./examples/plugin-system.ts) for complete guide.
|
|
779
|
+
|
|
780
|
+
**Q: What's the difference between @dcyfr/ai and @dcyfr/agents?**
|
|
781
|
+
|
|
782
|
+
A: `@dcyfr/ai` is the **public framework** (plugin architecture, config management, telemetry engine, validation framework). `@dcyfr/agents` is a **private package** with DCYFR-specific validation agents (design tokens, barrel exports, PageLayout enforcement). Think of @dcyfr/ai as the engine, @dcyfr/agents as pre-built plugins.
|
|
783
|
+
|
|
784
|
+
**Q: Can I use this with other AI providers (non-Claude)?**
|
|
785
|
+
|
|
786
|
+
A: Yes! The framework supports multi-provider integration including Claude, GitHub Copilot, Groq, Ollama, OpenAI, Anthropic. Configure providers in `.dcyfr.yaml`:
|
|
787
|
+
```yaml
|
|
788
|
+
providers:
|
|
789
|
+
- name: openai
|
|
790
|
+
apiKey: ${OPENAI_API_KEY}
|
|
791
|
+
- name: anthropic
|
|
792
|
+
apiKey: ${ANTHROPIC_API_KEY}
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
**Q: How do I track telemetry and costs?**
|
|
796
|
+
|
|
797
|
+
A: Use the `TelemetryEngine` with storage adapters:
|
|
798
|
+
```typescript
|
|
799
|
+
import { TelemetryEngine, FileStorageAdapter } from '@dcyfr/ai';
|
|
800
|
+
const telemetry = new TelemetryEngine({
|
|
801
|
+
storage: new FileStorageAdapter('./telemetry')
|
|
802
|
+
});
|
|
803
|
+
```
|
|
804
|
+
Telemetry tracks: API calls, token usage, costs, latency, quality scores.
|
|
805
|
+
|
|
806
|
+
**Q: Is this framework production-ready?**
|
|
807
|
+
|
|
808
|
+
A: Yes! @dcyfr/ai is used in production at dcyfr-labs and other projects. It has comprehensive test coverage, semantic versioning, automated releases via Changesets, and follows best practices for package publishing.
|
|
809
|
+
|
|
810
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
811
|
+
|
|
812
|
+
---
|
|
813
|
+
|
|
814
|
+
## 📊 Performance Benchmarks
|
|
815
|
+
|
|
816
|
+
### Framework Performance
|
|
817
|
+
- **Config Loading:** ~10ms (cached), ~50ms (first load with file I/O)
|
|
818
|
+
- **Validation Framework:** Parallel execution 2-5x faster than serial (depends on plugin count)
|
|
819
|
+
- **Plugin System:** Minimal overhead ~5ms per plugin registration
|
|
820
|
+
- **Bundle Size:** ~200KB gzipped (includes Zod validation library)
|
|
821
|
+
|
|
822
|
+
### Recommended Usage Patterns
|
|
823
|
+
- **Use parallel validation** for independent checks (faster): `mode: 'parallel'`
|
|
824
|
+
- **Cache config loading** (use singleton pattern): Load once, reuse across app
|
|
825
|
+
- **Batch telemetry writes** (reduce I/O overhead): Buffer writes, flush periodically
|
|
826
|
+
- **Lazy load plugins** (faster startup): Only load plugins you need for current validation
|
|
827
|
+
|
|
828
|
+
### Comparison with Alternatives
|
|
829
|
+
- **vs. Custom Scripts:** 10-20x faster due to optimized plugin execution
|
|
830
|
+
- **vs. Serial Validation:** 2-5x faster with parallel execution mode
|
|
831
|
+
- **vs. LangChain:** ~10x smaller bundle size (~200KB vs 2MB+)
|
|
832
|
+
|
|
833
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
834
|
+
|
|
835
|
+
---
|
|
836
|
+
|
|
837
|
+
## 🔒 Security
|
|
838
|
+
|
|
839
|
+
### Reporting Vulnerabilities
|
|
840
|
+
Found a security issue? Report it privately:
|
|
841
|
+
- **GitHub Security Advisories:** [dcyfr-ai/security](https://github.com/dcyfr/dcyfr-ai/security/advisories/new)
|
|
842
|
+
- **Expected Response:** Within 48 hours
|
|
843
|
+
|
|
844
|
+
### Security Considerations
|
|
845
|
+
- **No API keys stored:** Use environment variables for sensitive data (Zod validates but doesn't store)
|
|
846
|
+
- **Zod validation:** All inputs validated with schemas before processing
|
|
847
|
+
- **No remote code execution:** Plugins run in local environment only (no sandboxing yet - see limitations)
|
|
848
|
+
- **Telemetry privacy:** Optional, disable with `DCYFR_TELEMETRY_ENABLED=false`
|
|
849
|
+
- **Dependencies:** Regular Dependabot updates, npm audit on CI
|
|
850
|
+
|
|
851
|
+
### Best Practices
|
|
852
|
+
- Never commit `.env` files (use `.env.example`)
|
|
853
|
+
- Use environment variables for API keys: `${OPENAI_API_KEY}`
|
|
854
|
+
- Review plugin code before loading (plugins have full access to filesystem)
|
|
855
|
+
- Keep dependencies updated: `npm outdated`, `npm update`
|
|
856
|
+
- Enable GitHub security scanning in your repository
|
|
857
|
+
|
|
858
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
859
|
+
|
|
860
|
+
---
|
|
861
|
+
|
|
862
|
+
## ⚙️ Known Limitations
|
|
863
|
+
|
|
864
|
+
### Current Constraints
|
|
865
|
+
- **Plugin isolation:** Plugins run in same process (no sandboxing yet) - trust plugin code before loading
|
|
866
|
+
- **File-based telemetry only:** No database storage adapter yet (planned for v2.0)
|
|
867
|
+
- **Config caching:** Requires manual cache invalidation on config changes (no hot-reload yet)
|
|
868
|
+
- **Provider-specific features:** Some providers may have limited support (e.g., streaming not supported for all)
|
|
869
|
+
- **TypeScript required for development:** JavaScript works at runtime but TypeScript recommended for development
|
|
870
|
+
|
|
871
|
+
### Platform-Specific Issues
|
|
872
|
+
- **Windows:** Path separators handled automatically but some plugins may have issues
|
|
873
|
+
- **Node.js version:** Requires ≥24.13.0 (uses native fetch, modern APIs)
|
|
874
|
+
- **ESM-only:** Package is ESM (ECMAScript Modules) - CommonJS require() not supported
|
|
875
|
+
|
|
876
|
+
### Planned Improvements
|
|
877
|
+
- [ ] Database storage adapter for telemetry (PostgreSQL, SQLite)
|
|
878
|
+
- [ ] Plugin sandboxing for security (worker threads or VM isolation)
|
|
879
|
+
- [ ] Hot-reload config watching (auto-reload on file changes)
|
|
880
|
+
- [ ] Web UI for telemetry dashboard (view costs, usage, quality over time)
|
|
881
|
+
- [ ] Enhanced provider feature parity (streaming, function calling, vision)
|
|
882
|
+
- [ ] CommonJS compatibility mode (for legacy projects)
|
|
883
|
+
|
|
884
|
+
See [GitHub Issues](https://github.com/dcyfr/dcyfr-ai/issues) for tracked feature requests and bugs.
|
|
885
|
+
|
|
886
|
+
[⬆️ Back to top](#dcyfr-ai)
|
|
887
|
+
|
|
888
|
+
---
|
|
889
|
+
|
|
890
|
+
## 📄 License & Sponsorship
|
|
891
|
+
|
|
892
|
+
**License:** MIT for personal/non-commercial use. Commercial use requires a paid tier.
|
|
893
|
+
|
|
894
|
+
### Commercial Use
|
|
895
|
+
|
|
896
|
+
This package is dual-licensed:
|
|
897
|
+
- **MIT License** for personal, educational, and non-commercial use (free)
|
|
898
|
+
- **Commercial License** for business and revenue-generating use (paid)
|
|
899
|
+
|
|
900
|
+
**Commercial use includes:**
|
|
901
|
+
- Using @dcyfr/ai in SaaS products or revenue-generating services
|
|
902
|
+
- Deploying in companies with >5 employees
|
|
903
|
+
- Providing paid consulting/services using @dcyfr/ai
|
|
904
|
+
- Distributing as part of commercial products
|
|
905
|
+
|
|
906
|
+
### Sponsorship Tiers
|
|
907
|
+
|
|
908
|
+
- 🌍 **Community** ($5/mo) - Signal community access (DCYFR.NET, Quantum Flux)
|
|
909
|
+
- 💚 **Sponsors** ($10/mo) - Bio on dcyfr.ai website + private channels
|
|
910
|
+
- 👨💻 **Developer** ($20/mo) - Limited commercial license + pre-release builds + portfolio support
|
|
911
|
+
- 🚀 **Founder** ($2,400/yr) - Full commercial license + 1hr consultation/mo
|
|
912
|
+
- 💼 **Executive** ($4,800/yr) - Business license + 2hr consultation/mo + 50 employees
|
|
913
|
+
- 🏢 **Enterprise** ($9,600/yr) - Enterprise license + 4hr consultation/mo + unlimited scale
|
|
914
|
+
|
|
915
|
+
**Learn more:** [SPONSORS.md](../SPONSORS.md)
|
|
916
|
+
**Join:** [GitHub Sponsors](https://github.com/sponsors/dcyfr)
|
|
917
|
+
**Contact:** licensing@dcyfr.ai
|
|
918
|
+
|
|
919
|
+
### Trademark
|
|
920
|
+
|
|
921
|
+
"DCYFR" is a trademark of DCYFR Labs. See [TRADEMARK.md](../TRADEMARK.md) for usage guidelines.
|
|
922
|
+
|
|
923
|
+
---
|
|
924
|
+
|
|
925
|
+
**Made with ❤️ by [DCYFR Labs](https://dcyfr.ai)**
|