@ninelives/agent-governance-sdk 5.0.1

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 (126) hide show
  1. package/README.md +363 -0
  2. package/dist/audit.d.ts +26 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +107 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/cascade-containment.d.ts +84 -0
  7. package/dist/cascade-containment.d.ts.map +1 -0
  8. package/dist/cascade-containment.js +387 -0
  9. package/dist/cascade-containment.js.map +1 -0
  10. package/dist/client.d.ts +34 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +112 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/context-poisoning.d.ts +58 -0
  15. package/dist/context-poisoning.d.ts.map +1 -0
  16. package/dist/context-poisoning.js +410 -0
  17. package/dist/context-poisoning.js.map +1 -0
  18. package/dist/credential-vault.d.ts +213 -0
  19. package/dist/credential-vault.d.ts.map +1 -0
  20. package/dist/credential-vault.js +567 -0
  21. package/dist/credential-vault.js.map +1 -0
  22. package/dist/discovery.d.ts +80 -0
  23. package/dist/discovery.d.ts.map +1 -0
  24. package/dist/discovery.js +404 -0
  25. package/dist/discovery.js.map +1 -0
  26. package/dist/encryption/channel.d.ts +29 -0
  27. package/dist/encryption/channel.d.ts.map +1 -0
  28. package/dist/encryption/channel.js +78 -0
  29. package/dist/encryption/channel.js.map +1 -0
  30. package/dist/encryption/index.d.ts +9 -0
  31. package/dist/encryption/index.d.ts.map +1 -0
  32. package/dist/encryption/index.js +23 -0
  33. package/dist/encryption/index.js.map +1 -0
  34. package/dist/encryption/mesh-client.d.ts +281 -0
  35. package/dist/encryption/mesh-client.d.ts.map +1 -0
  36. package/dist/encryption/mesh-client.js +1110 -0
  37. package/dist/encryption/mesh-client.js.map +1 -0
  38. package/dist/encryption/ratchet.d.ts +38 -0
  39. package/dist/encryption/ratchet.d.ts.map +1 -0
  40. package/dist/encryption/ratchet.js +223 -0
  41. package/dist/encryption/ratchet.js.map +1 -0
  42. package/dist/encryption/registry-client.d.ts +136 -0
  43. package/dist/encryption/registry-client.d.ts.map +1 -0
  44. package/dist/encryption/registry-client.js +369 -0
  45. package/dist/encryption/registry-client.js.map +1 -0
  46. package/dist/encryption/x3dh.d.ts +80 -0
  47. package/dist/encryption/x3dh.d.ts.map +1 -0
  48. package/dist/encryption/x3dh.js +238 -0
  49. package/dist/encryption/x3dh.js.map +1 -0
  50. package/dist/framework-adapter.d.ts +63 -0
  51. package/dist/framework-adapter.d.ts.map +1 -0
  52. package/dist/framework-adapter.js +253 -0
  53. package/dist/framework-adapter.js.map +1 -0
  54. package/dist/identity.d.ts +124 -0
  55. package/dist/identity.d.ts.map +1 -0
  56. package/dist/identity.js +446 -0
  57. package/dist/identity.js.map +1 -0
  58. package/dist/index.d.ts +39 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +95 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/kill-switch.d.ts +22 -0
  63. package/dist/kill-switch.d.ts.map +1 -0
  64. package/dist/kill-switch.js +60 -0
  65. package/dist/kill-switch.js.map +1 -0
  66. package/dist/lifecycle.d.ts +50 -0
  67. package/dist/lifecycle.d.ts.map +1 -0
  68. package/dist/lifecycle.js +113 -0
  69. package/dist/lifecycle.js.map +1 -0
  70. package/dist/mcp.d.ts +41 -0
  71. package/dist/mcp.d.ts.map +1 -0
  72. package/dist/mcp.js +233 -0
  73. package/dist/mcp.js.map +1 -0
  74. package/dist/metrics.d.ts +123 -0
  75. package/dist/metrics.d.ts.map +1 -0
  76. package/dist/metrics.js +289 -0
  77. package/dist/metrics.js.map +1 -0
  78. package/dist/oci-manifest.d.ts +49 -0
  79. package/dist/oci-manifest.d.ts.map +1 -0
  80. package/dist/oci-manifest.js +182 -0
  81. package/dist/oci-manifest.js.map +1 -0
  82. package/dist/policy-backends/cedar.d.ts +15 -0
  83. package/dist/policy-backends/cedar.d.ts.map +1 -0
  84. package/dist/policy-backends/cedar.js +88 -0
  85. package/dist/policy-backends/cedar.js.map +1 -0
  86. package/dist/policy-backends/opa.d.ts +17 -0
  87. package/dist/policy-backends/opa.d.ts.map +1 -0
  88. package/dist/policy-backends/opa.js +74 -0
  89. package/dist/policy-backends/opa.js.map +1 -0
  90. package/dist/policy.d.ts +77 -0
  91. package/dist/policy.d.ts.map +1 -0
  92. package/dist/policy.js +760 -0
  93. package/dist/policy.js.map +1 -0
  94. package/dist/prompt-defense.d.ts +37 -0
  95. package/dist/prompt-defense.d.ts.map +1 -0
  96. package/dist/prompt-defense.js +229 -0
  97. package/dist/prompt-defense.js.map +1 -0
  98. package/dist/protocol-facets.d.ts +87 -0
  99. package/dist/protocol-facets.d.ts.map +1 -0
  100. package/dist/protocol-facets.js +728 -0
  101. package/dist/protocol-facets.js.map +1 -0
  102. package/dist/rings.d.ts +17 -0
  103. package/dist/rings.d.ts.map +1 -0
  104. package/dist/rings.js +61 -0
  105. package/dist/rings.js.map +1 -0
  106. package/dist/sandbox.d.ts +61 -0
  107. package/dist/sandbox.d.ts.map +1 -0
  108. package/dist/sandbox.js +199 -0
  109. package/dist/sandbox.js.map +1 -0
  110. package/dist/surface-parity.d.ts +45 -0
  111. package/dist/surface-parity.d.ts.map +1 -0
  112. package/dist/surface-parity.js +216 -0
  113. package/dist/surface-parity.js.map +1 -0
  114. package/dist/trust.d.ts +28 -0
  115. package/dist/trust.d.ts.map +1 -0
  116. package/dist/trust.js +209 -0
  117. package/dist/trust.js.map +1 -0
  118. package/dist/types.d.ts +422 -0
  119. package/dist/types.d.ts.map +1 -0
  120. package/dist/types.js +29 -0
  121. package/dist/types.js.map +1 -0
  122. package/dist/verify.d.ts +135 -0
  123. package/dist/verify.d.ts.map +1 -0
  124. package/dist/verify.js +356 -0
  125. package/dist/verify.js.map +1 -0
  126. package/package.json +66 -0
@@ -0,0 +1,422 @@
1
+ /** Lifecycle status for agent identities. */
2
+ export type IdentityStatus = 'active' | 'suspended' | 'revoked';
3
+ export interface AgentIdentityJSON {
4
+ did: string;
5
+ publicKey: string;
6
+ privateKey?: string;
7
+ capabilities: string[];
8
+ name?: string;
9
+ description?: string;
10
+ sponsor?: string;
11
+ organization?: string;
12
+ status?: IdentityStatus;
13
+ parentDid?: string;
14
+ delegationDepth?: number;
15
+ createdAt?: string;
16
+ expiresAt?: string;
17
+ }
18
+ export interface TrustConfig {
19
+ /** Initial trust score for unknown agents (default 0.5) */
20
+ initialScore?: number;
21
+ /** Decay factor applied over time (default 0.95) */
22
+ decayFactor?: number;
23
+ /** Tier thresholds */
24
+ thresholds?: {
25
+ untrusted: number;
26
+ provisional: number;
27
+ trusted: number;
28
+ verified: number;
29
+ };
30
+ /** Optional file path for persisting trust scores across restarts */
31
+ persistPath?: string;
32
+ }
33
+ export type TrustTier = 'Untrusted' | 'Provisional' | 'Trusted' | 'Verified';
34
+ export interface TrustScore {
35
+ overall: number;
36
+ dimensions: Record<string, number>;
37
+ tier: TrustTier;
38
+ }
39
+ export interface TrustVerificationResult {
40
+ verified: boolean;
41
+ trustScore: TrustScore;
42
+ reason?: string;
43
+ }
44
+ /** Actions a policy rule can take. */
45
+ export type PolicyAction = 'allow' | 'deny' | 'warn' | 'require_approval' | 'log';
46
+ /** Legacy decision type kept for backward compatibility with AuditLogger/Client. */
47
+ export type LegacyPolicyDecision = 'allow' | 'deny' | 'review';
48
+ /** Conflict resolution strategies. */
49
+ export declare enum ConflictResolutionStrategy {
50
+ DenyOverrides = "deny_overrides",
51
+ AllowOverrides = "allow_overrides",
52
+ PriorityFirstMatch = "priority_first_match",
53
+ MostSpecificWins = "most_specific_wins"
54
+ }
55
+ /** Policy scope for conflict resolution specificity. */
56
+ export declare enum PolicyScope {
57
+ Global = "global",
58
+ Tenant = "tenant",
59
+ Agent = "agent"
60
+ }
61
+ /** A rich policy rule matching the Python/NET SDK. */
62
+ export interface PolicyRule {
63
+ /** Rule name (required for rich policies). */
64
+ name?: string;
65
+ description?: string;
66
+ /** Condition expression (string) or legacy flat conditions. */
67
+ condition?: string | Record<string, unknown>;
68
+ /** @deprecated Use `condition` instead. Kept for backward compatibility. */
69
+ conditions?: Record<string, unknown>;
70
+ /** Legacy: action pattern for flat rule matching. */
71
+ action?: string;
72
+ /** Effect for legacy flat rules. */
73
+ effect?: LegacyPolicyDecision;
74
+ /** Rich rule action. */
75
+ ruleAction?: PolicyAction;
76
+ /** Rate limit (e.g., '100/hour'). */
77
+ limit?: string;
78
+ /** Required approvers for require_approval action. */
79
+ approvers?: string[];
80
+ /** Priority (higher = evaluated first). */
81
+ priority?: number;
82
+ /** Whether this rule is enabled (default true). */
83
+ enabled?: boolean;
84
+ /** Governance surfaces this rule applies to (omit for universal rules). */
85
+ surfaces?: GovernanceSurface[];
86
+ }
87
+ /** Governance surface where policy enforcement occurs. */
88
+ export type GovernanceSurface = 'cli' | 'ide' | 'api' | 'unknown';
89
+ /** Maps a rule to the surfaces it covers. */
90
+ export interface SurfaceRuleMapping {
91
+ rule: PolicyRule;
92
+ policyName: string;
93
+ detectedSurfaces: GovernanceSurface[];
94
+ isUniversal: boolean;
95
+ }
96
+ /** A gap where a rule exists for one surface but not another. */
97
+ export interface SurfaceGap {
98
+ ruleName: string;
99
+ policyName: string;
100
+ presentOn: GovernanceSurface[];
101
+ missingFrom: GovernanceSurface[];
102
+ ruleAction: PolicyAction | undefined;
103
+ severity: 'high' | 'medium' | 'low';
104
+ recommendation: string;
105
+ }
106
+ /** Report of governance parity analysis across surfaces. */
107
+ export interface SurfaceParityReport {
108
+ analyzedAt: Date;
109
+ totalRules: number;
110
+ universalRules: number;
111
+ surfaceSpecificRules: number;
112
+ gaps: SurfaceGap[];
113
+ mappings: SurfaceRuleMapping[];
114
+ surfaceCoverage: Record<GovernanceSurface, number>;
115
+ parityScore: number;
116
+ }
117
+ /** A complete policy document (matches Python Policy model). */
118
+ export interface Policy {
119
+ apiVersion?: string;
120
+ version?: string;
121
+ name: string;
122
+ description?: string;
123
+ agent?: string;
124
+ agents?: string[];
125
+ scope?: string;
126
+ rules: PolicyRule[];
127
+ default_action?: 'allow' | 'deny';
128
+ }
129
+ /** Rich policy decision result. */
130
+ export interface PolicyDecisionResult {
131
+ allowed: boolean;
132
+ action: PolicyAction;
133
+ matchedRule?: string;
134
+ policyName?: string;
135
+ reason?: string;
136
+ approvers: string[];
137
+ rateLimited: boolean;
138
+ evaluatedAt: Date;
139
+ evaluationMs?: number;
140
+ }
141
+ /** Candidate decision for conflict resolution. */
142
+ export interface CandidateDecision {
143
+ action: PolicyAction;
144
+ priority: number;
145
+ scope: PolicyScope;
146
+ policyName: string;
147
+ ruleName: string;
148
+ reason: string;
149
+ approvers: string[];
150
+ }
151
+ /** Result of conflict resolution. */
152
+ export interface ResolutionResult {
153
+ winningDecision: CandidateDecision;
154
+ strategyUsed: ConflictResolutionStrategy;
155
+ candidatesEvaluated: number;
156
+ conflictDetected: boolean;
157
+ resolutionTrace: string[];
158
+ }
159
+ export type BackendDecision = 'allow' | 'deny' | 'review';
160
+ export interface BackendEvaluationOutcome {
161
+ backend: string;
162
+ decision: BackendDecision;
163
+ reason?: string;
164
+ error?: string;
165
+ }
166
+ export interface ExternalPolicyBackend {
167
+ name: string;
168
+ evaluateAction?(action: string, context: Record<string, unknown>): Promise<BackendDecision | BackendEvaluationOutcome> | BackendDecision | BackendEvaluationOutcome;
169
+ evaluatePolicy?(agentDid: string, context: Record<string, unknown>): Promise<BackendDecision | BackendEvaluationOutcome | PolicyDecisionResult> | BackendDecision | BackendEvaluationOutcome | PolicyDecisionResult;
170
+ }
171
+ export interface PolicyBackendEvaluationResult {
172
+ localDecision: LegacyPolicyDecision | PolicyDecisionResult;
173
+ backendResults: BackendEvaluationOutcome[];
174
+ effectiveDecision: LegacyPolicyDecision;
175
+ effectivePolicyResult?: PolicyDecisionResult;
176
+ deniedBy: string[];
177
+ }
178
+ export declare enum ExecutionRing {
179
+ Ring0 = 0,
180
+ Ring1 = 1,
181
+ Ring2 = 2,
182
+ Ring3 = 3
183
+ }
184
+ export interface ExecutionControlConfig {
185
+ agentRing?: ExecutionRing;
186
+ defaultRing?: ExecutionRing;
187
+ actionRings?: Record<string, ExecutionRing>;
188
+ quarantineOnBreach?: boolean;
189
+ killOnBreach?: boolean;
190
+ }
191
+ export interface RingViolation {
192
+ action: string;
193
+ agentRing: ExecutionRing;
194
+ requiredRing: ExecutionRing;
195
+ message: string;
196
+ }
197
+ export interface KillSwitchConfig {
198
+ enabled?: boolean;
199
+ defaultSubstituteAgentId?: string;
200
+ }
201
+ export interface KillSwitchResult {
202
+ agentId: string;
203
+ action?: string;
204
+ reason: string;
205
+ killedAt: string;
206
+ callbacksExecuted: number;
207
+ compensationsExecuted: number;
208
+ handoffAgentId?: string;
209
+ }
210
+ /** Configuration for blast radius containment, keyed by trust tier. */
211
+ export interface BlastRadiusPolicy {
212
+ maxDependencyDepth: number;
213
+ maxFanout: number;
214
+ circuitBreakerThreshold: number;
215
+ circuitBreakerResetMs: number;
216
+ autoQuarantine: boolean;
217
+ autoRollback: boolean;
218
+ }
219
+ /** Agent node in the dependency graph. */
220
+ export interface AgentNode {
221
+ agentId: string;
222
+ trustTier: TrustTier;
223
+ healthStatus: AgentHealthStatus;
224
+ dependencies: string[];
225
+ dependents: string[];
226
+ lastHealthCheck?: string;
227
+ }
228
+ export type AgentHealthStatus = 'healthy' | 'degraded' | 'failing' | 'unreachable';
229
+ /** Event emitted when a cascade containment action is taken. */
230
+ export interface CascadeEvent {
231
+ eventId: string;
232
+ timestamp: string;
233
+ sourceAgentId: string;
234
+ affectedAgentIds: string[];
235
+ action: CascadeAction;
236
+ reason: string;
237
+ blastRadius: number;
238
+ containedAt: number;
239
+ }
240
+ export type CascadeAction = 'circuit_opened' | 'agent_degraded' | 'agent_quarantined' | 'agent_killed' | 'rollback_triggered' | 'health_propagated';
241
+ /** Configuration for cascade containment. */
242
+ export interface CascadeContainmentConfig {
243
+ defaultPolicy: BlastRadiusPolicy;
244
+ tierPolicies?: Partial<Record<TrustTier, Partial<BlastRadiusPolicy>>>;
245
+ cascadeThreshold?: number;
246
+ }
247
+ /** Summary of cascade containment analysis. */
248
+ export interface CascadeAnalysis {
249
+ totalAgents: number;
250
+ healthyAgents: number;
251
+ degradedAgents: number;
252
+ failingAgents: number;
253
+ openCircuitBreakers: number;
254
+ cascadeRisk: 'low' | 'medium' | 'high' | 'critical';
255
+ blastRadiusMap: Record<string, number>;
256
+ events: CascadeEvent[];
257
+ }
258
+ /** Configuration for context poisoning detection. */
259
+ export interface ContextPoisoningConfig {
260
+ maxContextSizeBytes?: number;
261
+ maxEntriesPerSession?: number;
262
+ entropyThreshold?: number;
263
+ similarityThreshold?: number;
264
+ enableIsolation?: boolean;
265
+ knownPatterns?: PoisoningPattern[];
266
+ }
267
+ /** A known poisoning attack pattern. */
268
+ export interface PoisoningPattern {
269
+ id: string;
270
+ name: string;
271
+ description: string;
272
+ detector: 'regex' | 'entropy' | 'repetition' | 'injection' | 'size';
273
+ pattern?: string;
274
+ severity: 'low' | 'medium' | 'high' | 'critical';
275
+ }
276
+ /** A context entry stored in agent memory. */
277
+ export interface ContextEntry {
278
+ entryId: string;
279
+ sessionId: string;
280
+ agentId: string;
281
+ role: 'system' | 'user' | 'assistant' | 'tool';
282
+ content: string;
283
+ timestamp: string;
284
+ metadata?: Record<string, unknown>;
285
+ }
286
+ /** Finding from context poisoning analysis. */
287
+ export interface PoisoningFinding {
288
+ findingId: string;
289
+ patternId: string;
290
+ patternName: string;
291
+ severity: 'low' | 'medium' | 'high' | 'critical';
292
+ entryId: string;
293
+ sessionId: string;
294
+ agentId: string;
295
+ description: string;
296
+ evidence: string;
297
+ recommendation: string;
298
+ }
299
+ /** Result of context poisoning scan. */
300
+ export interface ContextPoisoningScanResult {
301
+ scannedAt: string;
302
+ entriesScanned: number;
303
+ findings: PoisoningFinding[];
304
+ integrityValid: boolean;
305
+ isolationViolations: ContextIsolationViolation[];
306
+ riskLevel: 'none' | 'low' | 'medium' | 'high' | 'critical';
307
+ }
308
+ /** Violation of memory isolation between sessions. */
309
+ export interface ContextIsolationViolation {
310
+ sourceSessionId: string;
311
+ targetSessionId: string;
312
+ agentId: string;
313
+ sharedEntryIds: string[];
314
+ description: string;
315
+ }
316
+ /** OCI manifest format (v2 schema). */
317
+ export interface OciManifest {
318
+ schemaVersion: 2;
319
+ mediaType: string;
320
+ config: OciDescriptor;
321
+ layers: OciDescriptor[];
322
+ annotations?: Record<string, string>;
323
+ }
324
+ /** OCI content descriptor. */
325
+ export interface OciDescriptor {
326
+ mediaType: string;
327
+ digest: string;
328
+ size: number;
329
+ annotations?: Record<string, string>;
330
+ }
331
+ /** AI Card agent metadata (framework-neutral). */
332
+ export interface AICard {
333
+ name: string;
334
+ version: string;
335
+ description?: string;
336
+ author?: string;
337
+ license?: string;
338
+ homepage?: string;
339
+ repository?: string;
340
+ skills?: AICardSkill[];
341
+ capabilities?: AICardCapabilities;
342
+ invocation?: AICardInvocation;
343
+ metadata?: Record<string, unknown>;
344
+ }
345
+ export interface AICardSkill {
346
+ name: string;
347
+ description?: string;
348
+ parameters?: Record<string, string>;
349
+ returns?: string;
350
+ }
351
+ export interface AICardCapabilities {
352
+ languages?: string[];
353
+ domains?: string[];
354
+ input_modes?: string[];
355
+ output_modes?: string[];
356
+ streaming?: boolean;
357
+ async?: boolean;
358
+ }
359
+ export interface AICardInvocation {
360
+ protocol?: string;
361
+ endpoint?: string;
362
+ authentication?: {
363
+ type: string;
364
+ required: boolean;
365
+ };
366
+ method?: string;
367
+ format?: string;
368
+ }
369
+ /** Result of converting AGT identity to OCI manifest. */
370
+ export interface OciPackageResult {
371
+ manifest: OciManifest;
372
+ aiCard: AICard;
373
+ configBlob: string;
374
+ layers: Array<{
375
+ descriptor: OciDescriptor;
376
+ content: string;
377
+ }>;
378
+ }
379
+ export interface AuditConfig {
380
+ /** Maximum entries kept in memory (default 10000) */
381
+ maxEntries?: number;
382
+ }
383
+ export interface AuditEntry {
384
+ timestamp: string;
385
+ agentId: string;
386
+ action: string;
387
+ decision: LegacyPolicyDecision;
388
+ hash: string;
389
+ previousHash: string;
390
+ skillAuditMetadata?: SkillAuditMetadata;
391
+ }
392
+ export interface TrustedSkillMetadataSource {
393
+ skillName?: string;
394
+ skillOrigin?: string;
395
+ }
396
+ export interface SkillAuditMetadata {
397
+ skillName?: string;
398
+ skillOrigin?: string;
399
+ provenanceSourceTrust?: "trusted";
400
+ contextHashBefore?: string;
401
+ contextHashAfter?: string;
402
+ }
403
+ export interface AgentMeshConfig {
404
+ agentId: string;
405
+ capabilities?: string[];
406
+ trust?: TrustConfig;
407
+ policyRules?: PolicyRule[];
408
+ audit?: AuditConfig;
409
+ execution?: ExecutionControlConfig;
410
+ killSwitch?: KillSwitchConfig;
411
+ }
412
+ export interface GovernanceResult {
413
+ decision: LegacyPolicyDecision;
414
+ trustScore: TrustScore;
415
+ auditEntry: AuditEntry;
416
+ executionTime: number;
417
+ ringViolation?: RingViolation;
418
+ killSwitchResult?: KillSwitchResult;
419
+ lifecycleState?: string;
420
+ lifecycleReason?: string;
421
+ }
422
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ExecutionRing = exports.PolicyScope = exports.ConflictResolutionStrategy = void 0;
6
+ /** Conflict resolution strategies. */
7
+ var ConflictResolutionStrategy;
8
+ (function (ConflictResolutionStrategy) {
9
+ ConflictResolutionStrategy["DenyOverrides"] = "deny_overrides";
10
+ ConflictResolutionStrategy["AllowOverrides"] = "allow_overrides";
11
+ ConflictResolutionStrategy["PriorityFirstMatch"] = "priority_first_match";
12
+ ConflictResolutionStrategy["MostSpecificWins"] = "most_specific_wins";
13
+ })(ConflictResolutionStrategy || (exports.ConflictResolutionStrategy = ConflictResolutionStrategy = {}));
14
+ /** Policy scope for conflict resolution specificity. */
15
+ var PolicyScope;
16
+ (function (PolicyScope) {
17
+ PolicyScope["Global"] = "global";
18
+ PolicyScope["Tenant"] = "tenant";
19
+ PolicyScope["Agent"] = "agent";
20
+ })(PolicyScope || (exports.PolicyScope = PolicyScope = {}));
21
+ // Execution controls
22
+ var ExecutionRing;
23
+ (function (ExecutionRing) {
24
+ ExecutionRing[ExecutionRing["Ring0"] = 0] = "Ring0";
25
+ ExecutionRing[ExecutionRing["Ring1"] = 1] = "Ring1";
26
+ ExecutionRing[ExecutionRing["Ring2"] = 2] = "Ring2";
27
+ ExecutionRing[ExecutionRing["Ring3"] = 3] = "Ring3";
28
+ })(ExecutionRing || (exports.ExecutionRing = ExecutionRing = {}));
29
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AA+DlC,sCAAsC;AACtC,IAAY,0BAKX;AALD,WAAY,0BAA0B;IACpC,8DAAgC,CAAA;IAChC,gEAAkC,CAAA;IAClC,yEAA2C,CAAA;IAC3C,qEAAuC,CAAA;AACzC,CAAC,EALW,0BAA0B,0CAA1B,0BAA0B,QAKrC;AAED,wDAAwD;AACxD,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAuJD,qBAAqB;AAErB,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,mDAAS,CAAA;IACT,mDAAS,CAAA;IACT,mDAAS,CAAA;IACT,mDAAS,CAAA;AACX,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
@@ -0,0 +1,135 @@
1
+ import { ShadowDiscovery } from './discovery';
2
+ export interface ControlResult {
3
+ controlId: string;
4
+ name: string;
5
+ present: boolean;
6
+ component: string;
7
+ error?: string;
8
+ }
9
+ export interface RuntimeEvidenceDeployment {
10
+ agentId?: string;
11
+ identity?: {
12
+ enabled?: boolean;
13
+ did?: string;
14
+ spiffeId?: string;
15
+ };
16
+ policy?: {
17
+ failClosed?: boolean;
18
+ defaultAction?: string;
19
+ backends?: string[];
20
+ };
21
+ audit?: {
22
+ enabled?: boolean;
23
+ destination?: string;
24
+ };
25
+ execution?: {
26
+ rings?: boolean;
27
+ killSwitch?: boolean;
28
+ };
29
+ promptDefense?: {
30
+ enabled?: boolean;
31
+ vectorsCovered?: string[];
32
+ };
33
+ sre?: {
34
+ metrics?: boolean;
35
+ traces?: boolean;
36
+ sloTargets?: string[];
37
+ };
38
+ discovery?: {
39
+ enabled?: boolean;
40
+ lastScanAt?: string;
41
+ shadowAgents?: number;
42
+ };
43
+ }
44
+ export interface RuntimeEvidence {
45
+ sourcePath?: string;
46
+ schema: string;
47
+ generatedAt: string;
48
+ toolkitVersion: string;
49
+ deployment: RuntimeEvidenceDeployment;
50
+ }
51
+ export interface RuntimeEvidenceCheck {
52
+ checkId: string;
53
+ title: string;
54
+ status: 'pass' | 'fail';
55
+ message: string;
56
+ observed: Record<string, unknown>;
57
+ }
58
+ export interface IntegrityManifestFile {
59
+ targetId: string;
60
+ label: string;
61
+ modulePath: string;
62
+ filePath: string;
63
+ sha256: string;
64
+ }
65
+ export interface IntegrityManifest {
66
+ schema: string;
67
+ generatedAt: string;
68
+ toolkitVersion: string;
69
+ files: IntegrityManifestFile[];
70
+ }
71
+ export interface FileIntegrityResult {
72
+ targetId: string;
73
+ label: string;
74
+ modulePath: string;
75
+ filePath: string;
76
+ expectedHash?: string;
77
+ actualHash: string;
78
+ passed: boolean;
79
+ error?: string;
80
+ }
81
+ export interface GovernanceVerificationOptions {
82
+ strict?: boolean;
83
+ runtimeEvidence?: RuntimeEvidence;
84
+ evidencePath?: string;
85
+ integrityManifest?: IntegrityManifest;
86
+ requireRuntimeEvidence?: boolean;
87
+ requireIntegrityManifest?: boolean;
88
+ }
89
+ export interface GovernanceAttestation {
90
+ passed: boolean;
91
+ controls: ControlResult[];
92
+ toolkitVersion: string;
93
+ runtime: string;
94
+ verifiedAt: string;
95
+ attestationHash: string;
96
+ controlsPassed: number;
97
+ controlsTotal: number;
98
+ mode: 'components' | 'runtime-evidence' | 'integrity';
99
+ strict: boolean;
100
+ evidenceSource?: string;
101
+ evidenceChecks: RuntimeEvidenceCheck[];
102
+ fileIntegrityResults: FileIntegrityResult[];
103
+ failures: string[];
104
+ coveragePct(): number;
105
+ complianceGrade(): string;
106
+ summary(): string;
107
+ }
108
+ export interface VerifierControlSpec {
109
+ name: string;
110
+ component: unknown;
111
+ }
112
+ interface IntegrityTargetSpec {
113
+ targetId: string;
114
+ label: string;
115
+ modulePath: string;
116
+ }
117
+ declare const RUNTIME_EVIDENCE_SCHEMA = "agt-runtime-evidence/v1";
118
+ declare const INTEGRITY_MANIFEST_SCHEMA = "agt-typescript-integrity/v1";
119
+ export declare class GovernanceVerifier {
120
+ private readonly controls;
121
+ private readonly toolkitVersion;
122
+ private readonly integrityTargets;
123
+ constructor(controls?: Record<string, VerifierControlSpec>, toolkitVersion?: string, integrityTargets?: IntegrityTargetSpec[]);
124
+ static loadRuntimeEvidence(evidencePath: string): RuntimeEvidence;
125
+ generateIntegrityManifest(): IntegrityManifest;
126
+ verify(options?: GovernanceVerificationOptions): GovernanceAttestation;
127
+ private evaluateRuntimeEvidence;
128
+ private verifyIntegrityManifest;
129
+ private makeEvidenceCheck;
130
+ private resolveModuleFile;
131
+ private hashFile;
132
+ private componentName;
133
+ }
134
+ export { RUNTIME_EVIDENCE_SCHEMA, INTEGRITY_MANIFEST_SCHEMA, ShadowDiscovery };
135
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}