@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.
Files changed (172) hide show
  1. package/README.md +86 -23
  2. package/SECURITY.md +254 -0
  3. package/dist/accountability/engine.d.ts +27 -0
  4. package/dist/accountability/engine.d.ts.map +1 -0
  5. package/dist/accountability/engine.js +148 -0
  6. package/dist/accountability/engine.js.map +1 -0
  7. package/dist/accountability/types.d.ts +46 -0
  8. package/dist/accountability/types.d.ts.map +1 -0
  9. package/dist/accountability/types.js +8 -0
  10. package/dist/accountability/types.js.map +1 -0
  11. package/dist/checkpoint/engine.d.ts.map +1 -1
  12. package/dist/checkpoint/engine.js +4 -0
  13. package/dist/checkpoint/engine.js.map +1 -1
  14. package/dist/context/compose.d.ts +62 -0
  15. package/dist/context/compose.d.ts.map +1 -0
  16. package/dist/context/compose.js +286 -0
  17. package/dist/context/compose.js.map +1 -0
  18. package/dist/context/crypto/hash.d.ts +100 -0
  19. package/dist/context/crypto/hash.d.ts.map +1 -0
  20. package/dist/context/crypto/hash.js +248 -0
  21. package/dist/context/crypto/hash.js.map +1 -0
  22. package/dist/context/crypto/hmac.d.ts +80 -0
  23. package/dist/context/crypto/hmac.d.ts.map +1 -0
  24. package/dist/context/crypto/hmac.js +192 -0
  25. package/dist/context/crypto/hmac.js.map +1 -0
  26. package/dist/context/crypto/index.d.ts +7 -0
  27. package/dist/context/crypto/index.d.ts.map +1 -0
  28. package/dist/context/crypto/index.js +7 -0
  29. package/dist/context/crypto/index.js.map +1 -0
  30. package/dist/context/engine-v3.0-backup.d.ts +197 -0
  31. package/dist/context/engine-v3.0-backup.d.ts.map +1 -0
  32. package/dist/context/engine-v3.0-backup.js +392 -0
  33. package/dist/context/engine-v3.0-backup.js.map +1 -0
  34. package/dist/context/fragment.d.ts +99 -0
  35. package/dist/context/fragment.d.ts.map +1 -0
  36. package/dist/context/fragment.js +316 -0
  37. package/dist/context/fragment.js.map +1 -0
  38. package/dist/context/index.d.ts +99 -0
  39. package/dist/context/index.d.ts.map +1 -0
  40. package/dist/context/index.js +180 -0
  41. package/dist/context/index.js.map +1 -0
  42. package/dist/context/provenance.d.ts +80 -0
  43. package/dist/context/provenance.d.ts.map +1 -0
  44. package/dist/context/provenance.js +294 -0
  45. package/dist/context/provenance.js.map +1 -0
  46. package/dist/context/resolve.d.ts +106 -0
  47. package/dist/context/resolve.d.ts.map +1 -0
  48. package/dist/context/resolve.js +440 -0
  49. package/dist/context/resolve.js.map +1 -0
  50. package/dist/context/store.d.ts +156 -0
  51. package/dist/context/store.d.ts.map +1 -0
  52. package/dist/context/store.js +396 -0
  53. package/dist/context/store.js.map +1 -0
  54. package/dist/context/types.d.ts +463 -0
  55. package/dist/context/types.d.ts.map +1 -0
  56. package/dist/context/types.js +94 -0
  57. package/dist/context/types.js.map +1 -0
  58. package/dist/context/utils/atomic.d.ts +76 -0
  59. package/dist/context/utils/atomic.d.ts.map +1 -0
  60. package/dist/context/utils/atomic.js +159 -0
  61. package/dist/context/utils/atomic.js.map +1 -0
  62. package/dist/context/utils/credit.d.ts +65 -0
  63. package/dist/context/utils/credit.d.ts.map +1 -0
  64. package/dist/context/utils/credit.js +164 -0
  65. package/dist/context/utils/credit.js.map +1 -0
  66. package/dist/context/utils/index.d.ts +13 -0
  67. package/dist/context/utils/index.d.ts.map +1 -0
  68. package/dist/context/utils/index.js +13 -0
  69. package/dist/context/utils/index.js.map +1 -0
  70. package/dist/context/utils/utility.d.ts +63 -0
  71. package/dist/context/utils/utility.d.ts.map +1 -0
  72. package/dist/context/utils/utility.js +141 -0
  73. package/dist/context/utils/utility.js.map +1 -0
  74. package/dist/core/commitment.d.ts +25 -2
  75. package/dist/core/commitment.d.ts.map +1 -1
  76. package/dist/core/commitment.js +44 -6
  77. package/dist/core/commitment.js.map +1 -1
  78. package/dist/core/crypto.d.ts +2 -0
  79. package/dist/core/crypto.d.ts.map +1 -1
  80. package/dist/core/crypto.js +12 -0
  81. package/dist/core/crypto.js.map +1 -1
  82. package/dist/index.d.ts +11 -6
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +35 -10
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcca/engine.d.ts.map +1 -1
  87. package/dist/mcca/engine.js +5 -4
  88. package/dist/mcca/engine.js.map +1 -1
  89. package/dist/physics/engine.d.ts +1 -0
  90. package/dist/physics/engine.d.ts.map +1 -1
  91. package/dist/physics/engine.js +36 -2
  92. package/dist/physics/engine.js.map +1 -1
  93. package/dist/provenance/api-handler.d.ts +45 -0
  94. package/dist/provenance/api-handler.d.ts.map +1 -0
  95. package/dist/provenance/api-handler.js +223 -0
  96. package/dist/provenance/api-handler.js.map +1 -0
  97. package/dist/provenance/api-types.d.ts +108 -0
  98. package/dist/provenance/api-types.d.ts.map +1 -0
  99. package/dist/provenance/api-types.js +9 -0
  100. package/dist/provenance/api-types.js.map +1 -0
  101. package/dist/provenance/index.d.ts +6 -0
  102. package/dist/provenance/index.d.ts.map +1 -0
  103. package/dist/provenance/index.js +3 -0
  104. package/dist/provenance/index.js.map +1 -0
  105. package/dist/provenance/provenance-engine.d.ts +63 -0
  106. package/dist/provenance/provenance-engine.d.ts.map +1 -0
  107. package/dist/provenance/provenance-engine.js +311 -0
  108. package/dist/provenance/provenance-engine.js.map +1 -0
  109. package/dist/provenance/types.d.ts +193 -0
  110. package/dist/provenance/types.d.ts.map +1 -0
  111. package/dist/provenance/types.js +9 -0
  112. package/dist/provenance/types.js.map +1 -0
  113. package/dist/tee/engine.d.ts.map +1 -1
  114. package/dist/tee/engine.js +14 -0
  115. package/dist/tee/engine.js.map +1 -1
  116. package/dist/warrant/engine.d.ts +24 -1
  117. package/dist/warrant/engine.d.ts.map +1 -1
  118. package/dist/warrant/engine.js +76 -1
  119. package/dist/warrant/engine.js.map +1 -1
  120. package/dist/zk/engine.d.ts.map +1 -1
  121. package/dist/zk/engine.js +7 -4
  122. package/dist/zk/engine.js.map +1 -1
  123. package/docs/SECURITY-PATCHES.md +170 -0
  124. package/package.json +17 -5
  125. package/src/__tests__/accountability.test.ts +308 -0
  126. package/src/__tests__/l1-verification-modes.test.ts +424 -0
  127. package/src/__tests__/phase1.benchmark.test.ts +94 -0
  128. package/src/__tests__/phase1.test.ts +0 -77
  129. package/src/__tests__/phase2-4.benchmark.test.ts +60 -0
  130. package/src/__tests__/phase2-4.test.ts +1 -52
  131. package/src/__tests__/provenance/api-handler.test.ts +356 -0
  132. package/src/__tests__/provenance/provenance-engine.test.ts +628 -0
  133. package/src/__tests__/sa-2026-008.test.ts +45 -0
  134. package/src/__tests__/sa-2026-009.test.ts +86 -0
  135. package/src/__tests__/sa-2026-010.test.ts +72 -0
  136. package/src/__tests__/sa-2026-012.test.ts +65 -0
  137. package/src/__tests__/sa-2026-nfc.test.ts +40 -0
  138. package/src/__tests__/security.test.ts +786 -0
  139. package/src/accountability/engine.ts +230 -0
  140. package/src/accountability/types.ts +58 -0
  141. package/src/checkpoint/engine.ts +4 -0
  142. package/src/context/__tests__/caret-v0.2.0.test.ts +860 -0
  143. package/src/context/__tests__/integration.test.ts +356 -0
  144. package/src/context/compose.ts +388 -0
  145. package/src/context/crypto/hash.ts +277 -0
  146. package/src/context/crypto/hmac.ts +253 -0
  147. package/src/context/crypto/index.ts +29 -0
  148. package/src/context/engine-v3.0-backup.ts +598 -0
  149. package/src/context/fragment.ts +454 -0
  150. package/src/context/index.ts +427 -0
  151. package/src/context/provenance.ts +380 -0
  152. package/src/context/resolve.ts +581 -0
  153. package/src/context/store.ts +503 -0
  154. package/src/context/types.ts +679 -0
  155. package/src/context/utils/atomic.ts +207 -0
  156. package/src/context/utils/credit.ts +224 -0
  157. package/src/context/utils/index.ts +13 -0
  158. package/src/context/utils/utility.ts +200 -0
  159. package/src/core/commitment.ts +129 -67
  160. package/src/core/crypto.ts +13 -0
  161. package/src/index.ts +62 -10
  162. package/src/mcca/engine.ts +5 -4
  163. package/src/physics/engine.ts +40 -3
  164. package/src/provenance/api-handler.ts +248 -0
  165. package/src/provenance/api-types.ts +112 -0
  166. package/src/provenance/index.ts +19 -0
  167. package/src/provenance/provenance-engine.ts +387 -0
  168. package/src/provenance/types.ts +211 -0
  169. package/src/tee/engine.ts +16 -0
  170. package/src/warrant/engine.ts +89 -1
  171. package/src/zk/engine.ts +8 -4
  172. package/tsconfig.json +1 -1
@@ -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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,SAAS,EACT,YAAY,EAKb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAsB,MAAM,sBAAsB,CAAC;AAMnE,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,GACtB,iBAAiB,GACjB,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAChC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,UAAU,EAAE,SAAS,CAAC;IACtB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,8BAA8B;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,2BAA2B;IAC3B,YAAY,EAAE,SAAS,CAAC;IACxB,kCAAkC;IAClC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,mCAAmC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC7C,uBAAuB;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,gBAAgB;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,yBAAyB;IACzB,UAAU,EAAE,SAAS,CAAC;IACtB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,eAAO,MAAM,gBAAgB,EAAE,aAAa,EA4D3C,CAAC;AAMF,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,YAAY,CAAkE;;IAStF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,CAAC;IA4E7B;;OAEG;YACW,eAAe;IAkE7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACG,oBAAoB,CACxB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC;IAmB1B;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAcnE;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAI3C;;OAEG;IACH,cAAc,IAAI,aAAa,EAAE;IAIjC;;OAEG;IACH,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,iBAAiB,EAAE;IAUhF;;OAEG;IACH,QAAQ,IAAI;QACV,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C;CAuBF;AAMD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAkE;IAEnF;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,GAAG,IAAI;IAI7D;;OAEG;IACH,cAAc,CACZ,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,YAAY,EAAE,GAC3B;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAezC;;OAEG;IACH,cAAc,CAAC,YAAY,EAAE,YAAY,GAAG,aAAa,EAAE;CAM5D"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/physics/engine.ts"],"names":[],"mappings":"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"}
@@ -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
- const limit = warrantConstraints.maxAmount ?? constraint.params.limit;
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
- const allowed = warrantConstraints.allowedDomains ?? constraint.params.domains;
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":"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"}
@@ -0,0 +1,9 @@
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
+ export {};
9
+ //# sourceMappingURL=api-types.js.map
@@ -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,3 @@
1
+ export { ProvenanceEngine } from './provenance-engine.js';
2
+ export { ProvenanceApiHandler } from './api-handler.js';
3
+ //# sourceMappingURL=index.js.map
@@ -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"}