@vorionsys/atsf-core 0.2.0 → 0.2.2

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.
Files changed (215) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/LICENSE +190 -0
  3. package/README.md +305 -181
  4. package/dist/api/server.d.ts.map +1 -1
  5. package/dist/api/server.js +86 -4
  6. package/dist/api/server.js.map +1 -1
  7. package/dist/basis/parser.d.ts +210 -210
  8. package/dist/basis/parser.js.map +1 -1
  9. package/dist/chain/index.d.ts +147 -0
  10. package/dist/chain/index.d.ts.map +1 -0
  11. package/dist/chain/index.js +219 -0
  12. package/dist/chain/index.js.map +1 -0
  13. package/dist/common/adapters.d.ts +9 -9
  14. package/dist/common/adapters.d.ts.map +1 -1
  15. package/dist/common/adapters.js +6 -6
  16. package/dist/common/config.d.ts +152 -152
  17. package/dist/common/types.d.ts +35 -15
  18. package/dist/common/types.d.ts.map +1 -1
  19. package/dist/common/types.js.map +1 -1
  20. package/dist/enforce/index.d.ts +226 -16
  21. package/dist/enforce/index.d.ts.map +1 -1
  22. package/dist/enforce/index.js +196 -49
  23. package/dist/enforce/index.js.map +1 -1
  24. package/dist/governance/index.d.ts +2 -0
  25. package/dist/governance/index.d.ts.map +1 -1
  26. package/dist/governance/index.js +1 -0
  27. package/dist/governance/index.js.map +1 -1
  28. package/dist/governance/proof-bridge.d.ts +86 -0
  29. package/dist/governance/proof-bridge.d.ts.map +1 -0
  30. package/dist/governance/proof-bridge.js +139 -0
  31. package/dist/governance/proof-bridge.js.map +1 -0
  32. package/dist/index.d.ts +11 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +17 -4
  35. package/dist/index.js.map +1 -1
  36. package/dist/intent/index.d.ts +127 -10
  37. package/dist/intent/index.d.ts.map +1 -1
  38. package/dist/intent/index.js +121 -16
  39. package/dist/intent/index.js.map +1 -1
  40. package/dist/langchain/executor.d.ts +19 -5
  41. package/dist/langchain/executor.d.ts.map +1 -1
  42. package/dist/langchain/executor.js +287 -36
  43. package/dist/langchain/executor.js.map +1 -1
  44. package/dist/langchain/index.d.ts +2 -1
  45. package/dist/langchain/index.d.ts.map +1 -1
  46. package/dist/langchain/index.js +3 -1
  47. package/dist/langchain/index.js.map +1 -1
  48. package/dist/langchain/tools.d.ts.map +1 -1
  49. package/dist/langchain/tools.js +2 -1
  50. package/dist/langchain/tools.js.map +1 -1
  51. package/dist/langchain/types.d.ts +41 -0
  52. package/dist/langchain/types.d.ts.map +1 -1
  53. package/dist/layers/index.d.ts +1 -1
  54. package/dist/layers/index.d.ts.map +1 -1
  55. package/dist/persistence/file.d.ts +35 -3
  56. package/dist/persistence/file.d.ts.map +1 -1
  57. package/dist/persistence/file.js +138 -11
  58. package/dist/persistence/file.js.map +1 -1
  59. package/dist/persistence/index.d.ts +10 -1
  60. package/dist/persistence/index.d.ts.map +1 -1
  61. package/dist/persistence/index.js +15 -1
  62. package/dist/persistence/index.js.map +1 -1
  63. package/dist/persistence/sqlite.d.ts +135 -0
  64. package/dist/persistence/sqlite.d.ts.map +1 -0
  65. package/dist/persistence/sqlite.js +372 -0
  66. package/dist/persistence/sqlite.js.map +1 -0
  67. package/dist/phase6/ceiling.d.ts +177 -0
  68. package/dist/phase6/ceiling.d.ts.map +1 -0
  69. package/dist/phase6/ceiling.js +463 -0
  70. package/dist/phase6/ceiling.js.map +1 -0
  71. package/dist/phase6/context.d.ts +207 -0
  72. package/dist/phase6/context.d.ts.map +1 -0
  73. package/dist/phase6/context.js +603 -0
  74. package/dist/phase6/context.js.map +1 -0
  75. package/dist/phase6/index.d.ts +79 -0
  76. package/dist/phase6/index.d.ts.map +1 -0
  77. package/dist/phase6/index.js +152 -0
  78. package/dist/phase6/index.js.map +1 -0
  79. package/dist/phase6/presets.d.ts +148 -0
  80. package/dist/phase6/presets.d.ts.map +1 -0
  81. package/dist/phase6/presets.js +467 -0
  82. package/dist/phase6/presets.js.map +1 -0
  83. package/dist/phase6/provenance.d.ts +148 -0
  84. package/dist/phase6/provenance.d.ts.map +1 -0
  85. package/dist/phase6/provenance.js +545 -0
  86. package/dist/phase6/provenance.js.map +1 -0
  87. package/dist/phase6/role-gates/index.d.ts +7 -0
  88. package/dist/phase6/role-gates/index.d.ts.map +1 -0
  89. package/dist/phase6/role-gates/index.js +7 -0
  90. package/dist/phase6/role-gates/index.js.map +1 -0
  91. package/dist/phase6/role-gates/kernel.d.ts +84 -0
  92. package/dist/phase6/role-gates/kernel.d.ts.map +1 -0
  93. package/dist/phase6/role-gates/kernel.js +258 -0
  94. package/dist/phase6/role-gates/kernel.js.map +1 -0
  95. package/dist/phase6/role-gates/policy.d.ts +110 -0
  96. package/dist/phase6/role-gates/policy.d.ts.map +1 -0
  97. package/dist/phase6/role-gates/policy.js +157 -0
  98. package/dist/phase6/role-gates/policy.js.map +1 -0
  99. package/dist/phase6/role-gates.d.ts +164 -0
  100. package/dist/phase6/role-gates.d.ts.map +1 -0
  101. package/dist/phase6/role-gates.js +536 -0
  102. package/dist/phase6/role-gates.js.map +1 -0
  103. package/dist/phase6/types.d.ts +1829 -0
  104. package/dist/phase6/types.d.ts.map +1 -0
  105. package/dist/phase6/types.js +452 -0
  106. package/dist/phase6/types.js.map +1 -0
  107. package/dist/phase6/weight-presets/canonical.d.ts +93 -0
  108. package/dist/phase6/weight-presets/canonical.d.ts.map +1 -0
  109. package/dist/phase6/weight-presets/canonical.js +122 -0
  110. package/dist/phase6/weight-presets/canonical.js.map +1 -0
  111. package/dist/phase6/weight-presets/deltas.d.ts +144 -0
  112. package/dist/phase6/weight-presets/deltas.d.ts.map +1 -0
  113. package/dist/phase6/weight-presets/deltas.js +184 -0
  114. package/dist/phase6/weight-presets/deltas.js.map +1 -0
  115. package/dist/phase6/weight-presets/index.d.ts +8 -0
  116. package/dist/phase6/weight-presets/index.d.ts.map +1 -0
  117. package/dist/phase6/weight-presets/index.js +8 -0
  118. package/dist/phase6/weight-presets/index.js.map +1 -0
  119. package/dist/phase6/weight-presets/merger.d.ts +79 -0
  120. package/dist/phase6/weight-presets/merger.d.ts.map +1 -0
  121. package/dist/phase6/weight-presets/merger.js +161 -0
  122. package/dist/phase6/weight-presets/merger.js.map +1 -0
  123. package/dist/proof/index.d.ts +6 -0
  124. package/dist/proof/index.d.ts.map +1 -1
  125. package/dist/proof/index.js +56 -6
  126. package/dist/proof/index.js.map +1 -1
  127. package/dist/proof/merkle.d.ts +195 -0
  128. package/dist/proof/merkle.d.ts.map +1 -0
  129. package/dist/proof/merkle.js +412 -0
  130. package/dist/proof/merkle.js.map +1 -0
  131. package/dist/proof/zk-proofs.d.ts +218 -0
  132. package/dist/proof/zk-proofs.d.ts.map +1 -0
  133. package/dist/proof/zk-proofs.js +531 -0
  134. package/dist/proof/zk-proofs.js.map +1 -0
  135. package/dist/sandbox-training/challenges.d.ts +16 -0
  136. package/dist/sandbox-training/challenges.d.ts.map +1 -0
  137. package/dist/sandbox-training/challenges.js +561 -0
  138. package/dist/sandbox-training/challenges.js.map +1 -0
  139. package/dist/sandbox-training/graduation.d.ts +25 -0
  140. package/dist/sandbox-training/graduation.d.ts.map +1 -0
  141. package/dist/sandbox-training/graduation.js +143 -0
  142. package/dist/sandbox-training/graduation.js.map +1 -0
  143. package/dist/sandbox-training/index.d.ts +19 -0
  144. package/dist/sandbox-training/index.d.ts.map +1 -0
  145. package/dist/sandbox-training/index.js +22 -0
  146. package/dist/sandbox-training/index.js.map +1 -0
  147. package/dist/sandbox-training/promotion-service.d.ts +76 -0
  148. package/dist/sandbox-training/promotion-service.d.ts.map +1 -0
  149. package/dist/sandbox-training/promotion-service.js +117 -0
  150. package/dist/sandbox-training/promotion-service.js.map +1 -0
  151. package/dist/sandbox-training/runner.d.ts +58 -0
  152. package/dist/sandbox-training/runner.d.ts.map +1 -0
  153. package/dist/sandbox-training/runner.js +388 -0
  154. package/dist/sandbox-training/runner.js.map +1 -0
  155. package/dist/sandbox-training/scorer.d.ts +40 -0
  156. package/dist/sandbox-training/scorer.d.ts.map +1 -0
  157. package/dist/sandbox-training/scorer.js +79 -0
  158. package/dist/sandbox-training/scorer.js.map +1 -0
  159. package/dist/sandbox-training/types.d.ts +162 -0
  160. package/dist/sandbox-training/types.d.ts.map +1 -0
  161. package/dist/sandbox-training/types.js +32 -0
  162. package/dist/sandbox-training/types.js.map +1 -0
  163. package/dist/trust-engine/ceiling-enforcement/audit.d.ts +98 -0
  164. package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -0
  165. package/dist/trust-engine/ceiling-enforcement/audit.js +160 -0
  166. package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -0
  167. package/dist/trust-engine/ceiling-enforcement/index.d.ts +6 -0
  168. package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -0
  169. package/dist/trust-engine/ceiling-enforcement/index.js +6 -0
  170. package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -0
  171. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +112 -0
  172. package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -0
  173. package/dist/trust-engine/ceiling-enforcement/kernel.js +158 -0
  174. package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -0
  175. package/dist/trust-engine/context-policy/enforcement.d.ts +62 -0
  176. package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -0
  177. package/dist/trust-engine/context-policy/enforcement.js +104 -0
  178. package/dist/trust-engine/context-policy/enforcement.js.map +1 -0
  179. package/dist/trust-engine/context-policy/factory.d.ts +75 -0
  180. package/dist/trust-engine/context-policy/factory.d.ts.map +1 -0
  181. package/dist/trust-engine/context-policy/factory.js +130 -0
  182. package/dist/trust-engine/context-policy/factory.js.map +1 -0
  183. package/dist/trust-engine/context-policy/index.d.ts +6 -0
  184. package/dist/trust-engine/context-policy/index.d.ts.map +1 -0
  185. package/dist/trust-engine/context-policy/index.js +6 -0
  186. package/dist/trust-engine/context-policy/index.js.map +1 -0
  187. package/dist/trust-engine/creation-modifiers/index.d.ts +5 -0
  188. package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -0
  189. package/dist/trust-engine/creation-modifiers/index.js +5 -0
  190. package/dist/trust-engine/creation-modifiers/index.js.map +1 -0
  191. package/dist/trust-engine/creation-modifiers/types.d.ts +112 -0
  192. package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -0
  193. package/dist/trust-engine/creation-modifiers/types.js +166 -0
  194. package/dist/trust-engine/creation-modifiers/types.js.map +1 -0
  195. package/dist/trust-engine/index.d.ts +54 -1
  196. package/dist/trust-engine/index.d.ts.map +1 -1
  197. package/dist/trust-engine/index.js +118 -1
  198. package/dist/trust-engine/index.js.map +1 -1
  199. package/dist/trust-engine/phase6-types.d.ts +123 -0
  200. package/dist/trust-engine/phase6-types.d.ts.map +1 -0
  201. package/dist/trust-engine/phase6-types.js +88 -0
  202. package/dist/trust-engine/phase6-types.js.map +1 -0
  203. package/package.json +42 -12
  204. package/dist/audit/key-manager.d.ts +0 -118
  205. package/dist/audit/key-manager.d.ts.map +0 -1
  206. package/dist/audit/key-manager.js +0 -565
  207. package/dist/audit/key-manager.js.map +0 -1
  208. package/dist/carbon-aware/carbon-metrics.d.ts +0 -151
  209. package/dist/carbon-aware/carbon-metrics.d.ts.map +0 -1
  210. package/dist/carbon-aware/carbon-metrics.js +0 -370
  211. package/dist/carbon-aware/carbon-metrics.js.map +0 -1
  212. package/dist/carbon-aware/carbon-router.d.ts +0 -101
  213. package/dist/carbon-aware/carbon-router.d.ts.map +0 -1
  214. package/dist/carbon-aware/carbon-router.js +0 -400
  215. package/dist/carbon-aware/carbon-router.js.map +0 -1
@@ -0,0 +1,545 @@
1
+ /**
2
+ * Q5: Provenance Capture + Policy Interpretation
3
+ *
4
+ * Separates immutable provenance (what) from mutable policy (how to interpret):
5
+ * - AgentProvenance: IMMUTABLE - captured at instantiation
6
+ * - CreationModifierPolicy: MUTABLE - can evolve independently
7
+ *
8
+ * Key Features:
9
+ * - Tamper-proof provenance records
10
+ * - Policy versioning with supersession chains
11
+ * - Condition-based modifier evaluation
12
+ * - Full audit trail for regulator review
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ import { createLogger } from '../common/logger.js';
17
+ import { CreationType, agentProvenanceSchema, creationModifierPolicySchema, modifierEvaluationRecordSchema, } from './types.js';
18
+ const logger = createLogger({ component: 'phase6:provenance' });
19
+ // =============================================================================
20
+ // HASH UTILITIES
21
+ // =============================================================================
22
+ /**
23
+ * Calculate SHA-256 hash
24
+ */
25
+ async function calculateHash(data) {
26
+ const encoder = new TextEncoder();
27
+ const dataBuffer = encoder.encode(data);
28
+ const hashBuffer = await crypto.subtle.digest('SHA-256', dataBuffer);
29
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
30
+ return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
31
+ }
32
+ /**
33
+ * Create immutable agent provenance record
34
+ * This captures the origin story of an agent and cannot be modified.
35
+ */
36
+ export async function createProvenance(input) {
37
+ // Validate parent chain for cloned/evolved/promoted
38
+ if (input.creationType === CreationType.CLONED ||
39
+ input.creationType === CreationType.EVOLVED ||
40
+ input.creationType === CreationType.PROMOTED) {
41
+ if (!input.parentAgentId || !input.parentProvenance) {
42
+ throw new Error(`${input.creationType} agents must have parent provenance`);
43
+ }
44
+ }
45
+ const now = new Date();
46
+ // Create hash data
47
+ const hashData = {
48
+ agentId: input.agentId,
49
+ creationType: input.creationType,
50
+ parentAgentId: input.parentAgentId,
51
+ parentProvenanceHash: input.parentProvenance?.provenanceHash,
52
+ createdAt: now.toISOString(),
53
+ createdBy: input.createdBy,
54
+ };
55
+ const provenanceHash = await calculateHash(JSON.stringify(hashData));
56
+ const provenance = {
57
+ agentId: input.agentId,
58
+ creationType: input.creationType,
59
+ parentAgentId: input.parentAgentId,
60
+ parentProvenanceHash: input.parentProvenance?.provenanceHash,
61
+ createdAt: now,
62
+ createdBy: input.createdBy,
63
+ provenanceHash,
64
+ };
65
+ // Validate with Zod
66
+ const parsed = agentProvenanceSchema.safeParse(provenance);
67
+ if (!parsed.success) {
68
+ throw new Error(`Invalid provenance: ${parsed.error.message}`);
69
+ }
70
+ logger.info({
71
+ agentId: provenance.agentId,
72
+ creationType: provenance.creationType,
73
+ parentAgentId: input.parentAgentId,
74
+ }, 'Provenance created (immutable)');
75
+ return Object.freeze(provenance);
76
+ }
77
+ /**
78
+ * Verify provenance integrity
79
+ */
80
+ export async function verifyProvenance(provenance) {
81
+ // Recalculate hash
82
+ const hashData = {
83
+ agentId: provenance.agentId,
84
+ creationType: provenance.creationType,
85
+ parentAgentId: provenance.parentAgentId,
86
+ parentProvenanceHash: provenance.parentProvenanceHash,
87
+ createdAt: provenance.createdAt.toISOString(),
88
+ createdBy: provenance.createdBy,
89
+ };
90
+ const expectedHash = await calculateHash(JSON.stringify(hashData));
91
+ if (provenance.provenanceHash !== expectedHash) {
92
+ return { valid: false, reason: 'Provenance hash mismatch - possible tampering' };
93
+ }
94
+ return { valid: true };
95
+ }
96
+ // =============================================================================
97
+ // CREATION MODIFIER POLICIES (MUTABLE)
98
+ // =============================================================================
99
+ /**
100
+ * Default modifiers per creation type
101
+ */
102
+ export const DEFAULT_CREATION_MODIFIERS = {
103
+ [CreationType.FRESH]: 0, // No modifier - baseline trust
104
+ [CreationType.CLONED]: -50, // Clone inherits parent concerns
105
+ [CreationType.EVOLVED]: 100, // Has verifiable history
106
+ [CreationType.PROMOTED]: 150, // Earned advancement
107
+ [CreationType.IMPORTED]: -100, // Unknown external provenance
108
+ };
109
+ /**
110
+ * Create a new creation modifier policy
111
+ */
112
+ export async function createModifierPolicy(input) {
113
+ const now = new Date();
114
+ const baselineModifier = input.baselineModifier ?? DEFAULT_CREATION_MODIFIERS[input.creationType];
115
+ const policyData = {
116
+ policyId: input.policyId,
117
+ creationType: input.creationType,
118
+ baselineModifier,
119
+ conditions: input.conditions,
120
+ effectiveFrom: input.effectiveFrom ?? now,
121
+ createdAt: now,
122
+ createdBy: input.createdBy,
123
+ supersedes: input.supersedes,
124
+ };
125
+ const policyHash = await calculateHash(JSON.stringify(policyData));
126
+ const policy = {
127
+ policyId: input.policyId,
128
+ version: 1,
129
+ creationType: input.creationType,
130
+ baselineModifier,
131
+ conditions: input.conditions,
132
+ effectiveFrom: input.effectiveFrom ?? now,
133
+ effectiveUntil: input.effectiveUntil,
134
+ createdAt: now,
135
+ createdBy: input.createdBy,
136
+ policyHash,
137
+ supersedes: input.supersedes,
138
+ };
139
+ // Validate with Zod
140
+ const parsed = creationModifierPolicySchema.safeParse(policy);
141
+ if (!parsed.success) {
142
+ throw new Error(`Invalid policy: ${parsed.error.message}`);
143
+ }
144
+ logger.info({
145
+ policyId: policy.policyId,
146
+ creationType: policy.creationType,
147
+ baselineModifier,
148
+ }, 'Modifier policy created');
149
+ return policy;
150
+ }
151
+ /**
152
+ * Create a new version of an existing policy
153
+ */
154
+ export async function updateModifierPolicy(existingPolicy, updates, updatedBy) {
155
+ const now = new Date();
156
+ const policyData = {
157
+ policyId: existingPolicy.policyId,
158
+ version: existingPolicy.version + 1,
159
+ creationType: existingPolicy.creationType,
160
+ baselineModifier: updates.baselineModifier ?? existingPolicy.baselineModifier,
161
+ conditions: updates.conditions ?? existingPolicy.conditions,
162
+ effectiveFrom: updates.effectiveFrom ?? now,
163
+ effectiveUntil: updates.effectiveUntil,
164
+ createdAt: now,
165
+ createdBy: updatedBy,
166
+ supersedes: existingPolicy.policyHash,
167
+ };
168
+ const policyHash = await calculateHash(JSON.stringify(policyData));
169
+ const newPolicy = {
170
+ ...policyData,
171
+ policyHash,
172
+ };
173
+ // Validate with Zod
174
+ const parsed = creationModifierPolicySchema.safeParse(newPolicy);
175
+ if (!parsed.success) {
176
+ throw new Error(`Invalid policy update: ${parsed.error.message}`);
177
+ }
178
+ logger.info({
179
+ policyId: newPolicy.policyId,
180
+ version: newPolicy.version,
181
+ supersedes: existingPolicy.policyHash,
182
+ }, 'Modifier policy updated');
183
+ return newPolicy;
184
+ }
185
+ /**
186
+ * Evaluate conditions against context
187
+ */
188
+ function evaluateConditions(conditions, context) {
189
+ if (!conditions) {
190
+ return { matches: true, matchedConditions: ['baseline'] };
191
+ }
192
+ const matchedConditions = [];
193
+ // Check parent creation type
194
+ if (conditions.parentCreationType !== undefined) {
195
+ if (context.parentProvenance?.creationType === conditions.parentCreationType) {
196
+ matchedConditions.push(`parentCreationType:${conditions.parentCreationType}`);
197
+ }
198
+ else {
199
+ return { matches: false, matchedConditions };
200
+ }
201
+ }
202
+ // Check parent trust score range
203
+ if (conditions.parentTrustScore !== undefined) {
204
+ if (context.parentTrustScore !== undefined) {
205
+ if (context.parentTrustScore >= conditions.parentTrustScore.min &&
206
+ context.parentTrustScore <= conditions.parentTrustScore.max) {
207
+ matchedConditions.push(`parentTrustScore:${conditions.parentTrustScore.min}-${conditions.parentTrustScore.max}`);
208
+ }
209
+ else {
210
+ return { matches: false, matchedConditions };
211
+ }
212
+ }
213
+ else {
214
+ return { matches: false, matchedConditions };
215
+ }
216
+ }
217
+ // Check trusted sources
218
+ if (conditions.trustedSources !== undefined && conditions.trustedSources.length > 0) {
219
+ if (context.organizationId && conditions.trustedSources.includes(context.organizationId)) {
220
+ matchedConditions.push(`trustedSource:${context.organizationId}`);
221
+ }
222
+ else {
223
+ return { matches: false, matchedConditions };
224
+ }
225
+ }
226
+ // Check required attestations
227
+ if (conditions.requiredAttestations !== undefined && conditions.requiredAttestations.length > 0) {
228
+ const hasAll = conditions.requiredAttestations.every((required) => context.attestations?.includes(required));
229
+ if (hasAll) {
230
+ matchedConditions.push(`attestations:${conditions.requiredAttestations.join(',')}`);
231
+ }
232
+ else {
233
+ return { matches: false, matchedConditions };
234
+ }
235
+ }
236
+ return { matches: matchedConditions.length > 0, matchedConditions };
237
+ }
238
+ /**
239
+ * Evaluate modifier for a provenance record
240
+ */
241
+ export async function evaluateModifier(context, policies) {
242
+ // Find applicable policy (matching creation type, currently effective)
243
+ const now = new Date();
244
+ const applicablePolicies = policies
245
+ .filter((p) => p.creationType === context.provenance.creationType)
246
+ .filter((p) => p.effectiveFrom <= now)
247
+ .filter((p) => !p.effectiveUntil || p.effectiveUntil > now)
248
+ .sort((a, b) => b.version - a.version); // Prefer latest version
249
+ if (applicablePolicies.length === 0) {
250
+ // Fall back to default modifier
251
+ const defaultModifier = DEFAULT_CREATION_MODIFIERS[context.provenance.creationType];
252
+ const hashData = {
253
+ agentId: context.provenance.agentId,
254
+ provenanceHash: context.provenance.provenanceHash,
255
+ computedModifier: defaultModifier,
256
+ evaluatedAt: now.toISOString(),
257
+ };
258
+ const record = {
259
+ evaluationId: crypto.randomUUID(),
260
+ agentId: context.provenance.agentId,
261
+ provenanceHash: context.provenance.provenanceHash,
262
+ policyId: 'default',
263
+ policyVersion: 0,
264
+ computedModifier: defaultModifier,
265
+ conditionsMatched: ['default'],
266
+ evaluatedAt: now,
267
+ evaluationHash: await calculateHash(JSON.stringify(hashData)),
268
+ };
269
+ return record;
270
+ }
271
+ // Use first matching policy
272
+ const policy = applicablePolicies[0];
273
+ const { matches, matchedConditions } = evaluateConditions(policy.conditions, context);
274
+ const computedModifier = matches ? policy.baselineModifier : 0;
275
+ const hashData = {
276
+ agentId: context.provenance.agentId,
277
+ provenanceHash: context.provenance.provenanceHash,
278
+ policyId: policy.policyId,
279
+ policyVersion: policy.version,
280
+ computedModifier,
281
+ conditionsMatched: matchedConditions,
282
+ evaluatedAt: now.toISOString(),
283
+ };
284
+ const record = {
285
+ evaluationId: crypto.randomUUID(),
286
+ agentId: context.provenance.agentId,
287
+ provenanceHash: context.provenance.provenanceHash,
288
+ policyId: policy.policyId,
289
+ policyVersion: policy.version,
290
+ computedModifier,
291
+ conditionsMatched: matchedConditions,
292
+ evaluatedAt: now,
293
+ evaluationHash: await calculateHash(JSON.stringify(hashData)),
294
+ };
295
+ // Validate with Zod
296
+ const parsed = modifierEvaluationRecordSchema.safeParse(record);
297
+ if (!parsed.success) {
298
+ throw new Error(`Invalid evaluation record: ${parsed.error.message}`);
299
+ }
300
+ logger.debug({
301
+ agentId: record.agentId,
302
+ policyId: record.policyId,
303
+ modifier: record.computedModifier,
304
+ }, 'Modifier evaluated');
305
+ return record;
306
+ }
307
+ // =============================================================================
308
+ // PROVENANCE SERVICE
309
+ // =============================================================================
310
+ /**
311
+ * Service for managing agent provenance and modifier policies
312
+ */
313
+ export class ProvenanceService {
314
+ provenances = new Map();
315
+ policies = new Map(); // policyId -> versions
316
+ evaluations = new Map(); // agentId -> evaluations
317
+ /**
318
+ * Create and register provenance for an agent
319
+ */
320
+ async createProvenance(input) {
321
+ // Validate parent if specified
322
+ if (input.parentAgentId) {
323
+ const parentProvenance = this.provenances.get(input.parentAgentId);
324
+ if (!parentProvenance) {
325
+ throw new Error(`Parent agent ${input.parentAgentId} not found`);
326
+ }
327
+ input.parentProvenance = parentProvenance;
328
+ }
329
+ const provenance = await createProvenance(input);
330
+ this.provenances.set(input.agentId, provenance);
331
+ return provenance;
332
+ }
333
+ /**
334
+ * Get provenance for an agent
335
+ */
336
+ getProvenance(agentId) {
337
+ return this.provenances.get(agentId);
338
+ }
339
+ /**
340
+ * Create a new modifier policy
341
+ */
342
+ async createPolicy(input) {
343
+ const policy = await createModifierPolicy(input);
344
+ const versions = this.policies.get(input.policyId) ?? [];
345
+ versions.push(policy);
346
+ this.policies.set(input.policyId, versions);
347
+ return policy;
348
+ }
349
+ /**
350
+ * Update an existing policy
351
+ */
352
+ async updatePolicy(policyId, updates, updatedBy) {
353
+ const versions = this.policies.get(policyId);
354
+ if (!versions || versions.length === 0) {
355
+ throw new Error(`Policy ${policyId} not found`);
356
+ }
357
+ const currentPolicy = versions[versions.length - 1];
358
+ const newPolicy = await updateModifierPolicy(currentPolicy, updates, updatedBy);
359
+ versions.push(newPolicy);
360
+ return newPolicy;
361
+ }
362
+ /**
363
+ * Get current version of a policy
364
+ */
365
+ getPolicy(policyId) {
366
+ const versions = this.policies.get(policyId);
367
+ return versions?.[versions.length - 1];
368
+ }
369
+ /**
370
+ * Get all policy versions
371
+ */
372
+ getPolicyVersions(policyId) {
373
+ return this.policies.get(policyId) ?? [];
374
+ }
375
+ /**
376
+ * Get all active policies
377
+ */
378
+ getActivePolicies() {
379
+ const now = new Date();
380
+ const active = [];
381
+ for (const versions of this.policies.values()) {
382
+ const current = versions[versions.length - 1];
383
+ if (current.effectiveFrom <= now && (!current.effectiveUntil || current.effectiveUntil > now)) {
384
+ active.push(current);
385
+ }
386
+ }
387
+ return active;
388
+ }
389
+ /**
390
+ * Evaluate modifier for an agent
391
+ */
392
+ async evaluateModifier(agentId) {
393
+ const provenance = this.provenances.get(agentId);
394
+ if (!provenance) {
395
+ throw new Error(`Agent ${agentId} not found`);
396
+ }
397
+ // Get parent provenance if exists
398
+ let parentProvenance;
399
+ if (provenance.parentAgentId) {
400
+ parentProvenance = this.provenances.get(provenance.parentAgentId);
401
+ }
402
+ const context = {
403
+ provenance,
404
+ parentProvenance,
405
+ };
406
+ const record = await evaluateModifier(context, this.getActivePolicies());
407
+ // Store evaluation
408
+ const agentEvaluations = this.evaluations.get(agentId) ?? [];
409
+ agentEvaluations.push(record);
410
+ this.evaluations.set(agentId, agentEvaluations);
411
+ return record;
412
+ }
413
+ /**
414
+ * Get evaluation history for an agent
415
+ */
416
+ getEvaluationHistory(agentId) {
417
+ return this.evaluations.get(agentId) ?? [];
418
+ }
419
+ /**
420
+ * Verify provenance chain for an agent
421
+ */
422
+ async verifyProvenanceChain(agentId) {
423
+ const chain = [];
424
+ const issues = [];
425
+ let currentId = agentId;
426
+ while (currentId) {
427
+ const provenance = this.provenances.get(currentId);
428
+ if (!provenance) {
429
+ issues.push(`Provenance for ${currentId} not found`);
430
+ break;
431
+ }
432
+ chain.push(currentId);
433
+ const result = await verifyProvenance(provenance);
434
+ if (!result.valid) {
435
+ issues.push(`${currentId}: ${result.reason}`);
436
+ }
437
+ currentId = provenance.parentAgentId;
438
+ }
439
+ return {
440
+ valid: issues.length === 0,
441
+ chain,
442
+ issues,
443
+ };
444
+ }
445
+ /**
446
+ * Get statistics
447
+ */
448
+ getStats() {
449
+ const byCreationType = {
450
+ [CreationType.FRESH]: 0,
451
+ [CreationType.CLONED]: 0,
452
+ [CreationType.EVOLVED]: 0,
453
+ [CreationType.PROMOTED]: 0,
454
+ [CreationType.IMPORTED]: 0,
455
+ };
456
+ for (const provenance of this.provenances.values()) {
457
+ byCreationType[provenance.creationType]++;
458
+ }
459
+ let evaluationCount = 0;
460
+ for (const evals of this.evaluations.values()) {
461
+ evaluationCount += evals.length;
462
+ }
463
+ return {
464
+ provenanceCount: this.provenances.size,
465
+ policyCount: this.policies.size,
466
+ evaluationCount,
467
+ byCreationType,
468
+ };
469
+ }
470
+ }
471
+ /**
472
+ * Create a new provenance service instance
473
+ */
474
+ export function createProvenanceService() {
475
+ return new ProvenanceService();
476
+ }
477
+ /**
478
+ * Initialize default modifier policies
479
+ */
480
+ export async function initializeDefaultPolicies(service) {
481
+ // Fresh agents - no modifier
482
+ await service.createPolicy({
483
+ policyId: 'default:fresh',
484
+ creationType: CreationType.FRESH,
485
+ baselineModifier: 0,
486
+ createdBy: 'system',
487
+ });
488
+ // Cloned agents - penalty for unknown inheritance
489
+ await service.createPolicy({
490
+ policyId: 'default:cloned',
491
+ creationType: CreationType.CLONED,
492
+ baselineModifier: -50,
493
+ conditions: {
494
+ parentTrustScore: { min: 0, max: 500 },
495
+ },
496
+ createdBy: 'system',
497
+ });
498
+ // Cloned from trusted parent - reduced penalty
499
+ await service.createPolicy({
500
+ policyId: 'trusted:cloned',
501
+ creationType: CreationType.CLONED,
502
+ baselineModifier: -20,
503
+ conditions: {
504
+ parentTrustScore: { min: 500, max: 1000 },
505
+ },
506
+ createdBy: 'system',
507
+ });
508
+ // Evolved agents - bonus for verifiable history
509
+ await service.createPolicy({
510
+ policyId: 'default:evolved',
511
+ creationType: CreationType.EVOLVED,
512
+ baselineModifier: 100,
513
+ createdBy: 'system',
514
+ });
515
+ // Promoted agents - significant bonus
516
+ await service.createPolicy({
517
+ policyId: 'default:promoted',
518
+ creationType: CreationType.PROMOTED,
519
+ baselineModifier: 150,
520
+ createdBy: 'system',
521
+ });
522
+ // Imported agents - penalty for unknown origin
523
+ await service.createPolicy({
524
+ policyId: 'default:imported',
525
+ creationType: CreationType.IMPORTED,
526
+ baselineModifier: -100,
527
+ createdBy: 'system',
528
+ });
529
+ // Imported from trusted source - reduced penalty
530
+ await service.createPolicy({
531
+ policyId: 'trusted:imported',
532
+ creationType: CreationType.IMPORTED,
533
+ baselineModifier: -30,
534
+ conditions: {
535
+ trustedSources: ['org:verified-partner', 'org:internal'],
536
+ },
537
+ createdBy: 'system',
538
+ });
539
+ logger.info('Default modifier policies initialized');
540
+ }
541
+ // =============================================================================
542
+ // EXPORTS
543
+ // =============================================================================
544
+ export { CreationType, } from './types.js';
545
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/phase6/provenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Q3: Role Gates
3
+ * Dual-layer validation: kernel fast-path + BASIS policy engine
4
+ */
5
+ export { AgentRole, TrustTier, ROLE_GATE_MATRIX, validateRoleAndTier, isValidRole, isValidTier, getMaxTierForRole, getMinRoleForTier, RoleGateValidationError, } from './kernel.js';
6
+ export { BasisPolicyEngine, type PolicyRule, type PolicyException, type PolicyDecision, type PolicyAuditEntry, } from './policy.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/phase6/role-gates/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Q3: Role Gates
3
+ * Dual-layer validation: kernel fast-path + BASIS policy engine
4
+ */
5
+ export { AgentRole, TrustTier, ROLE_GATE_MATRIX, validateRoleAndTier, isValidRole, isValidTier, getMaxTierForRole, getMinRoleForTier, RoleGateValidationError, } from './kernel.js';
6
+ export { BasisPolicyEngine, } from './policy.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/phase6/role-gates/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,iBAAiB,GAKlB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Q3: Role Gates - Kernel Validation Layer
3
+ * Fast-path role + tier combination validation with matrix lookups
4
+ *
5
+ * Architecture:
6
+ * - Fail-fast kernel validation (<0.5ms)
7
+ * - Pre-computed matrix for O(1) lookups
8
+ * - 9 roles (R-L0 to R-L8) × 6 tiers (T0 to T5) = 48 valid combinations
9
+ */
10
+ /**
11
+ * Agent role enumeration (9 levels)
12
+ * Defines hierarchical responsibility and operational scope
13
+ */
14
+ export declare enum AgentRole {
15
+ R_L0 = "R-L0",// Minimal autonomy, strict supervision
16
+ R_L1 = "R-L1",// Limited autonomy, high oversight
17
+ R_L2 = "R-L2",// Moderate autonomy, medium oversight
18
+ R_L3 = "R-L3",// Balanced autonomy, routine oversight
19
+ R_L4 = "R-L4",// Higher autonomy, conditional oversight
20
+ R_L5 = "R-L5",// Strong autonomy, rare oversight
21
+ R_L6 = "R-L6",// Very strong autonomy, minimal oversight
22
+ R_L7 = "R-L7",// Near-complete autonomy, exception handling
23
+ R_L8 = "R-L8"
24
+ }
25
+ /**
26
+ * Trust tier enumeration (6 levels)
27
+ * Defines operational authorization scope and resource access
28
+ */
29
+ export declare enum TrustTier {
30
+ T0 = "T0",// Read-only, no state mutations
31
+ T1 = "T1",// Read + limited mutations, single domain
32
+ T2 = "T2",// Read + mutations, multiple domains
33
+ T3 = "T3",// Read + mutations + external API access
34
+ T4 = "T4",// Full resource access, regulatory compliance
35
+ T5 = "T5"
36
+ }
37
+ /**
38
+ * Role Gate Matrix: Valid role + tier combinations
39
+ * Rows: Roles (R-L0 to R-L8)
40
+ * Cols: Tiers (T0 to T5)
41
+ * Value: true if combination is valid
42
+ *
43
+ * Matrix structure:
44
+ * - R-L0 can reach: T0, T1
45
+ * - R-L1 can reach: T0, T1, T2
46
+ * - R-L2 can reach: T0, T1, T2, T3
47
+ * - R-L3 can reach: T0, T1, T2, T3, T4
48
+ * - R-L4 can reach: T0, T1, T2, T3, T4
49
+ * - R-L5 can reach: T0, T1, T2, T3, T4
50
+ * - R-L6 can reach: T0, T1, T2, T3, T4, T5
51
+ * - R-L7 can reach: T0, T1, T2, T3, T4, T5
52
+ * - R-L8 can reach: T0, T1, T2, T3, T4, T5
53
+ */
54
+ export declare const ROLE_GATE_MATRIX: Record<AgentRole, Record<TrustTier, boolean>>;
55
+ /**
56
+ * Validate role + tier combination
57
+ * O(1) matrix lookup, fail-fast validation
58
+ */
59
+ export declare function validateRoleAndTier(role: AgentRole, tier: TrustTier): boolean;
60
+ /**
61
+ * Check if value is a valid AgentRole
62
+ */
63
+ export declare function isValidRole(role: unknown): role is AgentRole;
64
+ /**
65
+ * Check if value is a valid TrustTier
66
+ */
67
+ export declare function isValidTier(tier: unknown): tier is TrustTier;
68
+ /**
69
+ * Get maximum tier reachable for a given role
70
+ */
71
+ export declare function getMaxTierForRole(role: AgentRole): TrustTier;
72
+ /**
73
+ * Get minimum role required for a given tier
74
+ */
75
+ export declare function getMinRoleForTier(tier: TrustTier): AgentRole;
76
+ /**
77
+ * Custom error for role gate validation failures
78
+ */
79
+ export declare class RoleGateValidationError extends Error {
80
+ role: AgentRole;
81
+ tier: TrustTier;
82
+ constructor(role: AgentRole, tier: TrustTier, message?: string);
83
+ }
84
+ //# sourceMappingURL=kernel.d.ts.map