@nexart/ai-execution 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +100 -330
  2. package/dist/index.cjs +607 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +56 -0
  5. package/dist/index.d.ts +55 -11
  6. package/dist/index.mjs +550 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/providers/anthropic.cjs +258 -0
  9. package/dist/providers/anthropic.cjs.map +1 -0
  10. package/dist/providers/anthropic.d.cts +24 -0
  11. package/dist/providers/anthropic.d.ts +7 -5
  12. package/dist/providers/anthropic.mjs +221 -0
  13. package/dist/providers/anthropic.mjs.map +1 -0
  14. package/dist/providers/openai.cjs +259 -0
  15. package/dist/providers/openai.cjs.map +1 -0
  16. package/dist/providers/openai.d.cts +24 -0
  17. package/dist/providers/openai.d.ts +7 -5
  18. package/dist/providers/openai.mjs +222 -0
  19. package/dist/providers/openai.mjs.map +1 -0
  20. package/dist/providers/wrap.cjs +221 -0
  21. package/dist/providers/wrap.cjs.map +1 -0
  22. package/dist/providers/wrap.d.cts +9 -0
  23. package/dist/providers/wrap.d.ts +5 -3
  24. package/dist/providers/wrap.mjs +186 -0
  25. package/dist/providers/wrap.mjs.map +1 -0
  26. package/dist/{types.d.ts → types-DF29BsH5.d.cts} +18 -16
  27. package/dist/types-DF29BsH5.d.ts +155 -0
  28. package/package.json +18 -9
  29. package/dist/__tests__/fixtures.test.d.ts +0 -2
  30. package/dist/__tests__/fixtures.test.d.ts.map +0 -1
  31. package/dist/__tests__/fixtures.test.js +0 -37
  32. package/dist/__tests__/fixtures.test.js.map +0 -1
  33. package/dist/__tests__/v020.test.d.ts +0 -2
  34. package/dist/__tests__/v020.test.d.ts.map +0 -1
  35. package/dist/__tests__/v020.test.js +0 -408
  36. package/dist/__tests__/v020.test.js.map +0 -1
  37. package/dist/__tests__/vectors.test.d.ts +0 -2
  38. package/dist/__tests__/vectors.test.d.ts.map +0 -1
  39. package/dist/__tests__/vectors.test.js +0 -261
  40. package/dist/__tests__/vectors.test.js.map +0 -1
  41. package/dist/archive.d.ts +0 -4
  42. package/dist/archive.d.ts.map +0 -1
  43. package/dist/archive.js +0 -28
  44. package/dist/archive.js.map +0 -1
  45. package/dist/attest.d.ts +0 -3
  46. package/dist/attest.d.ts.map +0 -1
  47. package/dist/attest.js +0 -42
  48. package/dist/attest.js.map +0 -1
  49. package/dist/canonicalJson.d.ts +0 -2
  50. package/dist/canonicalJson.d.ts.map +0 -1
  51. package/dist/canonicalJson.js +0 -38
  52. package/dist/canonicalJson.js.map +0 -1
  53. package/dist/cer.d.ts +0 -7
  54. package/dist/cer.d.ts.map +0 -1
  55. package/dist/cer.js +0 -61
  56. package/dist/cer.js.map +0 -1
  57. package/dist/certify.d.ts +0 -3
  58. package/dist/certify.d.ts.map +0 -1
  59. package/dist/certify.js +0 -27
  60. package/dist/certify.js.map +0 -1
  61. package/dist/errors.d.ts +0 -10
  62. package/dist/errors.d.ts.map +0 -1
  63. package/dist/errors.js +0 -19
  64. package/dist/errors.js.map +0 -1
  65. package/dist/hash.d.ts +0 -6
  66. package/dist/hash.d.ts.map +0 -1
  67. package/dist/hash.js +0 -32
  68. package/dist/hash.js.map +0 -1
  69. package/dist/index.d.ts.map +0 -1
  70. package/dist/index.js +0 -11
  71. package/dist/index.js.map +0 -1
  72. package/dist/providers/anthropic.d.ts.map +0 -1
  73. package/dist/providers/anthropic.js +0 -61
  74. package/dist/providers/anthropic.js.map +0 -1
  75. package/dist/providers/openai.d.ts.map +0 -1
  76. package/dist/providers/openai.js +0 -62
  77. package/dist/providers/openai.js.map +0 -1
  78. package/dist/providers/wrap.d.ts.map +0 -1
  79. package/dist/providers/wrap.js +0 -28
  80. package/dist/providers/wrap.js.map +0 -1
  81. package/dist/run.d.ts +0 -14
  82. package/dist/run.d.ts.map +0 -1
  83. package/dist/run.js +0 -62
  84. package/dist/run.js.map +0 -1
  85. package/dist/snapshot.d.ts +0 -4
  86. package/dist/snapshot.d.ts.map +0 -1
  87. package/dist/snapshot.js +0 -113
  88. package/dist/snapshot.js.map +0 -1
  89. package/dist/types.d.ts.map +0 -1
  90. package/dist/types.js +0 -2
  91. package/dist/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"v020.test.js","sourceRoot":"","sources":["../../src/__tests__/v020.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5D,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAC5C,MAAM,WAAW,GAAG;IAClB,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAqB;IAC3B,IAAI,EAAE,IAAqB;CAC5B,CAAC;AAEF,QAAQ,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACzE,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAyB,CAAC;QAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAyB,CAAC;QAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAyB,CAAC;QAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAyB,CAAC;QAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAyB,CAAC;QAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,aAAa;YAC1B,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,aAAa;YACpB,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,cAAc;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;SACvC,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,UAAU;YAC1B,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,WAAW;KACxB,CAAC;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5E,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1G,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1G,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE1G,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAEtD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;QACnG,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,WAAW,EAAE,QAAQ;YACrB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAErC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,CAAC;YAC3B,QAAQ,EAAE,eAAe;YACzB,MAAM,EAAE,KAAK,EAAE,MAA0B,EAAE,EAAE,CAAC,UAAU;YACxD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;SACjC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACnC,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YACjC,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,GAAG,YAAY,CAAC;YAC3B,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACrD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;YAChC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO;SAC1C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACnC,aAAa,EAAE,EAAE;YACjB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAI,oBAAoB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAC/C,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG,cAAc,CAAC;YAC1B,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC;YAC1B,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,MAAM;YAClB,cAAc,EAAE,QAAQ;YACxB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;SACZ,CAAC;QAEF,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAE1E,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,cAAc,CAAC;YAC1B,WAAW,EAAE,YAAY;YACzB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,+BAA+B,CAIpD,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,KAAK,CAAC,QAAQ,CAAC,SAAS,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,uBAAuB,EAChE,QAAQ,KAAK,CAAC,QAAQ,CAAC,SAAS,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG,cAAc,CAAC;YAC1B,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC;YAC1B,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,WAAW;YACvB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,OAAO;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vectors.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vectors.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/vectors.test.ts"],"names":[],"mappings":""}
@@ -1,261 +0,0 @@
1
- import { describe, it } from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { toCanonicalJson } from '../canonicalJson.js';
4
- import { sha256Hex, hashUtf8, hashCanonicalJson, computeInputHash, computeOutputHash } from '../hash.js';
5
- import { createSnapshot, verifySnapshot } from '../snapshot.js';
6
- import { sealCer, verifyCer } from '../cer.js';
7
- const FIXED_TIMESTAMP = '2026-02-12T00:00:00.000Z';
8
- const FIXED_EXECUTION_ID = 'test-exec-001';
9
- describe('canonicalJson', () => {
10
- it('sorts object keys lexicographically', () => {
11
- const result = toCanonicalJson({ z: 1, a: 2, m: 3 });
12
- assert.equal(result, '{"a":2,"m":3,"z":1}');
13
- });
14
- it('does not sort arrays', () => {
15
- const result = toCanonicalJson([3, 1, 2]);
16
- assert.equal(result, '[3,1,2]');
17
- });
18
- it('handles nested objects', () => {
19
- const result = toCanonicalJson({ b: { d: 1, c: 2 }, a: 3 });
20
- assert.equal(result, '{"a":3,"b":{"c":2,"d":1}}');
21
- });
22
- it('handles null', () => {
23
- assert.equal(toCanonicalJson(null), 'null');
24
- });
25
- it('handles strings with escapes', () => {
26
- assert.equal(toCanonicalJson('hello "world"'), '"hello \\"world\\""');
27
- });
28
- it('rejects NaN', () => {
29
- assert.throws(() => toCanonicalJson(NaN), /Non-finite/);
30
- });
31
- it('rejects Infinity', () => {
32
- assert.throws(() => toCanonicalJson(Infinity), /Non-finite/);
33
- });
34
- it('omits undefined values in objects', () => {
35
- const result = toCanonicalJson({ a: 1, b: undefined, c: 3 });
36
- assert.equal(result, '{"a":1,"c":3}');
37
- });
38
- it('produces no whitespace', () => {
39
- const result = toCanonicalJson({ key: 'value', arr: [1, 2] });
40
- assert.ok(!result.includes(' '));
41
- assert.ok(!result.includes('\n'));
42
- });
43
- });
44
- describe('hashing', () => {
45
- it('sha256Hex produces correct hex for empty string', () => {
46
- const result = sha256Hex('');
47
- assert.equal(result, 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855');
48
- });
49
- it('hashUtf8 prefixes with sha256:', () => {
50
- const result = hashUtf8('hello');
51
- assert.ok(result.startsWith('sha256:'));
52
- assert.equal(result, 'sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
53
- });
54
- it('hashCanonicalJson is stable for same object', () => {
55
- const obj = { b: 2, a: 1 };
56
- const h1 = hashCanonicalJson(obj);
57
- const h2 = hashCanonicalJson({ a: 1, b: 2 });
58
- assert.equal(h1, h2);
59
- });
60
- it('computeInputHash for string uses hashUtf8', () => {
61
- const result = computeInputHash('test input');
62
- assert.equal(result, hashUtf8('test input'));
63
- });
64
- it('computeInputHash for object uses hashCanonicalJson', () => {
65
- const obj = { role: 'user', content: 'hello' };
66
- const result = computeInputHash(obj);
67
- assert.equal(result, hashCanonicalJson(obj));
68
- });
69
- });
70
- describe('snapshot', () => {
71
- const baseParams = {
72
- executionId: FIXED_EXECUTION_ID,
73
- timestamp: FIXED_TIMESTAMP,
74
- provider: 'openai',
75
- model: 'gpt-4o',
76
- modelVersion: '2026-01-01',
77
- prompt: 'You are a helpful assistant.',
78
- input: 'What is 2+2?',
79
- parameters: {
80
- temperature: 0.7,
81
- maxTokens: 1024,
82
- topP: null,
83
- seed: null,
84
- },
85
- output: 'The answer is 4.',
86
- sdkVersion: '0.1.0',
87
- appId: null,
88
- };
89
- it('creates snapshot with correct type fields', () => {
90
- const snap = createSnapshot(baseParams);
91
- assert.equal(snap.type, 'ai.execution.v1');
92
- assert.equal(snap.protocolVersion, '1.2.0');
93
- assert.equal(snap.executionSurface, 'ai');
94
- assert.equal(snap.executionId, FIXED_EXECUTION_ID);
95
- assert.equal(snap.timestamp, FIXED_TIMESTAMP);
96
- });
97
- it('computes correct inputHash for text input', () => {
98
- const snap = createSnapshot(baseParams);
99
- const expected = computeInputHash('What is 2+2?');
100
- assert.equal(snap.inputHash, expected);
101
- });
102
- it('computes correct outputHash for text output', () => {
103
- const snap = createSnapshot(baseParams);
104
- const expected = computeOutputHash('The answer is 4.');
105
- assert.equal(snap.outputHash, expected);
106
- });
107
- it('computes correct hashes for JSON input/output', () => {
108
- const jsonParams = {
109
- ...baseParams,
110
- input: { messages: [{ role: 'user', content: 'hello' }] },
111
- output: { result: 'world', confidence: 0.95 },
112
- };
113
- const snap = createSnapshot(jsonParams);
114
- const expectedInput = computeInputHash(jsonParams.input);
115
- const expectedOutput = computeOutputHash(jsonParams.output);
116
- assert.equal(snap.inputHash, expectedInput);
117
- assert.equal(snap.outputHash, expectedOutput);
118
- });
119
- it('verifySnapshot passes for valid snapshot', () => {
120
- const snap = createSnapshot(baseParams);
121
- const result = verifySnapshot(snap);
122
- assert.equal(result.ok, true);
123
- assert.equal(result.errors.length, 0);
124
- });
125
- it('verifySnapshot fails on tampered output', () => {
126
- const snap = createSnapshot(baseParams);
127
- snap.output = 'Tampered output!';
128
- const result = verifySnapshot(snap);
129
- assert.equal(result.ok, false);
130
- assert.ok(result.errors.some(e => e.includes('outputHash mismatch')));
131
- });
132
- it('rejects non-finite temperature', () => {
133
- assert.throws(() => createSnapshot({ ...baseParams, parameters: { ...baseParams.parameters, temperature: NaN } }), /temperature/);
134
- });
135
- });
136
- describe('cer', () => {
137
- const baseParams = {
138
- executionId: FIXED_EXECUTION_ID,
139
- timestamp: FIXED_TIMESTAMP,
140
- provider: 'openai',
141
- model: 'gpt-4o',
142
- modelVersion: '2026-01-01',
143
- prompt: 'You are a helpful assistant.',
144
- input: 'What is 2+2?',
145
- parameters: {
146
- temperature: 0.7,
147
- maxTokens: 1024,
148
- topP: null,
149
- seed: null,
150
- },
151
- output: 'The answer is 4.',
152
- sdkVersion: '0.1.0',
153
- appId: null,
154
- };
155
- it('seals a CER bundle with correct fields', () => {
156
- const snap = createSnapshot(baseParams);
157
- const bundle = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
158
- assert.equal(bundle.bundleType, 'cer.ai.execution.v1');
159
- assert.equal(bundle.version, '0.1');
160
- assert.equal(bundle.createdAt, FIXED_TIMESTAMP);
161
- assert.ok(bundle.certificateHash.startsWith('sha256:'));
162
- assert.deepStrictEqual(bundle.snapshot, snap);
163
- });
164
- it('certificateHash is stable for same snapshot + createdAt', () => {
165
- const snap = createSnapshot(baseParams);
166
- const b1 = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
167
- const b2 = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
168
- assert.equal(b1.certificateHash, b2.certificateHash);
169
- });
170
- it('certificateHash changes when createdAt changes', () => {
171
- const snap = createSnapshot(baseParams);
172
- const b1 = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
173
- const b2 = sealCer(snap, { createdAt: '2026-02-13T00:00:00.000Z' });
174
- assert.notEqual(b1.certificateHash, b2.certificateHash);
175
- });
176
- it('verifyCer passes for valid bundle', () => {
177
- const snap = createSnapshot(baseParams);
178
- const bundle = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
179
- const result = verifyCer(bundle);
180
- assert.equal(result.ok, true);
181
- assert.equal(result.errors.length, 0);
182
- });
183
- it('verifyCer fails on tampered certificateHash', () => {
184
- const snap = createSnapshot(baseParams);
185
- const bundle = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
186
- bundle.certificateHash = 'sha256:0000000000000000000000000000000000000000000000000000000000000000';
187
- const result = verifyCer(bundle);
188
- assert.equal(result.ok, false);
189
- assert.ok(result.errors.some(e => e.includes('certificateHash mismatch')));
190
- });
191
- it('verifyCer fails on tampered snapshot output', () => {
192
- const snap = createSnapshot(baseParams);
193
- const bundle = sealCer(snap, { createdAt: FIXED_TIMESTAMP });
194
- bundle.snapshot.output = 'Tampered!';
195
- const result = verifyCer(bundle);
196
- assert.equal(result.ok, false);
197
- assert.ok(result.errors.some(e => e.includes('outputHash mismatch')));
198
- });
199
- it('includes meta when provided', () => {
200
- const snap = createSnapshot(baseParams);
201
- const bundle = sealCer(snap, {
202
- createdAt: FIXED_TIMESTAMP,
203
- meta: { source: 'test', tags: ['unit-test'] },
204
- });
205
- assert.deepStrictEqual(bundle.meta, { source: 'test', tags: ['unit-test'] });
206
- });
207
- });
208
- describe('deterministic test vectors', () => {
209
- it('text input/text output vector', () => {
210
- const snap = createSnapshot({
211
- executionId: 'vec-text-001',
212
- timestamp: '2026-01-01T00:00:00.000Z',
213
- provider: 'openai',
214
- model: 'gpt-4o',
215
- modelVersion: null,
216
- prompt: 'system prompt',
217
- input: 'hello world',
218
- parameters: { temperature: 0, maxTokens: 100, topP: null, seed: null },
219
- output: 'goodbye world',
220
- sdkVersion: '0.1.0',
221
- appId: null,
222
- });
223
- assert.equal(snap.inputHash, 'sha256:b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9');
224
- assert.equal(snap.outputHash, 'sha256:9150e02727e29ca8522c29ad4aa5a8343c21ccf909b40f73c41bf478df7e6fc3');
225
- const bundle = sealCer(snap, { createdAt: '2026-01-01T00:00:00.000Z' });
226
- assert.ok(bundle.certificateHash.startsWith('sha256:'));
227
- const v1 = verifySnapshot(snap);
228
- assert.equal(v1.ok, true);
229
- const v2 = verifyCer(bundle);
230
- assert.equal(v2.ok, true);
231
- });
232
- it('JSON input/JSON output vector', () => {
233
- const snap = createSnapshot({
234
- executionId: 'vec-json-001',
235
- timestamp: '2026-01-01T00:00:00.000Z',
236
- provider: 'openai',
237
- model: 'gpt-4o',
238
- modelVersion: '2026-01-01',
239
- prompt: 'structured',
240
- input: { query: 'test', context: [1, 2, 3] },
241
- parameters: { temperature: 0.5, maxTokens: 256, topP: 0.9, seed: 42 },
242
- output: { answer: 'result', score: 0.99 },
243
- sdkVersion: '0.1.0',
244
- appId: 'myapp',
245
- });
246
- const expectedInputCanonical = '{"context":[1,2,3],"query":"test"}';
247
- const expectedOutputCanonical = '{"answer":"result","score":0.99}';
248
- assert.equal(toCanonicalJson(snap.input), expectedInputCanonical);
249
- assert.equal(toCanonicalJson(snap.output), expectedOutputCanonical);
250
- assert.equal(snap.inputHash, computeInputHash({ query: 'test', context: [1, 2, 3] }));
251
- assert.equal(snap.outputHash, computeOutputHash({ answer: 'result', score: 0.99 }));
252
- const v1 = verifySnapshot(snap);
253
- assert.equal(v1.ok, true);
254
- const bundle = sealCer(snap, { createdAt: '2026-01-01T00:00:00.000Z' });
255
- const v2 = verifyCer(bundle);
256
- assert.equal(v2.ok, true);
257
- const bundle2 = sealCer(snap, { createdAt: '2026-01-01T00:00:00.000Z' });
258
- assert.equal(bundle.certificateHash, bundle2.certificateHash);
259
- });
260
- });
261
- //# sourceMappingURL=vectors.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vectors.test.js","sourceRoot":"","sources":["../../src/__tests__/vectors.test.ts"],"names":[],"mappings":"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"}
package/dist/archive.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { CerAiExecutionBundle } from './types.js';
2
- export declare function exportCer(bundle: CerAiExecutionBundle): string;
3
- export declare function importCer(json: string): CerAiExecutionBundle;
4
- //# sourceMappingURL=archive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKvD,wBAAgB,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAE9D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAwB5D"}
package/dist/archive.js DELETED
@@ -1,28 +0,0 @@
1
- import { toCanonicalJson } from './canonicalJson.js';
2
- import { verifyCer } from './cer.js';
3
- import { CerVerificationError } from './errors.js';
4
- export function exportCer(bundle) {
5
- return toCanonicalJson(bundle);
6
- }
7
- export function importCer(json) {
8
- let parsed;
9
- try {
10
- parsed = JSON.parse(json);
11
- }
12
- catch (err) {
13
- throw new CerVerificationError([`Invalid JSON: ${err.message}`]);
14
- }
15
- const bundle = parsed;
16
- if (!bundle || typeof bundle !== 'object') {
17
- throw new CerVerificationError(['Parsed value is not an object']);
18
- }
19
- if (bundle.bundleType !== 'cer.ai.execution.v1') {
20
- throw new CerVerificationError([`Expected bundleType "cer.ai.execution.v1", got "${bundle.bundleType}"`]);
21
- }
22
- const result = verifyCer(bundle);
23
- if (!result.ok) {
24
- throw new CerVerificationError(result.errors);
25
- }
26
- return bundle;
27
- }
28
- //# sourceMappingURL=archive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,UAAU,SAAS,CAAC,MAA4B;IACpD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,oBAAoB,CAAC,CAAC,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,MAAM,GAAG,MAA8B,CAAC;IAE9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,oBAAoB,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,qBAAqB,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAAC,CAAC,mDAAmD,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/attest.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { CerAiExecutionBundle, AttestationResult, AttestOptions } from './types.js';
2
- export declare function attest(bundle: CerAiExecutionBundle, options: AttestOptions): Promise<AttestationResult>;
3
- //# sourceMappingURL=attest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attest.d.ts","sourceRoot":"","sources":["../src/attest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGzF,wBAAsB,MAAM,CAC1B,MAAM,EAAE,oBAAoB,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAmD5B"}
package/dist/attest.js DELETED
@@ -1,42 +0,0 @@
1
- import { CerAttestationError } from './errors.js';
2
- export async function attest(bundle, options) {
3
- const url = `${options.nodeUrl.replace(/\/+$/, '')}/api/attest`;
4
- let response;
5
- try {
6
- response = await fetch(url, {
7
- method: 'POST',
8
- headers: {
9
- 'Content-Type': 'application/json',
10
- 'Authorization': `Bearer ${options.apiKey}`,
11
- },
12
- body: JSON.stringify(bundle),
13
- });
14
- }
15
- catch (err) {
16
- throw new CerAttestationError(`Network error contacting attestation node: ${err.message}`);
17
- }
18
- let body;
19
- try {
20
- body = await response.json();
21
- }
22
- catch {
23
- const text = await response.text().catch(() => '');
24
- throw new CerAttestationError(`Attestation node returned non-JSON response (${response.status}): ${text}`, response.status);
25
- }
26
- if (!response.ok) {
27
- const msg = typeof body === 'object' && body !== null && 'error' in body
28
- ? body.error
29
- : `HTTP ${response.status}`;
30
- throw new CerAttestationError(`Attestation failed: ${msg}`, response.status, body);
31
- }
32
- const result = body;
33
- return {
34
- ok: true,
35
- attestationId: typeof result.attestationId === 'string' ? result.attestationId : undefined,
36
- nodeRuntimeHash: typeof result.nodeRuntimeHash === 'string' ? result.nodeRuntimeHash : undefined,
37
- certificateHash: typeof result.certificateHash === 'string' ? result.certificateHash : undefined,
38
- protocolVersion: typeof result.protocolVersion === 'string' ? result.protocolVersion : undefined,
39
- raw: body,
40
- };
41
- }
42
- //# sourceMappingURL=attest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attest.js","sourceRoot":"","sources":["../src/attest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAA4B,EAC5B,OAAsB;IAEtB,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC;IAEhE,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC1B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE;aAC5C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,mBAAmB,CAC3B,8CAA+C,GAAa,CAAC,OAAO,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,mBAAmB,CAC3B,gDAAgD,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,EAC3E,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI;YACtE,CAAC,CAAE,IAA0B,CAAC,KAAK;YACnC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,GAAG,EAAE,EAC5B,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAA+B,CAAC;IAE/C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,aAAa,EAAE,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC1F,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChG,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChG,eAAe,EAAE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QAChG,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function toCanonicalJson(value: unknown): string;
2
- //# sourceMappingURL=canonicalJson.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonicalJson.d.ts","sourceRoot":"","sources":["../src/canonicalJson.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD"}
@@ -1,38 +0,0 @@
1
- export function toCanonicalJson(value) {
2
- return canonicalize(value);
3
- }
4
- function canonicalize(value) {
5
- if (value === null) {
6
- return 'null';
7
- }
8
- if (typeof value === 'boolean') {
9
- return value ? 'true' : 'false';
10
- }
11
- if (typeof value === 'number') {
12
- if (!Number.isFinite(value)) {
13
- throw new Error(`Non-finite number not allowed in canonical JSON: ${value}`);
14
- }
15
- return JSON.stringify(value);
16
- }
17
- if (typeof value === 'string') {
18
- return JSON.stringify(value);
19
- }
20
- if (Array.isArray(value)) {
21
- const items = value.map(item => canonicalize(item));
22
- return '[' + items.join(',') + ']';
23
- }
24
- if (typeof value === 'object') {
25
- const obj = value;
26
- const keys = Object.keys(obj).sort();
27
- const entries = keys.map(key => {
28
- const val = obj[key];
29
- if (val === undefined) {
30
- return null;
31
- }
32
- return JSON.stringify(key) + ':' + canonicalize(val);
33
- }).filter(e => e !== null);
34
- return '{' + entries.join(',') + '}';
35
- }
36
- throw new Error(`Unsupported type for canonical JSON: ${typeof value}`);
37
- }
38
- //# sourceMappingURL=canonicalJson.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonicalJson.js","sourceRoot":"","sources":["../src/canonicalJson.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC3B,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC"}
package/dist/cer.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { AiExecutionSnapshotV1, CerAiExecutionBundle, CerMeta, VerificationResult } from './types.js';
2
- export declare function sealCer(snapshot: AiExecutionSnapshotV1, options?: {
3
- createdAt?: string;
4
- meta?: CerMeta;
5
- }): CerAiExecutionBundle;
6
- export declare function verifyCer(bundle: CerAiExecutionBundle): VerificationResult;
7
- //# sourceMappingURL=cer.d.ts.map
package/dist/cer.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cer.d.ts","sourceRoot":"","sources":["../src/cer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiB3G,wBAAgB,OAAO,CACrB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,oBAAoB,CAyBtB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,CAwC1E"}
package/dist/cer.js DELETED
@@ -1,61 +0,0 @@
1
- import { toCanonicalJson } from './canonicalJson.js';
2
- import { sha256Hex } from './hash.js';
3
- import { verifySnapshot } from './snapshot.js';
4
- function computeCertificateHash(payload) {
5
- const canonical = toCanonicalJson(payload);
6
- return `sha256:${sha256Hex(canonical)}`;
7
- }
8
- export function sealCer(snapshot, options) {
9
- const createdAt = options?.createdAt ?? new Date().toISOString();
10
- const payload = {
11
- bundleType: 'cer.ai.execution.v1',
12
- createdAt,
13
- snapshot,
14
- version: '0.1',
15
- };
16
- const certificateHash = computeCertificateHash(payload);
17
- const bundle = {
18
- bundleType: 'cer.ai.execution.v1',
19
- certificateHash,
20
- createdAt,
21
- version: '0.1',
22
- snapshot,
23
- };
24
- if (options?.meta) {
25
- bundle.meta = options.meta;
26
- }
27
- return bundle;
28
- }
29
- export function verifyCer(bundle) {
30
- const errors = [];
31
- if (bundle.bundleType !== 'cer.ai.execution.v1') {
32
- errors.push(`Expected bundleType "cer.ai.execution.v1", got "${bundle.bundleType}"`);
33
- }
34
- if (bundle.version !== '0.1') {
35
- errors.push(`Expected version "0.1", got "${bundle.version}"`);
36
- }
37
- if (!bundle.createdAt || typeof bundle.createdAt !== 'string') {
38
- errors.push('createdAt must be a non-empty string');
39
- }
40
- if (!bundle.certificateHash || !bundle.certificateHash.startsWith('sha256:')) {
41
- errors.push(`certificateHash must start with "sha256:", got "${bundle.certificateHash}"`);
42
- }
43
- if (!bundle.snapshot) {
44
- errors.push('snapshot is required');
45
- return { ok: false, errors };
46
- }
47
- const snapshotResult = verifySnapshot(bundle.snapshot);
48
- errors.push(...snapshotResult.errors);
49
- const payload = {
50
- bundleType: 'cer.ai.execution.v1',
51
- createdAt: bundle.createdAt,
52
- snapshot: bundle.snapshot,
53
- version: '0.1',
54
- };
55
- const expectedHash = computeCertificateHash(payload);
56
- if (bundle.certificateHash !== expectedHash) {
57
- errors.push(`certificateHash mismatch: expected ${expectedHash}, got ${bundle.certificateHash}`);
58
- }
59
- return { ok: errors.length === 0, errors };
60
- }
61
- //# sourceMappingURL=cer.js.map
package/dist/cer.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cer.js","sourceRoot":"","sources":["../src/cer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,SAAS,sBAAsB,CAAC,OAA2B;IACzD,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,UAAU,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,QAA+B,EAC/B,OAAgD;IAEhD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEjE,MAAM,OAAO,GAAuB;QAClC,UAAU,EAAE,qBAAqB;QACjC,SAAS;QACT,QAAQ;QACR,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,MAAM,GAAyB;QACnC,UAAU,EAAE,qBAAqB;QACjC,eAAe;QACf,SAAS;QACT,OAAO,EAAE,KAAK;QACd,QAAQ;KACT,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAA4B;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,CAAC,UAAU,KAAK,qBAAqB,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAuB;QAClC,UAAU,EAAE,qBAAqB;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,sCAAsC,YAAY,SAAS,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC"}
package/dist/certify.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { CerAiExecutionBundle, CertifyDecisionParams } from './types.js';
2
- export declare function certifyDecision(params: CertifyDecisionParams): CerAiExecutionBundle;
3
- //# sourceMappingURL=certify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"certify.d.ts","sourceRoot":"","sources":["../src/certify.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAI9E,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,oBAAoB,CAwBnF"}
package/dist/certify.js DELETED
@@ -1,27 +0,0 @@
1
- import * as crypto from 'crypto';
2
- import { createSnapshot } from './snapshot.js';
3
- import { sealCer } from './cer.js';
4
- export function certifyDecision(params) {
5
- const executionId = params.executionId ?? crypto.randomUUID();
6
- const snapshot = createSnapshot({
7
- executionId,
8
- timestamp: params.timestamp,
9
- provider: params.provider,
10
- model: params.model,
11
- modelVersion: params.modelVersion,
12
- prompt: params.prompt,
13
- input: params.input,
14
- parameters: params.parameters,
15
- output: params.output,
16
- sdkVersion: params.sdkVersion,
17
- appId: params.appId,
18
- runId: params.runId,
19
- stepId: params.stepId,
20
- stepIndex: params.stepIndex,
21
- workflowId: params.workflowId,
22
- conversationId: params.conversationId,
23
- prevStepHash: params.prevStepHash,
24
- });
25
- return sealCer(snapshot, { meta: params.meta });
26
- }
27
- //# sourceMappingURL=certify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"certify.js","sourceRoot":"","sources":["../src/certify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAE9D,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,WAAW;QACX,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC"}
package/dist/errors.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export declare class CerVerificationError extends Error {
2
- readonly errors: string[];
3
- constructor(errors: string[]);
4
- }
5
- export declare class CerAttestationError extends Error {
6
- readonly statusCode?: number;
7
- readonly responseBody?: unknown;
8
- constructor(message: string, statusCode?: number, responseBody?: unknown);
9
- }
10
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,MAAM,EAAE,MAAM,EAAE,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE;CAK7B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpC,SAAgB,YAAY,CAAC,EAAE,OAAO,CAAC;gBAE3B,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;CAMzE"}