@vorionsys/contracts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aci/aci-string.d.ts +539 -0
- package/dist/aci/aci-string.d.ts.map +1 -0
- package/dist/aci/aci-string.js +563 -0
- package/dist/aci/aci-string.js.map +1 -0
- package/dist/aci/attestation.d.ts +648 -0
- package/dist/aci/attestation.d.ts.map +1 -0
- package/dist/aci/attestation.js +289 -0
- package/dist/aci/attestation.js.map +1 -0
- package/dist/aci/domains.d.ts +260 -0
- package/dist/aci/domains.d.ts.map +1 -0
- package/dist/aci/domains.js +322 -0
- package/dist/aci/domains.js.map +1 -0
- package/dist/aci/effective-permission.d.ts +371 -0
- package/dist/aci/effective-permission.d.ts.map +1 -0
- package/dist/aci/effective-permission.js +351 -0
- package/dist/aci/effective-permission.js.map +1 -0
- package/dist/aci/identity.d.ts +1100 -0
- package/dist/aci/identity.d.ts.map +1 -0
- package/dist/aci/identity.js +328 -0
- package/dist/aci/identity.js.map +1 -0
- package/dist/aci/index.d.ts +67 -0
- package/dist/aci/index.d.ts.map +1 -0
- package/dist/aci/index.js +157 -0
- package/dist/aci/index.js.map +1 -0
- package/dist/aci/jwt-claims.d.ts +756 -0
- package/dist/aci/jwt-claims.d.ts.map +1 -0
- package/dist/aci/jwt-claims.js +335 -0
- package/dist/aci/jwt-claims.js.map +1 -0
- package/dist/aci/levels.d.ts +279 -0
- package/dist/aci/levels.d.ts.map +1 -0
- package/dist/aci/levels.js +467 -0
- package/dist/aci/levels.js.map +1 -0
- package/dist/aci/mapping.d.ts +291 -0
- package/dist/aci/mapping.d.ts.map +1 -0
- package/dist/aci/mapping.js +427 -0
- package/dist/aci/mapping.js.map +1 -0
- package/dist/aci/skills.d.ts +314 -0
- package/dist/aci/skills.d.ts.map +1 -0
- package/dist/aci/skills.js +404 -0
- package/dist/aci/skills.js.map +1 -0
- package/dist/aci/tiers.d.ts +403 -0
- package/dist/aci/tiers.d.ts.map +1 -0
- package/dist/aci/tiers.js +659 -0
- package/dist/aci/tiers.js.map +1 -0
- package/dist/canonical/agent.d.ts +796 -0
- package/dist/canonical/agent.d.ts.map +1 -0
- package/dist/canonical/agent.js +527 -0
- package/dist/canonical/agent.js.map +1 -0
- package/dist/canonical/governance.d.ts +905 -0
- package/dist/canonical/governance.d.ts.map +1 -0
- package/dist/canonical/governance.js +454 -0
- package/dist/canonical/governance.js.map +1 -0
- package/dist/canonical/index.d.ts +17 -0
- package/dist/canonical/index.d.ts.map +1 -0
- package/dist/canonical/index.js +21 -0
- package/dist/canonical/index.js.map +1 -0
- package/dist/canonical/intent.d.ts +727 -0
- package/dist/canonical/intent.d.ts.map +1 -0
- package/dist/canonical/intent.js +203 -0
- package/dist/canonical/intent.js.map +1 -0
- package/dist/canonical/risk-level.d.ts +344 -0
- package/dist/canonical/risk-level.d.ts.map +1 -0
- package/dist/canonical/risk-level.js +472 -0
- package/dist/canonical/risk-level.js.map +1 -0
- package/dist/canonical/trust-band.d.ts +239 -0
- package/dist/canonical/trust-band.d.ts.map +1 -0
- package/dist/canonical/trust-band.js +298 -0
- package/dist/canonical/trust-band.js.map +1 -0
- package/dist/canonical/trust-score.d.ts +301 -0
- package/dist/canonical/trust-score.d.ts.map +1 -0
- package/dist/canonical/trust-score.js +390 -0
- package/dist/canonical/trust-score.js.map +1 -0
- package/dist/canonical/trust-signal.d.ts +617 -0
- package/dist/canonical/trust-signal.d.ts.map +1 -0
- package/dist/canonical/trust-signal.js +355 -0
- package/dist/canonical/trust-signal.js.map +1 -0
- package/dist/canonical/validation.d.ts +231 -0
- package/dist/canonical/validation.d.ts.map +1 -0
- package/dist/canonical/validation.js +558 -0
- package/dist/canonical/validation.js.map +1 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +7 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/primitives.d.ts +56 -0
- package/dist/common/primitives.d.ts.map +1 -0
- package/dist/common/primitives.js +70 -0
- package/dist/common/primitives.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/v2/canary-probe.d.ts +201 -0
- package/dist/v2/canary-probe.d.ts.map +1 -0
- package/dist/v2/canary-probe.js +99 -0
- package/dist/v2/canary-probe.js.map +1 -0
- package/dist/v2/component.d.ts +132 -0
- package/dist/v2/component.d.ts.map +1 -0
- package/dist/v2/component.js +5 -0
- package/dist/v2/component.js.map +1 -0
- package/dist/v2/decision.d.ts +310 -0
- package/dist/v2/decision.d.ts.map +1 -0
- package/dist/v2/decision.js +21 -0
- package/dist/v2/decision.js.map +1 -0
- package/dist/v2/enums.d.ts +185 -0
- package/dist/v2/enums.d.ts.map +1 -0
- package/dist/v2/enums.js +203 -0
- package/dist/v2/enums.js.map +1 -0
- package/dist/v2/evidence.d.ts +368 -0
- package/dist/v2/evidence.d.ts.map +1 -0
- package/dist/v2/evidence.js +152 -0
- package/dist/v2/evidence.js.map +1 -0
- package/dist/v2/execution.d.ts +190 -0
- package/dist/v2/execution.d.ts.map +1 -0
- package/dist/v2/execution.js +5 -0
- package/dist/v2/execution.js.map +1 -0
- package/dist/v2/index.d.ts +19 -0
- package/dist/v2/index.d.ts.map +1 -0
- package/dist/v2/index.js +32 -0
- package/dist/v2/index.js.map +1 -0
- package/dist/v2/intent.d.ts +89 -0
- package/dist/v2/intent.d.ts.map +1 -0
- package/dist/v2/intent.js +5 -0
- package/dist/v2/intent.js.map +1 -0
- package/dist/v2/policy-bundle.d.ts +166 -0
- package/dist/v2/policy-bundle.d.ts.map +1 -0
- package/dist/v2/policy-bundle.js +20 -0
- package/dist/v2/policy-bundle.js.map +1 -0
- package/dist/v2/pre-action-gate.d.ts +185 -0
- package/dist/v2/pre-action-gate.d.ts.map +1 -0
- package/dist/v2/pre-action-gate.js +64 -0
- package/dist/v2/pre-action-gate.js.map +1 -0
- package/dist/v2/proof-event.d.ts +201 -0
- package/dist/v2/proof-event.d.ts.map +1 -0
- package/dist/v2/proof-event.js +5 -0
- package/dist/v2/proof-event.js.map +1 -0
- package/dist/v2/retention.d.ts +329 -0
- package/dist/v2/retention.d.ts.map +1 -0
- package/dist/v2/retention.js +162 -0
- package/dist/v2/retention.js.map +1 -0
- package/dist/v2/trust-delta.d.ts +119 -0
- package/dist/v2/trust-delta.d.ts.map +1 -0
- package/dist/v2/trust-delta.js +28 -0
- package/dist/v2/trust-delta.js.map +1 -0
- package/dist/v2/trust-profile.d.ts +337 -0
- package/dist/v2/trust-profile.d.ts.map +1 -0
- package/dist/v2/trust-profile.js +96 -0
- package/dist/v2/trust-profile.js.map +1 -0
- package/dist/validators/decision.d.ts +430 -0
- package/dist/validators/decision.d.ts.map +1 -0
- package/dist/validators/decision.js +61 -0
- package/dist/validators/decision.js.map +1 -0
- package/dist/validators/enums.d.ts +24 -0
- package/dist/validators/enums.d.ts.map +1 -0
- package/dist/validators/enums.js +24 -0
- package/dist/validators/enums.js.map +1 -0
- package/dist/validators/index.d.ts +30 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +42 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/intent.d.ts +229 -0
- package/dist/validators/intent.d.ts.map +1 -0
- package/dist/validators/intent.js +47 -0
- package/dist/validators/intent.js.map +1 -0
- package/dist/validators/proof-event.d.ts +981 -0
- package/dist/validators/proof-event.d.ts.map +1 -0
- package/dist/validators/proof-event.js +134 -0
- package/dist/validators/proof-event.js.map +1 -0
- package/dist/validators/trust-profile.d.ts +350 -0
- package/dist/validators/trust-profile.d.ts.map +1 -0
- package/dist/validators/trust-profile.js +65 -0
- package/dist/validators/trust-profile.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy Bundle types - compliance rules as data
|
|
3
|
+
*/
|
|
4
|
+
import type { DataSensitivity, TrustBand, ActionType } from './enums.js';
|
|
5
|
+
/**
|
|
6
|
+
* Operator for policy conditions
|
|
7
|
+
*/
|
|
8
|
+
export declare enum PolicyOperator {
|
|
9
|
+
EQUALS = "equals",
|
|
10
|
+
NOT_EQUALS = "not_equals",
|
|
11
|
+
GREATER_THAN = "greater_than",
|
|
12
|
+
LESS_THAN = "less_than",
|
|
13
|
+
GREATER_OR_EQUAL = "greater_or_equal",
|
|
14
|
+
LESS_OR_EQUAL = "less_or_equal",
|
|
15
|
+
IN = "in",
|
|
16
|
+
NOT_IN = "not_in",
|
|
17
|
+
CONTAINS = "contains",
|
|
18
|
+
MATCHES = "matches"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Policy condition
|
|
22
|
+
*/
|
|
23
|
+
export interface PolicyCondition {
|
|
24
|
+
/** Field to evaluate */
|
|
25
|
+
field: string;
|
|
26
|
+
/** Comparison operator */
|
|
27
|
+
operator: PolicyOperator;
|
|
28
|
+
/** Value to compare against */
|
|
29
|
+
value: unknown;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Policy rule - a single authorization rule
|
|
33
|
+
*/
|
|
34
|
+
export interface PolicyRule {
|
|
35
|
+
/** Unique rule identifier */
|
|
36
|
+
ruleId: string;
|
|
37
|
+
/** Rule name */
|
|
38
|
+
name: string;
|
|
39
|
+
/** Rule description */
|
|
40
|
+
description: string;
|
|
41
|
+
/** Priority (lower = higher priority) */
|
|
42
|
+
priority: number;
|
|
43
|
+
/** Conditions that must be met */
|
|
44
|
+
conditions: PolicyCondition[];
|
|
45
|
+
/** Effect when conditions match */
|
|
46
|
+
effect: 'permit' | 'deny';
|
|
47
|
+
/** Optional constraints to apply if permitted */
|
|
48
|
+
constraints?: Partial<{
|
|
49
|
+
requiredApprovals: string[];
|
|
50
|
+
allowedTools: string[];
|
|
51
|
+
dataScopes: string[];
|
|
52
|
+
maxExecutionTimeMs: number;
|
|
53
|
+
reversibilityRequired: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
/** Is this rule active? */
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Jurisdiction restrictions
|
|
60
|
+
*/
|
|
61
|
+
export interface JurisdictionRestrictions {
|
|
62
|
+
/** Allowed jurisdictions */
|
|
63
|
+
allowedJurisdictions: string[];
|
|
64
|
+
/** Blocked jurisdictions */
|
|
65
|
+
blockedJurisdictions: string[];
|
|
66
|
+
/** Data residency requirements */
|
|
67
|
+
dataResidency?: string[];
|
|
68
|
+
/** Cross-border transfer allowed? */
|
|
69
|
+
crossBorderAllowed: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Data classification policy
|
|
73
|
+
*/
|
|
74
|
+
export interface DataClassificationPolicy {
|
|
75
|
+
/** Sensitivity levels this bundle handles */
|
|
76
|
+
allowedSensitivities: DataSensitivity[];
|
|
77
|
+
/** Minimum trust band for each sensitivity */
|
|
78
|
+
minimumTrustByClassification: Partial<Record<DataSensitivity, TrustBand>>;
|
|
79
|
+
/** Encryption required for these classifications */
|
|
80
|
+
encryptionRequired: DataSensitivity[];
|
|
81
|
+
/** Audit required for these classifications */
|
|
82
|
+
auditRequired: DataSensitivity[];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Action restrictions by trust band
|
|
86
|
+
*/
|
|
87
|
+
export interface ActionRestrictions {
|
|
88
|
+
/** Action types allowed per trust band */
|
|
89
|
+
allowedByBand: Partial<Record<TrustBand, ActionType[]>>;
|
|
90
|
+
/** Actions that always require approval */
|
|
91
|
+
alwaysRequireApproval: ActionType[];
|
|
92
|
+
/** Actions that are never allowed */
|
|
93
|
+
neverAllowed: ActionType[];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Policy bundle - a collection of related policies
|
|
97
|
+
*/
|
|
98
|
+
export interface PolicyBundle {
|
|
99
|
+
/** Unique bundle identifier */
|
|
100
|
+
bundleId: string;
|
|
101
|
+
/** Bundle name */
|
|
102
|
+
name: string;
|
|
103
|
+
/** Bundle description */
|
|
104
|
+
description: string;
|
|
105
|
+
/** Version (semver) */
|
|
106
|
+
version: string;
|
|
107
|
+
/** Is this bundle active? */
|
|
108
|
+
enabled: boolean;
|
|
109
|
+
/** Domains this bundle applies to */
|
|
110
|
+
applicableDomains: string[];
|
|
111
|
+
/** Environments (prod, staging, dev) */
|
|
112
|
+
applicableEnvironments: string[];
|
|
113
|
+
/** Jurisdictions */
|
|
114
|
+
jurisdictions: JurisdictionRestrictions;
|
|
115
|
+
/** Data classification policies */
|
|
116
|
+
dataClassification: DataClassificationPolicy;
|
|
117
|
+
/** Action restrictions */
|
|
118
|
+
actionRestrictions: ActionRestrictions;
|
|
119
|
+
/** Individual rules */
|
|
120
|
+
rules: PolicyRule[];
|
|
121
|
+
/** Default effect when no rules match */
|
|
122
|
+
defaultEffect: 'permit' | 'deny';
|
|
123
|
+
/** Metadata */
|
|
124
|
+
createdAt: Date;
|
|
125
|
+
updatedAt: Date;
|
|
126
|
+
createdBy: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Policy evaluation result
|
|
130
|
+
*/
|
|
131
|
+
export interface PolicyEvaluationResult {
|
|
132
|
+
/** Was access permitted? */
|
|
133
|
+
permitted: boolean;
|
|
134
|
+
/** Which rule(s) matched */
|
|
135
|
+
matchedRules: string[];
|
|
136
|
+
/** Combined constraints from all matching rules */
|
|
137
|
+
constraints: PolicyRule['constraints'];
|
|
138
|
+
/** Reasoning for the decision */
|
|
139
|
+
reasoning: string[];
|
|
140
|
+
/** Time to evaluate (ms) */
|
|
141
|
+
evaluationTimeMs: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Request to resolve applicable policies
|
|
145
|
+
*/
|
|
146
|
+
export interface PolicyResolutionRequest {
|
|
147
|
+
domain?: string;
|
|
148
|
+
environment?: string;
|
|
149
|
+
jurisdictions?: string[];
|
|
150
|
+
dataSensitivity?: DataSensitivity;
|
|
151
|
+
actionType?: ActionType;
|
|
152
|
+
trustBand?: TrustBand;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Policy bundle summary for listings
|
|
156
|
+
*/
|
|
157
|
+
export interface PolicyBundleSummary {
|
|
158
|
+
bundleId: string;
|
|
159
|
+
name: string;
|
|
160
|
+
version: string;
|
|
161
|
+
enabled: boolean;
|
|
162
|
+
applicableDomains: string[];
|
|
163
|
+
ruleCount: number;
|
|
164
|
+
updatedAt: Date;
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=policy-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-bundle.d.ts","sourceRoot":"","sources":["../../src/v2/policy-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy Bundle types - compliance rules as data
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Operator for policy conditions
|
|
6
|
+
*/
|
|
7
|
+
export var PolicyOperator;
|
|
8
|
+
(function (PolicyOperator) {
|
|
9
|
+
PolicyOperator["EQUALS"] = "equals";
|
|
10
|
+
PolicyOperator["NOT_EQUALS"] = "not_equals";
|
|
11
|
+
PolicyOperator["GREATER_THAN"] = "greater_than";
|
|
12
|
+
PolicyOperator["LESS_THAN"] = "less_than";
|
|
13
|
+
PolicyOperator["GREATER_OR_EQUAL"] = "greater_or_equal";
|
|
14
|
+
PolicyOperator["LESS_OR_EQUAL"] = "less_or_equal";
|
|
15
|
+
PolicyOperator["IN"] = "in";
|
|
16
|
+
PolicyOperator["NOT_IN"] = "not_in";
|
|
17
|
+
PolicyOperator["CONTAINS"] = "contains";
|
|
18
|
+
PolicyOperator["MATCHES"] = "matches";
|
|
19
|
+
})(PolicyOperator || (PolicyOperator = {}));
|
|
20
|
+
//# sourceMappingURL=policy-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-bundle.js","sourceRoot":"","sources":["../../src/v2/policy-bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;IACzB,+CAA6B,CAAA;IAC7B,yCAAuB,CAAA;IACvB,uDAAqC,CAAA;IACrC,iDAA+B,CAAA;IAC/B,2BAAS,CAAA;IACT,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;AACrB,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-Action Verification Gate Types - ATSF v2.0 Section 4.4
|
|
3
|
+
*
|
|
4
|
+
* Per ATSF v2.0: "Trust score gates CAPABILITY, not just post-hoc scoring"
|
|
5
|
+
*
|
|
6
|
+
* Key insight: At the moment of a "Treacherous Turn," an agent's trust
|
|
7
|
+
* is maximal because trust is updated AFTER action. Pre-action gating
|
|
8
|
+
* prevents high-risk actions by low-trust agents BEFORE execution.
|
|
9
|
+
*
|
|
10
|
+
* Trust must be earned through demonstrated success on low-risk actions first.
|
|
11
|
+
*/
|
|
12
|
+
import type { ActionType, DataSensitivity, Reversibility } from './enums.js';
|
|
13
|
+
/**
|
|
14
|
+
* Risk levels for action classification
|
|
15
|
+
* Per ATSF v2.0 Section 4.4
|
|
16
|
+
*/
|
|
17
|
+
export declare enum RiskLevel {
|
|
18
|
+
/** Read-only operations - anyone can do */
|
|
19
|
+
READ = "READ",
|
|
20
|
+
/** Low-risk modifications */
|
|
21
|
+
LOW = "LOW",
|
|
22
|
+
/** Medium-risk operations */
|
|
23
|
+
MEDIUM = "MEDIUM",
|
|
24
|
+
/** High-risk operations - requires verification */
|
|
25
|
+
HIGH = "HIGH",
|
|
26
|
+
/** Critical operations - requires human approval */
|
|
27
|
+
CRITICAL = "CRITICAL"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Trust thresholds per risk level
|
|
31
|
+
* Per ATSF v2.0 Section 4.4
|
|
32
|
+
*/
|
|
33
|
+
export declare const TRUST_THRESHOLDS: Record<RiskLevel, number>;
|
|
34
|
+
/**
|
|
35
|
+
* Gate decision status
|
|
36
|
+
*/
|
|
37
|
+
export declare enum GateStatus {
|
|
38
|
+
/** Action approved - proceed with execution */
|
|
39
|
+
APPROVED = "APPROVED",
|
|
40
|
+
/** Action rejected - trust below threshold */
|
|
41
|
+
REJECTED = "REJECTED",
|
|
42
|
+
/** Action pending - requires additional verification */
|
|
43
|
+
PENDING_VERIFICATION = "PENDING_VERIFICATION",
|
|
44
|
+
/** Action pending - requires human approval */
|
|
45
|
+
PENDING_HUMAN_APPROVAL = "PENDING_HUMAN_APPROVAL"
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Request to verify an action before execution
|
|
49
|
+
*/
|
|
50
|
+
export interface GateVerificationRequest {
|
|
51
|
+
/** Agent requesting the action */
|
|
52
|
+
agentId: string;
|
|
53
|
+
/** Description of the action */
|
|
54
|
+
action: string;
|
|
55
|
+
/** Type of action */
|
|
56
|
+
actionType: ActionType;
|
|
57
|
+
/** Resources being accessed/modified */
|
|
58
|
+
resourceScope: string[];
|
|
59
|
+
/** Data sensitivity level */
|
|
60
|
+
dataSensitivity: DataSensitivity;
|
|
61
|
+
/** Whether the action is reversible */
|
|
62
|
+
reversibility: Reversibility;
|
|
63
|
+
/** Estimated magnitude/impact (for risk calculation) */
|
|
64
|
+
magnitude?: number;
|
|
65
|
+
/** Additional context */
|
|
66
|
+
context?: Record<string, unknown>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Result of pre-action gate verification
|
|
70
|
+
*/
|
|
71
|
+
export interface GateVerificationResult {
|
|
72
|
+
/** Status of the verification */
|
|
73
|
+
status: GateStatus;
|
|
74
|
+
/** Calculated risk level */
|
|
75
|
+
riskLevel: RiskLevel;
|
|
76
|
+
/** Required trust threshold */
|
|
77
|
+
requiredTrust: number;
|
|
78
|
+
/** Agent's current trust score */
|
|
79
|
+
currentTrust: number;
|
|
80
|
+
/** Trust deficit (how much more trust needed) */
|
|
81
|
+
trustDeficit: number;
|
|
82
|
+
/** Whether action passed the gate */
|
|
83
|
+
passed: boolean;
|
|
84
|
+
/** Human-readable reasoning */
|
|
85
|
+
reasoning: string[];
|
|
86
|
+
/** If pending, what's needed to proceed */
|
|
87
|
+
requirements?: GateRequirement[];
|
|
88
|
+
/** When the verification was performed */
|
|
89
|
+
verifiedAt: Date;
|
|
90
|
+
/** Verification expires at (must re-verify after) */
|
|
91
|
+
expiresAt: Date;
|
|
92
|
+
/** Unique verification ID for tracking */
|
|
93
|
+
verificationId: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Requirement to proceed when pending
|
|
97
|
+
*/
|
|
98
|
+
export interface GateRequirement {
|
|
99
|
+
/** Type of requirement */
|
|
100
|
+
type: 'MULTI_PROVER_VERIFICATION' | 'HUMAN_APPROVAL' | 'ADDITIONAL_TRUST';
|
|
101
|
+
/** Description of what's needed */
|
|
102
|
+
description: string;
|
|
103
|
+
/** Who needs to fulfill this */
|
|
104
|
+
fulfiller?: string;
|
|
105
|
+
/** Timeout for this requirement */
|
|
106
|
+
timeoutMs?: number;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Configuration for the pre-action gate
|
|
110
|
+
*/
|
|
111
|
+
export interface PreActionGateConfig {
|
|
112
|
+
/** Custom trust thresholds (override defaults) */
|
|
113
|
+
trustThresholds?: Partial<Record<RiskLevel, number>>;
|
|
114
|
+
/**
|
|
115
|
+
* Risk level that requires multi-prover verification
|
|
116
|
+
* Default: HIGH
|
|
117
|
+
*/
|
|
118
|
+
verificationThreshold: RiskLevel;
|
|
119
|
+
/**
|
|
120
|
+
* Risk level that requires human approval
|
|
121
|
+
* Default: CRITICAL
|
|
122
|
+
*/
|
|
123
|
+
humanApprovalThreshold: RiskLevel;
|
|
124
|
+
/**
|
|
125
|
+
* Verification validity period (ms)
|
|
126
|
+
* Default: 5 minutes
|
|
127
|
+
*/
|
|
128
|
+
verificationValidityMs: number;
|
|
129
|
+
/**
|
|
130
|
+
* Whether to allow pending states or just approve/reject
|
|
131
|
+
* Default: true
|
|
132
|
+
*/
|
|
133
|
+
allowPendingStates: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Risk multipliers for specific action types
|
|
136
|
+
*/
|
|
137
|
+
actionTypeRiskMultipliers?: Partial<Record<ActionType, number>>;
|
|
138
|
+
/**
|
|
139
|
+
* Risk multipliers for data sensitivity
|
|
140
|
+
*/
|
|
141
|
+
dataSensitivityRiskMultipliers?: Partial<Record<DataSensitivity, number>>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Default pre-action gate configuration per ATSF v2.0
|
|
145
|
+
*/
|
|
146
|
+
export declare const DEFAULT_GATE_CONFIG: PreActionGateConfig;
|
|
147
|
+
/**
|
|
148
|
+
* Action risk factors for classification
|
|
149
|
+
*/
|
|
150
|
+
export interface ActionRiskFactors {
|
|
151
|
+
/** Base action type risk */
|
|
152
|
+
actionTypeRisk: number;
|
|
153
|
+
/** Data sensitivity risk */
|
|
154
|
+
dataSensitivityRisk: number;
|
|
155
|
+
/** Reversibility risk (irreversible = higher) */
|
|
156
|
+
reversibilityRisk: number;
|
|
157
|
+
/** Magnitude/impact risk */
|
|
158
|
+
magnitudeRisk: number;
|
|
159
|
+
/** Combined risk score (0-100) */
|
|
160
|
+
combinedScore: number;
|
|
161
|
+
/** Resulting risk level */
|
|
162
|
+
riskLevel: RiskLevel;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Gate event for audit trail
|
|
166
|
+
*/
|
|
167
|
+
export interface GateEvent {
|
|
168
|
+
/** Event type */
|
|
169
|
+
type: 'GATE_CHECK' | 'GATE_APPROVED' | 'GATE_REJECTED' | 'GATE_PENDING';
|
|
170
|
+
/** Agent involved */
|
|
171
|
+
agentId: string;
|
|
172
|
+
/** Action that was checked */
|
|
173
|
+
action: string;
|
|
174
|
+
/** Risk level determined */
|
|
175
|
+
riskLevel: RiskLevel;
|
|
176
|
+
/** Trust score at time of check */
|
|
177
|
+
trustScore: number;
|
|
178
|
+
/** Whether the check passed */
|
|
179
|
+
passed: boolean;
|
|
180
|
+
/** Timestamp */
|
|
181
|
+
timestamp: Date;
|
|
182
|
+
/** Verification ID */
|
|
183
|
+
verificationId: string;
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=pre-action-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pre-action-gate.d.ts","sourceRoot":"","sources":["../../src/v2/pre-action-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-Action Verification Gate Types - ATSF v2.0 Section 4.4
|
|
3
|
+
*
|
|
4
|
+
* Per ATSF v2.0: "Trust score gates CAPABILITY, not just post-hoc scoring"
|
|
5
|
+
*
|
|
6
|
+
* Key insight: At the moment of a "Treacherous Turn," an agent's trust
|
|
7
|
+
* is maximal because trust is updated AFTER action. Pre-action gating
|
|
8
|
+
* prevents high-risk actions by low-trust agents BEFORE execution.
|
|
9
|
+
*
|
|
10
|
+
* Trust must be earned through demonstrated success on low-risk actions first.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Risk levels for action classification
|
|
14
|
+
* Per ATSF v2.0 Section 4.4
|
|
15
|
+
*/
|
|
16
|
+
export var RiskLevel;
|
|
17
|
+
(function (RiskLevel) {
|
|
18
|
+
/** Read-only operations - anyone can do */
|
|
19
|
+
RiskLevel["READ"] = "READ";
|
|
20
|
+
/** Low-risk modifications */
|
|
21
|
+
RiskLevel["LOW"] = "LOW";
|
|
22
|
+
/** Medium-risk operations */
|
|
23
|
+
RiskLevel["MEDIUM"] = "MEDIUM";
|
|
24
|
+
/** High-risk operations - requires verification */
|
|
25
|
+
RiskLevel["HIGH"] = "HIGH";
|
|
26
|
+
/** Critical operations - requires human approval */
|
|
27
|
+
RiskLevel["CRITICAL"] = "CRITICAL";
|
|
28
|
+
})(RiskLevel || (RiskLevel = {}));
|
|
29
|
+
/**
|
|
30
|
+
* Trust thresholds per risk level
|
|
31
|
+
* Per ATSF v2.0 Section 4.4
|
|
32
|
+
*/
|
|
33
|
+
export const TRUST_THRESHOLDS = {
|
|
34
|
+
[RiskLevel.READ]: 0.0, // Anyone can read
|
|
35
|
+
[RiskLevel.LOW]: 20, // Minimal trust required (0.2 * 100)
|
|
36
|
+
[RiskLevel.MEDIUM]: 40, // Moderate trust required (0.4 * 100)
|
|
37
|
+
[RiskLevel.HIGH]: 60, // Significant trust required (0.6 * 100)
|
|
38
|
+
[RiskLevel.CRITICAL]: 80, // Maximum trust + human approval (0.8 * 100)
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Gate decision status
|
|
42
|
+
*/
|
|
43
|
+
export var GateStatus;
|
|
44
|
+
(function (GateStatus) {
|
|
45
|
+
/** Action approved - proceed with execution */
|
|
46
|
+
GateStatus["APPROVED"] = "APPROVED";
|
|
47
|
+
/** Action rejected - trust below threshold */
|
|
48
|
+
GateStatus["REJECTED"] = "REJECTED";
|
|
49
|
+
/** Action pending - requires additional verification */
|
|
50
|
+
GateStatus["PENDING_VERIFICATION"] = "PENDING_VERIFICATION";
|
|
51
|
+
/** Action pending - requires human approval */
|
|
52
|
+
GateStatus["PENDING_HUMAN_APPROVAL"] = "PENDING_HUMAN_APPROVAL";
|
|
53
|
+
})(GateStatus || (GateStatus = {}));
|
|
54
|
+
/**
|
|
55
|
+
* Default pre-action gate configuration per ATSF v2.0
|
|
56
|
+
*/
|
|
57
|
+
export const DEFAULT_GATE_CONFIG = {
|
|
58
|
+
trustThresholds: TRUST_THRESHOLDS,
|
|
59
|
+
verificationThreshold: RiskLevel.HIGH,
|
|
60
|
+
humanApprovalThreshold: RiskLevel.CRITICAL,
|
|
61
|
+
verificationValidityMs: 5 * 60 * 1000, // 5 minutes
|
|
62
|
+
allowPendingStates: true,
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=pre-action-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pre-action-gate.js","sourceRoot":"","sources":["../../src/v2/pre-action-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;GAGG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,2CAA2C;IAC3C,0BAAa,CAAA;IACb,6BAA6B;IAC7B,wBAAW,CAAA;IACX,6BAA6B;IAC7B,8BAAiB,CAAA;IACjB,mDAAmD;IACnD,0BAAa,CAAA;IACb,oDAAoD;IACpD,kCAAqB,CAAA;AACvB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAO,kBAAkB;IAC9C,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAS,qCAAqC;IACjE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAM,sCAAsC;IAClE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAQ,yCAAyC;IACrE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAI,6CAA6C;CAC1E,CAAC;AAEF;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,+CAA+C;IAC/C,mCAAqB,CAAA;IACrB,8CAA8C;IAC9C,mCAAqB,CAAA;IACrB,wDAAwD;IACxD,2DAA6C,CAAA;IAC7C,+CAA+C;IAC/C,+DAAiD,CAAA;AACnD,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAsGD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,eAAe,EAAE,gBAAgB;IACjC,qBAAqB,EAAE,SAAS,CAAC,IAAI;IACrC,sBAAsB,EAAE,SAAS,CAAC,QAAQ;IAC1C,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;IACnD,kBAAkB,EAAE,IAAI;CACzB,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proof Event types - immutable audit trail entries
|
|
3
|
+
*/
|
|
4
|
+
import type { ProofEventType } from './enums.js';
|
|
5
|
+
/**
|
|
6
|
+
* Shadow mode status for events from sandbox/testnet environments
|
|
7
|
+
*
|
|
8
|
+
* Shadow mode events are recorded but don't count toward production
|
|
9
|
+
* trust scores until verified by HITL review.
|
|
10
|
+
*/
|
|
11
|
+
export type ShadowModeStatus = 'production' | 'shadow' | 'testnet' | 'verified' | 'rejected';
|
|
12
|
+
/**
|
|
13
|
+
* Proof event - an immutable record in the audit trail
|
|
14
|
+
*
|
|
15
|
+
* Events form a hash chain for tamper detection.
|
|
16
|
+
* Once created, events cannot be modified or deleted.
|
|
17
|
+
*/
|
|
18
|
+
export interface ProofEvent {
|
|
19
|
+
/** Unique event identifier */
|
|
20
|
+
eventId: string;
|
|
21
|
+
/** Type of event */
|
|
22
|
+
eventType: ProofEventType;
|
|
23
|
+
/** Correlation ID for end-to-end tracing */
|
|
24
|
+
correlationId: string;
|
|
25
|
+
/** Agent involved (if applicable) */
|
|
26
|
+
agentId?: string;
|
|
27
|
+
/** Event payload (type varies by eventType) */
|
|
28
|
+
payload: ProofEventPayload;
|
|
29
|
+
/** Hash of the previous event in chain */
|
|
30
|
+
previousHash: string | null;
|
|
31
|
+
/** SHA-256 hash of this event */
|
|
32
|
+
eventHash: string;
|
|
33
|
+
/** When the event occurred */
|
|
34
|
+
occurredAt: Date;
|
|
35
|
+
/** When the event was recorded (may differ from occurred) */
|
|
36
|
+
recordedAt: Date;
|
|
37
|
+
/** Who/what signed this event */
|
|
38
|
+
signedBy?: string;
|
|
39
|
+
/** Digital signature */
|
|
40
|
+
signature?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Shadow mode status for sandbox/testnet events
|
|
43
|
+
*
|
|
44
|
+
* Events from T0_SANDBOX agents are automatically tagged as 'shadow'
|
|
45
|
+
* and require HITL verification before counting toward trust scores.
|
|
46
|
+
* This solves the chicken-and-egg problem of validating sandbox behavior.
|
|
47
|
+
*
|
|
48
|
+
* @default 'production'
|
|
49
|
+
*/
|
|
50
|
+
shadowMode?: ShadowModeStatus;
|
|
51
|
+
/**
|
|
52
|
+
* ID of the HITL review that verified/rejected this shadow event
|
|
53
|
+
* Set when shadowMode transitions from 'shadow' to 'verified' or 'rejected'
|
|
54
|
+
*/
|
|
55
|
+
verificationId?: string;
|
|
56
|
+
/**
|
|
57
|
+
* When the shadow event was verified/rejected
|
|
58
|
+
*/
|
|
59
|
+
verifiedAt?: Date;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Union type for event payloads based on event type
|
|
63
|
+
*/
|
|
64
|
+
export type ProofEventPayload = IntentReceivedPayload | DecisionMadePayload | TrustDeltaPayload | ExecutionStartedPayload | ExecutionCompletedPayload | ExecutionFailedPayload | IncidentDetectedPayload | RollbackInitiatedPayload | ComponentRegisteredPayload | ComponentUpdatedPayload | GenericPayload;
|
|
65
|
+
/** Intent received payload */
|
|
66
|
+
export interface IntentReceivedPayload {
|
|
67
|
+
type: 'intent_received';
|
|
68
|
+
intentId: string;
|
|
69
|
+
action: string;
|
|
70
|
+
actionType: string;
|
|
71
|
+
resourceScope: string[];
|
|
72
|
+
}
|
|
73
|
+
/** Decision made payload */
|
|
74
|
+
export interface DecisionMadePayload {
|
|
75
|
+
type: 'decision_made';
|
|
76
|
+
decisionId: string;
|
|
77
|
+
intentId: string;
|
|
78
|
+
permitted: boolean;
|
|
79
|
+
trustBand: string;
|
|
80
|
+
trustScore: number;
|
|
81
|
+
reasoning: string[];
|
|
82
|
+
}
|
|
83
|
+
/** Trust delta payload */
|
|
84
|
+
export interface TrustDeltaPayload {
|
|
85
|
+
type: 'trust_delta';
|
|
86
|
+
deltaId: string;
|
|
87
|
+
previousScore: number;
|
|
88
|
+
newScore: number;
|
|
89
|
+
previousBand: string;
|
|
90
|
+
newBand: string;
|
|
91
|
+
reason: string;
|
|
92
|
+
}
|
|
93
|
+
/** Execution started payload */
|
|
94
|
+
export interface ExecutionStartedPayload {
|
|
95
|
+
type: 'execution_started';
|
|
96
|
+
executionId: string;
|
|
97
|
+
actionId: string;
|
|
98
|
+
decisionId: string;
|
|
99
|
+
adapterId: string;
|
|
100
|
+
}
|
|
101
|
+
/** Execution completed payload */
|
|
102
|
+
export interface ExecutionCompletedPayload {
|
|
103
|
+
type: 'execution_completed';
|
|
104
|
+
executionId: string;
|
|
105
|
+
actionId: string;
|
|
106
|
+
status: 'success' | 'partial';
|
|
107
|
+
durationMs: number;
|
|
108
|
+
outputHash: string;
|
|
109
|
+
}
|
|
110
|
+
/** Execution failed payload */
|
|
111
|
+
export interface ExecutionFailedPayload {
|
|
112
|
+
type: 'execution_failed';
|
|
113
|
+
executionId: string;
|
|
114
|
+
actionId: string;
|
|
115
|
+
error: string;
|
|
116
|
+
durationMs: number;
|
|
117
|
+
retryable: boolean;
|
|
118
|
+
}
|
|
119
|
+
/** Incident detected payload */
|
|
120
|
+
export interface IncidentDetectedPayload {
|
|
121
|
+
type: 'incident_detected';
|
|
122
|
+
incidentId: string;
|
|
123
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
124
|
+
description: string;
|
|
125
|
+
affectedResources: string[];
|
|
126
|
+
}
|
|
127
|
+
/** Rollback initiated payload */
|
|
128
|
+
export interface RollbackInitiatedPayload {
|
|
129
|
+
type: 'rollback_initiated';
|
|
130
|
+
rollbackId: string;
|
|
131
|
+
executionId: string;
|
|
132
|
+
reason: string;
|
|
133
|
+
initiatedBy: string;
|
|
134
|
+
}
|
|
135
|
+
/** Component registered payload */
|
|
136
|
+
export interface ComponentRegisteredPayload {
|
|
137
|
+
type: 'component_registered';
|
|
138
|
+
componentId: string;
|
|
139
|
+
componentType: string;
|
|
140
|
+
name: string;
|
|
141
|
+
version: string;
|
|
142
|
+
}
|
|
143
|
+
/** Component updated payload */
|
|
144
|
+
export interface ComponentUpdatedPayload {
|
|
145
|
+
type: 'component_updated';
|
|
146
|
+
componentId: string;
|
|
147
|
+
changes: string[];
|
|
148
|
+
previousVersion?: string;
|
|
149
|
+
newVersion?: string;
|
|
150
|
+
}
|
|
151
|
+
/** Generic payload for extensibility */
|
|
152
|
+
export interface GenericPayload {
|
|
153
|
+
type: string;
|
|
154
|
+
[key: string]: unknown;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Filter for querying proof events
|
|
158
|
+
*/
|
|
159
|
+
export interface ProofEventFilter {
|
|
160
|
+
correlationId?: string;
|
|
161
|
+
agentId?: string;
|
|
162
|
+
eventTypes?: ProofEventType[];
|
|
163
|
+
from?: Date;
|
|
164
|
+
to?: Date;
|
|
165
|
+
limit?: number;
|
|
166
|
+
offset?: number;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Result of chain verification
|
|
170
|
+
*/
|
|
171
|
+
export interface ChainVerificationResult {
|
|
172
|
+
valid: boolean;
|
|
173
|
+
verifiedEvents: number;
|
|
174
|
+
firstEventId: string;
|
|
175
|
+
lastEventId: string;
|
|
176
|
+
brokenAt?: string;
|
|
177
|
+
error?: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Request to log a new proof event
|
|
181
|
+
*/
|
|
182
|
+
export interface LogProofEventRequest {
|
|
183
|
+
eventType: ProofEventType;
|
|
184
|
+
correlationId: string;
|
|
185
|
+
agentId?: string;
|
|
186
|
+
payload: ProofEventPayload;
|
|
187
|
+
occurredAt?: Date;
|
|
188
|
+
signedBy?: string;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Proof event summary for listings
|
|
192
|
+
*/
|
|
193
|
+
export interface ProofEventSummary {
|
|
194
|
+
eventId: string;
|
|
195
|
+
eventType: ProofEventType;
|
|
196
|
+
correlationId: string;
|
|
197
|
+
agentId?: string;
|
|
198
|
+
occurredAt: Date;
|
|
199
|
+
recordedAt: Date;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=proof-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-event.d.ts","sourceRoot":"","sources":["../../src/v2/proof-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof-event.js","sourceRoot":"","sources":["../../src/v2/proof-event.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|