@vorionsys/atsf-core 0.2.3 → 0.3.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 +1 -0
- package/LICENSE +1 -1
- package/README.md +82 -29
- package/dist/adapters/base-adapter.d.ts +94 -0
- package/dist/adapters/base-adapter.d.ts.map +1 -0
- package/dist/adapters/base-adapter.js +233 -0
- package/dist/adapters/base-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +9 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +5 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/types.d.ts +83 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +4 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/webhook-handler.d.ts +64 -0
- package/dist/adapters/webhook-handler.d.ts.map +1 -0
- package/dist/adapters/webhook-handler.js +170 -0
- package/dist/adapters/webhook-handler.js.map +1 -0
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +3 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/server.d.ts +2 -2
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +149 -184
- package/dist/api/server.js.map +1 -1
- package/dist/arbitration/index.d.ts +4 -12
- package/dist/arbitration/index.d.ts.map +1 -1
- package/dist/arbitration/index.js +43 -46
- package/dist/arbitration/index.js.map +1 -1
- package/dist/arbitration/types.d.ts +10 -10
- package/dist/arbitration/types.d.ts.map +1 -1
- package/dist/arbitration/types.js +2 -8
- package/dist/arbitration/types.js.map +1 -1
- package/dist/basis/evaluator.d.ts +1 -6
- package/dist/basis/evaluator.d.ts.map +1 -1
- package/dist/basis/evaluator.js +56 -56
- package/dist/basis/evaluator.js.map +1 -1
- package/dist/basis/index.d.ts +3 -3
- package/dist/basis/index.d.ts.map +1 -1
- package/dist/basis/index.js +5 -3
- package/dist/basis/index.js.map +1 -1
- package/dist/basis/parser.d.ts +30 -30
- package/dist/basis/parser.d.ts.map +1 -1
- package/dist/basis/parser.js +27 -32
- package/dist/basis/parser.js.map +1 -1
- package/dist/basis/types.d.ts +2 -2
- package/dist/basis/types.d.ts.map +1 -1
- package/dist/basis/types.js +2 -3
- package/dist/basis/types.js.map +1 -1
- package/dist/chain/index.d.ts +0 -8
- package/dist/chain/index.d.ts.map +1 -1
- package/dist/chain/index.js +18 -16
- package/dist/chain/index.js.map +1 -1
- package/dist/cognigate/index.d.ts +1 -9
- package/dist/cognigate/index.d.ts.map +1 -1
- package/dist/cognigate/index.js +35 -44
- package/dist/cognigate/index.js.map +1 -1
- package/dist/common/adapters.d.ts +4 -4
- package/dist/common/adapters.d.ts.map +1 -1
- package/dist/common/adapters.js +54 -70
- package/dist/common/adapters.js.map +1 -1
- package/dist/common/config.d.ts +69 -68
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +52 -50
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts +4 -4
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +6 -4
- package/dist/common/index.js.map +1 -1
- package/dist/common/logger.d.ts +1 -1
- package/dist/common/logger.d.ts.map +1 -1
- package/dist/common/logger.js +10 -8
- package/dist/common/logger.js.map +1 -1
- package/dist/common/types.d.ts +12 -12
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/types.js +7 -14
- package/dist/common/types.js.map +1 -1
- package/dist/containment/index.d.ts +3 -11
- package/dist/containment/index.d.ts.map +1 -1
- package/dist/containment/index.js +107 -119
- package/dist/containment/index.js.map +1 -1
- package/dist/containment/types.d.ts +11 -11
- package/dist/containment/types.d.ts.map +1 -1
- package/dist/containment/types.js +2 -8
- package/dist/containment/types.js.map +1 -1
- package/dist/contracts/index.d.ts +9 -17
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +56 -59
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/types.d.ts +12 -12
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/contracts/types.js +2 -8
- package/dist/contracts/types.js.map +1 -1
- package/dist/crewai/callback.d.ts +2 -9
- package/dist/crewai/callback.d.ts.map +1 -1
- package/dist/crewai/callback.js +29 -27
- package/dist/crewai/callback.js.map +1 -1
- package/dist/crewai/executor.d.ts +95 -11
- package/dist/crewai/executor.d.ts.map +1 -1
- package/dist/crewai/executor.js +459 -16
- package/dist/crewai/executor.js.map +1 -1
- package/dist/crewai/index.d.ts +4 -4
- package/dist/crewai/index.d.ts.map +1 -1
- package/dist/crewai/index.js +6 -4
- package/dist/crewai/index.js.map +1 -1
- package/dist/crewai/tools.d.ts +1 -1
- package/dist/crewai/tools.d.ts.map +1 -1
- package/dist/crewai/tools.js +40 -46
- package/dist/crewai/tools.js.map +1 -1
- package/dist/crewai/types.d.ts +66 -3
- package/dist/crewai/types.d.ts.map +1 -1
- package/dist/crewai/types.js +2 -7
- package/dist/crewai/types.js.map +1 -1
- package/dist/enforce/index.d.ts +226 -19
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +55 -81
- package/dist/enforce/index.js.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.d.ts +8 -23
- package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.js +109 -125
- package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
- package/dist/governance/fluid-workflow.d.ts +8 -16
- package/dist/governance/fluid-workflow.d.ts.map +1 -1
- package/dist/governance/fluid-workflow.js +88 -114
- package/dist/governance/fluid-workflow.js.map +1 -1
- package/dist/governance/index.d.ts +7 -15
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +76 -81
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proof-bridge.d.ts +6 -6
- package/dist/governance/proof-bridge.d.ts.map +1 -1
- package/dist/governance/proof-bridge.js +6 -16
- package/dist/governance/proof-bridge.js.map +1 -1
- package/dist/governance/types.d.ts +9 -16
- package/dist/governance/types.d.ts.map +1 -1
- package/dist/governance/types.js +2 -8
- package/dist/governance/types.js.map +1 -1
- package/dist/index.d.ts +30 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -31
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +55 -18
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +25 -26
- package/dist/intent/index.js.map +1 -1
- package/dist/intent/persistent-intent-service.d.ts +2 -17
- package/dist/intent/persistent-intent-service.d.ts.map +1 -1
- package/dist/intent/persistent-intent-service.js +33 -43
- package/dist/intent/persistent-intent-service.js.map +1 -1
- package/dist/intent/supabase-intent-repository.d.ts +107 -0
- package/dist/intent/supabase-intent-repository.d.ts.map +1 -0
- package/dist/intent/supabase-intent-repository.js +406 -0
- package/dist/intent/supabase-intent-repository.js.map +1 -0
- package/dist/intent-gateway/index.d.ts +5 -28
- package/dist/intent-gateway/index.d.ts.map +1 -1
- package/dist/intent-gateway/index.js +341 -508
- package/dist/intent-gateway/index.js.map +1 -1
- package/dist/langchain/callback.d.ts +2 -9
- package/dist/langchain/callback.d.ts.map +1 -1
- package/dist/langchain/callback.js +32 -30
- package/dist/langchain/callback.js.map +1 -1
- package/dist/langchain/executor.d.ts +4 -11
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +82 -82
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts +5 -5
- package/dist/langchain/index.d.ts.map +1 -1
- package/dist/langchain/index.js +7 -5
- package/dist/langchain/index.js.map +1 -1
- package/dist/langchain/tools.d.ts +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +36 -43
- package/dist/langchain/tools.js.map +1 -1
- package/dist/langchain/types.d.ts +3 -3
- package/dist/langchain/types.d.ts.map +1 -1
- package/dist/langchain/types.js +2 -7
- package/dist/langchain/types.js.map +1 -1
- package/dist/layers/implementations/L0-request-format.d.ts +2 -2
- package/dist/layers/implementations/L0-request-format.d.ts.map +1 -1
- package/dist/layers/implementations/L0-request-format.js +54 -54
- package/dist/layers/implementations/L0-request-format.js.map +1 -1
- package/dist/layers/implementations/L1-input-size.d.ts +2 -2
- package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
- package/dist/layers/implementations/L1-input-size.js +41 -49
- package/dist/layers/implementations/L1-input-size.js.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts +2 -2
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.js +73 -81
- package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.d.ts +3 -3
- package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.js +75 -82
- package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.d.ts +4 -4
- package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.js +83 -85
- package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.d.ts +2 -2
- package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.js +22 -20
- package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
- package/dist/layers/implementations/index.d.ts +6 -6
- package/dist/layers/implementations/index.d.ts.map +1 -1
- package/dist/layers/implementations/index.js +8 -6
- package/dist/layers/implementations/index.js.map +1 -1
- package/dist/layers/index.d.ts +3 -11
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/layers/index.js +73 -99
- package/dist/layers/index.js.map +1 -1
- package/dist/layers/types.d.ts +16 -16
- package/dist/layers/types.d.ts.map +1 -1
- package/dist/layers/types.js +2 -8
- package/dist/layers/types.js.map +1 -1
- package/dist/paramesphere/activation-collector.d.ts +128 -0
- package/dist/paramesphere/activation-collector.d.ts.map +1 -0
- package/dist/paramesphere/activation-collector.js +260 -0
- package/dist/paramesphere/activation-collector.js.map +1 -0
- package/dist/paramesphere/cognitive-envelope.d.ts +73 -0
- package/dist/paramesphere/cognitive-envelope.d.ts.map +1 -0
- package/dist/paramesphere/cognitive-envelope.js +209 -0
- package/dist/paramesphere/cognitive-envelope.js.map +1 -0
- package/dist/paramesphere/envelope-integration.d.ts +60 -0
- package/dist/paramesphere/envelope-integration.d.ts.map +1 -0
- package/dist/paramesphere/envelope-integration.js +93 -0
- package/dist/paramesphere/envelope-integration.js.map +1 -0
- package/dist/paramesphere/fingerprint-monitor.d.ts +136 -0
- package/dist/paramesphere/fingerprint-monitor.d.ts.map +1 -0
- package/dist/paramesphere/fingerprint-monitor.js +212 -0
- package/dist/paramesphere/fingerprint-monitor.js.map +1 -0
- package/dist/paramesphere/fingerprint-store.d.ts +85 -0
- package/dist/paramesphere/fingerprint-store.d.ts.map +1 -0
- package/dist/paramesphere/fingerprint-store.js +68 -0
- package/dist/paramesphere/fingerprint-store.js.map +1 -0
- package/dist/paramesphere/index.d.ts +21 -0
- package/dist/paramesphere/index.d.ts.map +1 -0
- package/dist/paramesphere/index.js +18 -0
- package/dist/paramesphere/index.js.map +1 -0
- package/dist/paramesphere/monitor-integration.d.ts +37 -0
- package/dist/paramesphere/monitor-integration.d.ts.map +1 -0
- package/dist/paramesphere/monitor-integration.js +81 -0
- package/dist/paramesphere/monitor-integration.js.map +1 -0
- package/dist/paramesphere/paramesphere-engine.d.ts +111 -0
- package/dist/paramesphere/paramesphere-engine.d.ts.map +1 -0
- package/dist/paramesphere/paramesphere-engine.js +542 -0
- package/dist/paramesphere/paramesphere-engine.js.map +1 -0
- package/dist/paramesphere/types.d.ts +142 -0
- package/dist/paramesphere/types.d.ts.map +1 -0
- package/dist/paramesphere/types.js +4 -0
- package/dist/paramesphere/types.js.map +1 -0
- package/dist/persistence/file.d.ts +3 -10
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +30 -32
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts +7 -7
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +20 -18
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/memory.d.ts +3 -3
- package/dist/persistence/memory.d.ts.map +1 -1
- package/dist/persistence/memory.js +10 -17
- package/dist/persistence/memory.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +3 -11
- package/dist/persistence/sqlite.d.ts.map +1 -1
- package/dist/persistence/sqlite.js +42 -39
- package/dist/persistence/sqlite.js.map +1 -1
- package/dist/persistence/supabase.d.ts +3 -3
- package/dist/persistence/supabase.d.ts.map +1 -1
- package/dist/persistence/supabase.js +46 -49
- package/dist/persistence/supabase.js.map +1 -1
- package/dist/persistence/types.d.ts +5 -5
- package/dist/persistence/types.d.ts.map +1 -1
- package/dist/persistence/types.js +2 -7
- package/dist/persistence/types.js.map +1 -1
- package/dist/phase6/ceiling.d.ts +5 -21
- package/dist/phase6/ceiling.d.ts.map +1 -1
- package/dist/phase6/ceiling.js +38 -69
- package/dist/phase6/ceiling.js.map +1 -1
- package/dist/phase6/context.d.ts +3 -20
- package/dist/phase6/context.d.ts.map +1 -1
- package/dist/phase6/context.js +49 -93
- package/dist/phase6/context.js.map +1 -1
- package/dist/phase6/index.d.ts +12 -12
- package/dist/phase6/index.d.ts.map +1 -1
- package/dist/phase6/index.js +17 -15
- package/dist/phase6/index.js.map +1 -1
- package/dist/phase6/presets.d.ts +2 -18
- package/dist/phase6/presets.d.ts.map +1 -1
- package/dist/phase6/presets.js +35 -39
- package/dist/phase6/presets.js.map +1 -1
- package/dist/phase6/provenance.d.ts +4 -19
- package/dist/phase6/provenance.d.ts.map +1 -1
- package/dist/phase6/provenance.js +37 -42
- package/dist/phase6/provenance.js.map +1 -1
- package/dist/phase6/role-gates/index.d.ts +2 -2
- package/dist/phase6/role-gates/index.d.ts.map +1 -1
- package/dist/phase6/role-gates/index.js +4 -2
- package/dist/phase6/role-gates/index.js.map +1 -1
- package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
- package/dist/phase6/role-gates/kernel.js +18 -16
- package/dist/phase6/role-gates/kernel.js.map +1 -1
- package/dist/phase6/role-gates/policy.d.ts +2 -2
- package/dist/phase6/role-gates/policy.d.ts.map +1 -1
- package/dist/phase6/role-gates/policy.js +8 -17
- package/dist/phase6/role-gates/policy.js.map +1 -1
- package/dist/phase6/role-gates.d.ts +4 -20
- package/dist/phase6/role-gates.d.ts.map +1 -1
- package/dist/phase6/role-gates.js +60 -80
- package/dist/phase6/role-gates.js.map +1 -1
- package/dist/phase6/types.d.ts +53 -23
- package/dist/phase6/types.d.ts.map +1 -1
- package/dist/phase6/types.js +131 -177
- package/dist/phase6/types.js.map +1 -1
- package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
- package/dist/phase6/weight-presets/canonical.js +12 -10
- package/dist/phase6/weight-presets/canonical.js.map +1 -1
- package/dist/phase6/weight-presets/deltas.d.ts +2 -2
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
- package/dist/phase6/weight-presets/deltas.js +29 -37
- package/dist/phase6/weight-presets/deltas.js.map +1 -1
- package/dist/phase6/weight-presets/index.d.ts +3 -3
- package/dist/phase6/weight-presets/index.d.ts.map +1 -1
- package/dist/phase6/weight-presets/index.js +5 -3
- package/dist/phase6/weight-presets/index.js.map +1 -1
- package/dist/phase6/weight-presets/merger.d.ts +2 -12
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
- package/dist/phase6/weight-presets/merger.js +45 -39
- package/dist/phase6/weight-presets/merger.js.map +1 -1
- package/dist/proof/index.d.ts +6 -13
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +63 -51
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +24 -19
- package/dist/proof/merkle.d.ts.map +1 -1
- package/dist/proof/merkle.js +118 -32
- package/dist/proof/merkle.js.map +1 -1
- package/dist/proof/zk-proofs.d.ts +6 -24
- package/dist/proof/zk-proofs.d.ts.map +1 -1
- package/dist/proof/zk-proofs.js +45 -42
- package/dist/proof/zk-proofs.js.map +1 -1
- package/dist/provenance/index.d.ts +3 -11
- package/dist/provenance/index.d.ts.map +1 -1
- package/dist/provenance/index.js +19 -19
- package/dist/provenance/index.js.map +1 -1
- package/dist/provenance/types.d.ts +4 -4
- package/dist/provenance/types.d.ts.map +1 -1
- package/dist/provenance/types.js +2 -8
- package/dist/provenance/types.js.map +1 -1
- package/dist/sandbox-training/challenges.d.ts +1 -1
- package/dist/sandbox-training/challenges.d.ts.map +1 -1
- package/dist/sandbox-training/challenges.js +230 -236
- package/dist/sandbox-training/challenges.js.map +1 -1
- package/dist/sandbox-training/graduation.d.ts +1 -1
- package/dist/sandbox-training/graduation.d.ts.map +1 -1
- package/dist/sandbox-training/graduation.js +17 -22
- package/dist/sandbox-training/graduation.js.map +1 -1
- package/dist/sandbox-training/index.d.ts +9 -9
- package/dist/sandbox-training/index.d.ts.map +1 -1
- package/dist/sandbox-training/index.js +8 -6
- package/dist/sandbox-training/index.js.map +1 -1
- package/dist/sandbox-training/promotion-service.d.ts +4 -4
- package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
- package/dist/sandbox-training/promotion-service.js +7 -16
- package/dist/sandbox-training/promotion-service.js.map +1 -1
- package/dist/sandbox-training/runner.d.ts +1 -1
- package/dist/sandbox-training/runner.d.ts.map +1 -1
- package/dist/sandbox-training/runner.js +75 -82
- package/dist/sandbox-training/runner.js.map +1 -1
- package/dist/sandbox-training/scorer.d.ts +4 -4
- package/dist/sandbox-training/scorer.d.ts.map +1 -1
- package/dist/sandbox-training/scorer.js +7 -13
- package/dist/sandbox-training/scorer.js.map +1 -1
- package/dist/sandbox-training/types.d.ts +4 -4
- package/dist/sandbox-training/types.d.ts.map +1 -1
- package/dist/sandbox-training/types.js +9 -19
- package/dist/sandbox-training/types.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -9
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.js +6 -11
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
- package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/index.js +4 -2
- package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +12 -10
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/kernel.js +28 -20
- package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -1
- package/dist/trust-engine/context-policy/enforcement.d.ts +0 -9
- package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/enforcement.js +2 -9
- package/dist/trust-engine/context-policy/enforcement.js.map +1 -1
- package/dist/trust-engine/context-policy/factory.d.ts +1 -1
- package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/factory.js +3 -1
- package/dist/trust-engine/context-policy/factory.js.map +1 -1
- package/dist/trust-engine/context-policy/index.d.ts +2 -2
- package/dist/trust-engine/context-policy/index.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/index.js +4 -2
- package/dist/trust-engine/context-policy/index.js.map +1 -1
- package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
- package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -1
- package/dist/trust-engine/creation-modifiers/index.js +3 -1
- package/dist/trust-engine/creation-modifiers/index.js.map +1 -1
- package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
- package/dist/trust-engine/creation-modifiers/types.js +5 -2
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
- package/dist/trust-engine/decay-profiles.d.ts +37 -136
- package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
- package/dist/trust-engine/decay-profiles.js +61 -183
- package/dist/trust-engine/decay-profiles.js.map +1 -1
- package/dist/trust-engine/index.d.ts +327 -22
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +706 -130
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +15 -18
- package/dist/trust-engine/phase6-types.d.ts.map +1 -1
- package/dist/trust-engine/phase6-types.js +32 -36
- package/dist/trust-engine/phase6-types.js.map +1 -1
- package/dist/trust-engine/trust-verifier.d.ts +121 -0
- package/dist/trust-engine/trust-verifier.d.ts.map +1 -0
- package/dist/trust-engine/trust-verifier.js +226 -0
- package/dist/trust-engine/trust-verifier.js.map +1 -0
- package/package.json +140 -135
- package/dist/enforce/types.d.ts +0 -234
- package/dist/enforce/types.d.ts.map +0 -1
- package/dist/enforce/types.js +0 -10
- package/dist/enforce/types.js.map +0 -1
- package/dist/intent/types.d.ts +0 -69
- package/dist/intent/types.d.ts.map +0 -1
- package/dist/intent/types.js +0 -10
- package/dist/intent/types.js.map +0 -1
- package/dist/trust-engine/types.d.ts +0 -77
- package/dist/trust-engine/types.d.ts.map +0 -1
- package/dist/trust-engine/types.js +0 -20
- package/dist/trust-engine/types.js.map +0 -1
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* @packageDocumentation
|
|
7
|
-
*/
|
|
8
|
-
import { createLogger } from "../common/logger.js";
|
|
9
|
-
const logger = createLogger({ component: "persistence-supabase" });
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright 2024-2026 Vorion LLC
|
|
3
|
+
import { createLogger } from '../common/logger.js';
|
|
4
|
+
const logger = createLogger({ component: 'persistence-supabase' });
|
|
10
5
|
/**
|
|
11
6
|
* Supabase/PostgreSQL persistence provider
|
|
12
7
|
*/
|
|
13
8
|
export class SupabasePersistenceProvider {
|
|
14
|
-
name =
|
|
9
|
+
name = 'supabase';
|
|
15
10
|
client;
|
|
16
11
|
tableName;
|
|
17
12
|
debug;
|
|
18
13
|
constructor(config) {
|
|
19
14
|
this.client = config.client;
|
|
20
|
-
this.tableName = config.tableName ??
|
|
15
|
+
this.tableName = config.tableName ?? 'trust_scores';
|
|
21
16
|
this.debug = config.debug ?? false;
|
|
22
17
|
}
|
|
23
18
|
async initialize() {
|
|
@@ -25,45 +20,45 @@ export class SupabasePersistenceProvider {
|
|
|
25
20
|
try {
|
|
26
21
|
const result = await this.client
|
|
27
22
|
.from(this.tableName)
|
|
28
|
-
.select(
|
|
23
|
+
.select('entity_id')
|
|
29
24
|
.range(0, 0);
|
|
30
25
|
if (result.error) {
|
|
31
26
|
// Table might not exist, log warning but don't fail
|
|
32
|
-
logger.warn({ table: this.tableName, error: result.error.message },
|
|
27
|
+
logger.warn({ table: this.tableName, error: result.error.message }, 'Trust scores table may not exist. Run migrations to create it.');
|
|
33
28
|
}
|
|
34
29
|
else {
|
|
35
|
-
logger.info({ table: this.tableName },
|
|
30
|
+
logger.info({ table: this.tableName }, 'Supabase persistence initialized');
|
|
36
31
|
}
|
|
37
32
|
}
|
|
38
33
|
catch (err) {
|
|
39
|
-
logger.warn({ err },
|
|
34
|
+
logger.warn({ err }, 'Failed to verify Supabase connection');
|
|
40
35
|
}
|
|
41
36
|
}
|
|
42
37
|
async save(record) {
|
|
43
38
|
const row = this.recordToRow(record);
|
|
44
39
|
const result = await this.client
|
|
45
40
|
.from(this.tableName)
|
|
46
|
-
.upsert(row, { onConflict:
|
|
41
|
+
.upsert(row, { onConflict: 'entity_id' });
|
|
47
42
|
if (result.error) {
|
|
48
|
-
logger.error({ error: result.error, entityId: record.entityId },
|
|
43
|
+
logger.error({ error: result.error, entityId: record.entityId }, 'Failed to save trust record');
|
|
49
44
|
throw new Error(`Failed to save trust record: ${result.error.message}`);
|
|
50
45
|
}
|
|
51
46
|
if (this.debug) {
|
|
52
|
-
logger.debug({ entityId: record.entityId, score: record.score },
|
|
47
|
+
logger.debug({ entityId: record.entityId, score: record.score }, 'Saved trust record');
|
|
53
48
|
}
|
|
54
49
|
}
|
|
55
50
|
async get(entityId) {
|
|
56
51
|
const result = await this.client
|
|
57
52
|
.from(this.tableName)
|
|
58
|
-
.select(
|
|
59
|
-
.eq(
|
|
53
|
+
.select('*')
|
|
54
|
+
.eq('entity_id', entityId)
|
|
60
55
|
.single();
|
|
61
56
|
if (result.error) {
|
|
62
|
-
if (result.error.code ===
|
|
57
|
+
if (result.error.code === 'PGRST116') {
|
|
63
58
|
// No rows found
|
|
64
59
|
return undefined;
|
|
65
60
|
}
|
|
66
|
-
logger.error({ error: result.error, entityId },
|
|
61
|
+
logger.error({ error: result.error, entityId }, 'Failed to get trust record');
|
|
67
62
|
throw new Error(`Failed to get trust record: ${result.error.message}`);
|
|
68
63
|
}
|
|
69
64
|
if (!result.data) {
|
|
@@ -75,48 +70,48 @@ export class SupabasePersistenceProvider {
|
|
|
75
70
|
const result = await this.client
|
|
76
71
|
.from(this.tableName)
|
|
77
72
|
.delete()
|
|
78
|
-
.eq(
|
|
73
|
+
.eq('entity_id', entityId);
|
|
79
74
|
if (result.error) {
|
|
80
|
-
logger.error({ error: result.error, entityId },
|
|
75
|
+
logger.error({ error: result.error, entityId }, 'Failed to delete trust record');
|
|
81
76
|
throw new Error(`Failed to delete trust record: ${result.error.message}`);
|
|
82
77
|
}
|
|
83
78
|
return true;
|
|
84
79
|
}
|
|
85
80
|
async listIds() {
|
|
86
|
-
const result = await this.client
|
|
81
|
+
const result = await this.client
|
|
82
|
+
.from(this.tableName)
|
|
83
|
+
.select('entity_id');
|
|
87
84
|
if (result.error) {
|
|
88
|
-
logger.error({ error: result.error },
|
|
85
|
+
logger.error({ error: result.error }, 'Failed to list entity IDs');
|
|
89
86
|
throw new Error(`Failed to list entity IDs: ${result.error.message}`);
|
|
90
87
|
}
|
|
91
88
|
const data = result.data;
|
|
92
89
|
return data?.map((row) => row.entity_id) ?? [];
|
|
93
90
|
}
|
|
94
91
|
async query(options = {}) {
|
|
95
|
-
let query = this.client.from(this.tableName).select(
|
|
92
|
+
let query = this.client.from(this.tableName).select('*');
|
|
96
93
|
// Apply filters
|
|
97
94
|
if (options.minLevel !== undefined) {
|
|
98
|
-
query = query.gte(
|
|
95
|
+
query = query.gte('level', options.minLevel);
|
|
99
96
|
}
|
|
100
97
|
if (options.maxLevel !== undefined) {
|
|
101
|
-
query = query.lte(
|
|
98
|
+
query = query.lte('level', options.maxLevel);
|
|
102
99
|
}
|
|
103
100
|
if (options.minScore !== undefined) {
|
|
104
|
-
query = query.gte(
|
|
101
|
+
query = query.gte('score', options.minScore);
|
|
105
102
|
}
|
|
106
103
|
if (options.maxScore !== undefined) {
|
|
107
|
-
query = query.lte(
|
|
104
|
+
query = query.lte('score', options.maxScore);
|
|
108
105
|
}
|
|
109
106
|
// Apply sorting
|
|
110
|
-
const sortBy = options.sortBy ??
|
|
111
|
-
const sortOrder = options.sortOrder ??
|
|
107
|
+
const sortBy = options.sortBy ?? 'score';
|
|
108
|
+
const sortOrder = options.sortOrder ?? 'desc';
|
|
112
109
|
const columnMap = {
|
|
113
|
-
score:
|
|
114
|
-
level:
|
|
115
|
-
lastCalculatedAt:
|
|
110
|
+
score: 'score',
|
|
111
|
+
level: 'level',
|
|
112
|
+
lastCalculatedAt: 'last_calculated_at',
|
|
116
113
|
};
|
|
117
|
-
query = query.order(columnMap[sortBy] ??
|
|
118
|
-
ascending: sortOrder === "asc",
|
|
119
|
-
});
|
|
114
|
+
query = query.order(columnMap[sortBy] ?? 'score', { ascending: sortOrder === 'asc' });
|
|
120
115
|
// Apply pagination
|
|
121
116
|
if (options.limit !== undefined || options.offset !== undefined) {
|
|
122
117
|
const offset = options.offset ?? 0;
|
|
@@ -125,7 +120,7 @@ export class SupabasePersistenceProvider {
|
|
|
125
120
|
}
|
|
126
121
|
const result = await query;
|
|
127
122
|
if (result.error) {
|
|
128
|
-
logger.error({ error: result.error },
|
|
123
|
+
logger.error({ error: result.error }, 'Failed to query trust records');
|
|
129
124
|
throw new Error(`Failed to query trust records: ${result.error.message}`);
|
|
130
125
|
}
|
|
131
126
|
const rows = result.data;
|
|
@@ -134,15 +129,17 @@ export class SupabasePersistenceProvider {
|
|
|
134
129
|
async exists(entityId) {
|
|
135
130
|
const result = await this.client
|
|
136
131
|
.from(this.tableName)
|
|
137
|
-
.select(
|
|
138
|
-
.eq(
|
|
132
|
+
.select('entity_id')
|
|
133
|
+
.eq('entity_id', entityId)
|
|
139
134
|
.single();
|
|
140
135
|
return !result.error && result.data !== null;
|
|
141
136
|
}
|
|
142
137
|
async count() {
|
|
143
|
-
const result = await this.client
|
|
138
|
+
const result = await this.client
|
|
139
|
+
.from(this.tableName)
|
|
140
|
+
.select('entity_id');
|
|
144
141
|
if (result.error) {
|
|
145
|
-
logger.error({ error: result.error },
|
|
142
|
+
logger.error({ error: result.error }, 'Failed to count trust records');
|
|
146
143
|
throw new Error(`Failed to count trust records: ${result.error.message}`);
|
|
147
144
|
}
|
|
148
145
|
const data = result.data;
|
|
@@ -153,16 +150,16 @@ export class SupabasePersistenceProvider {
|
|
|
153
150
|
const result = await this.client
|
|
154
151
|
.from(this.tableName)
|
|
155
152
|
.delete()
|
|
156
|
-
.gte(
|
|
153
|
+
.gte('score', 0); // This matches all records
|
|
157
154
|
if (result.error) {
|
|
158
|
-
logger.error({ error: result.error },
|
|
155
|
+
logger.error({ error: result.error }, 'Failed to clear trust records');
|
|
159
156
|
throw new Error(`Failed to clear trust records: ${result.error.message}`);
|
|
160
157
|
}
|
|
161
|
-
logger.info({ table: this.tableName },
|
|
158
|
+
logger.info({ table: this.tableName }, 'Cleared all trust records');
|
|
162
159
|
}
|
|
163
160
|
async close() {
|
|
164
161
|
// Supabase client doesn't need explicit closing
|
|
165
|
-
logger.info(
|
|
162
|
+
logger.info('Supabase persistence closed');
|
|
166
163
|
}
|
|
167
164
|
/**
|
|
168
165
|
* Convert a TrustRecord to a database row
|
|
@@ -176,7 +173,7 @@ export class SupabasePersistenceProvider {
|
|
|
176
173
|
signals: record.signals,
|
|
177
174
|
last_calculated_at: record.lastCalculatedAt,
|
|
178
175
|
history: record.history,
|
|
179
|
-
recent_failures:
|
|
176
|
+
recent_failures: [],
|
|
180
177
|
recent_successes: record.recentSuccesses ?? [],
|
|
181
178
|
peak_score: record.peakScore ?? record.score,
|
|
182
179
|
consecutive_successes: record.consecutiveSuccesses ?? 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/persistence/supabase.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/persistence/supabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
*/
|
|
8
|
-
import type { ID } from
|
|
9
|
-
import type { TrustRecord } from
|
|
8
|
+
import type { ID } from '../common/types.js';
|
|
9
|
+
import type { TrustRecord } from '../trust-engine/index.js';
|
|
10
10
|
/**
|
|
11
11
|
* Query options for listing trust records
|
|
12
12
|
*/
|
|
@@ -24,9 +24,9 @@ export interface TrustRecordQuery {
|
|
|
24
24
|
/** Offset for pagination */
|
|
25
25
|
offset?: number;
|
|
26
26
|
/** Sort by field */
|
|
27
|
-
sortBy?:
|
|
27
|
+
sortBy?: 'score' | 'level' | 'lastCalculatedAt';
|
|
28
28
|
/** Sort direction */
|
|
29
|
-
sortOrder?:
|
|
29
|
+
sortOrder?: 'asc' | 'desc';
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Persistence provider interface
|
|
@@ -80,7 +80,7 @@ export interface PersistenceProvider {
|
|
|
80
80
|
*/
|
|
81
81
|
export interface PersistenceConfig {
|
|
82
82
|
/** Provider type */
|
|
83
|
-
type:
|
|
83
|
+
type: 'memory' | 'file' | 'sqlite' | 'supabase';
|
|
84
84
|
/** File path for file/sqlite providers */
|
|
85
85
|
path?: string;
|
|
86
86
|
/** Auto-save interval in ms (0 = disabled) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IAChD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC"}
|
package/dist/phase6/ceiling.d.ts
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Q1: Ceiling Enforcement (Hybrid Dual-Layer + Regulatory Observability)
|
|
3
|
-
*
|
|
4
|
-
* Implements three-layer enforcement:
|
|
5
|
-
* - Kernel Layer: Structure validation (cannot bypass)
|
|
6
|
-
* - Policy Layer: Authorization via governance rules
|
|
7
|
-
* - Regulatory Layer: Observability for gaming detection
|
|
8
|
-
*
|
|
9
|
-
* Key Features:
|
|
10
|
-
* - Dual logging (raw + clamped scores)
|
|
11
|
-
* - Gaming detection via variance analysis
|
|
12
|
-
* - Regulatory audit ledger with retention
|
|
13
|
-
* - Hash-chained event immutability
|
|
14
|
-
*
|
|
15
|
-
* @packageDocumentation
|
|
16
|
-
*/
|
|
17
|
-
import { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type AgentContext, TrustTier, RegulatoryFramework } from "./types.js";
|
|
1
|
+
import { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type AgentContext, TrustTier, RegulatoryFramework } from './types.js';
|
|
18
2
|
/**
|
|
19
3
|
* Ceiling sources in priority order (lowest ceiling wins)
|
|
20
4
|
*/
|
|
@@ -139,7 +123,7 @@ export declare class CeilingEnforcementService {
|
|
|
139
123
|
*/
|
|
140
124
|
getAuditLedger(filter?: {
|
|
141
125
|
agentId?: string;
|
|
142
|
-
complianceStatus?: RegulatoryAuditEntry[
|
|
126
|
+
complianceStatus?: RegulatoryAuditEntry['complianceStatus'];
|
|
143
127
|
startDate?: Date;
|
|
144
128
|
endDate?: Date;
|
|
145
129
|
}): readonly RegulatoryAuditEntry[];
|
|
@@ -157,7 +141,7 @@ export declare class CeilingEnforcementService {
|
|
|
157
141
|
getGamingAlerts(): Array<{
|
|
158
142
|
agentId: string;
|
|
159
143
|
alertCount: number;
|
|
160
|
-
latestStatus: RegulatoryAuditEntry[
|
|
144
|
+
latestStatus: RegulatoryAuditEntry['complianceStatus'];
|
|
161
145
|
}>;
|
|
162
146
|
/**
|
|
163
147
|
* Get statistics
|
|
@@ -165,7 +149,7 @@ export declare class CeilingEnforcementService {
|
|
|
165
149
|
getStats(): {
|
|
166
150
|
totalEvents: number;
|
|
167
151
|
totalAuditEntries: number;
|
|
168
|
-
complianceBreakdown: Record<RegulatoryAuditEntry[
|
|
152
|
+
complianceBreakdown: Record<RegulatoryAuditEntry['complianceStatus'], number>;
|
|
169
153
|
agentsWithAlerts: number;
|
|
170
154
|
};
|
|
171
155
|
}
|
|
@@ -173,5 +157,5 @@ export declare class CeilingEnforcementService {
|
|
|
173
157
|
* Create a new ceiling enforcement service
|
|
174
158
|
*/
|
|
175
159
|
export declare function createCeilingEnforcementService(framework?: RegulatoryFramework): CeilingEnforcementService;
|
|
176
|
-
export { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type EnforcementLayer, RegulatoryFramework, } from
|
|
160
|
+
export { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type EnforcementLayer, RegulatoryFramework, } from './types.js';
|
|
177
161
|
//# sourceMappingURL=ceiling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../src/phase6/ceiling.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../src/phase6/ceiling.ts"],"names":[],"mappings":"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"}
|
package/dist/phase6/ceiling.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright 2024-2026 Vorion LLC
|
|
1
3
|
/**
|
|
2
4
|
* Q1: Ceiling Enforcement (Hybrid Dual-Layer + Regulatory Observability)
|
|
3
5
|
*
|
|
@@ -14,10 +16,10 @@
|
|
|
14
16
|
*
|
|
15
17
|
* @packageDocumentation
|
|
16
18
|
*/
|
|
17
|
-
import { createLogger } from
|
|
18
|
-
import { TrustTier, RegulatoryFramework, getTierFromScore, clampToCeiling, trustComputationEventSchema, regulatoryAuditEntrySchema, } from
|
|
19
|
-
import { getAgentContextCeiling } from
|
|
20
|
-
const logger = createLogger({ component:
|
|
19
|
+
import { createLogger } from '../common/logger.js';
|
|
20
|
+
import { TrustTier, RegulatoryFramework, getTierFromScore, clampToCeiling, trustComputationEventSchema, regulatoryAuditEntrySchema, } from './types.js';
|
|
21
|
+
import { getAgentContextCeiling } from './context.js';
|
|
22
|
+
const logger = createLogger({ component: 'phase6:ceiling' });
|
|
21
23
|
// =============================================================================
|
|
22
24
|
// HASH UTILITIES
|
|
23
25
|
// =============================================================================
|
|
@@ -27,9 +29,9 @@ const logger = createLogger({ component: "phase6:ceiling" });
|
|
|
27
29
|
async function calculateHash(data) {
|
|
28
30
|
const encoder = new TextEncoder();
|
|
29
31
|
const dataBuffer = encoder.encode(data);
|
|
30
|
-
const hashBuffer = await crypto.subtle.digest(
|
|
32
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', dataBuffer);
|
|
31
33
|
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
32
|
-
return hashArray.map((b) => b.toString(16).padStart(2,
|
|
34
|
+
return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Calculate effective ceiling from all sources
|
|
@@ -38,17 +40,17 @@ export function calculateEffectiveCeiling(context) {
|
|
|
38
40
|
const contextCeiling = getAgentContextCeiling(context.agentContext);
|
|
39
41
|
const sources = [
|
|
40
42
|
{
|
|
41
|
-
type:
|
|
43
|
+
type: 'context',
|
|
42
44
|
value: contextCeiling,
|
|
43
45
|
constraint: `Context type ${context.agentContext.contextType}`,
|
|
44
46
|
},
|
|
45
47
|
{
|
|
46
|
-
type:
|
|
48
|
+
type: 'organizational',
|
|
47
49
|
value: getOrgCeiling(context.agentContext),
|
|
48
50
|
constraint: `Organization ${context.agentContext.parentOrg.orgId}`,
|
|
49
51
|
},
|
|
50
52
|
{
|
|
51
|
-
type:
|
|
53
|
+
type: 'deployment',
|
|
52
54
|
value: getDeploymentCeiling(context.agentContext),
|
|
53
55
|
constraint: `Deployment ${context.agentContext.parentOrg.parentDeployment.deploymentId}`,
|
|
54
56
|
},
|
|
@@ -56,9 +58,9 @@ export function calculateEffectiveCeiling(context) {
|
|
|
56
58
|
// Add attestation ceiling if present
|
|
57
59
|
if (context.attestationCeiling !== undefined) {
|
|
58
60
|
sources.push({
|
|
59
|
-
type:
|
|
61
|
+
type: 'attestation',
|
|
60
62
|
value: context.attestationCeiling,
|
|
61
|
-
constraint:
|
|
63
|
+
constraint: 'TEE attestation',
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
// Find minimum ceiling
|
|
@@ -69,15 +71,8 @@ export function calculateEffectiveCeiling(context) {
|
|
|
69
71
|
* Get organizational ceiling (from constraints)
|
|
70
72
|
*/
|
|
71
73
|
function getOrgCeiling(context) {
|
|
72
|
-
const tierOrder = [
|
|
73
|
-
|
|
74
|
-
TrustTier.T1,
|
|
75
|
-
TrustTier.T2,
|
|
76
|
-
TrustTier.T3,
|
|
77
|
-
TrustTier.T4,
|
|
78
|
-
TrustTier.T5,
|
|
79
|
-
];
|
|
80
|
-
const tierScores = [99, 299, 499, 699, 899, 1000];
|
|
74
|
+
const tierOrder = [TrustTier.T0, TrustTier.T1, TrustTier.T2, TrustTier.T3, TrustTier.T4, TrustTier.T5, TrustTier.T6, TrustTier.T7];
|
|
75
|
+
const tierScores = [199, 349, 499, 649, 799, 875, 950, 1000];
|
|
81
76
|
const idx = tierOrder.indexOf(context.parentOrg.constraints.maxTrustTier);
|
|
82
77
|
return tierScores[idx] ?? 1000;
|
|
83
78
|
}
|
|
@@ -85,15 +80,8 @@ function getOrgCeiling(context) {
|
|
|
85
80
|
* Get deployment ceiling (from max allowed tier)
|
|
86
81
|
*/
|
|
87
82
|
function getDeploymentCeiling(context) {
|
|
88
|
-
const tierOrder = [
|
|
89
|
-
|
|
90
|
-
TrustTier.T1,
|
|
91
|
-
TrustTier.T2,
|
|
92
|
-
TrustTier.T3,
|
|
93
|
-
TrustTier.T4,
|
|
94
|
-
TrustTier.T5,
|
|
95
|
-
];
|
|
96
|
-
const tierScores = [99, 299, 499, 699, 899, 1000];
|
|
83
|
+
const tierOrder = [TrustTier.T0, TrustTier.T1, TrustTier.T2, TrustTier.T3, TrustTier.T4, TrustTier.T5, TrustTier.T6, TrustTier.T7];
|
|
84
|
+
const tierScores = [199, 349, 499, 649, 799, 875, 950, 1000];
|
|
97
85
|
const idx = tierOrder.indexOf(context.parentOrg.parentDeployment.maxAllowedTier);
|
|
98
86
|
return tierScores[idx] ?? 1000;
|
|
99
87
|
}
|
|
@@ -109,12 +97,8 @@ export function enforceKernelCeiling(rawScore, ceilingContext) {
|
|
|
109
97
|
rawScore: 0,
|
|
110
98
|
clampedScore: 0,
|
|
111
99
|
ceilingApplied: true,
|
|
112
|
-
ceilingSource: {
|
|
113
|
-
|
|
114
|
-
value: 0,
|
|
115
|
-
constraint: "Invalid raw score",
|
|
116
|
-
},
|
|
117
|
-
reason: "Raw score must be >= 0 and finite",
|
|
100
|
+
ceilingSource: { type: 'context', value: 0, constraint: 'Invalid raw score' },
|
|
101
|
+
reason: 'Raw score must be >= 0 and finite',
|
|
118
102
|
};
|
|
119
103
|
}
|
|
120
104
|
// Calculate effective ceiling
|
|
@@ -137,25 +121,18 @@ export function enforcePolicyCeiling(clampedScore, tier, policyContext) {
|
|
|
137
121
|
const appliedPolicies = [];
|
|
138
122
|
// Check required tier if specified
|
|
139
123
|
if (policyContext.requiredTier !== undefined) {
|
|
140
|
-
const tierOrder = [
|
|
141
|
-
TrustTier.T0,
|
|
142
|
-
TrustTier.T1,
|
|
143
|
-
TrustTier.T2,
|
|
144
|
-
TrustTier.T3,
|
|
145
|
-
TrustTier.T4,
|
|
146
|
-
TrustTier.T5,
|
|
147
|
-
];
|
|
124
|
+
const tierOrder = [TrustTier.T0, TrustTier.T1, TrustTier.T2, TrustTier.T3, TrustTier.T4, TrustTier.T5, TrustTier.T6, TrustTier.T7];
|
|
148
125
|
const currentIdx = tierOrder.indexOf(tier);
|
|
149
126
|
const requiredIdx = tierOrder.indexOf(policyContext.requiredTier);
|
|
150
127
|
if (currentIdx < requiredIdx) {
|
|
151
128
|
return {
|
|
152
129
|
valid: false,
|
|
153
|
-
appliedPolicies: [
|
|
154
|
-
deniedBy:
|
|
130
|
+
appliedPolicies: ['tier-requirement'],
|
|
131
|
+
deniedBy: 'tier-requirement',
|
|
155
132
|
reason: `Required tier ${policyContext.requiredTier}, current tier ${tier}`,
|
|
156
133
|
};
|
|
157
134
|
}
|
|
158
|
-
appliedPolicies.push(
|
|
135
|
+
appliedPolicies.push('tier-requirement:passed');
|
|
159
136
|
}
|
|
160
137
|
// Policy layer passes
|
|
161
138
|
return {
|
|
@@ -235,13 +212,13 @@ export async function createTrustComputationEvent(agentId, rawScore, ceilingCont
|
|
|
235
212
|
// Determine enforcement layer
|
|
236
213
|
let enforcementLayer;
|
|
237
214
|
if (!kernelResult.valid) {
|
|
238
|
-
enforcementLayer =
|
|
215
|
+
enforcementLayer = 'kernel';
|
|
239
216
|
}
|
|
240
217
|
else if (!policyResult.valid) {
|
|
241
|
-
enforcementLayer =
|
|
218
|
+
enforcementLayer = 'policy';
|
|
242
219
|
}
|
|
243
220
|
else {
|
|
244
|
-
enforcementLayer =
|
|
221
|
+
enforcementLayer = 'regulatory';
|
|
245
222
|
}
|
|
246
223
|
const eventData = {
|
|
247
224
|
eventId: crypto.randomUUID(),
|
|
@@ -276,7 +253,7 @@ export async function createTrustComputationEvent(agentId, rawScore, ceilingCont
|
|
|
276
253
|
clampedScore: event.clampedScore,
|
|
277
254
|
tier,
|
|
278
255
|
ceilingApplied: event.ceilingApplied,
|
|
279
|
-
},
|
|
256
|
+
}, 'Trust computation event created');
|
|
280
257
|
return event;
|
|
281
258
|
}
|
|
282
259
|
// =============================================================================
|
|
@@ -288,20 +265,17 @@ export async function createTrustComputationEvent(agentId, rawScore, ceilingCont
|
|
|
288
265
|
export async function createRegulatoryAuditEntry(event, gamingIndicators, framework, ledgerSequence, previousEntryHash) {
|
|
289
266
|
const now = new Date();
|
|
290
267
|
const variance = event.rawScore - event.clampedScore;
|
|
291
|
-
const hasAnomaly = gamingIndicators.varianceAnomaly ||
|
|
292
|
-
gamingIndicators.frequencyAnomaly ||
|
|
293
|
-
gamingIndicators.patternAnomaly;
|
|
268
|
+
const hasAnomaly = gamingIndicators.varianceAnomaly || gamingIndicators.frequencyAnomaly || gamingIndicators.patternAnomaly;
|
|
294
269
|
// Determine compliance status
|
|
295
270
|
let complianceStatus;
|
|
296
271
|
if (gamingIndicators.patternAnomaly) {
|
|
297
|
-
complianceStatus =
|
|
272
|
+
complianceStatus = 'violation';
|
|
298
273
|
}
|
|
299
|
-
else if (gamingIndicators.varianceAnomaly ||
|
|
300
|
-
|
|
301
|
-
complianceStatus = "warning";
|
|
274
|
+
else if (gamingIndicators.varianceAnomaly || gamingIndicators.frequencyAnomaly) {
|
|
275
|
+
complianceStatus = 'warning';
|
|
302
276
|
}
|
|
303
277
|
else {
|
|
304
|
-
complianceStatus =
|
|
278
|
+
complianceStatus = 'compliant';
|
|
305
279
|
}
|
|
306
280
|
const retention = getRetentionRequirements(framework, hasAnomaly);
|
|
307
281
|
const entryData = {
|
|
@@ -333,13 +307,13 @@ export async function createRegulatoryAuditEntry(event, gamingIndicators, framew
|
|
|
333
307
|
if (!parsed.success) {
|
|
334
308
|
throw new Error(`Invalid regulatory audit entry: ${parsed.error.message}`);
|
|
335
309
|
}
|
|
336
|
-
if (complianceStatus !==
|
|
310
|
+
if (complianceStatus !== 'compliant') {
|
|
337
311
|
logger.warn({
|
|
338
312
|
agentId: entry.agentId,
|
|
339
313
|
complianceStatus,
|
|
340
314
|
variance,
|
|
341
315
|
gamingIndicators,
|
|
342
|
-
},
|
|
316
|
+
}, 'Compliance issue detected');
|
|
343
317
|
}
|
|
344
318
|
return entry;
|
|
345
319
|
}
|
|
@@ -379,9 +353,7 @@ export class CeilingEnforcementService {
|
|
|
379
353
|
// Detect gaming indicators
|
|
380
354
|
const gamingIndicators = detectGamingIndicators(event.rawScore, event.clampedScore, event.effectiveTier, gamingState);
|
|
381
355
|
// Create audit entry
|
|
382
|
-
const auditEntry = await createRegulatoryAuditEntry(event, gamingIndicators, this.regulatoryFramework, this.auditLedger.length, this.auditLedger.length > 0
|
|
383
|
-
? this.auditLedger[this.auditLedger.length - 1].entryHash
|
|
384
|
-
: undefined);
|
|
356
|
+
const auditEntry = await createRegulatoryAuditEntry(event, gamingIndicators, this.regulatoryFramework, this.auditLedger.length, this.auditLedger.length > 0 ? this.auditLedger[this.auditLedger.length - 1].entryHash : undefined);
|
|
385
357
|
this.auditLedger.push(auditEntry);
|
|
386
358
|
return { event, auditEntry };
|
|
387
359
|
}
|
|
@@ -444,11 +416,8 @@ export class CeilingEnforcementService {
|
|
|
444
416
|
getGamingAlerts() {
|
|
445
417
|
const alerts = new Map();
|
|
446
418
|
for (const entry of this.auditLedger) {
|
|
447
|
-
if (entry.complianceStatus !==
|
|
448
|
-
const current = alerts.get(entry.agentId) ?? {
|
|
449
|
-
alertCount: 0,
|
|
450
|
-
latestStatus: "compliant",
|
|
451
|
-
};
|
|
419
|
+
if (entry.complianceStatus !== 'compliant') {
|
|
420
|
+
const current = alerts.get(entry.agentId) ?? { alertCount: 0, latestStatus: 'compliant' };
|
|
452
421
|
current.alertCount++;
|
|
453
422
|
current.latestStatus = entry.complianceStatus;
|
|
454
423
|
alerts.set(entry.agentId, current);
|
|
@@ -492,5 +461,5 @@ export function createCeilingEnforcementService(framework = RegulatoryFramework.
|
|
|
492
461
|
// =============================================================================
|
|
493
462
|
// EXPORTS
|
|
494
463
|
// =============================================================================
|
|
495
|
-
export { RegulatoryFramework, } from
|
|
464
|
+
export { RegulatoryFramework, } from './types.js';
|
|
496
465
|
//# sourceMappingURL=ceiling.js.map
|