@longarc/mdash 3.1.2 → 3.1.3
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/README.md +86 -23
- package/SECURITY.md +254 -0
- package/dist/accountability/engine.d.ts +27 -0
- package/dist/accountability/engine.d.ts.map +1 -0
- package/dist/accountability/engine.js +148 -0
- package/dist/accountability/engine.js.map +1 -0
- package/dist/accountability/types.d.ts +46 -0
- package/dist/accountability/types.d.ts.map +1 -0
- package/dist/accountability/types.js +8 -0
- package/dist/accountability/types.js.map +1 -0
- package/dist/checkpoint/engine.d.ts.map +1 -1
- package/dist/checkpoint/engine.js +4 -0
- package/dist/checkpoint/engine.js.map +1 -1
- package/dist/context/compose.d.ts +62 -0
- package/dist/context/compose.d.ts.map +1 -0
- package/dist/context/compose.js +286 -0
- package/dist/context/compose.js.map +1 -0
- package/dist/context/crypto/hash.d.ts +100 -0
- package/dist/context/crypto/hash.d.ts.map +1 -0
- package/dist/context/crypto/hash.js +248 -0
- package/dist/context/crypto/hash.js.map +1 -0
- package/dist/context/crypto/hmac.d.ts +80 -0
- package/dist/context/crypto/hmac.d.ts.map +1 -0
- package/dist/context/crypto/hmac.js +192 -0
- package/dist/context/crypto/hmac.js.map +1 -0
- package/dist/context/crypto/index.d.ts +7 -0
- package/dist/context/crypto/index.d.ts.map +1 -0
- package/dist/context/crypto/index.js +7 -0
- package/dist/context/crypto/index.js.map +1 -0
- package/dist/context/engine-v3.0-backup.d.ts +197 -0
- package/dist/context/engine-v3.0-backup.d.ts.map +1 -0
- package/dist/context/engine-v3.0-backup.js +392 -0
- package/dist/context/engine-v3.0-backup.js.map +1 -0
- package/dist/context/fragment.d.ts +99 -0
- package/dist/context/fragment.d.ts.map +1 -0
- package/dist/context/fragment.js +316 -0
- package/dist/context/fragment.js.map +1 -0
- package/dist/context/index.d.ts +99 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +180 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/provenance.d.ts +80 -0
- package/dist/context/provenance.d.ts.map +1 -0
- package/dist/context/provenance.js +294 -0
- package/dist/context/provenance.js.map +1 -0
- package/dist/context/resolve.d.ts +106 -0
- package/dist/context/resolve.d.ts.map +1 -0
- package/dist/context/resolve.js +440 -0
- package/dist/context/resolve.js.map +1 -0
- package/dist/context/store.d.ts +156 -0
- package/dist/context/store.d.ts.map +1 -0
- package/dist/context/store.js +396 -0
- package/dist/context/store.js.map +1 -0
- package/dist/context/types.d.ts +463 -0
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/types.js +94 -0
- package/dist/context/types.js.map +1 -0
- package/dist/context/utils/atomic.d.ts +76 -0
- package/dist/context/utils/atomic.d.ts.map +1 -0
- package/dist/context/utils/atomic.js +159 -0
- package/dist/context/utils/atomic.js.map +1 -0
- package/dist/context/utils/credit.d.ts +65 -0
- package/dist/context/utils/credit.d.ts.map +1 -0
- package/dist/context/utils/credit.js +164 -0
- package/dist/context/utils/credit.js.map +1 -0
- package/dist/context/utils/index.d.ts +13 -0
- package/dist/context/utils/index.d.ts.map +1 -0
- package/dist/context/utils/index.js +13 -0
- package/dist/context/utils/index.js.map +1 -0
- package/dist/context/utils/utility.d.ts +63 -0
- package/dist/context/utils/utility.d.ts.map +1 -0
- package/dist/context/utils/utility.js +141 -0
- package/dist/context/utils/utility.js.map +1 -0
- package/dist/core/commitment.d.ts +25 -2
- package/dist/core/commitment.d.ts.map +1 -1
- package/dist/core/commitment.js +44 -6
- package/dist/core/commitment.js.map +1 -1
- package/dist/core/crypto.d.ts +2 -0
- package/dist/core/crypto.d.ts.map +1 -1
- package/dist/core/crypto.js +12 -0
- package/dist/core/crypto.js.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -10
- package/dist/index.js.map +1 -1
- package/dist/mcca/engine.d.ts.map +1 -1
- package/dist/mcca/engine.js +5 -4
- package/dist/mcca/engine.js.map +1 -1
- package/dist/physics/engine.d.ts +1 -0
- package/dist/physics/engine.d.ts.map +1 -1
- package/dist/physics/engine.js +36 -2
- package/dist/physics/engine.js.map +1 -1
- package/dist/provenance/api-handler.d.ts +45 -0
- package/dist/provenance/api-handler.d.ts.map +1 -0
- package/dist/provenance/api-handler.js +223 -0
- package/dist/provenance/api-handler.js.map +1 -0
- package/dist/provenance/api-types.d.ts +108 -0
- package/dist/provenance/api-types.d.ts.map +1 -0
- package/dist/provenance/api-types.js +9 -0
- package/dist/provenance/api-types.js.map +1 -0
- package/dist/provenance/index.d.ts +6 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +3 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/provenance-engine.d.ts +63 -0
- package/dist/provenance/provenance-engine.d.ts.map +1 -0
- package/dist/provenance/provenance-engine.js +311 -0
- package/dist/provenance/provenance-engine.js.map +1 -0
- package/dist/provenance/types.d.ts +193 -0
- package/dist/provenance/types.d.ts.map +1 -0
- package/dist/provenance/types.js +9 -0
- package/dist/provenance/types.js.map +1 -0
- package/dist/tee/engine.d.ts.map +1 -1
- package/dist/tee/engine.js +14 -0
- package/dist/tee/engine.js.map +1 -1
- package/dist/warrant/engine.d.ts +24 -1
- package/dist/warrant/engine.d.ts.map +1 -1
- package/dist/warrant/engine.js +76 -1
- package/dist/warrant/engine.js.map +1 -1
- package/dist/zk/engine.d.ts.map +1 -1
- package/dist/zk/engine.js +7 -4
- package/dist/zk/engine.js.map +1 -1
- package/docs/SECURITY-PATCHES.md +170 -0
- package/package.json +17 -5
- package/src/__tests__/accountability.test.ts +308 -0
- package/src/__tests__/l1-verification-modes.test.ts +424 -0
- package/src/__tests__/phase1.benchmark.test.ts +94 -0
- package/src/__tests__/phase1.test.ts +0 -77
- package/src/__tests__/phase2-4.benchmark.test.ts +60 -0
- package/src/__tests__/phase2-4.test.ts +1 -52
- package/src/__tests__/provenance/api-handler.test.ts +356 -0
- package/src/__tests__/provenance/provenance-engine.test.ts +628 -0
- package/src/__tests__/sa-2026-008.test.ts +45 -0
- package/src/__tests__/sa-2026-009.test.ts +86 -0
- package/src/__tests__/sa-2026-010.test.ts +72 -0
- package/src/__tests__/sa-2026-012.test.ts +65 -0
- package/src/__tests__/sa-2026-nfc.test.ts +40 -0
- package/src/__tests__/security.test.ts +786 -0
- package/src/accountability/engine.ts +230 -0
- package/src/accountability/types.ts +58 -0
- package/src/checkpoint/engine.ts +4 -0
- package/src/context/__tests__/caret-v0.2.0.test.ts +860 -0
- package/src/context/__tests__/integration.test.ts +356 -0
- package/src/context/compose.ts +388 -0
- package/src/context/crypto/hash.ts +277 -0
- package/src/context/crypto/hmac.ts +253 -0
- package/src/context/crypto/index.ts +29 -0
- package/src/context/engine-v3.0-backup.ts +598 -0
- package/src/context/fragment.ts +454 -0
- package/src/context/index.ts +427 -0
- package/src/context/provenance.ts +380 -0
- package/src/context/resolve.ts +581 -0
- package/src/context/store.ts +503 -0
- package/src/context/types.ts +679 -0
- package/src/context/utils/atomic.ts +207 -0
- package/src/context/utils/credit.ts +224 -0
- package/src/context/utils/index.ts +13 -0
- package/src/context/utils/utility.ts +200 -0
- package/src/core/commitment.ts +129 -67
- package/src/core/crypto.ts +13 -0
- package/src/index.ts +62 -10
- package/src/mcca/engine.ts +5 -4
- package/src/physics/engine.ts +40 -3
- package/src/provenance/api-handler.ts +248 -0
- package/src/provenance/api-types.ts +112 -0
- package/src/provenance/index.ts +19 -0
- package/src/provenance/provenance-engine.ts +387 -0
- package/src/provenance/types.ts +211 -0
- package/src/tee/engine.ts +16 -0
- package/src/warrant/engine.ts +89 -1
- package/src/zk/engine.ts +8 -4
- package/tsconfig.json +1 -1
package/dist/physics/engine.d.ts
CHANGED
|
@@ -99,6 +99,7 @@ export declare class PhysicsEngine {
|
|
|
99
99
|
validate(action: PhysicsAction, warrant: Warrant): Promise<PhysicsValidation>;
|
|
100
100
|
/**
|
|
101
101
|
* Check a specific constraint
|
|
102
|
+
* P4 SECURITY: Explicit presence checks prevent trust escalation
|
|
102
103
|
*/
|
|
103
104
|
private checkConstraint;
|
|
104
105
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/physics/engine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/physics/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/physics/engine.js
CHANGED
|
@@ -155,12 +155,41 @@ export class PhysicsEngine {
|
|
|
155
155
|
}
|
|
156
156
|
/**
|
|
157
157
|
* Check a specific constraint
|
|
158
|
+
* P4 SECURITY: Explicit presence checks prevent trust escalation
|
|
158
159
|
*/
|
|
159
160
|
async checkConstraint(constraint, action, warrantConstraints) {
|
|
160
161
|
switch (constraint.type) {
|
|
161
162
|
case 'max_amount': {
|
|
162
163
|
const amount = action.params.amount;
|
|
163
|
-
|
|
164
|
+
// SA-2026-011: Explicit NaN and negative rejection
|
|
165
|
+
// NaN > X is always false in JS, bypassing maxAmount constraints.
|
|
166
|
+
// Negative amounts have no floor without explicit check.
|
|
167
|
+
if (amount !== undefined) {
|
|
168
|
+
if (typeof amount !== 'number' || isNaN(amount)) {
|
|
169
|
+
return {
|
|
170
|
+
type: 'amount_exceeded',
|
|
171
|
+
constraint,
|
|
172
|
+
message: 'Amount is not a valid number',
|
|
173
|
+
severity: 'block',
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
if (amount < 0) {
|
|
177
|
+
return {
|
|
178
|
+
type: 'amount_exceeded',
|
|
179
|
+
constraint,
|
|
180
|
+
message: 'Negative amounts are not permitted',
|
|
181
|
+
severity: 'block',
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// P4 SECURITY: Explicit presence check - warrant must define maxAmount
|
|
186
|
+
// or policy default applies. Explicitly passing undefined is NOT the same
|
|
187
|
+
// as not having the constraint.
|
|
188
|
+
const hasWarrantLimit = Object.prototype.hasOwnProperty.call(warrantConstraints, 'maxAmount')
|
|
189
|
+
&& warrantConstraints.maxAmount !== undefined;
|
|
190
|
+
const limit = hasWarrantLimit
|
|
191
|
+
? warrantConstraints.maxAmount
|
|
192
|
+
: constraint.params.limit;
|
|
164
193
|
if (amount !== undefined && amount > limit) {
|
|
165
194
|
return {
|
|
166
195
|
type: 'amount_exceeded',
|
|
@@ -173,7 +202,12 @@ export class PhysicsEngine {
|
|
|
173
202
|
}
|
|
174
203
|
case 'domain_allowlist': {
|
|
175
204
|
const domain = action.params.domain;
|
|
176
|
-
|
|
205
|
+
// P4 SECURITY: Same pattern - explicit presence check
|
|
206
|
+
const hasWarrantDomains = Object.prototype.hasOwnProperty.call(warrantConstraints, 'allowedDomains')
|
|
207
|
+
&& warrantConstraints.allowedDomains !== undefined;
|
|
208
|
+
const allowed = hasWarrantDomains
|
|
209
|
+
? warrantConstraints.allowedDomains
|
|
210
|
+
: constraint.params.domains;
|
|
177
211
|
if (domain && allowed.length > 0 && !allowed.includes(domain)) {
|
|
178
212
|
return {
|
|
179
213
|
type: 'domain_forbidden',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/physics/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/physics/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.1 - Provenance API Handler
|
|
3
|
+
*
|
|
4
|
+
* Wires HTTP request/response types to the ProvenanceEngine.
|
|
5
|
+
* This is the door: external parties call through here to
|
|
6
|
+
* attest, verify, and inspect model provenance.
|
|
7
|
+
*/
|
|
8
|
+
import { ProvenanceEngine } from './provenance-engine.js';
|
|
9
|
+
import type { AttestRequest, AttestResponse, VerifyRequest, VerifyResponse, ChainResponse } from './api-types.js';
|
|
10
|
+
export declare class ProvenanceApiHandler {
|
|
11
|
+
private engine;
|
|
12
|
+
constructor(engine: ProvenanceEngine);
|
|
13
|
+
/**
|
|
14
|
+
* Handle POST /provenance/attest
|
|
15
|
+
*
|
|
16
|
+
* Validates the request, creates the identity attestation,
|
|
17
|
+
* and returns the attestation ID and L1 hash.
|
|
18
|
+
*/
|
|
19
|
+
handleAttest(req: AttestRequest): Promise<{
|
|
20
|
+
status: number;
|
|
21
|
+
body: AttestResponse;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Handle POST /provenance/verify
|
|
25
|
+
*
|
|
26
|
+
* Validates the request, runs provenance verification,
|
|
27
|
+
* and returns the chain verdict with optional ZK proof.
|
|
28
|
+
*/
|
|
29
|
+
handleVerify(req: VerifyRequest): Promise<{
|
|
30
|
+
status: number;
|
|
31
|
+
body: VerifyResponse;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Handle GET /provenance/chain/:modelId
|
|
35
|
+
*
|
|
36
|
+
* Retrieves the full provenance chain for a model.
|
|
37
|
+
* modelId format: "name:version"
|
|
38
|
+
*/
|
|
39
|
+
handleGetChain(modelId: string): Promise<{
|
|
40
|
+
status: number;
|
|
41
|
+
body: ChainResponse;
|
|
42
|
+
}>;
|
|
43
|
+
private mapChainResponse;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=api-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-handler.d.ts","sourceRoot":"","sources":["../../src/provenance/api-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,EAAE,gBAAgB;IAIpC;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC;IA2EzF;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC;IAkEzF;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC;IAmCvF,OAAO,CAAC,gBAAgB;CA6BzB"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.1 - Provenance API Handler
|
|
3
|
+
*
|
|
4
|
+
* Wires HTTP request/response types to the ProvenanceEngine.
|
|
5
|
+
* This is the door: external parties call through here to
|
|
6
|
+
* attest, verify, and inspect model provenance.
|
|
7
|
+
*/
|
|
8
|
+
export class ProvenanceApiHandler {
|
|
9
|
+
engine;
|
|
10
|
+
constructor(engine) {
|
|
11
|
+
this.engine = engine;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Handle POST /provenance/attest
|
|
15
|
+
*
|
|
16
|
+
* Validates the request, creates the identity attestation,
|
|
17
|
+
* and returns the attestation ID and L1 hash.
|
|
18
|
+
*/
|
|
19
|
+
async handleAttest(req) {
|
|
20
|
+
// Validate required fields
|
|
21
|
+
const missing = [];
|
|
22
|
+
if (!req.model?.name)
|
|
23
|
+
missing.push('model.name');
|
|
24
|
+
if (!req.model?.version)
|
|
25
|
+
missing.push('model.version');
|
|
26
|
+
if (!req.model?.provider)
|
|
27
|
+
missing.push('model.provider');
|
|
28
|
+
if (!req.deployment?.environment)
|
|
29
|
+
missing.push('deployment.environment');
|
|
30
|
+
if (missing.length > 0) {
|
|
31
|
+
return {
|
|
32
|
+
status: 400,
|
|
33
|
+
body: {
|
|
34
|
+
attestationId: '',
|
|
35
|
+
l1Hash: '',
|
|
36
|
+
timestamp: '',
|
|
37
|
+
status: 'error',
|
|
38
|
+
error: `Missing required fields: ${missing.join(', ')}`,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Check for duplicate (409)
|
|
43
|
+
const existing = this.engine.getIdentity(req.model.name, req.model.version);
|
|
44
|
+
if (existing) {
|
|
45
|
+
return {
|
|
46
|
+
status: 409,
|
|
47
|
+
body: {
|
|
48
|
+
attestationId: existing.id,
|
|
49
|
+
l1Hash: existing.attestation.l1Hash,
|
|
50
|
+
timestamp: existing.attestation.timestamp,
|
|
51
|
+
status: 'error',
|
|
52
|
+
error: `Attestation for ${req.model.name}:${req.model.version} already exists`,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const constraints = {
|
|
58
|
+
safetyTier: req.constraints.safetyTier,
|
|
59
|
+
authorizedDomains: req.constraints.authorizedDomains,
|
|
60
|
+
excludedDomains: req.constraints.excludedDomains,
|
|
61
|
+
maxContextWindow: req.constraints.maxContextWindow,
|
|
62
|
+
reasoningEnabled: req.constraints.reasoningEnabled,
|
|
63
|
+
custom: req.constraints.custom || {},
|
|
64
|
+
};
|
|
65
|
+
const attestation = await this.engine.createIdentityAttestation(req.model, constraints, req.deployment);
|
|
66
|
+
return {
|
|
67
|
+
status: 201,
|
|
68
|
+
body: {
|
|
69
|
+
attestationId: attestation.id,
|
|
70
|
+
l1Hash: attestation.attestation.l1Hash,
|
|
71
|
+
timestamp: attestation.attestation.timestamp,
|
|
72
|
+
status: 'created',
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return {
|
|
78
|
+
status: 500,
|
|
79
|
+
body: {
|
|
80
|
+
attestationId: '',
|
|
81
|
+
l1Hash: '',
|
|
82
|
+
timestamp: '',
|
|
83
|
+
status: 'error',
|
|
84
|
+
error: err instanceof Error ? err.message : 'Internal error',
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Handle POST /provenance/verify
|
|
91
|
+
*
|
|
92
|
+
* Validates the request, runs provenance verification,
|
|
93
|
+
* and returns the chain verdict with optional ZK proof.
|
|
94
|
+
*/
|
|
95
|
+
async handleVerify(req) {
|
|
96
|
+
if (!req.modelName) {
|
|
97
|
+
return {
|
|
98
|
+
status: 400,
|
|
99
|
+
body: {
|
|
100
|
+
status: 'error',
|
|
101
|
+
chain: { isComplete: false, confidence: 0, assessment: '', flags: [] },
|
|
102
|
+
timestamp: '',
|
|
103
|
+
responseHash: '',
|
|
104
|
+
error: 'Missing required field: modelName',
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const response = await this.engine.verifyProvenance({
|
|
110
|
+
queryType: req.queryType || 'full_chain',
|
|
111
|
+
modelName: req.modelName,
|
|
112
|
+
modelVersion: req.modelVersion,
|
|
113
|
+
timeWindow: req.timeWindow,
|
|
114
|
+
requireHardwareAttestation: req.requireHardwareAttestation || false,
|
|
115
|
+
generateZkProof: req.generateZkProof || false,
|
|
116
|
+
});
|
|
117
|
+
const isVerified = response.chain.verdict.isComplete;
|
|
118
|
+
const isPartial = !isVerified && response.chain.verdict.confidence > 0;
|
|
119
|
+
const httpStatus = isVerified ? 200 : (response.chain.verdict.flags.includes('no_identity') ? 404 : 200);
|
|
120
|
+
let verifyStatus;
|
|
121
|
+
if (isVerified) {
|
|
122
|
+
verifyStatus = 'verified';
|
|
123
|
+
}
|
|
124
|
+
else if (isPartial) {
|
|
125
|
+
verifyStatus = 'partial';
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
verifyStatus = 'unverified';
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
status: httpStatus,
|
|
132
|
+
body: {
|
|
133
|
+
status: verifyStatus,
|
|
134
|
+
chain: {
|
|
135
|
+
isComplete: response.chain.verdict.isComplete,
|
|
136
|
+
confidence: response.chain.verdict.confidence,
|
|
137
|
+
assessment: response.chain.verdict.assessment,
|
|
138
|
+
flags: response.chain.verdict.flags,
|
|
139
|
+
},
|
|
140
|
+
zkProof: response.zkProof,
|
|
141
|
+
timestamp: response.timestamp,
|
|
142
|
+
responseHash: response.responseHash,
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
return {
|
|
148
|
+
status: 500,
|
|
149
|
+
body: {
|
|
150
|
+
status: 'error',
|
|
151
|
+
chain: { isComplete: false, confidence: 0, assessment: '', flags: [] },
|
|
152
|
+
timestamp: '',
|
|
153
|
+
responseHash: '',
|
|
154
|
+
error: err instanceof Error ? err.message : 'Internal error',
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Handle GET /provenance/chain/:modelId
|
|
161
|
+
*
|
|
162
|
+
* Retrieves the full provenance chain for a model.
|
|
163
|
+
* modelId format: "name:version"
|
|
164
|
+
*/
|
|
165
|
+
async handleGetChain(modelId) {
|
|
166
|
+
const [modelName, modelVersion] = modelId.split(':');
|
|
167
|
+
const chain = this.engine.getChain(modelName, modelVersion);
|
|
168
|
+
if (!chain) {
|
|
169
|
+
// Try verifying to build a minimal chain from identity
|
|
170
|
+
const identity = this.engine.getIdentity(modelName, modelVersion);
|
|
171
|
+
if (!identity) {
|
|
172
|
+
return {
|
|
173
|
+
status: 404,
|
|
174
|
+
body: {
|
|
175
|
+
modelId,
|
|
176
|
+
identity: { name: modelName || '', version: modelVersion || '', provider: '', attestedAt: '', l1Hash: '' },
|
|
177
|
+
warrants: { total: 0, active: 0, revoked: 0, chainHash: '' },
|
|
178
|
+
behavior: { totalSessions: 0, totalActions: 0, violations: 0 },
|
|
179
|
+
verdict: { isComplete: false, confidence: 0, assessment: 'Model not found', flags: ['no_identity'] },
|
|
180
|
+
chainAttestation: { l1Hash: '', timestamp: '' },
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// Build minimal chain from identity alone
|
|
185
|
+
const minimalChain = await this.engine.buildProvenanceChain(identity, [], []);
|
|
186
|
+
return {
|
|
187
|
+
status: 200,
|
|
188
|
+
body: this.mapChainResponse(modelId, minimalChain),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
status: 200,
|
|
193
|
+
body: this.mapChainResponse(modelId, chain),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
mapChainResponse(modelId, chain) {
|
|
197
|
+
return {
|
|
198
|
+
modelId,
|
|
199
|
+
identity: {
|
|
200
|
+
name: chain.identity.model.name,
|
|
201
|
+
version: chain.identity.model.version,
|
|
202
|
+
provider: chain.identity.model.provider,
|
|
203
|
+
attestedAt: chain.identity.attestation.timestamp,
|
|
204
|
+
l1Hash: chain.identity.attestation.l1Hash,
|
|
205
|
+
},
|
|
206
|
+
warrants: {
|
|
207
|
+
total: chain.warrantHistory.totalWarrants,
|
|
208
|
+
active: chain.warrantHistory.activeWarrants,
|
|
209
|
+
revoked: chain.warrantHistory.revokedWarrants,
|
|
210
|
+
chainHash: chain.warrantHistory.warrantChainHash,
|
|
211
|
+
},
|
|
212
|
+
behavior: {
|
|
213
|
+
totalSessions: chain.behavioralRecord.totalSessions,
|
|
214
|
+
totalActions: chain.behavioralRecord.totalActions,
|
|
215
|
+
violations: chain.behavioralRecord.violations,
|
|
216
|
+
latestDriftScore: chain.behavioralRecord.latestDriftReport?.compositeScore,
|
|
217
|
+
},
|
|
218
|
+
verdict: chain.verdict,
|
|
219
|
+
chainAttestation: chain.chainAttestation,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=api-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-handler.js","sourceRoot":"","sources":["../../src/provenance/api-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.1 - Provenance API Types
|
|
3
|
+
*
|
|
4
|
+
* HTTP request/response types for the provenance API surface.
|
|
5
|
+
* These types define the contract between external callers
|
|
6
|
+
* and the ProvenanceEngine.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* POST /provenance/attest
|
|
10
|
+
* Called by model providers to register a model's identity.
|
|
11
|
+
*/
|
|
12
|
+
export interface AttestRequest {
|
|
13
|
+
model: {
|
|
14
|
+
name: string;
|
|
15
|
+
version: string;
|
|
16
|
+
manifestHash?: string;
|
|
17
|
+
provider: string;
|
|
18
|
+
};
|
|
19
|
+
constraints: {
|
|
20
|
+
safetyTier: string;
|
|
21
|
+
authorizedDomains: string[];
|
|
22
|
+
excludedDomains: string[];
|
|
23
|
+
maxContextWindow: number;
|
|
24
|
+
reasoningEnabled: boolean;
|
|
25
|
+
custom?: Record<string, string | number | boolean>;
|
|
26
|
+
};
|
|
27
|
+
deployment: {
|
|
28
|
+
environment: string;
|
|
29
|
+
region?: string;
|
|
30
|
+
tenantId?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface AttestResponse {
|
|
34
|
+
attestationId: string;
|
|
35
|
+
l1Hash: string;
|
|
36
|
+
timestamp: string;
|
|
37
|
+
status: 'created' | 'error';
|
|
38
|
+
error?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* POST /provenance/verify
|
|
42
|
+
* Called by verifiers to check a model's provenance.
|
|
43
|
+
*/
|
|
44
|
+
export interface VerifyRequest {
|
|
45
|
+
modelName: string;
|
|
46
|
+
modelVersion?: string;
|
|
47
|
+
queryType: 'identity' | 'constraints' | 'behavior' | 'full_chain';
|
|
48
|
+
timeWindow?: {
|
|
49
|
+
start: string;
|
|
50
|
+
end: string;
|
|
51
|
+
};
|
|
52
|
+
requireHardwareAttestation?: boolean;
|
|
53
|
+
generateZkProof?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface VerifyResponse {
|
|
56
|
+
status: 'verified' | 'unverified' | 'partial' | 'error';
|
|
57
|
+
chain: {
|
|
58
|
+
isComplete: boolean;
|
|
59
|
+
confidence: number;
|
|
60
|
+
assessment: string;
|
|
61
|
+
flags: string[];
|
|
62
|
+
};
|
|
63
|
+
zkProof?: {
|
|
64
|
+
claim: string;
|
|
65
|
+
proof: string;
|
|
66
|
+
verificationKey: string;
|
|
67
|
+
};
|
|
68
|
+
timestamp: string;
|
|
69
|
+
responseHash: string;
|
|
70
|
+
error?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* GET /provenance/chain/:modelId
|
|
74
|
+
* Called by regulators to retrieve the full provenance chain.
|
|
75
|
+
*/
|
|
76
|
+
export interface ChainResponse {
|
|
77
|
+
modelId: string;
|
|
78
|
+
identity: {
|
|
79
|
+
name: string;
|
|
80
|
+
version: string;
|
|
81
|
+
provider: string;
|
|
82
|
+
attestedAt: string;
|
|
83
|
+
l1Hash: string;
|
|
84
|
+
};
|
|
85
|
+
warrants: {
|
|
86
|
+
total: number;
|
|
87
|
+
active: number;
|
|
88
|
+
revoked: number;
|
|
89
|
+
chainHash: string;
|
|
90
|
+
};
|
|
91
|
+
behavior: {
|
|
92
|
+
totalSessions: number;
|
|
93
|
+
totalActions: number;
|
|
94
|
+
violations: number;
|
|
95
|
+
latestDriftScore?: number;
|
|
96
|
+
};
|
|
97
|
+
verdict: {
|
|
98
|
+
isComplete: boolean;
|
|
99
|
+
confidence: number;
|
|
100
|
+
assessment: string;
|
|
101
|
+
flags: string[];
|
|
102
|
+
};
|
|
103
|
+
chainAttestation: {
|
|
104
|
+
l1Hash: string;
|
|
105
|
+
timestamp: string;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=api-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../src/provenance/api-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACpD,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,CAAC;IAClE,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;IACxD,KAAK,EAAE;QACL,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../src/provenance/api-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { ModelIdentityAttestation, ProvenanceChain, ProvenanceQuery, ProvenanceResponse, GlossEntry, } from './types.js';
|
|
2
|
+
export { ProvenanceEngine } from './provenance-engine.js';
|
|
3
|
+
export type { DriftReportInput } from './provenance-engine.js';
|
|
4
|
+
export { ProvenanceApiHandler } from './api-handler.js';
|
|
5
|
+
export type { AttestRequest, AttestResponse, VerifyRequest, VerifyResponse, ChainResponse, } from './api-types.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provenance/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,YAAY,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provenance/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.1 - Provenance Engine
|
|
3
|
+
*
|
|
4
|
+
* Create identity attestations, build provenance chains, verify model provenance.
|
|
5
|
+
*
|
|
6
|
+
* Design Invariants:
|
|
7
|
+
* PROVENANCE-INV-001: Identity attestation is immutable after creation.
|
|
8
|
+
* PROVENANCE-INV-002: Provenance chain hash changes if ANY component changes.
|
|
9
|
+
* PROVENANCE-INV-003: Verdict is deterministic: same chain = same verdict.
|
|
10
|
+
* PROVENANCE-INV-004: ZK proof verifies without access to the chain data.
|
|
11
|
+
* PROVENANCE-INV-005: A model with no identity attestation has verdict.isComplete = false.
|
|
12
|
+
* PROVENANCE-INV-006: Distilled models cannot produce valid provider signatures.
|
|
13
|
+
* PROVENANCE-INV-007: Chain attestation (L1 hash) includes identity + warrants + behavior.
|
|
14
|
+
*/
|
|
15
|
+
import type { ModelIdentityAttestation, ProvenanceChain, ProvenanceQuery, ProvenanceResponse, GlossEntry } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Drift report shape accepted by the provenance engine.
|
|
18
|
+
* Matches the DriftReport from Kiwi's defense module.
|
|
19
|
+
*/
|
|
20
|
+
export interface DriftReportInput {
|
|
21
|
+
compositeScore: number;
|
|
22
|
+
recommendation: string;
|
|
23
|
+
}
|
|
24
|
+
export declare class ProvenanceEngine {
|
|
25
|
+
private identities;
|
|
26
|
+
private chains;
|
|
27
|
+
/**
|
|
28
|
+
* Create a model identity attestation.
|
|
29
|
+
*
|
|
30
|
+
* Called when a model is deployed. Seals the model's identity and
|
|
31
|
+
* constraints into an L1 commitment. The attestation becomes the
|
|
32
|
+
* anchor for the provenance chain.
|
|
33
|
+
*/
|
|
34
|
+
createIdentityAttestation(model: ModelIdentityAttestation['model'], constraints: ModelIdentityAttestation['constraints'], deployment: ModelIdentityAttestation['deployment']): Promise<ModelIdentityAttestation>;
|
|
35
|
+
/**
|
|
36
|
+
* Build a provenance chain for a model.
|
|
37
|
+
*
|
|
38
|
+
* Aggregates identity, warrant history, behavioral record, and
|
|
39
|
+
* drift assessment into a single verifiable chain.
|
|
40
|
+
*/
|
|
41
|
+
buildProvenanceChain(identity: ModelIdentityAttestation, warrantHashes: string[], glossEntries: GlossEntry[], driftReport?: DriftReportInput): Promise<ProvenanceChain>;
|
|
42
|
+
/**
|
|
43
|
+
* Answer a provenance query.
|
|
44
|
+
*
|
|
45
|
+
* The verification interface. A verifier submits a query, the engine
|
|
46
|
+
* retrieves the relevant chain, and returns a response with optional
|
|
47
|
+
* ZK proof.
|
|
48
|
+
*/
|
|
49
|
+
verifyProvenance(query: ProvenanceQuery): Promise<ProvenanceResponse>;
|
|
50
|
+
/**
|
|
51
|
+
* Look up a stored identity attestation by model key.
|
|
52
|
+
*/
|
|
53
|
+
getIdentity(modelName: string, modelVersion?: string): ModelIdentityAttestation | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Look up a stored provenance chain by model key.
|
|
56
|
+
*/
|
|
57
|
+
getChain(modelName: string, modelVersion?: string): ProvenanceChain | undefined;
|
|
58
|
+
private findLatestVersion;
|
|
59
|
+
private buildEmptyChain;
|
|
60
|
+
private buildResponse;
|
|
61
|
+
private buildZkClaim;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=provenance-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance-engine.d.ts","sourceRoot":"","sources":["../../src/provenance/provenance-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,MAAM,CAA2C;IAEzD;;;;;;OAMG;IACG,yBAAyB,CAC7B,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACxC,WAAW,EAAE,wBAAwB,CAAC,aAAa,CAAC,EACpD,UAAU,EAAE,wBAAwB,CAAC,YAAY,CAAC,GACjD,OAAO,CAAC,wBAAwB,CAAC;IAuDpC;;;;;OAKG;IACG,oBAAoB,CACxB,QAAQ,EAAE,wBAAwB,EAClC,aAAa,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,UAAU,EAAE,EAC1B,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,eAAe,CAAC;IA4H3B;;;;;;OAMG;IACG,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2C3E;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAO3F;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAW/E,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;YAiCT,aAAa;IAW3B,OAAO,CAAC,YAAY;CAYrB"}
|