@vorionsys/atsf-core 0.2.4 → 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.map +1 -1
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +2 -0
- package/dist/api/server.js.map +1 -1
- package/dist/arbitration/index.d.ts +0 -8
- package/dist/arbitration/index.d.ts.map +1 -1
- package/dist/arbitration/index.js +2 -0
- package/dist/arbitration/index.js.map +1 -1
- 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 +0 -5
- package/dist/basis/evaluator.d.ts.map +1 -1
- package/dist/basis/evaluator.js +2 -0
- package/dist/basis/evaluator.js.map +1 -1
- package/dist/basis/index.d.ts.map +1 -1
- package/dist/basis/index.js +2 -0
- package/dist/basis/index.js.map +1 -1
- package/dist/basis/parser.d.ts +28 -28
- package/dist/basis/parser.d.ts.map +1 -1
- package/dist/basis/parser.js +2 -0
- package/dist/basis/parser.js.map +1 -1
- 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 +2 -0
- package/dist/chain/index.js.map +1 -1
- package/dist/cognigate/index.d.ts +0 -8
- package/dist/cognigate/index.d.ts.map +1 -1
- package/dist/cognigate/index.js +2 -0
- package/dist/cognigate/index.js.map +1 -1
- package/dist/common/adapters.d.ts.map +1 -1
- package/dist/common/adapters.js +2 -8
- package/dist/common/adapters.js.map +1 -1
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +2 -0
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +2 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/logger.d.ts.map +1 -1
- package/dist/common/logger.js +2 -0
- package/dist/common/logger.js.map +1 -1
- package/dist/common/types.d.ts +7 -7
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/types.js +2 -9
- package/dist/common/types.js.map +1 -1
- package/dist/containment/index.d.ts +0 -8
- package/dist/containment/index.d.ts.map +1 -1
- package/dist/containment/index.js +2 -0
- package/dist/containment/index.js.map +1 -1
- 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 +0 -8
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -1
- 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 +0 -7
- package/dist/crewai/callback.d.ts.map +1 -1
- package/dist/crewai/callback.js +2 -0
- package/dist/crewai/callback.js.map +1 -1
- package/dist/crewai/executor.d.ts +0 -7
- package/dist/crewai/executor.d.ts.map +1 -1
- package/dist/crewai/executor.js +2 -0
- package/dist/crewai/executor.js.map +1 -1
- package/dist/crewai/index.d.ts.map +1 -1
- package/dist/crewai/index.js +2 -0
- package/dist/crewai/index.js.map +1 -1
- package/dist/crewai/tools.d.ts.map +1 -1
- package/dist/crewai/tools.js +2 -7
- package/dist/crewai/tools.js.map +1 -1
- 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 +0 -15
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +3 -1
- package/dist/enforce/index.js.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.d.ts +0 -15
- package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.js +2 -0
- package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
- package/dist/governance/fluid-workflow.d.ts +0 -8
- package/dist/governance/fluid-workflow.d.ts.map +1 -1
- package/dist/governance/fluid-workflow.js +2 -0
- package/dist/governance/fluid-workflow.js.map +1 -1
- package/dist/governance/index.d.ts +0 -8
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +2 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proof-bridge.d.ts.map +1 -1
- package/dist/governance/proof-bridge.js +2 -12
- package/dist/governance/proof-bridge.js.map +1 -1
- 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 +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +0 -13
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +4 -2
- package/dist/intent/index.js.map +1 -1
- package/dist/intent/persistent-intent-service.d.ts +0 -15
- package/dist/intent/persistent-intent-service.d.ts.map +1 -1
- package/dist/intent/persistent-intent-service.js +2 -0
- package/dist/intent/persistent-intent-service.js.map +1 -1
- package/dist/intent/supabase-intent-repository.d.ts +0 -17
- package/dist/intent/supabase-intent-repository.d.ts.map +1 -1
- package/dist/intent/supabase-intent-repository.js +2 -0
- package/dist/intent/supabase-intent-repository.js.map +1 -1
- package/dist/intent-gateway/index.d.ts +499 -0
- package/dist/intent-gateway/index.d.ts.map +1 -0
- package/dist/intent-gateway/index.js +1332 -0
- package/dist/intent-gateway/index.js.map +1 -0
- package/dist/langchain/callback.d.ts +0 -7
- package/dist/langchain/callback.d.ts.map +1 -1
- package/dist/langchain/callback.js +2 -0
- package/dist/langchain/callback.js.map +1 -1
- package/dist/langchain/executor.d.ts +0 -7
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +2 -0
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts.map +1 -1
- package/dist/langchain/index.js +2 -0
- package/dist/langchain/index.js.map +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +2 -7
- package/dist/langchain/tools.js.map +1 -1
- 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.map +1 -1
- package/dist/layers/implementations/L0-request-format.js +2 -0
- package/dist/layers/implementations/L0-request-format.js.map +1 -1
- package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
- package/dist/layers/implementations/L1-input-size.js +2 -0
- package/dist/layers/implementations/L1-input-size.js.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.js +2 -0
- package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.js +2 -0
- package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.js +2 -0
- package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.js +2 -0
- package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
- package/dist/layers/implementations/index.d.ts.map +1 -1
- package/dist/layers/implementations/index.js +2 -0
- package/dist/layers/implementations/index.js.map +1 -1
- package/dist/layers/index.d.ts +0 -8
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/layers/index.js +2 -0
- package/dist/layers/index.js.map +1 -1
- 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 +0 -7
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +2 -0
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +2 -0
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/memory.d.ts.map +1 -1
- package/dist/persistence/memory.js +2 -7
- package/dist/persistence/memory.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +0 -8
- package/dist/persistence/sqlite.d.ts.map +1 -1
- package/dist/persistence/sqlite.js +3 -1
- package/dist/persistence/sqlite.js.map +1 -1
- package/dist/persistence/supabase.d.ts.map +1 -1
- package/dist/persistence/supabase.js +3 -8
- package/dist/persistence/supabase.js.map +1 -1
- 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 +0 -16
- package/dist/phase6/ceiling.d.ts.map +1 -1
- package/dist/phase6/ceiling.js +2 -0
- package/dist/phase6/ceiling.js.map +1 -1
- package/dist/phase6/context.d.ts +0 -17
- package/dist/phase6/context.d.ts.map +1 -1
- package/dist/phase6/context.js +2 -0
- package/dist/phase6/context.js.map +1 -1
- package/dist/phase6/index.d.ts.map +1 -1
- package/dist/phase6/index.js +2 -0
- package/dist/phase6/index.js.map +1 -1
- package/dist/phase6/presets.d.ts +0 -16
- package/dist/phase6/presets.d.ts.map +1 -1
- package/dist/phase6/presets.js +5 -3
- package/dist/phase6/presets.js.map +1 -1
- package/dist/phase6/provenance.d.ts +0 -15
- package/dist/phase6/provenance.d.ts.map +1 -1
- package/dist/phase6/provenance.js +2 -0
- package/dist/phase6/provenance.js.map +1 -1
- package/dist/phase6/role-gates/index.d.ts.map +1 -1
- package/dist/phase6/role-gates/index.js +2 -0
- 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 +2 -0
- package/dist/phase6/role-gates/kernel.js.map +1 -1
- package/dist/phase6/role-gates/policy.d.ts.map +1 -1
- package/dist/phase6/role-gates/policy.js +2 -11
- package/dist/phase6/role-gates/policy.js.map +1 -1
- package/dist/phase6/role-gates.d.ts +0 -16
- package/dist/phase6/role-gates.d.ts.map +1 -1
- package/dist/phase6/role-gates.js +2 -0
- package/dist/phase6/role-gates.js.map +1 -1
- package/dist/phase6/types.d.ts +45 -16
- package/dist/phase6/types.d.ts.map +1 -1
- package/dist/phase6/types.js +49 -0
- 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 +2 -0
- package/dist/phase6/weight-presets/canonical.js.map +1 -1
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
- package/dist/phase6/weight-presets/deltas.js +2 -10
- package/dist/phase6/weight-presets/deltas.js.map +1 -1
- package/dist/phase6/weight-presets/index.d.ts.map +1 -1
- package/dist/phase6/weight-presets/index.js +2 -0
- package/dist/phase6/weight-presets/index.js.map +1 -1
- package/dist/phase6/weight-presets/merger.d.ts +0 -10
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
- package/dist/phase6/weight-presets/merger.js +2 -0
- package/dist/phase6/weight-presets/merger.js.map +1 -1
- package/dist/proof/index.d.ts +3 -10
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +27 -9
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +0 -16
- package/dist/proof/merkle.d.ts.map +1 -1
- package/dist/proof/merkle.js +2 -0
- package/dist/proof/merkle.js.map +1 -1
- package/dist/proof/zk-proofs.d.ts +0 -18
- package/dist/proof/zk-proofs.d.ts.map +1 -1
- package/dist/proof/zk-proofs.js +2 -0
- package/dist/proof/zk-proofs.js.map +1 -1
- package/dist/provenance/index.d.ts +0 -8
- package/dist/provenance/index.d.ts.map +1 -1
- package/dist/provenance/index.js +2 -0
- package/dist/provenance/index.js.map +1 -1
- 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.map +1 -1
- package/dist/sandbox-training/challenges.js +2 -8
- package/dist/sandbox-training/challenges.js.map +1 -1
- package/dist/sandbox-training/graduation.d.ts.map +1 -1
- package/dist/sandbox-training/graduation.js +2 -8
- package/dist/sandbox-training/graduation.js.map +1 -1
- package/dist/sandbox-training/index.d.ts.map +1 -1
- package/dist/sandbox-training/index.js +2 -0
- package/dist/sandbox-training/index.js.map +1 -1
- package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
- package/dist/sandbox-training/promotion-service.js +2 -11
- package/dist/sandbox-training/promotion-service.js.map +1 -1
- package/dist/sandbox-training/runner.d.ts.map +1 -1
- package/dist/sandbox-training/runner.js +2 -8
- package/dist/sandbox-training/runner.js.map +1 -1
- package/dist/sandbox-training/scorer.d.ts.map +1 -1
- package/dist/sandbox-training/scorer.js +2 -8
- package/dist/sandbox-training/scorer.js.map +1 -1
- package/dist/sandbox-training/types.d.ts.map +1 -1
- package/dist/sandbox-training/types.js +2 -8
- package/dist/sandbox-training/types.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +0 -8
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.js +2 -8
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/index.js +2 -0
- package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/kernel.js +2 -0
- 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.map +1 -1
- package/dist/trust-engine/context-policy/factory.js +2 -0
- package/dist/trust-engine/context-policy/factory.js.map +1 -1
- package/dist/trust-engine/context-policy/index.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/index.js +2 -0
- package/dist/trust-engine/context-policy/index.js.map +1 -1
- package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -1
- package/dist/trust-engine/creation-modifiers/index.js +2 -0
- 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 +2 -0
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
- package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
- package/dist/trust-engine/decay-profiles.js +2 -14
- package/dist/trust-engine/decay-profiles.js.map +1 -1
- package/dist/trust-engine/index.d.ts +418 -80
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +1048 -186
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +3 -13
- package/dist/trust-engine/phase6-types.d.ts.map +1 -1
- package/dist/trust-engine/phase6-types.js +5 -13
- 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/CHANGELOG.md
CHANGED
|
@@ -62,6 +62,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
62
62
|
- Fastify-based governance API server (`createServer`, `startServer`)
|
|
63
63
|
- Comprehensive test suite (401+ tests)
|
|
64
64
|
|
|
65
|
+
[0.2.2]: https://github.com/vorionsys/vorion/compare/atsf-core-v0.2.1...atsf-core-v0.2.2
|
|
65
66
|
[0.2.1]: https://github.com/vorionsys/vorion/compare/atsf-core-v0.2.0...atsf-core-v0.2.1
|
|
66
67
|
[0.2.0]: https://github.com/vorionsys/vorion/compare/atsf-core-v0.1.0...atsf-core-v0.2.0
|
|
67
68
|
[0.1.0]: https://github.com/vorionsys/vorion/releases/tag/atsf-core-v0.1.0
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# @vorionsys/atsf-core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
Agentic Trust Scoring Framework (ATSF) -- the core runtime for AI agent governance, trust scoring, and policy enforcement. Implements the complete 8-tier trust model (T0-T7) on a 0-1000 scale with behavioral signal processing, time-based decay, recovery mechanics, and immutable audit trails.
|
|
4
9
|
|
|
5
10
|
## Installation
|
|
6
11
|
|
|
@@ -19,8 +24,8 @@ ATSF continuously evaluates agent behavior across multiple dimensions and assign
|
|
|
19
24
|
Key principles:
|
|
20
25
|
|
|
21
26
|
- **Trust is earned, not granted.** Agents start at low trust and must demonstrate competence to advance.
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
27
|
+
- **Trust decays over time.** Idle agents lose trust; active, well-behaved agents maintain or gain it.
|
|
28
|
+
- **Trust loss is asymmetric.** Trust is hard to gain and easy to lose (10:1 ratio per ATSF v2.0).
|
|
24
29
|
- **Every decision is auditable.** An immutable proof chain records all governance decisions.
|
|
25
30
|
|
|
26
31
|
## The 8-Tier Trust Model (T0-T7)
|
|
@@ -56,31 +61,47 @@ The runtime trust engine also tracks four signal component categories (`behavior
|
|
|
56
61
|
|
|
57
62
|
## Quick Start
|
|
58
63
|
|
|
64
|
+
> **Scenario:** Your data pipeline agent runs nightly ETL jobs. You want trust to build over successful runs and drop hard on failures.
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm install @vorionsys/atsf-core
|
|
68
|
+
```
|
|
69
|
+
|
|
59
70
|
```typescript
|
|
60
71
|
import { createTrustEngine } from '@vorionsys/atsf-core';
|
|
61
72
|
|
|
62
|
-
// Create a trust engine
|
|
73
|
+
// 1. Create a trust engine
|
|
63
74
|
const engine = createTrustEngine();
|
|
64
75
|
|
|
65
|
-
//
|
|
66
|
-
const agent = await engine.initializeEntity('
|
|
67
|
-
console.log(agent.
|
|
68
|
-
console.log(agent.level); // 1
|
|
76
|
+
// 2. Register the ETL agent at T1 (Observed)
|
|
77
|
+
const agent = await engine.initializeEntity('etl-pipeline-01', 1);
|
|
78
|
+
console.log(`Starting tier: T${agent.level} (${engine.getLevelName(agent.level)})`);
|
|
69
79
|
|
|
70
|
-
//
|
|
80
|
+
// 3. Nightly run succeeds — record a positive signal
|
|
71
81
|
await engine.recordSignal({
|
|
72
82
|
id: crypto.randomUUID(),
|
|
73
|
-
entityId: '
|
|
83
|
+
entityId: 'etl-pipeline-01',
|
|
74
84
|
type: 'behavioral.task_completed',
|
|
75
|
-
value: 0.
|
|
76
|
-
source: '
|
|
85
|
+
value: 0.95, // high confidence outcome
|
|
86
|
+
source: 'scheduler',
|
|
77
87
|
timestamp: new Date().toISOString(),
|
|
78
|
-
metadata: {
|
|
88
|
+
metadata: { job: 'nightly-etl', rows: 48_000 },
|
|
79
89
|
});
|
|
80
90
|
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
// 4. Something goes wrong — record a violation
|
|
92
|
+
await engine.recordSignal({
|
|
93
|
+
id: crypto.randomUUID(),
|
|
94
|
+
entityId: 'etl-pipeline-01',
|
|
95
|
+
type: 'behavioral.policy_violation',
|
|
96
|
+
value: 0.1, // low value = bad outcome
|
|
97
|
+
source: 'scheduler',
|
|
98
|
+
timestamp: new Date().toISOString(),
|
|
99
|
+
metadata: { job: 'nightly-etl', error: 'wrote to unauthorized table' },
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// 5. Check updated trust score and tier
|
|
103
|
+
const record = await engine.getScore('etl-pipeline-01');
|
|
104
|
+
console.log(`Score: ${record?.score}, Tier: T${record?.level}`);
|
|
84
105
|
```
|
|
85
106
|
|
|
86
107
|
## Usage Examples
|
|
@@ -90,12 +111,11 @@ console.log(record?.score, record?.level);
|
|
|
90
111
|
```typescript
|
|
91
112
|
import { createTrustEngine } from '@vorionsys/atsf-core';
|
|
92
113
|
|
|
114
|
+
// Trust decay uses stepped milestones (not configurable — consistent across ecosystem):
|
|
115
|
+
// Days 7/14/28/42/56 → 6% drop each, Days 84/112/140/182 → 5% drop each
|
|
116
|
+
// 182-day half-life: score = 50% of pre-decay value
|
|
93
117
|
const engine = createTrustEngine({
|
|
94
|
-
decayRate: 0.01, // 1% decay per interval
|
|
95
|
-
decayIntervalMs: 60000, // 1-minute intervals
|
|
96
118
|
failureThreshold: 0.3, // Signals below 0.3 = failure
|
|
97
|
-
acceleratedDecayMultiplier: 1.0, // No extra decay multiplier by default
|
|
98
|
-
readinessMode: 'checkpoint_schedule', // Preferred neutral mode naming
|
|
99
119
|
successThreshold: 0.7, // Signals above 0.7 = success
|
|
100
120
|
recoveryRate: 0.02, // 2% recovery per success signal
|
|
101
121
|
});
|
|
@@ -167,7 +187,7 @@ engine.on('trust:tier_changed', (event) => {
|
|
|
167
187
|
engine.on('trust:failure_detected', (event) => {
|
|
168
188
|
console.log(`Failure #${event.failureCount} for ${event.entityId}`);
|
|
169
189
|
if (event.acceleratedDecayActive) {
|
|
170
|
-
console.log('
|
|
190
|
+
console.log('Accelerated decay is now active (3x normal rate)');
|
|
171
191
|
}
|
|
172
192
|
});
|
|
173
193
|
|
|
@@ -371,9 +391,7 @@ Import from the package root or via deep imports:
|
|
|
371
391
|
| `trust:signal_recorded` | Behavioral signal recorded |
|
|
372
392
|
| `trust:score_changed` | Score changes by 5+ points |
|
|
373
393
|
| `trust:tier_changed` | Entity promoted or demoted |
|
|
374
|
-
| `trust:
|
|
375
|
-
| `trust:freshness_adjusted` | Backward-compatible readiness alias |
|
|
376
|
-
| `trust:decay_applied` | Legacy compatibility alias (includes `accelerated` flag) |
|
|
394
|
+
| `trust:decay_applied` | Trust decayed (includes `accelerated` flag) |
|
|
377
395
|
| `trust:failure_detected` | Signal value below failure threshold |
|
|
378
396
|
| `trust:recovery_applied` | Recovery from successful signal |
|
|
379
397
|
| `trust:recovery_milestone` | Tier restored, full recovery, or accelerated recovery earned |
|
|
@@ -446,7 +464,7 @@ Same ACI → CAR rename — aliases in `@vorionsys/car-client` follow the identi
|
|
|
446
464
|
|
|
447
465
|
```
|
|
448
466
|
@vorionsys/atsf-core
|
|
449
|
-
|-- trust-engine/ Trust scoring with 8-tier model,
|
|
467
|
+
|-- trust-engine/ Trust scoring with 8-tier model, decay, and recovery
|
|
450
468
|
|-- basis/ BASIS rule evaluation engine
|
|
451
469
|
|-- intent/ Intent submission and lifecycle tracking
|
|
452
470
|
|-- enforce/ Policy decision point (allow/deny/escalate)
|
|
@@ -465,6 +483,39 @@ Same ACI → CAR rename — aliases in `@vorionsys/car-client` follow the identi
|
|
|
465
483
|
|-- phase6/ Trust engine hardening (advanced)
|
|
466
484
|
```
|
|
467
485
|
|
|
486
|
+
## Cognitive Envelope (ParameSphere)
|
|
487
|
+
|
|
488
|
+
The **Cognitive Envelope** is a hyper-rectangle breach detector that monitors an AI model's characteristic vector across 6 dimensions (weight geometry, activation clustering, embedding drift, attention entropy, gradient norm, effective dimensionality). It is part of the ParameSphere subsystem.
|
|
489
|
+
|
|
490
|
+
### How it works
|
|
491
|
+
|
|
492
|
+
1. **Baseline** -- Call `baselineFromObservations()` with a set of known-good measurement vectors. The envelope computes per-dimension mean and standard deviation, then sets bounds at `mu +/- k * sigma` (default k=3, giving 99.7% single-dimension coverage).
|
|
493
|
+
2. **Check** -- Call `checkBreach()` with a current characteristic vector. If any dimension falls outside the bounds, the breach counter increments; a clean check decrements it by 1.
|
|
494
|
+
3. **Breach** -- When the counter reaches `breachThreshold` (default: 3), the trust multiplier drops from 1.0 to 0.7.
|
|
495
|
+
|
|
496
|
+
### The `maxBreachCounter` cap
|
|
497
|
+
|
|
498
|
+
During a sustained attack, the breach counter could grow without bound -- and since recovery decrements it by only 1 per clean check, an attacker who racks up thousands of breaches could lock the agent into a breached state indefinitely. `maxBreachCounter` (default: 100) clamps the counter so recovery takes at most 100 clean checks, not thousands.
|
|
499
|
+
|
|
500
|
+
### `reset()` as the escape valve
|
|
501
|
+
|
|
502
|
+
When an operator confirms that the root cause of a breach has been resolved (model rollback, config fix, etc.), calling `reset()` zeroes the breach counter and the rate-limit timer without touching the baseline. The next `checkBreach()` evaluates immediately with a clean slate.
|
|
503
|
+
|
|
504
|
+
```typescript
|
|
505
|
+
import { CognitiveEnvelope } from '@vorionsys/atsf-core';
|
|
506
|
+
|
|
507
|
+
const envelope = new CognitiveEnvelope({ maxBreachCounter: 50 });
|
|
508
|
+
envelope.baselineFromObservations(observations);
|
|
509
|
+
|
|
510
|
+
const result = envelope.checkBreach(currentVector);
|
|
511
|
+
if (result.breached) {
|
|
512
|
+
console.log(`Breach detected (counter: ${result.breachCounter})`);
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
// After operator confirms root cause resolved:
|
|
516
|
+
envelope.reset();
|
|
517
|
+
```
|
|
518
|
+
|
|
468
519
|
## Peer Dependencies
|
|
469
520
|
|
|
470
521
|
| Package | Required | Purpose |
|
|
@@ -475,7 +526,7 @@ Same ACI → CAR rename — aliases in `@vorionsys/car-client` follow the identi
|
|
|
475
526
|
|
|
476
527
|
## Testing
|
|
477
528
|
|
|
478
|
-
The package has comprehensive test coverage with **401+ tests** covering trust scoring,
|
|
529
|
+
The package has comprehensive test coverage with **401+ tests** covering trust scoring, decay mechanics, recovery paths, governance pipelines, security layers, and edge cases.
|
|
479
530
|
|
|
480
531
|
```bash
|
|
481
532
|
# Run all tests
|
|
@@ -485,11 +536,13 @@ npm test
|
|
|
485
536
|
npm run test:watch
|
|
486
537
|
```
|
|
487
538
|
|
|
488
|
-
##
|
|
539
|
+
## Documentation
|
|
540
|
+
|
|
541
|
+
Full platform documentation is available at [https://vorion.org/docs](https://vorion.org/docs).
|
|
489
542
|
|
|
490
|
-
|
|
543
|
+
## License
|
|
491
544
|
|
|
492
|
-
Copyright 2024-2026 Vorion
|
|
545
|
+
[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0) -- Copyright 2024-2026 Vorion LLC
|
|
493
546
|
|
|
494
547
|
## Links
|
|
495
548
|
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base adapter implementation for observability platform integration.
|
|
3
|
+
*
|
|
4
|
+
* Converts external ObservabilityEvents into Vorion trust signals and
|
|
5
|
+
* provides trust queries and enforcement decisions via the trust engine.
|
|
6
|
+
*
|
|
7
|
+
* Platform-specific adapters can extend this class to customize signal
|
|
8
|
+
* mapping, risk normalization, or enforcement logic.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import { TrustEngine } from '../trust-engine/index.js';
|
|
13
|
+
import type { TrustLevel, TrustSignal } from '../common/types.js';
|
|
14
|
+
import type { ObservabilityAdapter, ObservabilityEvent, TrustQueryResponse, EnforcementRequest, EnforcementResponse } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Configuration for creating a BaseObservabilityAdapter.
|
|
17
|
+
*/
|
|
18
|
+
export interface BaseAdapterConfig {
|
|
19
|
+
/** Platform name (e.g., 'geordie', 'prompt-security', 'calypso') */
|
|
20
|
+
name: string;
|
|
21
|
+
/** Trust engine instance to route signals into */
|
|
22
|
+
engine: TrustEngine;
|
|
23
|
+
/** Default trust tier for auto-initializing unknown entities (default: 0) */
|
|
24
|
+
defaultInitialTier?: TrustLevel;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Base implementation of ObservabilityAdapter.
|
|
28
|
+
*
|
|
29
|
+
* Translates external platform events into Vorion trust signals and
|
|
30
|
+
* provides trust querying and enforcement. Extend this class for
|
|
31
|
+
* platform-specific signal mapping or enrichment.
|
|
32
|
+
*/
|
|
33
|
+
export declare class BaseObservabilityAdapter implements ObservabilityAdapter {
|
|
34
|
+
readonly name: string;
|
|
35
|
+
protected readonly engine: TrustEngine;
|
|
36
|
+
private readonly defaultInitialTier;
|
|
37
|
+
private idCounter;
|
|
38
|
+
constructor(config: BaseAdapterConfig);
|
|
39
|
+
/**
|
|
40
|
+
* Generate a unique signal ID for the trust engine.
|
|
41
|
+
*/
|
|
42
|
+
private generateSignalId;
|
|
43
|
+
/**
|
|
44
|
+
* Convert an ObservabilityEvent into a Vorion TrustSignal.
|
|
45
|
+
*
|
|
46
|
+
* The signal value is derived from:
|
|
47
|
+
* 1. A base value per outcome type (success=0.8, failure=0.1, etc.)
|
|
48
|
+
* 2. Adjusted by the platform's risk score when provided
|
|
49
|
+
*
|
|
50
|
+
* Override this method in platform-specific adapters for custom mapping.
|
|
51
|
+
*/
|
|
52
|
+
protected mapEventToSignal(event: ObservabilityEvent): TrustSignal;
|
|
53
|
+
/**
|
|
54
|
+
* Ensure the entity exists in the trust engine, auto-initializing if needed.
|
|
55
|
+
*/
|
|
56
|
+
private ensureEntity;
|
|
57
|
+
/**
|
|
58
|
+
* Ingest a single behavioral event from the external platform.
|
|
59
|
+
*
|
|
60
|
+
* Converts the event to a trust signal and records it in the trust engine.
|
|
61
|
+
*/
|
|
62
|
+
ingestEvent(event: ObservabilityEvent): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Ingest a batch of behavioral events.
|
|
65
|
+
*
|
|
66
|
+
* Events are processed sequentially to maintain signal ordering.
|
|
67
|
+
*/
|
|
68
|
+
ingestBatch(events: ObservabilityEvent[]): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Query the current trust state for an entity.
|
|
71
|
+
*
|
|
72
|
+
* Returns the trust score, tier, tier name, and available capabilities.
|
|
73
|
+
*/
|
|
74
|
+
queryTrust(entityId: string): Promise<TrustQueryResponse>;
|
|
75
|
+
/**
|
|
76
|
+
* Make an enforcement decision based on trust level.
|
|
77
|
+
*
|
|
78
|
+
* The decision logic:
|
|
79
|
+
* 1. Look up the entity's current trust tier
|
|
80
|
+
* 2. Check if the requested action has a minimum tier requirement
|
|
81
|
+
* 3. If the entity's tier meets or exceeds the requirement, allow
|
|
82
|
+
* 4. If the entity is one tier below, constrain with limitations
|
|
83
|
+
* 5. Otherwise deny
|
|
84
|
+
*/
|
|
85
|
+
enforce(request: EnforcementRequest): Promise<EnforcementResponse>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create a base observability adapter.
|
|
89
|
+
*
|
|
90
|
+
* @param config - Adapter configuration including platform name and trust engine
|
|
91
|
+
* @returns A configured BaseObservabilityAdapter instance
|
|
92
|
+
*/
|
|
93
|
+
export declare function createObservabilityAdapter(config: BaseAdapterConfig): BaseObservabilityAdapter;
|
|
94
|
+
//# sourceMappingURL=base-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/base-adapter.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAuC,MAAM,0BAA0B,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AA+CpB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,EAAE,WAAW,CAAC;IACpB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,UAAU,CAAC;CACjC;AAED;;;;;;GAMG;AACH,qBAAa,wBAAyB,YAAW,oBAAoB;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IAChD,OAAO,CAAC,SAAS,CAAK;gBAEV,MAAM,EAAE,iBAAiB;IAMrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,WAAW;IA8BlE;;OAEG;YACW,YAAY;IAO1B;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsB/D;;;;;;;;;OASG;IACG,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAiDzE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,wBAAwB,CAE9F"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright 2024-2026 Vorion LLC
|
|
3
|
+
/**
|
|
4
|
+
* Base adapter implementation for observability platform integration.
|
|
5
|
+
*
|
|
6
|
+
* Converts external ObservabilityEvents into Vorion trust signals and
|
|
7
|
+
* provides trust queries and enforcement decisions via the trust engine.
|
|
8
|
+
*
|
|
9
|
+
* Platform-specific adapters can extend this class to customize signal
|
|
10
|
+
* mapping, risk normalization, or enforcement logic.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import { TRUST_LEVEL_NAMES } from '../trust-engine/index.js';
|
|
15
|
+
/**
|
|
16
|
+
* Maps event outcomes to trust signal type prefixes.
|
|
17
|
+
*
|
|
18
|
+
* - success -> behavioral.task_success (high value = trust gain)
|
|
19
|
+
* - failure -> behavioral.task_failure (low value = trust loss)
|
|
20
|
+
* - blocked -> compliance.policy_block (low value = trust loss)
|
|
21
|
+
* - escalated -> behavioral.escalation (moderate value = neutral/slight loss)
|
|
22
|
+
*/
|
|
23
|
+
const OUTCOME_SIGNAL_MAP = {
|
|
24
|
+
success: { type: 'behavioral.task_success', baseValue: 0.8 },
|
|
25
|
+
failure: { type: 'behavioral.task_failure', baseValue: 0.1 },
|
|
26
|
+
blocked: { type: 'compliance.policy_block', baseValue: 0.15 },
|
|
27
|
+
escalated: { type: 'behavioral.escalation', baseValue: 0.4 },
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Tier-based capability definitions.
|
|
31
|
+
*
|
|
32
|
+
* Each tier unlocks additional capabilities. Higher tiers include
|
|
33
|
+
* all capabilities from lower tiers.
|
|
34
|
+
*/
|
|
35
|
+
const TIER_CAPABILITIES = {
|
|
36
|
+
0: ['sandbox_execute'],
|
|
37
|
+
1: ['sandbox_execute', 'read_data'],
|
|
38
|
+
2: ['sandbox_execute', 'read_data', 'write_data_supervised'],
|
|
39
|
+
3: ['sandbox_execute', 'read_data', 'write_data_supervised', 'write_data'],
|
|
40
|
+
4: ['sandbox_execute', 'read_data', 'write_data_supervised', 'write_data', 'external_api'],
|
|
41
|
+
5: ['sandbox_execute', 'read_data', 'write_data_supervised', 'write_data', 'external_api', 'cross_agent'],
|
|
42
|
+
6: ['sandbox_execute', 'read_data', 'write_data_supervised', 'write_data', 'external_api', 'cross_agent', 'admin_tasks'],
|
|
43
|
+
7: ['sandbox_execute', 'read_data', 'write_data_supervised', 'write_data', 'external_api', 'cross_agent', 'admin_tasks', 'autonomous'],
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Actions that require a minimum trust tier to be allowed.
|
|
47
|
+
*/
|
|
48
|
+
const ACTION_MIN_TIER = {
|
|
49
|
+
'sandbox_execute': 0,
|
|
50
|
+
'read_data': 1,
|
|
51
|
+
'write_data': 3,
|
|
52
|
+
'external_api': 4,
|
|
53
|
+
'cross_agent': 5,
|
|
54
|
+
'admin_tasks': 6,
|
|
55
|
+
'autonomous': 7,
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Base implementation of ObservabilityAdapter.
|
|
59
|
+
*
|
|
60
|
+
* Translates external platform events into Vorion trust signals and
|
|
61
|
+
* provides trust querying and enforcement. Extend this class for
|
|
62
|
+
* platform-specific signal mapping or enrichment.
|
|
63
|
+
*/
|
|
64
|
+
export class BaseObservabilityAdapter {
|
|
65
|
+
name;
|
|
66
|
+
engine;
|
|
67
|
+
defaultInitialTier;
|
|
68
|
+
idCounter = 0;
|
|
69
|
+
constructor(config) {
|
|
70
|
+
this.name = config.name;
|
|
71
|
+
this.engine = config.engine;
|
|
72
|
+
this.defaultInitialTier = config.defaultInitialTier ?? 0;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Generate a unique signal ID for the trust engine.
|
|
76
|
+
*/
|
|
77
|
+
generateSignalId(event) {
|
|
78
|
+
this.idCounter += 1;
|
|
79
|
+
return `${this.name}:${event.externalId}:${this.idCounter}`;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Convert an ObservabilityEvent into a Vorion TrustSignal.
|
|
83
|
+
*
|
|
84
|
+
* The signal value is derived from:
|
|
85
|
+
* 1. A base value per outcome type (success=0.8, failure=0.1, etc.)
|
|
86
|
+
* 2. Adjusted by the platform's risk score when provided
|
|
87
|
+
*
|
|
88
|
+
* Override this method in platform-specific adapters for custom mapping.
|
|
89
|
+
*/
|
|
90
|
+
mapEventToSignal(event) {
|
|
91
|
+
const mapping = OUTCOME_SIGNAL_MAP[event.outcome] ?? OUTCOME_SIGNAL_MAP['failure'];
|
|
92
|
+
let value = mapping.baseValue;
|
|
93
|
+
// If the source platform provides a risk score, blend it in.
|
|
94
|
+
// High risk (close to 1) pulls the value down; low risk pulls it up.
|
|
95
|
+
if (event.riskScore !== undefined && event.riskScore >= 0 && event.riskScore <= 1) {
|
|
96
|
+
value = mapping.baseValue * (1 - event.riskScore * 0.5);
|
|
97
|
+
}
|
|
98
|
+
// Clamp to [0, 1]
|
|
99
|
+
value = Math.max(0, Math.min(1, value));
|
|
100
|
+
return {
|
|
101
|
+
id: this.generateSignalId(event),
|
|
102
|
+
entityId: event.entityId,
|
|
103
|
+
type: mapping.type,
|
|
104
|
+
value,
|
|
105
|
+
source: `adapter:${this.name}:${event.source}`,
|
|
106
|
+
timestamp: event.timestamp,
|
|
107
|
+
metadata: {
|
|
108
|
+
externalId: event.externalId,
|
|
109
|
+
eventType: event.eventType,
|
|
110
|
+
outcome: event.outcome,
|
|
111
|
+
riskScore: event.riskScore,
|
|
112
|
+
...(event.metadata ?? {}),
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Ensure the entity exists in the trust engine, auto-initializing if needed.
|
|
118
|
+
*/
|
|
119
|
+
async ensureEntity(entityId) {
|
|
120
|
+
const record = await this.engine.getScore(entityId);
|
|
121
|
+
if (!record) {
|
|
122
|
+
await this.engine.initializeEntity(entityId, this.defaultInitialTier);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Ingest a single behavioral event from the external platform.
|
|
127
|
+
*
|
|
128
|
+
* Converts the event to a trust signal and records it in the trust engine.
|
|
129
|
+
*/
|
|
130
|
+
async ingestEvent(event) {
|
|
131
|
+
await this.ensureEntity(event.entityId);
|
|
132
|
+
const signal = this.mapEventToSignal(event);
|
|
133
|
+
await this.engine.recordSignal(signal);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Ingest a batch of behavioral events.
|
|
137
|
+
*
|
|
138
|
+
* Events are processed sequentially to maintain signal ordering.
|
|
139
|
+
*/
|
|
140
|
+
async ingestBatch(events) {
|
|
141
|
+
for (const event of events) {
|
|
142
|
+
await this.ingestEvent(event);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Query the current trust state for an entity.
|
|
147
|
+
*
|
|
148
|
+
* Returns the trust score, tier, tier name, and available capabilities.
|
|
149
|
+
*/
|
|
150
|
+
async queryTrust(entityId) {
|
|
151
|
+
const record = await this.engine.getScore(entityId);
|
|
152
|
+
if (!record) {
|
|
153
|
+
return {
|
|
154
|
+
entityId,
|
|
155
|
+
score: 0,
|
|
156
|
+
tier: 0,
|
|
157
|
+
tierName: TRUST_LEVEL_NAMES[0],
|
|
158
|
+
capabilities: TIER_CAPABILITIES[0] ?? [],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
entityId,
|
|
163
|
+
score: record.score,
|
|
164
|
+
tier: record.level,
|
|
165
|
+
tierName: TRUST_LEVEL_NAMES[record.level] ?? 'Unknown',
|
|
166
|
+
capabilities: TIER_CAPABILITIES[record.level] ?? [],
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Make an enforcement decision based on trust level.
|
|
171
|
+
*
|
|
172
|
+
* The decision logic:
|
|
173
|
+
* 1. Look up the entity's current trust tier
|
|
174
|
+
* 2. Check if the requested action has a minimum tier requirement
|
|
175
|
+
* 3. If the entity's tier meets or exceeds the requirement, allow
|
|
176
|
+
* 4. If the entity is one tier below, constrain with limitations
|
|
177
|
+
* 5. Otherwise deny
|
|
178
|
+
*/
|
|
179
|
+
async enforce(request) {
|
|
180
|
+
const record = await this.engine.getScore(request.entityId);
|
|
181
|
+
const score = record?.score ?? 0;
|
|
182
|
+
const tier = record?.level ?? 0;
|
|
183
|
+
const requiredTier = ACTION_MIN_TIER[request.action] ?? 0;
|
|
184
|
+
// Entity meets the required tier
|
|
185
|
+
if (tier >= requiredTier) {
|
|
186
|
+
return {
|
|
187
|
+
allowed: true,
|
|
188
|
+
decision: 'allow',
|
|
189
|
+
trustScore: score,
|
|
190
|
+
reason: `Entity at tier ${tier} (${TRUST_LEVEL_NAMES[tier]}) meets requirement for '${request.action}' (min tier ${requiredTier})`,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// Entity is exactly one tier below — constrain with limitations
|
|
194
|
+
if (tier === requiredTier - 1) {
|
|
195
|
+
return {
|
|
196
|
+
allowed: false,
|
|
197
|
+
decision: 'constrain',
|
|
198
|
+
trustScore: score,
|
|
199
|
+
reason: `Entity at tier ${tier} is one tier below the requirement for '${request.action}' (min tier ${requiredTier})`,
|
|
200
|
+
constraints: [
|
|
201
|
+
'requires_supervision',
|
|
202
|
+
'rate_limited',
|
|
203
|
+
`upgrade_to_tier_${requiredTier}`,
|
|
204
|
+
],
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// Entity is too far below the required tier — escalate if close, deny otherwise
|
|
208
|
+
if (tier >= requiredTier - 2) {
|
|
209
|
+
return {
|
|
210
|
+
allowed: false,
|
|
211
|
+
decision: 'escalate',
|
|
212
|
+
trustScore: score,
|
|
213
|
+
reason: `Entity at tier ${tier} requires escalation for '${request.action}' (min tier ${requiredTier})`,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
allowed: false,
|
|
218
|
+
decision: 'deny',
|
|
219
|
+
trustScore: score,
|
|
220
|
+
reason: `Entity at tier ${tier} (${TRUST_LEVEL_NAMES[tier]}) does not meet requirement for '${request.action}' (min tier ${requiredTier})`,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Create a base observability adapter.
|
|
226
|
+
*
|
|
227
|
+
* @param config - Adapter configuration including platform name and trust engine
|
|
228
|
+
* @returns A configured BaseObservabilityAdapter instance
|
|
229
|
+
*/
|
|
230
|
+
export function createObservabilityAdapter(config) {
|
|
231
|
+
return new BaseObservabilityAdapter(config);
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=base-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../src/adapters/base-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability platform adapters for Vorion trust engine integration.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*/
|
|
6
|
+
export type { ObservabilityEvent, TrustQueryResponse, EnforcementRequest, EnforcementResponse, ObservabilityAdapter, } from './types.js';
|
|
7
|
+
export { BaseObservabilityAdapter, createObservabilityAdapter, type BaseAdapterConfig, } from './base-adapter.js';
|
|
8
|
+
export { handleWebhook, createWebhookHandler, isValidEvent, type WebhookRequest, type WebhookResponse, type WebhookHandlerConfig, } from './webhook-handler.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright 2024-2026 Vorion LLC
|
|
3
|
+
export { BaseObservabilityAdapter, createObservabilityAdapter, } from './base-adapter.js';
|
|
4
|
+
export { handleWebhook, createWebhookHandler, isValidEvent, } from './webhook-handler.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAgBjC,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAE3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,YAAY,GAIb,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic adapter interface for agent observability platforms.
|
|
3
|
+
*
|
|
4
|
+
* Any platform that monitors AI agent behavior can feed signals
|
|
5
|
+
* into Vorion's trust engine through this interface.
|
|
6
|
+
*
|
|
7
|
+
* Supported patterns:
|
|
8
|
+
* - Behavioral telemetry -> trust signals (platform tells Vorion what agents did)
|
|
9
|
+
* - Trust score queries (platform asks Vorion for current trust level)
|
|
10
|
+
* - Enforcement decisions (platform asks Vorion whether an action should be allowed)
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* A behavioral event from an external observability platform.
|
|
16
|
+
*
|
|
17
|
+
* Represents a single agent action or outcome that should be evaluated
|
|
18
|
+
* by the Vorion trust engine.
|
|
19
|
+
*/
|
|
20
|
+
export interface ObservabilityEvent {
|
|
21
|
+
/** Unique event ID from the source platform */
|
|
22
|
+
externalId: string;
|
|
23
|
+
/** Agent/entity identifier */
|
|
24
|
+
entityId: string;
|
|
25
|
+
/** Event type: tool_call, inference, data_access, policy_violation, etc. */
|
|
26
|
+
eventType: string;
|
|
27
|
+
/** Outcome: success, failure, blocked, escalated */
|
|
28
|
+
outcome: 'success' | 'failure' | 'blocked' | 'escalated';
|
|
29
|
+
/** Risk score from the source platform (0-1, normalized) */
|
|
30
|
+
riskScore?: number;
|
|
31
|
+
/** Timestamp in ISO 8601 format */
|
|
32
|
+
timestamp: string;
|
|
33
|
+
/** Source platform identifier */
|
|
34
|
+
source: string;
|
|
35
|
+
/** Arbitrary metadata from the source */
|
|
36
|
+
metadata?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Response from a trust query, summarizing an entity's current standing.
|
|
40
|
+
*/
|
|
41
|
+
export interface TrustQueryResponse {
|
|
42
|
+
entityId: string;
|
|
43
|
+
score: number;
|
|
44
|
+
tier: number;
|
|
45
|
+
tierName: string;
|
|
46
|
+
capabilities: string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Request for an enforcement decision from the trust engine.
|
|
50
|
+
*/
|
|
51
|
+
export interface EnforcementRequest {
|
|
52
|
+
entityId: string;
|
|
53
|
+
action: string;
|
|
54
|
+
resource: string;
|
|
55
|
+
context?: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Enforcement decision returned by the adapter.
|
|
59
|
+
*/
|
|
60
|
+
export interface EnforcementResponse {
|
|
61
|
+
allowed: boolean;
|
|
62
|
+
decision: 'allow' | 'deny' | 'constrain' | 'escalate';
|
|
63
|
+
trustScore: number;
|
|
64
|
+
reason?: string;
|
|
65
|
+
constraints?: string[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Generic adapter interface that any agent observability platform
|
|
69
|
+
* implements to integrate with Vorion's trust engine and enforcement pipeline.
|
|
70
|
+
*/
|
|
71
|
+
export interface ObservabilityAdapter {
|
|
72
|
+
/** Platform name (e.g., 'geordie', 'prompt-security', 'calypso') */
|
|
73
|
+
name: string;
|
|
74
|
+
/** Ingest a behavioral event and convert it to a trust signal */
|
|
75
|
+
ingestEvent(event: ObservabilityEvent): Promise<void>;
|
|
76
|
+
/** Ingest a batch of events */
|
|
77
|
+
ingestBatch(events: ObservabilityEvent[]): Promise<void>;
|
|
78
|
+
/** Query current trust state for an entity */
|
|
79
|
+
queryTrust(entityId: string): Promise<TrustQueryResponse>;
|
|
80
|
+
/** Request an enforcement decision */
|
|
81
|
+
enforce(request: EnforcementRequest): Promise<EnforcementResponse>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=types.d.ts.map
|