@dcyfr/ai 2.1.3 → 3.0.1
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 +91 -0
- package/README.md +75 -10
- package/config/default.json +11 -5
- package/config/default.yaml +13 -5
- package/dist/.tsbuildinfo +1 -0
- package/dist/ai/agents/agent-loader.d.ts.map +1 -1
- package/dist/ai/agents/agent-loader.js +1 -0
- package/dist/ai/agents/agent-loader.js.map +1 -1
- package/dist/ai/agents/agent-registry.d.ts.map +1 -1
- package/dist/ai/agents/agent-registry.js.map +1 -1
- package/dist/ai/agents/agent-router.d.ts +3 -3
- package/dist/ai/agents/agent-router.d.ts.map +1 -1
- package/dist/ai/agents/agent-router.js +6 -7
- package/dist/ai/agents/agent-router.js.map +1 -1
- package/dist/ai/config/schema.js +3 -3
- package/dist/ai/config/schema.js.map +1 -1
- package/dist/ai/core/provider-registry.d.ts.map +1 -1
- package/dist/ai/core/provider-registry.js +47 -16
- package/dist/ai/core/provider-registry.js.map +1 -1
- package/dist/ai/core/telemetry-engine.d.ts.map +1 -1
- package/dist/ai/core/telemetry-engine.js +5 -3
- package/dist/ai/core/telemetry-engine.js.map +1 -1
- package/dist/ai/delegation/capability-bootstrap.js +1 -1
- package/dist/ai/delegation/capability-bootstrap.js.map +1 -1
- package/dist/ai/delegation/contract-manager.d.ts +54 -5
- package/dist/ai/delegation/contract-manager.d.ts.map +1 -1
- package/dist/ai/delegation/contract-manager.js +122 -7
- package/dist/ai/delegation/contract-manager.js.map +1 -1
- package/dist/ai/delegation/feature-flags.d.ts +1 -1
- package/dist/ai/delegation/feature-flags.d.ts.map +1 -1
- package/dist/ai/delegation/feature-flags.js +3 -1
- package/dist/ai/delegation/feature-flags.js.map +1 -1
- package/dist/ai/delegation/index.d.ts +1 -0
- package/dist/ai/delegation/index.d.ts.map +1 -1
- package/dist/ai/delegation/index.js +2 -0
- package/dist/ai/delegation/index.js.map +1 -1
- package/dist/ai/delegation/monitoring.d.ts.map +1 -1
- package/dist/ai/delegation/monitoring.js +1 -0
- package/dist/ai/delegation/monitoring.js.map +1 -1
- package/dist/ai/delegation/session-manager.d.ts +16 -1
- package/dist/ai/delegation/session-manager.d.ts.map +1 -1
- package/dist/ai/delegation/session-manager.js +10 -1
- package/dist/ai/delegation/session-manager.js.map +1 -1
- package/dist/ai/delegation/session-queue.d.ts.map +1 -1
- package/dist/ai/delegation/session-queue.js.map +1 -1
- package/dist/ai/examples/integration-demo.d.ts.map +1 -1
- package/dist/ai/examples/integration-demo.js +1 -0
- package/dist/ai/examples/integration-demo.js.map +1 -1
- package/dist/ai/index.d.ts +7 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +8 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/mcp/mcp-registry.d.ts.map +1 -1
- package/dist/ai/mcp/mcp-registry.js +1 -1
- package/dist/ai/mcp/mcp-registry.js.map +1 -1
- package/dist/ai/mcp/servers/analytics/index.d.ts.map +1 -1
- package/dist/ai/mcp/servers/analytics/index.js +1 -0
- 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/delegation-monitor/index.js +27 -27
- package/dist/ai/mcp/servers/delegation-monitor/index.js.map +1 -1
- package/dist/ai/mcp/servers/design-tokens/index.js +1 -1
- package/dist/ai/mcp/servers/design-tokens/index.js.map +1 -1
- package/dist/ai/mcp/servers/promptintel/index.d.ts.map +1 -1
- package/dist/ai/mcp/servers/promptintel/index.js +2 -1
- 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 +1 -0
- 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 +2 -0
- package/dist/ai/mcp/servers/shared/redis-client.js.map +1 -1
- package/dist/ai/mcp/servers/shared/utils.js +12 -18
- package/dist/ai/mcp/servers/shared/utils.js.map +1 -1
- package/dist/ai/memory/dcyfr-memory.d.ts.map +1 -1
- package/dist/ai/memory/dcyfr-memory.js +11 -1
- package/dist/ai/memory/dcyfr-memory.js.map +1 -1
- package/dist/ai/memory/file-memory-adapter.d.ts +103 -0
- package/dist/ai/memory/file-memory-adapter.d.ts.map +1 -0
- package/dist/ai/memory/file-memory-adapter.js +532 -0
- package/dist/ai/memory/file-memory-adapter.js.map +1 -0
- package/dist/ai/memory/index.d.ts +6 -0
- package/dist/ai/memory/index.d.ts.map +1 -1
- package/dist/ai/memory/index.js +6 -0
- package/dist/ai/memory/index.js.map +1 -1
- package/dist/ai/memory/mem0-client.d.ts.map +1 -1
- package/dist/ai/memory/mem0-client.js +5 -2
- package/dist/ai/memory/mem0-client.js.map +1 -1
- package/dist/ai/memory/sqlite-index.d.ts +89 -0
- package/dist/ai/memory/sqlite-index.d.ts.map +1 -0
- package/dist/ai/memory/sqlite-index.js +295 -0
- package/dist/ai/memory/sqlite-index.js.map +1 -0
- package/dist/ai/memory/types.d.ts.map +1 -1
- package/dist/ai/memory/types.js +1 -0
- package/dist/ai/memory/types.js.map +1 -1
- package/dist/ai/memory/working-memory-persistence.d.ts +79 -0
- package/dist/ai/memory/working-memory-persistence.d.ts.map +1 -0
- package/dist/ai/memory/working-memory-persistence.js +220 -0
- package/dist/ai/memory/working-memory-persistence.js.map +1 -0
- package/dist/ai/permissions/attenuation-engine.d.ts.map +1 -1
- package/dist/ai/permissions/attenuation-engine.js.map +1 -1
- package/dist/ai/reputation/reputation-engine.d.ts +4 -0
- package/dist/ai/reputation/reputation-engine.d.ts.map +1 -1
- package/dist/ai/reputation/reputation-engine.js +1 -0
- package/dist/ai/reputation/reputation-engine.js.map +1 -1
- package/dist/ai/runtime/agent-runtime.d.ts.map +1 -1
- package/dist/ai/runtime/agent-runtime.js +9 -5
- package/dist/ai/runtime/agent-runtime.js.map +1 -1
- package/dist/ai/src/batch-processor.d.ts +6 -6
- package/dist/ai/src/batch-processor.d.ts.map +1 -1
- package/dist/ai/src/batch-processor.js +11 -4
- package/dist/ai/src/batch-processor.js.map +1 -1
- package/dist/ai/src/capability-bootstrap.d.ts.map +1 -1
- package/dist/ai/src/capability-bootstrap.js +1 -0
- package/dist/ai/src/capability-bootstrap.js.map +1 -1
- package/dist/ai/src/capability-registry.js +1 -1
- package/dist/ai/src/capability-registry.js.map +1 -1
- package/dist/ai/src/cli/telemetry-dashboard.d.ts +0 -11
- package/dist/ai/src/cli/telemetry-dashboard.d.ts.map +1 -1
- package/dist/ai/src/cli/telemetry-dashboard.js +12 -6
- package/dist/ai/src/cli/telemetry-dashboard.js.map +1 -1
- package/dist/ai/src/compaction/context-compactor.d.ts +149 -0
- package/dist/ai/src/compaction/context-compactor.d.ts.map +1 -0
- package/dist/ai/src/compaction/context-compactor.js +302 -0
- package/dist/ai/src/compaction/context-compactor.js.map +1 -0
- package/dist/ai/src/compaction/index.d.ts +11 -0
- package/dist/ai/src/compaction/index.d.ts.map +1 -0
- package/dist/ai/src/compaction/index.js +11 -0
- package/dist/ai/src/compaction/index.js.map +1 -0
- package/dist/ai/src/compaction/memory-compaction.d.ts +138 -0
- package/dist/ai/src/compaction/memory-compaction.d.ts.map +1 -0
- package/dist/ai/src/compaction/memory-compaction.js +630 -0
- package/dist/ai/src/compaction/memory-compaction.js.map +1 -0
- package/dist/ai/src/container/agent-container-dispatcher.d.ts +154 -0
- package/dist/ai/src/container/agent-container-dispatcher.d.ts.map +1 -0
- package/dist/ai/src/container/agent-container-dispatcher.js +329 -0
- package/dist/ai/src/container/agent-container-dispatcher.js.map +1 -0
- package/dist/ai/src/container/backend-factory.d.ts +89 -0
- package/dist/ai/src/container/backend-factory.d.ts.map +1 -0
- package/dist/ai/src/container/backend-factory.js +169 -0
- package/dist/ai/src/container/backend-factory.js.map +1 -0
- package/dist/ai/src/container/index.d.ts +13 -0
- package/dist/ai/src/container/index.d.ts.map +1 -0
- package/dist/ai/src/container/index.js +13 -0
- package/dist/ai/src/container/index.js.map +1 -0
- package/dist/ai/src/container/kubernetes-backend.d.ts +23 -0
- package/dist/ai/src/container/kubernetes-backend.d.ts.map +1 -0
- package/dist/ai/src/container/kubernetes-backend.js +39 -0
- package/dist/ai/src/container/kubernetes-backend.js.map +1 -0
- package/dist/ai/src/container/local-docker-backend.d.ts +77 -0
- package/dist/ai/src/container/local-docker-backend.d.ts.map +1 -0
- package/dist/ai/src/container/local-docker-backend.js +362 -0
- package/dist/ai/src/container/local-docker-backend.js.map +1 -0
- package/dist/ai/src/container/remote-docker-backend.d.ts +35 -0
- package/dist/ai/src/container/remote-docker-backend.d.ts.map +1 -0
- package/dist/ai/src/container/remote-docker-backend.js +189 -0
- package/dist/ai/src/container/remote-docker-backend.js.map +1 -0
- package/dist/ai/src/container/types.d.ts +270 -0
- package/dist/ai/src/container/types.d.ts.map +1 -0
- package/dist/ai/src/container/types.js +86 -0
- package/dist/ai/src/container/types.js.map +1 -0
- package/dist/ai/src/delegation/feature-flags.d.ts.map +1 -1
- package/dist/ai/src/delegation/feature-flags.js +1 -0
- package/dist/ai/src/delegation/feature-flags.js.map +1 -1
- package/dist/ai/src/delegation/liability-firebreak.d.ts.map +1 -1
- package/dist/ai/src/delegation/liability-firebreak.js +1 -0
- package/dist/ai/src/delegation/liability-firebreak.js.map +1 -1
- package/dist/ai/src/delegation/security-threat-model.d.ts.map +1 -1
- package/dist/ai/src/delegation/security-threat-model.js +1 -1
- package/dist/ai/src/delegation/security-threat-model.js.map +1 -1
- package/dist/ai/src/delegation-capability-integration.d.ts +1 -1
- package/dist/ai/src/delegation-capability-integration.d.ts.map +1 -1
- package/dist/ai/src/delegation-capability-integration.js +2 -7
- package/dist/ai/src/delegation-capability-integration.js.map +1 -1
- package/dist/ai/src/end-to-end-workflow-orchestrator.d.ts.map +1 -1
- package/dist/ai/src/end-to-end-workflow-orchestrator.js +2 -1
- package/dist/ai/src/end-to-end-workflow-orchestrator.js.map +1 -1
- package/dist/ai/src/enhanced-capability-detection.d.ts +1 -1
- package/dist/ai/src/enhanced-capability-detection.d.ts.map +1 -1
- package/dist/ai/src/enhanced-capability-detection.js +1 -1
- package/dist/ai/src/enhanced-capability-detection.js.map +1 -1
- package/dist/ai/src/gateway/index.d.ts +6 -0
- package/dist/ai/src/gateway/index.d.ts.map +1 -0
- package/dist/ai/src/gateway/index.js +6 -0
- package/dist/ai/src/gateway/index.js.map +1 -0
- package/dist/ai/src/gateway/message-gateway.d.ts +296 -0
- package/dist/ai/src/gateway/message-gateway.d.ts.map +1 -0
- package/dist/ai/src/gateway/message-gateway.js +415 -0
- package/dist/ai/src/gateway/message-gateway.js.map +1 -0
- package/dist/ai/src/intelligent-cache-manager.d.ts.map +1 -1
- package/dist/ai/src/intelligent-cache-manager.js +2 -1
- package/dist/ai/src/intelligent-cache-manager.js.map +1 -1
- package/dist/ai/src/mcp/index.d.ts +10 -0
- package/dist/ai/src/mcp/index.d.ts.map +1 -0
- package/dist/ai/src/mcp/index.js +10 -0
- package/dist/ai/src/mcp/index.js.map +1 -0
- package/dist/ai/src/mcp/mcp-tool-bridge.d.ts +186 -0
- package/dist/ai/src/mcp/mcp-tool-bridge.d.ts.map +1 -0
- package/dist/ai/src/mcp/mcp-tool-bridge.js +292 -0
- package/dist/ai/src/mcp/mcp-tool-bridge.js.map +1 -0
- package/dist/ai/src/mcp-auto-configuration.d.ts.map +1 -1
- package/dist/ai/src/mcp-auto-configuration.js +2 -1
- package/dist/ai/src/mcp-auto-configuration.js.map +1 -1
- package/dist/ai/src/performance-profiler.d.ts.map +1 -1
- package/dist/ai/src/performance-profiler.js +1 -0
- package/dist/ai/src/performance-profiler.js.map +1 -1
- package/dist/ai/src/plugins/anomaly/anomaly-detector.d.ts +58 -0
- package/dist/ai/src/plugins/anomaly/anomaly-detector.d.ts.map +1 -0
- package/dist/ai/src/plugins/anomaly/anomaly-detector.js +101 -0
- package/dist/ai/src/plugins/anomaly/anomaly-detector.js.map +1 -0
- package/dist/ai/src/plugins/anomaly/anomaly-monitor.d.ts +145 -0
- package/dist/ai/src/plugins/anomaly/anomaly-monitor.d.ts.map +1 -0
- package/dist/ai/src/plugins/anomaly/anomaly-monitor.js +245 -0
- package/dist/ai/src/plugins/anomaly/anomaly-monitor.js.map +1 -0
- package/dist/ai/src/plugins/anomaly/behavior-baseline.d.ts +79 -0
- package/dist/ai/src/plugins/anomaly/behavior-baseline.d.ts.map +1 -0
- package/dist/ai/src/plugins/anomaly/behavior-baseline.js +161 -0
- package/dist/ai/src/plugins/anomaly/behavior-baseline.js.map +1 -0
- package/dist/ai/src/plugins/anomaly/index.d.ts +15 -0
- package/dist/ai/src/plugins/anomaly/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/anomaly/index.js +12 -0
- package/dist/ai/src/plugins/anomaly/index.js.map +1 -0
- package/dist/ai/src/plugins/anomaly/types.d.ts +150 -0
- package/dist/ai/src/plugins/anomaly/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/anomaly/types.js +68 -0
- package/dist/ai/src/plugins/anomaly/types.js.map +1 -0
- package/dist/ai/src/plugins/certification/certification-manager.d.ts +102 -0
- package/dist/ai/src/plugins/certification/certification-manager.d.ts.map +1 -0
- package/dist/ai/src/plugins/certification/certification-manager.js +321 -0
- package/dist/ai/src/plugins/certification/certification-manager.js.map +1 -0
- package/dist/ai/src/plugins/certification/index.d.ts +12 -0
- package/dist/ai/src/plugins/certification/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/certification/index.js +10 -0
- package/dist/ai/src/plugins/certification/index.js.map +1 -0
- package/dist/ai/src/plugins/certification/types.d.ts +128 -0
- package/dist/ai/src/plugins/certification/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/certification/types.js +201 -0
- package/dist/ai/src/plugins/certification/types.js.map +1 -0
- package/dist/ai/src/plugins/escalation/escalation-trigger.d.ts +155 -0
- package/dist/ai/src/plugins/escalation/escalation-trigger.d.ts.map +1 -0
- package/dist/ai/src/plugins/escalation/escalation-trigger.js +183 -0
- package/dist/ai/src/plugins/escalation/escalation-trigger.js.map +1 -0
- package/dist/ai/src/plugins/escalation/index.d.ts +11 -0
- package/dist/ai/src/plugins/escalation/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/escalation/index.js +10 -0
- package/dist/ai/src/plugins/escalation/index.js.map +1 -0
- package/dist/ai/src/plugins/incidents/incident-response-manager.d.ts +165 -0
- package/dist/ai/src/plugins/incidents/incident-response-manager.d.ts.map +1 -0
- package/dist/ai/src/plugins/incidents/incident-response-manager.js +462 -0
- package/dist/ai/src/plugins/incidents/incident-response-manager.js.map +1 -0
- package/dist/ai/src/plugins/incidents/index.d.ts +8 -0
- package/dist/ai/src/plugins/incidents/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/incidents/index.js +7 -0
- package/dist/ai/src/plugins/incidents/index.js.map +1 -0
- package/dist/ai/src/plugins/incidents/types.d.ts +183 -0
- package/dist/ai/src/plugins/incidents/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/incidents/types.js +55 -0
- package/dist/ai/src/plugins/incidents/types.js.map +1 -0
- package/dist/ai/src/plugins/permissions/index.d.ts +17 -0
- package/dist/ai/src/plugins/permissions/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/permissions/index.js +14 -0
- package/dist/ai/src/plugins/permissions/index.js.map +1 -0
- package/dist/ai/src/plugins/permissions/permission-attenuator.d.ts +29 -0
- package/dist/ai/src/plugins/permissions/permission-attenuator.d.ts.map +1 -0
- package/dist/ai/src/plugins/permissions/permission-attenuator.js +190 -0
- package/dist/ai/src/plugins/permissions/permission-attenuator.js.map +1 -0
- package/dist/ai/src/plugins/permissions/permission-audit-logger.d.ts +72 -0
- package/dist/ai/src/plugins/permissions/permission-audit-logger.d.ts.map +1 -0
- package/dist/ai/src/plugins/permissions/permission-audit-logger.js +176 -0
- package/dist/ai/src/plugins/permissions/permission-audit-logger.js.map +1 -0
- package/dist/ai/src/plugins/permissions/permission-enforcer.d.ts +99 -0
- package/dist/ai/src/plugins/permissions/permission-enforcer.d.ts.map +1 -0
- package/dist/ai/src/plugins/permissions/permission-enforcer.js +151 -0
- package/dist/ai/src/plugins/permissions/permission-enforcer.js.map +1 -0
- package/dist/ai/src/plugins/permissions/plugin-permission-validator.d.ts +39 -0
- package/dist/ai/src/plugins/permissions/plugin-permission-validator.d.ts.map +1 -0
- package/dist/ai/src/plugins/permissions/plugin-permission-validator.js +296 -0
- package/dist/ai/src/plugins/permissions/plugin-permission-validator.js.map +1 -0
- package/dist/ai/src/plugins/permissions/types.d.ts +116 -0
- package/dist/ai/src/plugins/permissions/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/permissions/types.js +36 -0
- package/dist/ai/src/plugins/permissions/types.js.map +1 -0
- package/dist/ai/src/plugins/reputation/index.d.ts +9 -0
- package/dist/ai/src/plugins/reputation/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/reputation/index.js +8 -0
- package/dist/ai/src/plugins/reputation/index.js.map +1 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-db.d.ts +29 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-db.d.ts.map +1 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-db.js +120 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-db.js.map +1 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-engine.d.ts +115 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-engine.d.ts.map +1 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-engine.js +528 -0
- package/dist/ai/src/plugins/reputation/plugin-reputation-engine.js.map +1 -0
- package/dist/ai/src/plugins/reputation/types.d.ts +149 -0
- package/dist/ai/src/plugins/reputation/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/reputation/types.js +14 -0
- package/dist/ai/src/plugins/reputation/types.js.map +1 -0
- package/dist/ai/src/plugins/reviews/index.d.ts +11 -0
- package/dist/ai/src/plugins/reviews/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/reviews/index.js +10 -0
- package/dist/ai/src/plugins/reviews/index.js.map +1 -0
- package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.d.ts +116 -0
- package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.d.ts.map +1 -0
- package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.js +282 -0
- package/dist/ai/src/plugins/reviews/plugin-rating-aggregator.js.map +1 -0
- package/dist/ai/src/plugins/reviews/types.d.ts +113 -0
- package/dist/ai/src/plugins/reviews/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/reviews/types.js +55 -0
- package/dist/ai/src/plugins/reviews/types.js.map +1 -0
- package/dist/ai/src/plugins/runtime/docker-plugin-runner.d.ts +77 -0
- package/dist/ai/src/plugins/runtime/docker-plugin-runner.d.ts.map +1 -0
- package/dist/ai/src/plugins/runtime/docker-plugin-runner.js +248 -0
- package/dist/ai/src/plugins/runtime/docker-plugin-runner.js.map +1 -0
- package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.d.ts +99 -0
- package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.d.ts.map +1 -0
- package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.js +158 -0
- package/dist/ai/src/plugins/runtime/gvisor-plugin-runner.js.map +1 -0
- package/dist/ai/src/plugins/runtime/index.d.ts +13 -0
- package/dist/ai/src/plugins/runtime/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/runtime/index.js +11 -0
- package/dist/ai/src/plugins/runtime/index.js.map +1 -0
- package/dist/ai/src/plugins/runtime/types.d.ts +143 -0
- package/dist/ai/src/plugins/runtime/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/runtime/types.js +19 -0
- package/dist/ai/src/plugins/runtime/types.js.map +1 -0
- package/dist/ai/src/plugins/runtime/wasm-plugin-runner.d.ts +104 -0
- package/dist/ai/src/plugins/runtime/wasm-plugin-runner.d.ts.map +1 -0
- package/dist/ai/src/plugins/runtime/wasm-plugin-runner.js +307 -0
- package/dist/ai/src/plugins/runtime/wasm-plugin-runner.js.map +1 -0
- package/dist/ai/src/plugins/security/index.d.ts +24 -0
- package/dist/ai/src/plugins/security/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/index.js +23 -0
- package/dist/ai/src/plugins/security/index.js.map +1 -0
- package/dist/ai/src/plugins/security/license-checker.d.ts +26 -0
- package/dist/ai/src/plugins/security/license-checker.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/license-checker.js +137 -0
- package/dist/ai/src/plugins/security/license-checker.js.map +1 -0
- package/dist/ai/src/plugins/security/malware-scanner.d.ts +19 -0
- package/dist/ai/src/plugins/security/malware-scanner.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/malware-scanner.js +121 -0
- package/dist/ai/src/plugins/security/malware-scanner.js.map +1 -0
- package/dist/ai/src/plugins/security/plugin-security-scanner.d.ts +36 -0
- package/dist/ai/src/plugins/security/plugin-security-scanner.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/plugin-security-scanner.js +160 -0
- package/dist/ai/src/plugins/security/plugin-security-scanner.js.map +1 -0
- package/dist/ai/src/plugins/security/sbom-generator.d.ts +23 -0
- package/dist/ai/src/plugins/security/sbom-generator.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/sbom-generator.js +115 -0
- package/dist/ai/src/plugins/security/sbom-generator.js.map +1 -0
- package/dist/ai/src/plugins/security/secret-detector.d.ts +19 -0
- package/dist/ai/src/plugins/security/secret-detector.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/secret-detector.js +204 -0
- package/dist/ai/src/plugins/security/secret-detector.js.map +1 -0
- package/dist/ai/src/plugins/security/signature-verifier.d.ts +21 -0
- package/dist/ai/src/plugins/security/signature-verifier.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/signature-verifier.js +75 -0
- package/dist/ai/src/plugins/security/signature-verifier.js.map +1 -0
- package/dist/ai/src/plugins/security/sonarcloud-client.d.ts +20 -0
- package/dist/ai/src/plugins/security/sonarcloud-client.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/sonarcloud-client.js +106 -0
- package/dist/ai/src/plugins/security/sonarcloud-client.js.map +1 -0
- package/dist/ai/src/plugins/security/trust-score.d.ts +58 -0
- package/dist/ai/src/plugins/security/trust-score.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/trust-score.js +173 -0
- package/dist/ai/src/plugins/security/trust-score.js.map +1 -0
- package/dist/ai/src/plugins/security/types.d.ts +220 -0
- package/dist/ai/src/plugins/security/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/types.js +12 -0
- package/dist/ai/src/plugins/security/types.js.map +1 -0
- package/dist/ai/src/plugins/security/vulnerability-scanner.d.ts +22 -0
- package/dist/ai/src/plugins/security/vulnerability-scanner.d.ts.map +1 -0
- package/dist/ai/src/plugins/security/vulnerability-scanner.js +109 -0
- package/dist/ai/src/plugins/security/vulnerability-scanner.js.map +1 -0
- package/dist/ai/src/plugins/tlp/index.d.ts +17 -0
- package/dist/ai/src/plugins/tlp/index.d.ts.map +1 -0
- package/dist/ai/src/plugins/tlp/index.js +17 -0
- package/dist/ai/src/plugins/tlp/index.js.map +1 -0
- package/dist/ai/src/plugins/tlp/tlp-classifier.d.ts +55 -0
- package/dist/ai/src/plugins/tlp/tlp-classifier.d.ts.map +1 -0
- package/dist/ai/src/plugins/tlp/tlp-classifier.js +232 -0
- package/dist/ai/src/plugins/tlp/tlp-classifier.js.map +1 -0
- package/dist/ai/src/plugins/tlp/tlp-validator.d.ts +97 -0
- package/dist/ai/src/plugins/tlp/tlp-validator.d.ts.map +1 -0
- package/dist/ai/src/plugins/tlp/tlp-validator.js +120 -0
- package/dist/ai/src/plugins/tlp/tlp-validator.js.map +1 -0
- package/dist/ai/src/plugins/tlp/types.d.ts +84 -0
- package/dist/ai/src/plugins/tlp/types.d.ts.map +1 -0
- package/dist/ai/src/plugins/tlp/types.js +20 -0
- package/dist/ai/src/plugins/tlp/types.js.map +1 -0
- package/dist/ai/src/resource-monitor.d.ts +1 -1
- package/dist/ai/src/resource-monitor.d.ts.map +1 -1
- package/dist/ai/src/resource-monitor.js +4 -3
- package/dist/ai/src/resource-monitor.js.map +1 -1
- package/dist/ai/src/runtime/agent-runtime.d.ts +77 -0
- package/dist/ai/src/runtime/agent-runtime.d.ts.map +1 -1
- package/dist/ai/src/runtime/agent-runtime.js +138 -2
- package/dist/ai/src/runtime/agent-runtime.js.map +1 -1
- package/dist/ai/src/scheduler/agent-scheduler.d.ts +365 -0
- package/dist/ai/src/scheduler/agent-scheduler.d.ts.map +1 -0
- package/dist/ai/src/scheduler/agent-scheduler.js +610 -0
- package/dist/ai/src/scheduler/agent-scheduler.js.map +1 -0
- package/dist/ai/src/scheduler/index.d.ts +6 -0
- package/dist/ai/src/scheduler/index.d.ts.map +1 -0
- package/dist/ai/src/scheduler/index.js +6 -0
- package/dist/ai/src/scheduler/index.js.map +1 -0
- package/dist/ai/src/session/index.d.ts +6 -0
- package/dist/ai/src/session/index.d.ts.map +1 -0
- package/dist/ai/src/session/index.js +6 -0
- package/dist/ai/src/session/index.js.map +1 -0
- package/dist/ai/src/session/session-manager.d.ts +380 -0
- package/dist/ai/src/session/session-manager.d.ts.map +1 -0
- package/dist/ai/src/session/session-manager.js +625 -0
- package/dist/ai/src/session/session-manager.js.map +1 -0
- package/dist/ai/src/skills/index.d.ts +10 -0
- package/dist/ai/src/skills/index.d.ts.map +1 -0
- package/dist/ai/src/skills/index.js +10 -0
- package/dist/ai/src/skills/index.js.map +1 -0
- package/dist/ai/src/skills/skill-registry.d.ts +181 -0
- package/dist/ai/src/skills/skill-registry.d.ts.map +1 -0
- package/dist/ai/src/skills/skill-registry.js +465 -0
- package/dist/ai/src/skills/skill-registry.js.map +1 -0
- package/dist/ai/src/telemetry/delegation-telemetry.d.ts.map +1 -1
- package/dist/ai/src/telemetry/delegation-telemetry.js +1 -0
- package/dist/ai/src/telemetry/delegation-telemetry.js.map +1 -1
- package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts +1 -1
- package/dist/ai/src/telemetry/runtime-telemetry-integration.d.ts.map +1 -1
- package/dist/ai/src/telemetry/runtime-telemetry-integration.js +3 -2
- package/dist/ai/src/telemetry/runtime-telemetry-integration.js.map +1 -1
- package/dist/ai/src/telemetry/telemetry-utils.d.ts.map +1 -1
- package/dist/ai/src/telemetry/telemetry-utils.js +1 -0
- package/dist/ai/src/telemetry/telemetry-utils.js.map +1 -1
- package/dist/ai/src/types/agent-capabilities.d.ts.map +1 -1
- package/dist/ai/src/types/agent-capabilities.js +1 -0
- package/dist/ai/src/types/agent-capabilities.js.map +1 -1
- package/dist/ai/src/types/delegation-contracts.d.ts +92 -0
- package/dist/ai/src/types/delegation-contracts.d.ts.map +1 -1
- package/dist/ai/src/types/delegation-contracts.js.map +1 -1
- package/dist/ai/src/validation-pipeline-integration.d.ts.map +1 -1
- package/dist/ai/src/validation-pipeline-integration.js +1 -2
- package/dist/ai/src/validation-pipeline-integration.js.map +1 -1
- package/dist/ai/src/verification/multi-modal-formatters.d.ts +1 -1
- package/dist/ai/src/verification/multi-modal-formatters.d.ts.map +1 -1
- package/dist/ai/src/verification/multi-modal-formatters.js +3 -2
- package/dist/ai/src/verification/multi-modal-formatters.js.map +1 -1
- package/dist/ai/src/verification/output-formatter.d.ts +1 -1
- package/dist/ai/src/verification/output-formatter.d.ts.map +1 -1
- package/dist/ai/src/verification/output-formatter.js +2 -1
- package/dist/ai/src/verification/output-formatter.js.map +1 -1
- package/dist/ai/src/verification/parser-integration.d.ts.map +1 -1
- package/dist/ai/src/verification/parser-integration.js.map +1 -1
- package/dist/ai/types/agent-capabilities.d.ts +7 -0
- package/dist/ai/types/agent-capabilities.d.ts.map +1 -1
- package/dist/ai/types/delegation-contracts.d.ts +75 -0
- package/dist/ai/types/delegation-contracts.d.ts.map +1 -1
- package/dist/ai/types/index.d.ts +3 -3
- package/dist/ai/types/index.d.ts.map +1 -1
- package/dist/ai/types/index.js.map +1 -1
- package/dist/ai/types/permission-tokens.d.ts +23 -0
- package/dist/ai/types/permission-tokens.d.ts.map +1 -1
- package/dist/ai/types/permission-tokens.js +65 -1
- package/dist/ai/types/permission-tokens.js.map +1 -1
- package/dist/ai/validation/validation-framework.d.ts.map +1 -1
- package/dist/ai/verification/policy-framework.d.ts +1 -1
- package/dist/ai/verification/policy-framework.d.ts.map +1 -1
- package/dist/ai/verification/policy-framework.js +4 -4
- package/dist/ai/verification/policy-framework.js.map +1 -1
- package/package.json +38 -9
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trust Score Calculation Engine
|
|
3
|
+
*
|
|
4
|
+
* Computes a 4-dimension weighted trust score (0–100) for a plugin based on
|
|
5
|
+
* security scan results, community data, maintenance activity, and transparency.
|
|
6
|
+
*
|
|
7
|
+
* Weights:
|
|
8
|
+
* - Security posture 40%
|
|
9
|
+
* - Community trust 30%
|
|
10
|
+
* - Maintenance 20%
|
|
11
|
+
* - Transparency 10%
|
|
12
|
+
*
|
|
13
|
+
* @module plugins/security/trust-score
|
|
14
|
+
* @version 1.0.0
|
|
15
|
+
* @date 2026-02-28
|
|
16
|
+
* @license MIT
|
|
17
|
+
*/
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// Weight constants
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
const WEIGHT_SECURITY = 0.4;
|
|
22
|
+
const WEIGHT_COMMUNITY = 0.3;
|
|
23
|
+
const WEIGHT_MAINTENANCE = 0.2;
|
|
24
|
+
const WEIGHT_TRANSPARENCY = 0.1;
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Security score (0–100)
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
/** Penalty per vulnerability by severity */
|
|
29
|
+
const VULN_PENALTIES = {
|
|
30
|
+
critical: 40,
|
|
31
|
+
high: 20,
|
|
32
|
+
medium: 10,
|
|
33
|
+
low: 5,
|
|
34
|
+
negligible: 1,
|
|
35
|
+
unknown: 3,
|
|
36
|
+
};
|
|
37
|
+
function calcSecurityScore(vulns, secrets, malware, codeQuality) {
|
|
38
|
+
let score = 100;
|
|
39
|
+
// Deduct for vulnerabilities
|
|
40
|
+
const v = vulns.vulnerabilities;
|
|
41
|
+
score -= Math.min(v.critical * VULN_PENALTIES.critical, 80);
|
|
42
|
+
score -= Math.min(v.high * VULN_PENALTIES.high, 40);
|
|
43
|
+
score -= Math.min(v.medium * VULN_PENALTIES.medium, 20);
|
|
44
|
+
score -= Math.min(v.low * VULN_PENALTIES.low, 10);
|
|
45
|
+
score -= Math.min(v.negligible * VULN_PENALTIES.negligible, 5);
|
|
46
|
+
// Secrets: blocking secrets in production code are severe
|
|
47
|
+
const productionSecrets = secrets.locations.filter((l) => !l.inTestFixture);
|
|
48
|
+
score -= productionSecrets.length * 25;
|
|
49
|
+
// Malware: immediate severe penalty
|
|
50
|
+
if (malware.detected)
|
|
51
|
+
score -= 80;
|
|
52
|
+
score -= malware.suspiciousPatterns.length * 5;
|
|
53
|
+
// Code quality
|
|
54
|
+
if (codeQuality.metrics) {
|
|
55
|
+
const { bugs, vulnerabilities: cqVulns, securityHotspots } = codeQuality.metrics;
|
|
56
|
+
score -= bugs * 2;
|
|
57
|
+
score -= cqVulns * 5;
|
|
58
|
+
score -= securityHotspots * 3;
|
|
59
|
+
}
|
|
60
|
+
return Math.max(0, Math.min(100, score));
|
|
61
|
+
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Transparency score (0–100)
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
function calcTransparencyScore(sbom, signature, license) {
|
|
66
|
+
let score = 0;
|
|
67
|
+
// SBOM present: +40
|
|
68
|
+
if (sbom.success && sbom.components.length > 0)
|
|
69
|
+
score += 40;
|
|
70
|
+
else if (sbom.usedFallback && sbom.components.length > 0)
|
|
71
|
+
score += 20;
|
|
72
|
+
// Valid signature: +20 bonus / -20 penalty for absence
|
|
73
|
+
if (signature.verified)
|
|
74
|
+
score += 40;
|
|
75
|
+
else
|
|
76
|
+
score += 0; // neutral; allow rejection elsewhere
|
|
77
|
+
// License declared and compliant: +20
|
|
78
|
+
if (license.compliant)
|
|
79
|
+
score += 20;
|
|
80
|
+
else if (license.detected.length > 0)
|
|
81
|
+
score += 10;
|
|
82
|
+
return Math.max(0, Math.min(100, score));
|
|
83
|
+
}
|
|
84
|
+
function calcMaintenanceScore(input) {
|
|
85
|
+
if (input.isArchived)
|
|
86
|
+
return 0;
|
|
87
|
+
let score;
|
|
88
|
+
if (input.daysSinceLastCommit === undefined) {
|
|
89
|
+
score = 60; // unknown → neutral
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const d = input.daysSinceLastCommit;
|
|
93
|
+
if (d < 30)
|
|
94
|
+
score = 100;
|
|
95
|
+
else if (d < 90)
|
|
96
|
+
score = 80;
|
|
97
|
+
else if (d < 180)
|
|
98
|
+
score = 60;
|
|
99
|
+
else if (d < 365)
|
|
100
|
+
score = 40;
|
|
101
|
+
else
|
|
102
|
+
score = 10;
|
|
103
|
+
}
|
|
104
|
+
if (input.hasCiCd)
|
|
105
|
+
score = Math.min(100, score + 10);
|
|
106
|
+
return score;
|
|
107
|
+
}
|
|
108
|
+
function calcCommunityScore(input) {
|
|
109
|
+
if (input.activeIncidents && input.activeIncidents > 0) {
|
|
110
|
+
return Math.max(0, 40 - input.activeIncidents * 20);
|
|
111
|
+
}
|
|
112
|
+
if (input.starRating === undefined || input.ratingCount === undefined) {
|
|
113
|
+
return 50; // neutral: no community data yet
|
|
114
|
+
}
|
|
115
|
+
// Normalise star rating (0–5 → 0–100)
|
|
116
|
+
const base = (input.starRating / 5) * 100;
|
|
117
|
+
// Low rating count reduces confidence → nudge toward neutral
|
|
118
|
+
const confidence = Math.min(1, input.ratingCount / 100);
|
|
119
|
+
return Math.round(base * confidence + 50 * (1 - confidence));
|
|
120
|
+
}
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
// Recommendation thresholds
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
function deriveRecommendation(overall) {
|
|
125
|
+
if (overall >= 80)
|
|
126
|
+
return 'approve';
|
|
127
|
+
if (overall >= 60)
|
|
128
|
+
return 'approve-with-warnings';
|
|
129
|
+
if (overall >= 40)
|
|
130
|
+
return 'require-review';
|
|
131
|
+
return 'reject';
|
|
132
|
+
}
|
|
133
|
+
function buildRationale(overall, dims, rec) {
|
|
134
|
+
const parts = [`Overall trust score: ${overall}/100.`];
|
|
135
|
+
parts.push(`Security ${dims.security}/100 (40%), Community ${dims.community}/100 (30%), ` +
|
|
136
|
+
`Maintenance ${dims.maintenance}/100 (20%), Transparency ${dims.transparency}/100 (10%).`);
|
|
137
|
+
if (rec === 'approve')
|
|
138
|
+
parts.push('Plugin meets all security requirements.');
|
|
139
|
+
else if (rec === 'approve-with-warnings')
|
|
140
|
+
parts.push('Plugin has minor issues — review warnings before installing.');
|
|
141
|
+
else if (rec === 'require-review')
|
|
142
|
+
parts.push('Plugin requires manual security team review before approval.');
|
|
143
|
+
else
|
|
144
|
+
parts.push('Plugin fails minimum security requirements and cannot be approved.');
|
|
145
|
+
return parts.join(' ');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Calculate the overall trust score for a plugin.
|
|
149
|
+
*/
|
|
150
|
+
export function calculateTrustScore(input) {
|
|
151
|
+
const security = calcSecurityScore(input.vulns, input.secrets, input.malware, input.codeQuality);
|
|
152
|
+
const transparency = calcTransparencyScore(input.sbom, input.signature, input.license);
|
|
153
|
+
const maintenance = calcMaintenanceScore(input.maintenance ?? {});
|
|
154
|
+
const community = calcCommunityScore(input.community ?? {});
|
|
155
|
+
const overall = Math.round(security * WEIGHT_SECURITY +
|
|
156
|
+
community * WEIGHT_COMMUNITY +
|
|
157
|
+
maintenance * WEIGHT_MAINTENANCE +
|
|
158
|
+
transparency * WEIGHT_TRANSPARENCY);
|
|
159
|
+
const dimensions = {
|
|
160
|
+
security,
|
|
161
|
+
community,
|
|
162
|
+
maintenance,
|
|
163
|
+
transparency,
|
|
164
|
+
};
|
|
165
|
+
const recommendation = deriveRecommendation(overall);
|
|
166
|
+
return {
|
|
167
|
+
overall,
|
|
168
|
+
dimensions,
|
|
169
|
+
recommendation,
|
|
170
|
+
rationale: buildRationale(overall, dimensions, recommendation),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=trust-score.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-score.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/security/trust-score.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Security Types
|
|
3
|
+
*
|
|
4
|
+
* Shared type definitions for the plugin marketplace security scanning pipeline.
|
|
5
|
+
*
|
|
6
|
+
* @module plugins/security/types
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @date 2026-02-28
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
/** A single dependency entry in a Software Bill of Materials */
|
|
12
|
+
export interface SBOMComponent {
|
|
13
|
+
/** Package name */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Package version */
|
|
16
|
+
version: string;
|
|
17
|
+
/** SPDX license identifier */
|
|
18
|
+
license?: string;
|
|
19
|
+
/** Common Platform Enumeration identifier */
|
|
20
|
+
cpe?: string;
|
|
21
|
+
/** Package URL */
|
|
22
|
+
purl?: string;
|
|
23
|
+
/** Ecosystem (npm, pypi, etc.) */
|
|
24
|
+
ecosystem?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Result of SBOM generation */
|
|
27
|
+
export interface SBOMResult {
|
|
28
|
+
/** Whether generation succeeded */
|
|
29
|
+
success: boolean;
|
|
30
|
+
/** Whether fallback (npm ls) was used instead of Syft */
|
|
31
|
+
usedFallback: boolean;
|
|
32
|
+
/** CycloneDX or SPDX format */
|
|
33
|
+
format: 'cyclonedx' | 'spdx' | 'npm-ls';
|
|
34
|
+
/** All discovered components */
|
|
35
|
+
components: SBOMComponent[];
|
|
36
|
+
/** Path where the SBOM was written */
|
|
37
|
+
storagePath?: string;
|
|
38
|
+
/** Error message if generation failed */
|
|
39
|
+
error?: string;
|
|
40
|
+
}
|
|
41
|
+
/** CVE severity level */
|
|
42
|
+
export type Severity = 'critical' | 'high' | 'medium' | 'low' | 'negligible' | 'unknown';
|
|
43
|
+
/** A single vulnerability finding */
|
|
44
|
+
export interface VulnerabilityFinding {
|
|
45
|
+
/** CVE identifier */
|
|
46
|
+
cveId: string;
|
|
47
|
+
/** Numeric CVSS score */
|
|
48
|
+
cvssScore: number;
|
|
49
|
+
/** Severity level */
|
|
50
|
+
severity: Severity;
|
|
51
|
+
/** Affected package */
|
|
52
|
+
packageName: string;
|
|
53
|
+
/** Installed version */
|
|
54
|
+
installedVersion: string;
|
|
55
|
+
/** Fix version, if available */
|
|
56
|
+
fixedVersion?: string;
|
|
57
|
+
/** Summary description */
|
|
58
|
+
description?: string;
|
|
59
|
+
/** Whether this finding was marked as a false positive */
|
|
60
|
+
suppressed?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Aggregated vulnerability counts */
|
|
63
|
+
export interface VulnerabilityCounts {
|
|
64
|
+
critical: number;
|
|
65
|
+
high: number;
|
|
66
|
+
medium: number;
|
|
67
|
+
low: number;
|
|
68
|
+
negligible: number;
|
|
69
|
+
unknown: number;
|
|
70
|
+
}
|
|
71
|
+
/** Result of vulnerability scanning */
|
|
72
|
+
export interface VulnerabilityScanResult {
|
|
73
|
+
success: boolean;
|
|
74
|
+
vulnerabilities: VulnerabilityCounts;
|
|
75
|
+
findings: VulnerabilityFinding[];
|
|
76
|
+
/** Overall recommendation based on findings */
|
|
77
|
+
recommendation: 'approve' | 'approve-with-warnings' | 'reject';
|
|
78
|
+
error?: string;
|
|
79
|
+
}
|
|
80
|
+
/** Location of a detected secret */
|
|
81
|
+
export interface SecretLocation {
|
|
82
|
+
file: string;
|
|
83
|
+
line: number;
|
|
84
|
+
/** Gitleaks rule ID */
|
|
85
|
+
ruleId: string;
|
|
86
|
+
/** Redacted match for audit log */
|
|
87
|
+
redactedMatch: string;
|
|
88
|
+
/** Whether this is in a test fixture (lower severity) */
|
|
89
|
+
inTestFixture: boolean;
|
|
90
|
+
}
|
|
91
|
+
/** Result of secret detection */
|
|
92
|
+
export interface SecretDetectionResult {
|
|
93
|
+
success: boolean;
|
|
94
|
+
found: boolean;
|
|
95
|
+
locations: SecretLocation[];
|
|
96
|
+
error?: string;
|
|
97
|
+
}
|
|
98
|
+
/** SonarCloud code quality metrics */
|
|
99
|
+
export interface CodeQualityMetrics {
|
|
100
|
+
bugs: number;
|
|
101
|
+
vulnerabilities: number;
|
|
102
|
+
securityHotspots: number;
|
|
103
|
+
/** Code smell count */
|
|
104
|
+
codeSmells: number;
|
|
105
|
+
/** Maintainability rating (A-E) */
|
|
106
|
+
maintainabilityRating: 'A' | 'B' | 'C' | 'D' | 'E' | 'unknown';
|
|
107
|
+
/** Test coverage percentage */
|
|
108
|
+
coverage?: number;
|
|
109
|
+
}
|
|
110
|
+
/** Result of SonarCloud analysis */
|
|
111
|
+
export interface CodeQualityResult {
|
|
112
|
+
success: boolean;
|
|
113
|
+
metrics?: CodeQualityMetrics;
|
|
114
|
+
/** Whether this requires mandatory security review */
|
|
115
|
+
requiresManualReview: boolean;
|
|
116
|
+
/** Quality gate status */
|
|
117
|
+
qualityGate: 'OK' | 'WARN' | 'ERROR' | 'NONE';
|
|
118
|
+
error?: string;
|
|
119
|
+
}
|
|
120
|
+
/** A malware signature finding */
|
|
121
|
+
export interface MalwareSignature {
|
|
122
|
+
file: string;
|
|
123
|
+
signatureName: string;
|
|
124
|
+
/** Detection category */
|
|
125
|
+
category: 'virus' | 'trojan' | 'suspicious' | 'unknown';
|
|
126
|
+
}
|
|
127
|
+
/** Result of malware scanning */
|
|
128
|
+
export interface MalwareScanResult {
|
|
129
|
+
success: boolean;
|
|
130
|
+
detected: boolean;
|
|
131
|
+
signatures: MalwareSignature[];
|
|
132
|
+
/** Files with suspicious script patterns (e.g. curl|bash) */
|
|
133
|
+
suspiciousPatterns: string[];
|
|
134
|
+
error?: string;
|
|
135
|
+
}
|
|
136
|
+
/** Result of cryptographic signature verification */
|
|
137
|
+
export interface SignatureVerificationResult {
|
|
138
|
+
success: boolean;
|
|
139
|
+
verified: boolean;
|
|
140
|
+
/** Public key fingerprint used for verification */
|
|
141
|
+
publicKeyFingerprint?: string;
|
|
142
|
+
/** Timestamp of the signature */
|
|
143
|
+
signedAt?: string;
|
|
144
|
+
/** Whether verification timed out */
|
|
145
|
+
timedOut?: boolean;
|
|
146
|
+
error?: string;
|
|
147
|
+
}
|
|
148
|
+
/** License compliance analysis */
|
|
149
|
+
export interface LicenseComplianceResult {
|
|
150
|
+
success: boolean;
|
|
151
|
+
compliant: boolean;
|
|
152
|
+
detected: string[];
|
|
153
|
+
incompatible: string[];
|
|
154
|
+
/** SPDX identifiers that were unknown / not recognised */
|
|
155
|
+
unknown: string[];
|
|
156
|
+
error?: string;
|
|
157
|
+
}
|
|
158
|
+
/** Dimension scores feeding into the overall trust score */
|
|
159
|
+
export interface TrustScoreDimensions {
|
|
160
|
+
/** Security posture (40% weight) — based on scan results */
|
|
161
|
+
security: number;
|
|
162
|
+
/** Community trust (30% weight) — based on reputation/ratings */
|
|
163
|
+
community: number;
|
|
164
|
+
/** Maintenance quality (20% weight) — activity, update frequency */
|
|
165
|
+
maintenance: number;
|
|
166
|
+
/** Transparency (10% weight) — signature, SBOM, open source */
|
|
167
|
+
transparency: number;
|
|
168
|
+
}
|
|
169
|
+
/** Overall plugin trust score (0–100) */
|
|
170
|
+
export interface TrustScore {
|
|
171
|
+
overall: number;
|
|
172
|
+
dimensions: TrustScoreDimensions;
|
|
173
|
+
/** Recommended action based on score */
|
|
174
|
+
recommendation: 'approve' | 'approve-with-warnings' | 'reject' | 'require-review';
|
|
175
|
+
/** Human-readable explanation */
|
|
176
|
+
rationale: string;
|
|
177
|
+
}
|
|
178
|
+
/** Input to the security scanner */
|
|
179
|
+
export interface PluginScanInput {
|
|
180
|
+
/** Unique plugin identifier */
|
|
181
|
+
pluginId: string;
|
|
182
|
+
/** Semver version string */
|
|
183
|
+
version: string;
|
|
184
|
+
/** Absolute path to extracted plugin directory */
|
|
185
|
+
pluginPath: string;
|
|
186
|
+
/** Absolute path to main plugin archive/artifact */
|
|
187
|
+
artifactPath?: string;
|
|
188
|
+
/**
|
|
189
|
+
* Whether to skip individual scanners (useful in testing or air-gapped
|
|
190
|
+
* environments where CLI tools may not be available)
|
|
191
|
+
*/
|
|
192
|
+
skip?: {
|
|
193
|
+
sbom?: boolean;
|
|
194
|
+
vulnerabilities?: boolean;
|
|
195
|
+
secrets?: boolean;
|
|
196
|
+
codeQuality?: boolean;
|
|
197
|
+
malware?: boolean;
|
|
198
|
+
signature?: boolean;
|
|
199
|
+
license?: boolean;
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/** Aggregated security scan report for a plugin */
|
|
203
|
+
export interface PluginSecurityReport {
|
|
204
|
+
pluginId: string;
|
|
205
|
+
version: string;
|
|
206
|
+
scannedAt: string;
|
|
207
|
+
sbom: SBOMResult;
|
|
208
|
+
vulnerabilities: VulnerabilityScanResult;
|
|
209
|
+
secrets: SecretDetectionResult;
|
|
210
|
+
codeQuality: CodeQualityResult;
|
|
211
|
+
malware: MalwareScanResult;
|
|
212
|
+
signature: SignatureVerificationResult;
|
|
213
|
+
license: LicenseComplianceResult;
|
|
214
|
+
trustScore: TrustScore;
|
|
215
|
+
/** Overall recommendation (most restrictive across all scanners) */
|
|
216
|
+
overallRecommendation: 'approve' | 'approve-with-warnings' | 'reject' | 'require-review';
|
|
217
|
+
/** Duration in milliseconds */
|
|
218
|
+
durationMs: number;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/security/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin Security Types
|
|
3
|
+
*
|
|
4
|
+
* Shared type definitions for the plugin marketplace security scanning pipeline.
|
|
5
|
+
*
|
|
6
|
+
* @module plugins/security/types
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @date 2026-02-28
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/security/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vulnerability Scanner
|
|
3
|
+
*
|
|
4
|
+
* Scans plugin SBOMs for known CVEs using Grype CLI.
|
|
5
|
+
* Supports severity thresholds, false-positive suppression via .grype-ignore.json,
|
|
6
|
+
* and structured recommendations.
|
|
7
|
+
*
|
|
8
|
+
* @module plugins/security/vulnerability-scanner
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @date 2026-02-28
|
|
11
|
+
* @license MIT
|
|
12
|
+
*/
|
|
13
|
+
import type { VulnerabilityScanResult } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Scan a plugin (via its SBOM or directory) for known CVEs using Grype.
|
|
16
|
+
*
|
|
17
|
+
* @param pluginPath Absolute path to the extracted plugin directory
|
|
18
|
+
* @param sbomPath Optional: path to a pre-generated SBOM JSON file. If provided,
|
|
19
|
+
* Grype will scan the SBOM rather than the raw directory.
|
|
20
|
+
*/
|
|
21
|
+
export declare function scanVulnerabilities(pluginPath: string, sbomPath?: string): Promise<VulnerabilityScanResult>;
|
|
22
|
+
//# sourceMappingURL=vulnerability-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vulnerability-scanner.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/security/vulnerability-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EACV,uBAAuB,EAIxB,MAAM,YAAY,CAAC;AAyEpB;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC,CAkDlC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vulnerability Scanner
|
|
3
|
+
*
|
|
4
|
+
* Scans plugin SBOMs for known CVEs using Grype CLI.
|
|
5
|
+
* Supports severity thresholds, false-positive suppression via .grype-ignore.json,
|
|
6
|
+
* and structured recommendations.
|
|
7
|
+
*
|
|
8
|
+
* @module plugins/security/vulnerability-scanner
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @date 2026-02-28
|
|
11
|
+
* @license MIT
|
|
12
|
+
*/
|
|
13
|
+
import { execFile } from 'node:child_process';
|
|
14
|
+
import { promisify } from 'node:util';
|
|
15
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
16
|
+
import { join } from 'node:path';
|
|
17
|
+
const execFileAsync = promisify(execFile);
|
|
18
|
+
function loadIgnoredCVEs(pluginPath) {
|
|
19
|
+
const ignorePath = join(pluginPath, '.grype-ignore.json');
|
|
20
|
+
if (!existsSync(ignorePath))
|
|
21
|
+
return new Set();
|
|
22
|
+
try {
|
|
23
|
+
const entries = JSON.parse(readFileSync(ignorePath, 'utf8'));
|
|
24
|
+
return new Set(entries.filter((e) => e.cve).map((e) => e.cve));
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return new Set();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Helpers
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
function normaliseSeverity(raw) {
|
|
34
|
+
const map = {
|
|
35
|
+
critical: 'critical',
|
|
36
|
+
high: 'high',
|
|
37
|
+
medium: 'medium',
|
|
38
|
+
low: 'low',
|
|
39
|
+
negligible: 'negligible',
|
|
40
|
+
};
|
|
41
|
+
return map[(raw ?? '').toLowerCase()] ?? 'unknown';
|
|
42
|
+
}
|
|
43
|
+
function emptyCounts() {
|
|
44
|
+
return { critical: 0, high: 0, medium: 0, low: 0, negligible: 0, unknown: 0 };
|
|
45
|
+
}
|
|
46
|
+
function deriveRecommendation(counts) {
|
|
47
|
+
if (counts.critical > 0)
|
|
48
|
+
return 'reject';
|
|
49
|
+
if (counts.high > 0)
|
|
50
|
+
return 'approve-with-warnings';
|
|
51
|
+
return 'approve';
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Public API
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
/**
|
|
57
|
+
* Scan a plugin (via its SBOM or directory) for known CVEs using Grype.
|
|
58
|
+
*
|
|
59
|
+
* @param pluginPath Absolute path to the extracted plugin directory
|
|
60
|
+
* @param sbomPath Optional: path to a pre-generated SBOM JSON file. If provided,
|
|
61
|
+
* Grype will scan the SBOM rather than the raw directory.
|
|
62
|
+
*/
|
|
63
|
+
export async function scanVulnerabilities(pluginPath, sbomPath) {
|
|
64
|
+
const ignored = loadIgnoredCVEs(pluginPath);
|
|
65
|
+
const target = sbomPath ?? pluginPath;
|
|
66
|
+
let grypeOutput;
|
|
67
|
+
try {
|
|
68
|
+
const { stdout } = await execFileAsync('grype', [target, '--output', 'json']);
|
|
69
|
+
grypeOutput = JSON.parse(stdout);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
return {
|
|
73
|
+
success: false,
|
|
74
|
+
vulnerabilities: emptyCounts(),
|
|
75
|
+
findings: [],
|
|
76
|
+
recommendation: 'approve',
|
|
77
|
+
error: String(err),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const findings = [];
|
|
81
|
+
const counts = emptyCounts();
|
|
82
|
+
for (const match of grypeOutput.matches ?? []) {
|
|
83
|
+
const vuln = match.vulnerability ?? {};
|
|
84
|
+
const cveId = vuln.id ?? 'UNKNOWN';
|
|
85
|
+
const suppressed = ignored.has(cveId);
|
|
86
|
+
const severity = normaliseSeverity(vuln.severity);
|
|
87
|
+
const cvssScore = vuln.cvss?.[0]?.metrics?.baseScore ?? 0;
|
|
88
|
+
findings.push({
|
|
89
|
+
cveId,
|
|
90
|
+
cvssScore,
|
|
91
|
+
severity,
|
|
92
|
+
packageName: match.artifact?.name ?? 'unknown',
|
|
93
|
+
installedVersion: match.artifact?.version ?? 'unknown',
|
|
94
|
+
fixedVersion: vuln.fix?.versions?.[0],
|
|
95
|
+
description: vuln.description,
|
|
96
|
+
suppressed,
|
|
97
|
+
});
|
|
98
|
+
if (!suppressed) {
|
|
99
|
+
counts[severity] += 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
success: true,
|
|
104
|
+
vulnerabilities: counts,
|
|
105
|
+
findings,
|
|
106
|
+
recommendation: deriveRecommendation(counts),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=vulnerability-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vulnerability-scanner.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/security/vulnerability-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TLP Classification System for Plugin Marketplace
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all public types, classifier, and validator for the
|
|
5
|
+
* plugin TLP classification subsystem.
|
|
6
|
+
*
|
|
7
|
+
* @module plugins/tlp
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
* @date 2026-02-28
|
|
10
|
+
* @license MIT
|
|
11
|
+
*/
|
|
12
|
+
export type { TlpLevel, TlpBadge, TlpClassificationReason, TlpClassificationResult, TlpClearanceProfile, TlpClearanceCheckResult, PluginTlpInput, } from './types.js';
|
|
13
|
+
export { TLP_RANK } from './types.js';
|
|
14
|
+
export { classifyPlugin, getTlpBadge, getAllTlpBadges, TLP_BADGES, } from './tlp-classifier.js';
|
|
15
|
+
export { checkClearance, validatePluginInstall, batchValidate, isCleared, requiredClearance, accessibleLevels, } from './tlp-validator.js';
|
|
16
|
+
export type { BatchValidationEntry } from './tlp-validator.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/tlp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TLP Classification System for Plugin Marketplace
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all public types, classifier, and validator for the
|
|
5
|
+
* plugin TLP classification subsystem.
|
|
6
|
+
*
|
|
7
|
+
* @module plugins/tlp
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
* @date 2026-02-28
|
|
10
|
+
* @license MIT
|
|
11
|
+
*/
|
|
12
|
+
export { TLP_RANK } from './types.js';
|
|
13
|
+
// Classifier
|
|
14
|
+
export { classifyPlugin, getTlpBadge, getAllTlpBadges, TLP_BADGES, } from './tlp-classifier.js';
|
|
15
|
+
// Validator
|
|
16
|
+
export { checkClearance, validatePluginInstall, batchValidate, isCleared, requiredClearance, accessibleLevels, } from './tlp-validator.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/src/plugins/tlp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,aAAa;AACb,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,YAAY;AACZ,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC"}
|