@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
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
* Trust Engine - Behavioral Trust Scoring
|
|
3
3
|
*
|
|
4
4
|
* Calculates and maintains trust scores for entities based on behavioral signals.
|
|
5
|
-
* Features
|
|
5
|
+
* Features 6-tier trust system with event emission for observability.
|
|
6
6
|
*
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
import { EventEmitter } from 'events';
|
|
10
10
|
import type { TrustScore, TrustLevel, TrustSignal, TrustComponents, ID } from '../common/types.js';
|
|
11
11
|
import type { PersistenceProvider } from '../persistence/types.js';
|
|
12
|
-
import {
|
|
12
|
+
import type { TrustVerifier } from './trust-verifier.js';
|
|
13
|
+
import type { ParameSphereEngine } from '../paramesphere/paramesphere-engine.js';
|
|
14
|
+
import type { CognitiveEnvelope } from '../paramesphere/cognitive-envelope.js';
|
|
15
|
+
import type { ActivationStats } from '../paramesphere/types.js';
|
|
13
16
|
/**
|
|
14
17
|
* Trust level thresholds (8 tiers T0-T7) - per BASIS specification
|
|
15
18
|
*/
|
|
@@ -21,20 +24,58 @@ export declare const TRUST_THRESHOLDS: Record<TrustLevel, {
|
|
|
21
24
|
* Trust level names (8 tiers T0-T7) - per BASIS specification
|
|
22
25
|
*/
|
|
23
26
|
export declare const TRUST_LEVEL_NAMES: Record<TrustLevel, string>;
|
|
24
|
-
export declare const FACTOR_CODES: readonly ["CT-COMP", "CT-REL", "CT-OBS", "CT-TRANS", "CT-ACCT", "CT-SAFE", "CT-SEC", "CT-PRIV", "CT-ID", "OP-HUMAN", "OP-ALIGN", "OP-CONTEXT", "OP-STEW", "SF-HUM", "SF-ADAPT", "SF-LEARN"];
|
|
25
|
-
export type FactorCode = FactorCodeString;
|
|
26
|
-
export declare const FACTOR_WEIGHTS: Record<"CT-COMP" | "CT-REL" | "CT-OBS" | "CT-TRANS" | "CT-ACCT" | "CT-SAFE" | "CT-SEC" | "CT-PRIV" | "CT-ID" | "OP-HUMAN" | "OP-ALIGN" | "OP-CONTEXT" | "OP-STEW" | "SF-HUM" | "SF-ADAPT" | "SF-LEARN", number>;
|
|
27
|
-
export declare const SIGNAL_PREFIX_TO_FACTORS: Record<string, ("CT-COMP" | "CT-REL" | "CT-OBS" | "CT-TRANS" | "CT-ACCT" | "CT-SAFE" | "CT-SEC" | "CT-PRIV" | "CT-ID" | "OP-HUMAN" | "OP-ALIGN" | "OP-CONTEXT" | "OP-STEW" | "SF-HUM" | "SF-ADAPT" | "SF-LEARN")[]>;
|
|
28
|
-
export { initialFactorScores };
|
|
29
27
|
/**
|
|
30
|
-
* @deprecated Use FACTOR_WEIGHTS for 16-factor scoring. Kept for backwards compatibility.
|
|
31
28
|
* Signal weights for score calculation
|
|
32
29
|
*/
|
|
33
30
|
export declare const SIGNAL_WEIGHTS: Record<keyof TrustComponents, number>;
|
|
31
|
+
/**
|
|
32
|
+
* Penalty ratio per BASIS specification: P(T) = 3 + T
|
|
33
|
+
*
|
|
34
|
+
* Negative signals have their EWA weight multiplied by (3 + currentTier),
|
|
35
|
+
* so higher-tier agents are punished MORE severely for failures.
|
|
36
|
+
* T0 = 3×, T1 = 4×, T2 = 5×, T3 = 6×, T4 = 7×, T5 = 8×, T6 = 9×, T7 = 10×
|
|
37
|
+
*
|
|
38
|
+
* Only applies to negative signals (value < neutral 0.5). Positive signals
|
|
39
|
+
* are NOT amplified.
|
|
40
|
+
*/
|
|
41
|
+
export declare const PENALTY_RATIO_BASE = 3;
|
|
42
|
+
/**
|
|
43
|
+
* Calculate the penalty weight multiplier for a given tier.
|
|
44
|
+
* P(T) = 3 + T
|
|
45
|
+
*/
|
|
46
|
+
export declare function penaltyMultiplier(tier: TrustLevel): number;
|
|
47
|
+
/**
|
|
48
|
+
* 16-factor trust model — granular decomposition of the 4-dimension model.
|
|
49
|
+
* Each factor maps to one of the 4 TrustComponents dimensions.
|
|
50
|
+
*/
|
|
51
|
+
export declare const FACTOR_CODES: readonly ["CT-COMP", "CT-REL", "CT-OBS", "CT-TRANS", "CT-ACCT", "CT-SAFE", "CT-SEC", "CT-PRIV", "CT-ID", "OP-HUMAN", "OP-ALIGN", "OP-CONTEXT", "OP-STEW", "SF-HUM", "SF-ADAPT", "SF-LEARN"];
|
|
52
|
+
export declare const FACTOR_WEIGHTS: Record<string, number>;
|
|
53
|
+
/**
|
|
54
|
+
* Cached running-total state for a single component bucket (behavioral/compliance/identity/context).
|
|
55
|
+
* Used by the incremental scoring path to avoid O(n) recalculation on every signal.
|
|
56
|
+
*/
|
|
57
|
+
export interface CachedComponentState {
|
|
58
|
+
weightedSum: number;
|
|
59
|
+
totalWeight: number;
|
|
60
|
+
count: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Per-entity cached score state for incremental updates.
|
|
64
|
+
* Stores running weighted averages per component so that new signals
|
|
65
|
+
* can update the score in O(1) instead of recalculating from all signals.
|
|
66
|
+
*/
|
|
67
|
+
export interface CachedScoreState {
|
|
68
|
+
behavioral: CachedComponentState;
|
|
69
|
+
compliance: CachedComponentState;
|
|
70
|
+
identity: CachedComponentState;
|
|
71
|
+
context: CachedComponentState;
|
|
72
|
+
/** Total signal count at last full recalculation */
|
|
73
|
+
lastFullRecalcAt: number;
|
|
74
|
+
}
|
|
34
75
|
/**
|
|
35
76
|
* Trust event types
|
|
36
77
|
*/
|
|
37
|
-
export type TrustEventType = 'trust:initialized' | 'trust:signal_recorded' | 'trust:score_changed' | 'trust:tier_changed' | 'trust:decay_applied' | 'trust:recovery_applied' | 'trust:recovery_milestone';
|
|
78
|
+
export type TrustEventType = 'trust:initialized' | 'trust:signal_recorded' | 'trust:signal_deduplicated' | 'trust:score_changed' | 'trust:tier_changed' | 'trust:readiness_adjusted' | 'trust:freshness_adjusted' | 'trust:decay_applied' | 'trust:failure_detected' | 'trust:recovery_applied' | 'trust:recovery_milestone' | 'trust:fingerprint_drift' | 'trust:envelope_breach' | 'trust:fingerprint_baseline_set';
|
|
38
79
|
/**
|
|
39
80
|
* Base trust event
|
|
40
81
|
*/
|
|
@@ -90,6 +131,38 @@ export interface TrustDecayAppliedEvent extends TrustEvent {
|
|
|
90
131
|
newScore: TrustScore;
|
|
91
132
|
decayAmount: number;
|
|
92
133
|
stalenessMs: number;
|
|
134
|
+
accelerated: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Readiness Degree adjusted event (primary neutral terminology)
|
|
138
|
+
*/
|
|
139
|
+
export interface TrustReadinessAdjustedEvent extends TrustEvent {
|
|
140
|
+
type: 'trust:readiness_adjusted';
|
|
141
|
+
previousScore: TrustScore;
|
|
142
|
+
newScore: TrustScore;
|
|
143
|
+
adjustmentAmount: number;
|
|
144
|
+
stalenessMs: number;
|
|
145
|
+
accelerated: boolean;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Freshness adjustment event (neutral terminology alias for trust:decay_applied)
|
|
149
|
+
*/
|
|
150
|
+
export interface TrustFreshnessAdjustedEvent extends TrustEvent {
|
|
151
|
+
type: 'trust:freshness_adjusted';
|
|
152
|
+
previousScore: TrustScore;
|
|
153
|
+
newScore: TrustScore;
|
|
154
|
+
adjustmentAmount: number;
|
|
155
|
+
stalenessMs: number;
|
|
156
|
+
accelerated: boolean;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Failure detected event
|
|
160
|
+
*/
|
|
161
|
+
export interface TrustFailureDetectedEvent extends TrustEvent {
|
|
162
|
+
type: 'trust:failure_detected';
|
|
163
|
+
signal: TrustSignal;
|
|
164
|
+
failureCount: number;
|
|
165
|
+
acceleratedDecayActive: boolean;
|
|
93
166
|
}
|
|
94
167
|
/**
|
|
95
168
|
* Recovery applied event
|
|
@@ -113,10 +186,68 @@ export interface TrustRecoveryMilestoneEvent extends TrustEvent {
|
|
|
113
186
|
newScore: TrustScore;
|
|
114
187
|
details: string;
|
|
115
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Signal deduplication event — emitted when diminishing returns are applied
|
|
191
|
+
*/
|
|
192
|
+
export interface TrustSignalDeduplicatedEvent extends TrustEvent {
|
|
193
|
+
type: 'trust:signal_deduplicated';
|
|
194
|
+
signal: TrustSignal;
|
|
195
|
+
originalValue: number;
|
|
196
|
+
adjustedValue: number;
|
|
197
|
+
diminishingFactor: number;
|
|
198
|
+
repeatCount: number;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Fingerprint drift detected event
|
|
202
|
+
*/
|
|
203
|
+
export interface TrustFingerprintDriftEvent extends TrustEvent {
|
|
204
|
+
type: 'trust:fingerprint_drift';
|
|
205
|
+
similarity: number;
|
|
206
|
+
magnitude: number;
|
|
207
|
+
driftThreshold: number;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Cognitive envelope breach detected event
|
|
211
|
+
*/
|
|
212
|
+
export interface TrustEnvelopeBreachEvent extends TrustEvent {
|
|
213
|
+
type: 'trust:envelope_breach';
|
|
214
|
+
distance: number;
|
|
215
|
+
trustMultiplier: number;
|
|
216
|
+
breachCounter: number;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Fingerprint baseline set event
|
|
220
|
+
*/
|
|
221
|
+
export interface TrustFingerprintBaselineSetEvent extends TrustEvent {
|
|
222
|
+
type: 'trust:fingerprint_baseline_set';
|
|
223
|
+
fingerprintSha256: string;
|
|
224
|
+
}
|
|
116
225
|
/**
|
|
117
226
|
* Union of all trust events
|
|
118
227
|
*/
|
|
119
|
-
export type AnyTrustEvent = TrustInitializedEvent | TrustSignalRecordedEvent | TrustScoreChangedEvent | TrustTierChangedEvent | TrustDecayAppliedEvent | TrustRecoveryAppliedEvent | TrustRecoveryMilestoneEvent;
|
|
228
|
+
export type AnyTrustEvent = TrustInitializedEvent | TrustSignalRecordedEvent | TrustSignalDeduplicatedEvent | TrustScoreChangedEvent | TrustTierChangedEvent | TrustReadinessAdjustedEvent | TrustFreshnessAdjustedEvent | TrustDecayAppliedEvent | TrustFailureDetectedEvent | TrustRecoveryAppliedEvent | TrustRecoveryMilestoneEvent | TrustFingerprintDriftEvent | TrustEnvelopeBreachEvent | TrustFingerprintBaselineSetEvent;
|
|
229
|
+
/**
|
|
230
|
+
* Time-bound exception for Readiness Degree adjustments.
|
|
231
|
+
*/
|
|
232
|
+
export interface ReadinessException {
|
|
233
|
+
/** Human-readable reason for exception */
|
|
234
|
+
reason: string;
|
|
235
|
+
/** Exception issue timestamp */
|
|
236
|
+
issuedAt: string;
|
|
237
|
+
/** Exception expiration timestamp */
|
|
238
|
+
expiresAt: string;
|
|
239
|
+
/** 0..1 scale applied to scheduled reductions while exception is active (default: 1) */
|
|
240
|
+
reductionScale: number;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Canonical reason codes for time-bound readiness exceptions.
|
|
244
|
+
*/
|
|
245
|
+
export declare const READINESS_EXCEPTION_REASON_CODES: readonly ["approved_leave", "planned_maintenance", "telemetry_outage", "legal_hold", "incident_response", "dependency_outage"];
|
|
246
|
+
export type ReadinessExceptionReasonCode = typeof READINESS_EXCEPTION_REASON_CODES[number];
|
|
247
|
+
/**
|
|
248
|
+
* @deprecated Use ReadinessException.
|
|
249
|
+
*/
|
|
250
|
+
export type FreshnessException = ReadinessException;
|
|
120
251
|
/**
|
|
121
252
|
* Entity trust record
|
|
122
253
|
*/
|
|
@@ -124,19 +255,34 @@ export interface TrustRecord {
|
|
|
124
255
|
entityId: ID;
|
|
125
256
|
score: TrustScore;
|
|
126
257
|
level: TrustLevel;
|
|
127
|
-
/** @deprecated Use factorScores instead */
|
|
128
258
|
components: TrustComponents;
|
|
129
|
-
/** Per-factor scores (0.0 to 1.0) for each of the 16 trust factors */
|
|
130
|
-
factorScores: Record<string, number>;
|
|
131
259
|
signals: TrustSignal[];
|
|
132
260
|
lastCalculatedAt: string;
|
|
133
261
|
history: TrustHistoryEntry[];
|
|
262
|
+
/** Recent failure timestamps for accelerated decay */
|
|
263
|
+
recentFailures: string[];
|
|
134
264
|
/** Recent success timestamps for recovery */
|
|
135
265
|
recentSuccesses: string[];
|
|
136
266
|
/** Peak score achieved (for recovery milestone tracking) */
|
|
137
267
|
peakScore: TrustScore;
|
|
138
268
|
/** Consecutive successful signals count */
|
|
139
269
|
consecutiveSuccesses: number;
|
|
270
|
+
/** Scheduled readiness checkpoint index */
|
|
271
|
+
readinessCheckpointIndex?: number;
|
|
272
|
+
/** Deferred multiplier accumulated during active exception windows */
|
|
273
|
+
deferredReadinessMultiplier?: number;
|
|
274
|
+
/** Optional active readiness exception */
|
|
275
|
+
readinessException?: ReadinessException;
|
|
276
|
+
/** Baseline score captured when readiness schedule starts */
|
|
277
|
+
readinessBaselineScore?: TrustScore;
|
|
278
|
+
/** @deprecated Use readinessCheckpointIndex */
|
|
279
|
+
freshnessCheckpointIndex?: number;
|
|
280
|
+
/** @deprecated Use deferredReadinessMultiplier */
|
|
281
|
+
deferredFreshnessMultiplier?: number;
|
|
282
|
+
/** @deprecated Use readinessException */
|
|
283
|
+
freshnessException?: FreshnessException;
|
|
284
|
+
/** @deprecated Use readinessBaselineScore */
|
|
285
|
+
freshnessBaselineScore?: TrustScore;
|
|
140
286
|
}
|
|
141
287
|
/**
|
|
142
288
|
* Trust history entry
|
|
@@ -153,62 +299,55 @@ export interface TrustHistoryEntry {
|
|
|
153
299
|
export interface TrustCalculation {
|
|
154
300
|
score: TrustScore;
|
|
155
301
|
level: TrustLevel;
|
|
156
|
-
/** @deprecated Use factorScores */
|
|
157
302
|
components: TrustComponents;
|
|
158
|
-
/** Per-factor scores for all 16 trust factors */
|
|
159
|
-
factorScores: Record<string, number>;
|
|
160
303
|
factors: string[];
|
|
161
304
|
}
|
|
162
305
|
/**
|
|
163
|
-
*
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
306
|
+
* Factor breakdown entry in a trust explanation
|
|
307
|
+
*/
|
|
308
|
+
export interface TrustFactorBreakdown {
|
|
309
|
+
code: string;
|
|
310
|
+
weight: number;
|
|
311
|
+
rawScore: number;
|
|
312
|
+
contribution: number;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Trust score explanation returned by explainScore
|
|
168
316
|
*/
|
|
169
317
|
export interface TrustExplanation {
|
|
170
|
-
/** Entity ID */
|
|
171
318
|
entityId: ID;
|
|
172
|
-
/** Final trust score (0-1000) */
|
|
173
319
|
score: TrustScore;
|
|
174
|
-
/** Trust level index (0-7) */
|
|
175
320
|
level: TrustLevel;
|
|
176
|
-
/** Human-readable level name (e.g. "Trusted") */
|
|
177
321
|
levelName: string;
|
|
178
|
-
/** Score range for the current level */
|
|
179
322
|
levelRange: {
|
|
180
323
|
min: number;
|
|
181
324
|
max: number;
|
|
182
325
|
};
|
|
183
|
-
/** Score needed to reach the next level (null if at T7) */
|
|
184
|
-
pointsToNextLevel: number | null;
|
|
185
|
-
/** Total number of signals ingested */
|
|
186
326
|
signalCount: number;
|
|
187
|
-
|
|
188
|
-
factorBreakdown: {
|
|
189
|
-
code: string;
|
|
190
|
-
weight: number;
|
|
191
|
-
rawScore: number;
|
|
192
|
-
/** Contribution = rawScore * weight * 1000 (portion of final score) */
|
|
193
|
-
contribution: number;
|
|
194
|
-
}[];
|
|
195
|
-
/** Top factors contributing positively (sorted by contribution desc) */
|
|
196
|
-
topPositiveFactors: string[];
|
|
197
|
-
/** Top factors dragging score down (sorted by contribution asc) */
|
|
198
|
-
topNegativeFactors: string[];
|
|
199
|
-
/** Decay multiplier currently applied (1.0 = no decay) */
|
|
200
|
-
decayMultiplier: number;
|
|
201
|
-
/** Days since last signal */
|
|
327
|
+
factorBreakdown: TrustFactorBreakdown[];
|
|
202
328
|
daysSinceLastSignal: number | null;
|
|
203
|
-
|
|
329
|
+
decayMultiplier: number;
|
|
330
|
+
pointsToNextLevel: number | null;
|
|
204
331
|
generatedAt: string;
|
|
205
332
|
}
|
|
206
333
|
/**
|
|
207
334
|
* Trust Engine configuration
|
|
208
335
|
*/
|
|
209
336
|
export interface TrustEngineConfig {
|
|
210
|
-
/**
|
|
337
|
+
/** Base decay rate per interval (default: 0.01 = 1%) */
|
|
338
|
+
decayRate?: number;
|
|
339
|
+
/** Decay interval in milliseconds (default: 60000 = 1 minute) */
|
|
340
|
+
decayIntervalMs?: number;
|
|
341
|
+
/** Alias for decayIntervalMs — decay check interval in milliseconds */
|
|
211
342
|
decayCheckIntervalMs?: number;
|
|
343
|
+
/** Signal value threshold below which a signal is considered a failure (default: 0.3) */
|
|
344
|
+
failureThreshold?: number;
|
|
345
|
+
/** Multiplier applied to decay rate when entity has recent failures (default: 1.0) */
|
|
346
|
+
acceleratedDecayMultiplier?: number;
|
|
347
|
+
/** Time window in ms to consider failures as "recent" (default: 3600000 = 1 hour) */
|
|
348
|
+
failureWindowMs?: number;
|
|
349
|
+
/** Minimum failures within window to trigger accelerated decay (default: 2) */
|
|
350
|
+
minFailuresForAcceleration?: number;
|
|
212
351
|
/** Persistence provider for storing trust records */
|
|
213
352
|
persistence?: PersistenceProvider;
|
|
214
353
|
/** Auto-persist changes (default: true when persistence is provided) */
|
|
@@ -231,13 +370,54 @@ export interface TrustEngineConfig {
|
|
|
231
370
|
maxTotalListeners?: number;
|
|
232
371
|
/** Warn when listener count exceeds this percentage of max (default: 0.8 = 80%) */
|
|
233
372
|
listenerWarningThreshold?: number;
|
|
373
|
+
/** Freshness adjustment mode (default: checkpoint_schedule) */
|
|
374
|
+
freshnessMode?: 'legacy_interval' | 'checkpoint_schedule';
|
|
375
|
+
/** Absolute day checkpoints since last trust-relevant action */
|
|
376
|
+
freshnessCheckpointDays?: number[];
|
|
377
|
+
/** Reduction percentages per checkpoint (0..1) */
|
|
378
|
+
freshnessCheckpointReductions?: number[];
|
|
379
|
+
/** Readiness Degree adjustment mode (preferred name) */
|
|
380
|
+
readinessMode?: 'legacy_interval' | 'checkpoint_schedule';
|
|
381
|
+
/** Readiness Degree checkpoint days (preferred name) */
|
|
382
|
+
readinessCheckpointDays?: number[];
|
|
383
|
+
/** Readiness Degree checkpoint reductions (preferred name) */
|
|
384
|
+
readinessCheckpointReductions?: number[];
|
|
385
|
+
/** Allowed readiness exception reason codes (default: READINESS_EXCEPTION_REASON_CODES) */
|
|
386
|
+
readinessExceptionAllowedReasons?: ReadinessExceptionReasonCode[];
|
|
387
|
+
/** Maximum readiness exception duration in ms (default: 30 days) */
|
|
388
|
+
readinessExceptionMaxDurationMs?: number;
|
|
389
|
+
/** @deprecated Use readinessExceptionAllowedReasons */
|
|
390
|
+
freshnessExceptionAllowedReasons?: ReadinessExceptionReasonCode[];
|
|
391
|
+
/** @deprecated Use readinessExceptionMaxDurationMs */
|
|
392
|
+
freshnessExceptionMaxDurationMs?: number;
|
|
393
|
+
/** Enable signal deduplication / diminishing returns (default: true) */
|
|
394
|
+
signalDedupEnabled?: boolean;
|
|
395
|
+
/** Diminishing factor applied per consecutive repeat of the same signal type (default: 0.5 — halving) */
|
|
396
|
+
signalDedupDecayFactor?: number;
|
|
397
|
+
/** Sliding window size: max recent signals to track per entity for dedup (default: 10) */
|
|
398
|
+
signalDedupWindowSize?: number;
|
|
399
|
+
/** Time window in ms after which dedup counters reset for a signal type (default: 3600000 = 1 hour) */
|
|
400
|
+
signalDedupWindowMs?: number;
|
|
401
|
+
/** Minimum diminishing factor floor — repeated signals never go below this (default: 0.0625 = 1/16) */
|
|
402
|
+
signalDedupMinFactor?: number;
|
|
403
|
+
/** Optional ParameSphere SVD fingerprinting engine for internal-state monitoring */
|
|
404
|
+
paramesphere?: ParameSphereEngine;
|
|
405
|
+
/** Optional Cognitive Envelope for breach detection */
|
|
406
|
+
cognitiveEnvelope?: CognitiveEnvelope;
|
|
407
|
+
/** Optional TrustVerifier for cryptographic state commitment after every score change */
|
|
408
|
+
verifier?: TrustVerifier;
|
|
234
409
|
}
|
|
235
410
|
/**
|
|
236
411
|
* Trust Engine service with event emission and subscription limits
|
|
237
412
|
*/
|
|
238
413
|
export declare class TrustEngine extends EventEmitter {
|
|
239
414
|
private records;
|
|
240
|
-
private
|
|
415
|
+
private _decayRate;
|
|
416
|
+
private _decayIntervalMs;
|
|
417
|
+
private _failureThreshold;
|
|
418
|
+
private _acceleratedDecayMultiplier;
|
|
419
|
+
private _failureWindowMs;
|
|
420
|
+
private _minFailuresForAcceleration;
|
|
241
421
|
private _persistence?;
|
|
242
422
|
private _autoPersist;
|
|
243
423
|
private _successThreshold;
|
|
@@ -251,7 +431,39 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
251
431
|
private _listenerWarningThreshold;
|
|
252
432
|
private _listenerCounts;
|
|
253
433
|
private _totalListeners;
|
|
434
|
+
private _readinessMode;
|
|
435
|
+
private _readinessCheckpointDays;
|
|
436
|
+
private _readinessCheckpointReductions;
|
|
437
|
+
private _allowedReadinessExceptionReasons;
|
|
438
|
+
private _readinessExceptionMaxDurationMs;
|
|
439
|
+
private _signalDedupEnabled;
|
|
440
|
+
private _signalDedupDecayFactor;
|
|
441
|
+
private _signalDedupWindowSize;
|
|
442
|
+
private _signalDedupWindowMs;
|
|
443
|
+
private _signalDedupMinFactor;
|
|
444
|
+
/**
|
|
445
|
+
* Per-entity dedup tracker. Each entry holds recent signal type records
|
|
446
|
+
* used to compute diminishing returns for repeated identical signal types.
|
|
447
|
+
*/
|
|
448
|
+
private _dedupState;
|
|
449
|
+
private _scoreCache;
|
|
450
|
+
/** Number of signals between forced full recalculations for drift correction */
|
|
451
|
+
private static readonly INCREMENTAL_RECALC_INTERVAL;
|
|
452
|
+
private _paramesphere?;
|
|
453
|
+
private _cognitiveEnvelope?;
|
|
454
|
+
private _fingerprintBaselines;
|
|
455
|
+
private _verifier?;
|
|
254
456
|
constructor(config?: TrustEngineConfig);
|
|
457
|
+
/** Decay check interval in milliseconds */
|
|
458
|
+
get decayCheckIntervalMs(): number;
|
|
459
|
+
private validateReadinessExceptionOptions;
|
|
460
|
+
private getCheckpointIntervalMs;
|
|
461
|
+
private ensureReadinessState;
|
|
462
|
+
private isUsingDefaultReadinessSchedule;
|
|
463
|
+
private isReadinessExceptionActive;
|
|
464
|
+
private applyDeferredReadinessCatchupIfExpired;
|
|
465
|
+
private applyScheduledReadinessAdjustment;
|
|
466
|
+
private emitReadinessAdjustmentEvents;
|
|
255
467
|
/**
|
|
256
468
|
* Add event listener with subscription limits
|
|
257
469
|
* @throws Error if listener limits are exceeded
|
|
@@ -295,9 +507,21 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
295
507
|
maxListenersPerEvent: number;
|
|
296
508
|
};
|
|
297
509
|
/**
|
|
298
|
-
* Get the decay
|
|
510
|
+
* Get the current decay rate
|
|
299
511
|
*/
|
|
300
|
-
get
|
|
512
|
+
get decayRate(): number;
|
|
513
|
+
/**
|
|
514
|
+
* Get the decay interval in milliseconds
|
|
515
|
+
*/
|
|
516
|
+
get decayIntervalMs(): number;
|
|
517
|
+
/**
|
|
518
|
+
* Get the failure threshold
|
|
519
|
+
*/
|
|
520
|
+
get failureThreshold(): number;
|
|
521
|
+
/**
|
|
522
|
+
* Get the accelerated decay multiplier
|
|
523
|
+
*/
|
|
524
|
+
get acceleratedDecayMultiplier(): number;
|
|
301
525
|
/**
|
|
302
526
|
* Get the persistence provider
|
|
303
527
|
*/
|
|
@@ -326,6 +550,29 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
326
550
|
* Persist a single record if auto-persist is enabled
|
|
327
551
|
*/
|
|
328
552
|
private autoPersistRecord;
|
|
553
|
+
/**
|
|
554
|
+
* Check an entity's model fingerprint for drift.
|
|
555
|
+
* If drift exceeds threshold, automatically records a negative trust signal.
|
|
556
|
+
* Returns the drift result.
|
|
557
|
+
*/
|
|
558
|
+
checkFingerprint(entityId: string, weights: Float32Array[], activations?: ActivationStats[]): Promise<{
|
|
559
|
+
drifted: boolean;
|
|
560
|
+
similarity: number;
|
|
561
|
+
magnitude: number;
|
|
562
|
+
} | null>;
|
|
563
|
+
/**
|
|
564
|
+
* Set or update the fingerprint baseline for an entity.
|
|
565
|
+
* Call after initial model load or after a verified safe update.
|
|
566
|
+
*/
|
|
567
|
+
setFingerprintBaseline(entityId: string, weights: Float32Array[], activations?: ActivationStats[]): Promise<void>;
|
|
568
|
+
/**
|
|
569
|
+
* Check if entity behavioral signals are within cognitive envelope bounds.
|
|
570
|
+
* If breach detected, records a negative trust signal with multiplier.
|
|
571
|
+
*/
|
|
572
|
+
checkCognitiveEnvelope(entityId: string, observation: number[]): Promise<{
|
|
573
|
+
breached: boolean;
|
|
574
|
+
distance?: number;
|
|
575
|
+
} | null>;
|
|
329
576
|
/**
|
|
330
577
|
* Close the trust engine and persistence provider
|
|
331
578
|
*/
|
|
@@ -338,6 +585,14 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
338
585
|
* Calculate trust score for an entity
|
|
339
586
|
*/
|
|
340
587
|
calculate(entityId: ID): Promise<TrustCalculation>;
|
|
588
|
+
/**
|
|
589
|
+
* Check if an entity has accelerated decay active
|
|
590
|
+
*/
|
|
591
|
+
private hasAcceleratedDecay;
|
|
592
|
+
/**
|
|
593
|
+
* Clean up old failure timestamps outside the window
|
|
594
|
+
*/
|
|
595
|
+
private cleanupFailures;
|
|
341
596
|
/**
|
|
342
597
|
* Clean up old success timestamps outside the window
|
|
343
598
|
*/
|
|
@@ -358,22 +613,18 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
358
613
|
* Get trust score for an entity (with automatic decay)
|
|
359
614
|
*/
|
|
360
615
|
getScore(entityId: ID): Promise<TrustRecord | undefined>;
|
|
361
|
-
/**
|
|
362
|
-
* Validate a trust signal before ingestion.
|
|
363
|
-
* Rejects NaN, Infinity, out-of-range values, and missing required fields.
|
|
364
|
-
*
|
|
365
|
-
* @throws Error on invalid signal
|
|
366
|
-
*/
|
|
367
|
-
private validateSignal;
|
|
368
616
|
/**
|
|
369
617
|
* Record a trust signal
|
|
370
|
-
* @throws Error if signal is invalid (NaN, out of range, missing fields)
|
|
371
618
|
*/
|
|
372
619
|
recordSignal(signal: TrustSignal): Promise<void>;
|
|
373
620
|
/**
|
|
374
621
|
* Initialize trust for a new entity
|
|
375
622
|
*/
|
|
376
623
|
initializeEntity(entityId: ID, initialLevel?: TrustLevel): Promise<TrustRecord>;
|
|
624
|
+
/**
|
|
625
|
+
* Explain a trust score with full factor breakdown
|
|
626
|
+
*/
|
|
627
|
+
explainScore(entityId: ID): Promise<TrustExplanation>;
|
|
377
628
|
/**
|
|
378
629
|
* Get all entity IDs
|
|
379
630
|
*/
|
|
@@ -382,53 +633,130 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
382
633
|
* Get trust level name
|
|
383
634
|
*/
|
|
384
635
|
getLevelName(level: TrustLevel): string;
|
|
385
|
-
/**
|
|
386
|
-
* Generate a human-readable explanation of an entity's current trust score.
|
|
387
|
-
*
|
|
388
|
-
* Provides full transparency into how the score was computed, including
|
|
389
|
-
* per-factor contributions, decay status, and what's needed to advance.
|
|
390
|
-
*
|
|
391
|
-
* @example
|
|
392
|
-
* ```ts
|
|
393
|
-
* const explanation = await engine.explainScore('agent-123');
|
|
394
|
-
* console.log(`Score: ${explanation.score} (${explanation.levelName})`);
|
|
395
|
-
* console.log(`Top factor: ${explanation.topPositiveFactors[0]}`);
|
|
396
|
-
* console.log(`Points to next tier: ${explanation.pointsToNextLevel}`);
|
|
397
|
-
* ```
|
|
398
|
-
*/
|
|
399
|
-
explainScore(entityId: ID): Promise<TrustExplanation>;
|
|
400
636
|
/**
|
|
401
637
|
* Convert score to trust level
|
|
402
638
|
*/
|
|
403
639
|
private scoreToLevel;
|
|
404
640
|
/**
|
|
405
|
-
* @deprecated Use calculateFactorScores for 16-factor model. Kept for backwards compatibility.
|
|
406
641
|
* Calculate component scores from signals
|
|
407
642
|
*/
|
|
408
643
|
private calculateComponents;
|
|
409
644
|
/**
|
|
410
|
-
* Calculate
|
|
411
|
-
*
|
|
412
|
-
*
|
|
413
|
-
*
|
|
645
|
+
* Calculate average signal value with default.
|
|
646
|
+
*
|
|
647
|
+
* Applies the BASIS penalty ratio P(T) = 3 + T to negative signals:
|
|
648
|
+
* negative signal weights are multiplied by (3 + currentTier) so that
|
|
649
|
+
* higher-tier agents suffer proportionally larger score drops from failures.
|
|
650
|
+
*/
|
|
651
|
+
private averageSignalValue;
|
|
652
|
+
/**
|
|
653
|
+
* Human/manual positive approvals carry less upward impact at higher tiers.
|
|
414
654
|
*/
|
|
415
|
-
private
|
|
655
|
+
private adjustSignalValueForTier;
|
|
656
|
+
private isHumanApprovalSignal;
|
|
657
|
+
private getHumanApprovalAssistFactor;
|
|
416
658
|
/**
|
|
417
|
-
*
|
|
659
|
+
* Resolve which component bucket a signal type belongs to.
|
|
660
|
+
* Returns the component key or undefined if the signal type is unrecognized.
|
|
418
661
|
*/
|
|
419
|
-
private
|
|
662
|
+
private resolveSignalComponent;
|
|
663
|
+
/**
|
|
664
|
+
* Create a fresh empty CachedScoreState.
|
|
665
|
+
*/
|
|
666
|
+
private createEmptyCacheState;
|
|
667
|
+
/**
|
|
668
|
+
* Build the score cache from a full recalculation of all stored signals.
|
|
669
|
+
* This mirrors the logic in averageSignalValue but captures the running totals.
|
|
670
|
+
*/
|
|
671
|
+
private buildCacheFromSignals;
|
|
672
|
+
/**
|
|
673
|
+
* Incrementally update the cached score state with a single new signal.
|
|
674
|
+
* Returns the updated TrustCalculation. This is O(1) per signal.
|
|
675
|
+
*/
|
|
676
|
+
private incrementalUpdate;
|
|
677
|
+
/**
|
|
678
|
+
* Invalidate the incremental score cache for an entity,
|
|
679
|
+
* forcing the next recordSignal to do a full recalculation.
|
|
680
|
+
*/
|
|
681
|
+
invalidateScoreCache(entityId?: ID): void;
|
|
420
682
|
/**
|
|
421
683
|
* Get significant factors affecting the score
|
|
422
684
|
*/
|
|
423
685
|
private getSignificantFactors;
|
|
686
|
+
/**
|
|
687
|
+
* Apply signal deduplication with diminishing returns.
|
|
688
|
+
*
|
|
689
|
+
* Tracks recent signal types per entity within a sliding window. When the same
|
|
690
|
+
* signal type appears consecutively (within the window), its effective value is
|
|
691
|
+
* pulled toward 0.5 (neutral) by an exponentially decaying factor. This prevents
|
|
692
|
+
* replay attacks from inflating or deflating trust scores while still allowing
|
|
693
|
+
* legitimate repeated signals to have some (diminished) impact.
|
|
694
|
+
*
|
|
695
|
+
* The adjustment formula moves the value toward 0.5 (the neutral baseline):
|
|
696
|
+
* adjustedValue = 0.5 + (originalValue - 0.5) * factor
|
|
697
|
+
*
|
|
698
|
+
* This means:
|
|
699
|
+
* - Positive signals (value > 0.5) have their positive impact reduced
|
|
700
|
+
* - Negative signals (value < 0.5) have their negative impact reduced
|
|
701
|
+
* - A value of exactly 0.5 is never adjusted
|
|
702
|
+
*/
|
|
703
|
+
private applySignalDedup;
|
|
704
|
+
/**
|
|
705
|
+
* Check whether signal deduplication is enabled
|
|
706
|
+
*/
|
|
707
|
+
get signalDedupEnabled(): boolean;
|
|
708
|
+
/**
|
|
709
|
+
* Clear dedup state for an entity (useful for testing or resets)
|
|
710
|
+
*/
|
|
711
|
+
clearDedupState(entityId?: ID): void;
|
|
424
712
|
/**
|
|
425
713
|
* Create initial trust record
|
|
426
714
|
*/
|
|
427
715
|
private createInitialRecord;
|
|
716
|
+
/**
|
|
717
|
+
* Configure a time-bound Readiness Degree exception for an entity.
|
|
718
|
+
*/
|
|
719
|
+
setReadinessException(entityId: ID, options: {
|
|
720
|
+
reason: ReadinessExceptionReasonCode;
|
|
721
|
+
expiresAt: string;
|
|
722
|
+
reductionScale?: number;
|
|
723
|
+
}): void;
|
|
724
|
+
/**
|
|
725
|
+
* @deprecated Use setReadinessException.
|
|
726
|
+
*/
|
|
727
|
+
setFreshnessException(entityId: ID, options: {
|
|
728
|
+
reason: ReadinessExceptionReasonCode;
|
|
729
|
+
expiresAt: string;
|
|
730
|
+
reductionScale?: number;
|
|
731
|
+
}): void;
|
|
732
|
+
/**
|
|
733
|
+
* Clear Readiness Degree exception for an entity.
|
|
734
|
+
*/
|
|
735
|
+
clearReadinessException(entityId: ID): void;
|
|
736
|
+
/**
|
|
737
|
+
* @deprecated Use clearReadinessException.
|
|
738
|
+
*/
|
|
739
|
+
clearFreshnessException(entityId: ID): void;
|
|
740
|
+
/**
|
|
741
|
+
* Get active Readiness Degree exception for an entity.
|
|
742
|
+
*/
|
|
743
|
+
getReadinessException(entityId: ID): ReadinessException | undefined;
|
|
744
|
+
/**
|
|
745
|
+
* @deprecated Use getReadinessException.
|
|
746
|
+
*/
|
|
747
|
+
getFreshnessException(entityId: ID): FreshnessException | undefined;
|
|
748
|
+
/**
|
|
749
|
+
* Check if accelerated decay is currently active for an entity
|
|
750
|
+
*/
|
|
751
|
+
isAcceleratedDecayActive(entityId: ID): boolean;
|
|
428
752
|
/**
|
|
429
753
|
* Check if accelerated recovery is currently active for an entity
|
|
430
754
|
*/
|
|
431
755
|
isAcceleratedRecoveryActive(entityId: ID): boolean;
|
|
756
|
+
/**
|
|
757
|
+
* Get current failure count for an entity
|
|
758
|
+
*/
|
|
759
|
+
getFailureCount(entityId: ID): number;
|
|
432
760
|
/**
|
|
433
761
|
* Get consecutive success count for an entity
|
|
434
762
|
*/
|
|
@@ -437,6 +765,16 @@ export declare class TrustEngine extends EventEmitter {
|
|
|
437
765
|
* Get peak score for an entity
|
|
438
766
|
*/
|
|
439
767
|
getPeakScore(entityId: ID): TrustScore;
|
|
768
|
+
/**
|
|
769
|
+
* Verify an entity's trust score against its verifier commitment chain.
|
|
770
|
+
* Requires a TrustVerifier to be configured; throws if none is set.
|
|
771
|
+
*/
|
|
772
|
+
verifyEntity(entityId: ID): import("./trust-verifier.js").TrustVerificationResult;
|
|
773
|
+
/**
|
|
774
|
+
* Verify all tracked entities against the verifier commitment chain.
|
|
775
|
+
* Requires a TrustVerifier to be configured; throws if none is set.
|
|
776
|
+
*/
|
|
777
|
+
verifyAll(): Map<string, import("./trust-verifier.js").TrustVerificationResult>;
|
|
440
778
|
}
|
|
441
779
|
/**
|
|
442
780
|
* Create a new Trust Engine instance
|