@nexart/codemode-sdk 1.8.3 → 1.9.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 (150) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +121 -2
  3. package/dist/cjs/browser.cjs +3077 -0
  4. package/dist/cjs/browser.js +3042 -0
  5. package/dist/cjs/core.cjs +1998 -0
  6. package/dist/cjs/core.js +1966 -0
  7. package/dist/cjs/node.cjs +3245 -0
  8. package/dist/cjs/node.js +3208 -0
  9. package/dist/esm/browser.cjs +3077 -0
  10. package/dist/esm/browser.js +3042 -0
  11. package/dist/esm/core.cjs +1998 -0
  12. package/dist/esm/core.js +1966 -0
  13. package/dist/esm/node.cjs +3245 -0
  14. package/dist/esm/node.js +3208 -0
  15. package/dist/types/sdk/codemode/attestation.d.ts +24 -0
  16. package/dist/types/sdk/codemode/attestation.d.ts.map +1 -0
  17. package/dist/types/sdk/codemode/builder-manifest.d.ts.map +1 -0
  18. package/dist/types/sdk/codemode/canonicalJson.d.ts +16 -0
  19. package/dist/types/sdk/codemode/canonicalJson.d.ts.map +1 -0
  20. package/dist/{sdk → types/sdk}/codemode/core-index.d.ts +5 -1
  21. package/dist/types/sdk/codemode/core-index.d.ts.map +1 -0
  22. package/dist/types/sdk/codemode/engine.d.ts.map +1 -0
  23. package/dist/{sdk → types/sdk}/codemode/entry/browser.d.ts +1 -1
  24. package/dist/types/sdk/codemode/entry/browser.d.ts.map +1 -0
  25. package/dist/types/sdk/codemode/entry/node.d.ts.map +1 -0
  26. package/dist/types/sdk/codemode/execute.d.ts.map +1 -0
  27. package/dist/types/sdk/codemode/execution-sandbox.d.ts.map +1 -0
  28. package/dist/types/sdk/codemode/loop-engine.d.ts.map +1 -0
  29. package/dist/types/sdk/codemode/nodeReceipt.d.ts +65 -0
  30. package/dist/types/sdk/codemode/nodeReceipt.d.ts.map +1 -0
  31. package/dist/types/sdk/codemode/p5-runtime.d.ts.map +1 -0
  32. package/dist/{sdk → types/sdk}/codemode/runtime.d.ts +1 -1
  33. package/dist/types/sdk/codemode/runtime.d.ts.map +1 -0
  34. package/dist/types/sdk/codemode/snapshot.d.ts +72 -0
  35. package/dist/types/sdk/codemode/snapshot.d.ts.map +1 -0
  36. package/dist/types/sdk/codemode/sound-bridge.d.ts.map +1 -0
  37. package/dist/types/sdk/codemode/soundart-engine.d.ts.map +1 -0
  38. package/dist/types/sdk/codemode/soundart-sketches/chladniBloom.d.ts.map +1 -0
  39. package/dist/types/sdk/codemode/soundart-sketches/dualVortex.d.ts.map +1 -0
  40. package/dist/types/sdk/codemode/soundart-sketches/geometryIllusion.d.ts.map +1 -0
  41. package/dist/types/sdk/codemode/soundart-sketches/index.d.ts.map +1 -0
  42. package/dist/types/sdk/codemode/soundart-sketches/isoflow.d.ts.map +1 -0
  43. package/dist/types/sdk/codemode/soundart-sketches/loomWeave.d.ts.map +1 -0
  44. package/dist/types/sdk/codemode/soundart-sketches/noiseTerraces.d.ts.map +1 -0
  45. package/dist/types/sdk/codemode/soundart-sketches/orb.d.ts.map +1 -0
  46. package/dist/types/sdk/codemode/soundart-sketches/pixelGlyphs.d.ts.map +1 -0
  47. package/dist/types/sdk/codemode/soundart-sketches/prismFlowFields.d.ts.map +1 -0
  48. package/dist/types/sdk/codemode/soundart-sketches/radialBurst.d.ts.map +1 -0
  49. package/dist/types/sdk/codemode/soundart-sketches/resonantSoundBodies.d.ts.map +1 -0
  50. package/dist/types/sdk/codemode/soundart-sketches/rings.d.ts.map +1 -0
  51. package/dist/types/sdk/codemode/soundart-sketches/squares.d.ts.map +1 -0
  52. package/dist/types/sdk/codemode/soundart-sketches/waveStripes.d.ts.map +1 -0
  53. package/dist/types/sdk/codemode/static-engine.d.ts.map +1 -0
  54. package/dist/{sdk → types/sdk}/codemode/types.d.ts +96 -0
  55. package/dist/types/sdk/codemode/types.d.ts.map +1 -0
  56. package/dist/{sdk → types/sdk}/codemode/version.d.ts +2 -2
  57. package/dist/types/sdk/codemode/version.d.ts.map +1 -0
  58. package/dist/types/shared/soundSnapshot.d.ts.map +1 -0
  59. package/examples/sketch-minimal.js +27 -0
  60. package/examples/sketch-vars.js +59 -0
  61. package/examples/sketch.js +24 -0
  62. package/package.json +29 -23
  63. package/dist/sdk/codemode/builder-manifest.d.ts.map +0 -1
  64. package/dist/sdk/codemode/builder-manifest.js +0 -97
  65. package/dist/sdk/codemode/core-index.d.ts.map +0 -1
  66. package/dist/sdk/codemode/core-index.js +0 -28
  67. package/dist/sdk/codemode/engine.d.ts.map +0 -1
  68. package/dist/sdk/codemode/engine.js +0 -67
  69. package/dist/sdk/codemode/entry/browser.d.ts.map +0 -1
  70. package/dist/sdk/codemode/entry/browser.js +0 -69
  71. package/dist/sdk/codemode/entry/node.d.ts.map +0 -1
  72. package/dist/sdk/codemode/entry/node.js +0 -35
  73. package/dist/sdk/codemode/execute.d.ts.map +0 -1
  74. package/dist/sdk/codemode/execute.js +0 -283
  75. package/dist/sdk/codemode/execution-sandbox.d.ts.map +0 -1
  76. package/dist/sdk/codemode/execution-sandbox.js +0 -207
  77. package/dist/sdk/codemode/loop-engine.d.ts.map +0 -1
  78. package/dist/sdk/codemode/loop-engine.js +0 -229
  79. package/dist/sdk/codemode/p5-runtime.d.ts.map +0 -1
  80. package/dist/sdk/codemode/p5-runtime.js +0 -1033
  81. package/dist/sdk/codemode/runtime.d.ts.map +0 -1
  82. package/dist/sdk/codemode/runtime.js +0 -220
  83. package/dist/sdk/codemode/sound-bridge.d.ts.map +0 -1
  84. package/dist/sdk/codemode/sound-bridge.js +0 -128
  85. package/dist/sdk/codemode/soundart-engine.d.ts.map +0 -1
  86. package/dist/sdk/codemode/soundart-engine.js +0 -173
  87. package/dist/sdk/codemode/soundart-sketches/chladniBloom.d.ts.map +0 -1
  88. package/dist/sdk/codemode/soundart-sketches/chladniBloom.js +0 -53
  89. package/dist/sdk/codemode/soundart-sketches/dualVortex.d.ts.map +0 -1
  90. package/dist/sdk/codemode/soundart-sketches/dualVortex.js +0 -67
  91. package/dist/sdk/codemode/soundart-sketches/geometryIllusion.d.ts.map +0 -1
  92. package/dist/sdk/codemode/soundart-sketches/geometryIllusion.js +0 -89
  93. package/dist/sdk/codemode/soundart-sketches/index.d.ts.map +0 -1
  94. package/dist/sdk/codemode/soundart-sketches/index.js +0 -72
  95. package/dist/sdk/codemode/soundart-sketches/isoflow.d.ts.map +0 -1
  96. package/dist/sdk/codemode/soundart-sketches/isoflow.js +0 -60
  97. package/dist/sdk/codemode/soundart-sketches/loomWeave.d.ts.map +0 -1
  98. package/dist/sdk/codemode/soundart-sketches/loomWeave.js +0 -59
  99. package/dist/sdk/codemode/soundart-sketches/noiseTerraces.d.ts.map +0 -1
  100. package/dist/sdk/codemode/soundart-sketches/noiseTerraces.js +0 -53
  101. package/dist/sdk/codemode/soundart-sketches/orb.d.ts.map +0 -1
  102. package/dist/sdk/codemode/soundart-sketches/orb.js +0 -50
  103. package/dist/sdk/codemode/soundart-sketches/pixelGlyphs.d.ts.map +0 -1
  104. package/dist/sdk/codemode/soundart-sketches/pixelGlyphs.js +0 -72
  105. package/dist/sdk/codemode/soundart-sketches/prismFlowFields.d.ts.map +0 -1
  106. package/dist/sdk/codemode/soundart-sketches/prismFlowFields.js +0 -51
  107. package/dist/sdk/codemode/soundart-sketches/radialBurst.d.ts.map +0 -1
  108. package/dist/sdk/codemode/soundart-sketches/radialBurst.js +0 -60
  109. package/dist/sdk/codemode/soundart-sketches/resonantSoundBodies.d.ts.map +0 -1
  110. package/dist/sdk/codemode/soundart-sketches/resonantSoundBodies.js +0 -89
  111. package/dist/sdk/codemode/soundart-sketches/rings.d.ts.map +0 -1
  112. package/dist/sdk/codemode/soundart-sketches/rings.js +0 -89
  113. package/dist/sdk/codemode/soundart-sketches/squares.d.ts.map +0 -1
  114. package/dist/sdk/codemode/soundart-sketches/squares.js +0 -52
  115. package/dist/sdk/codemode/soundart-sketches/waveStripes.d.ts.map +0 -1
  116. package/dist/sdk/codemode/soundart-sketches/waveStripes.js +0 -44
  117. package/dist/sdk/codemode/static-engine.d.ts.map +0 -1
  118. package/dist/sdk/codemode/static-engine.js +0 -157
  119. package/dist/sdk/codemode/types.d.ts.map +0 -1
  120. package/dist/sdk/codemode/types.js +0 -34
  121. package/dist/sdk/codemode/version.d.ts.map +0 -1
  122. package/dist/sdk/codemode/version.js +0 -17
  123. package/dist/shared/soundSnapshot.d.ts.map +0 -1
  124. package/dist/shared/soundSnapshot.js +0 -128
  125. /package/dist/{sdk → types/sdk}/codemode/builder-manifest.d.ts +0 -0
  126. /package/dist/{sdk → types/sdk}/codemode/engine.d.ts +0 -0
  127. /package/dist/{sdk → types/sdk}/codemode/entry/node.d.ts +0 -0
  128. /package/dist/{sdk → types/sdk}/codemode/execute.d.ts +0 -0
  129. /package/dist/{sdk → types/sdk}/codemode/execution-sandbox.d.ts +0 -0
  130. /package/dist/{sdk → types/sdk}/codemode/loop-engine.d.ts +0 -0
  131. /package/dist/{sdk → types/sdk}/codemode/p5-runtime.d.ts +0 -0
  132. /package/dist/{sdk → types/sdk}/codemode/sound-bridge.d.ts +0 -0
  133. /package/dist/{sdk → types/sdk}/codemode/soundart-engine.d.ts +0 -0
  134. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/chladniBloom.d.ts +0 -0
  135. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/dualVortex.d.ts +0 -0
  136. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/geometryIllusion.d.ts +0 -0
  137. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/index.d.ts +0 -0
  138. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/isoflow.d.ts +0 -0
  139. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/loomWeave.d.ts +0 -0
  140. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/noiseTerraces.d.ts +0 -0
  141. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/orb.d.ts +0 -0
  142. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/pixelGlyphs.d.ts +0 -0
  143. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/prismFlowFields.d.ts +0 -0
  144. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/radialBurst.d.ts +0 -0
  145. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/resonantSoundBodies.d.ts +0 -0
  146. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/rings.d.ts +0 -0
  147. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/squares.d.ts +0 -0
  148. /package/dist/{sdk → types/sdk}/codemode/soundart-sketches/waveStripes.d.ts +0 -0
  149. /package/dist/{sdk → types/sdk}/codemode/static-engine.d.ts +0 -0
  150. /package/dist/{shared → types/shared}/soundSnapshot.d.ts +0 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @nexart/codemode-sdk — Attestation Receipt Helpers (v1.9.0)
3
+ *
4
+ * Utilities for extracting and inspecting attestation receipts from Code Mode
5
+ * snapshot bundles. These are read-only helpers — they never perform network
6
+ * calls or signature verification. For full offline verification use
7
+ * verifyBundleAttestation() from nodeReceipt.ts.
8
+ *
9
+ * Recognised bundle layouts:
10
+ * A. Top-level envelope — bundle.receipt + bundle.signature
11
+ * B. Nested attestation — bundle.attestation.receipt + bundle.attestation.signature
12
+ * C. Legacy flat fields — bundle.attestationId (pre-receipt format)
13
+ */
14
+ import type { CodeAttestationReceipt } from './types.js';
15
+ /**
16
+ * Extract a normalised CodeAttestationReceipt from any Code Mode bundle.
17
+ * Returns null when no attestation is present.
18
+ */
19
+ export declare function getAttestationReceipt(bundle: unknown): CodeAttestationReceipt | null;
20
+ /**
21
+ * Return true if the bundle carries any form of attestation data.
22
+ */
23
+ export declare function hasAttestation(bundle: unknown): boolean;
24
+ //# sourceMappingURL=attestation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../../../attestation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAA4B,MAAM,YAAY,CAAC;AAEnF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAqDpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEvD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-manifest.d.ts","sourceRoot":"","sources":["../../../../builder-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAKrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAiB9E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,qBAAqB,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @nexart/codemode-sdk — Canonical JSON
3
+ *
4
+ * Deterministic, sorted-key JSON serialization used for signing and
5
+ * verifying attestation receipts. The output is byte-for-byte identical
6
+ * whether produced in Node.js or a browser.
7
+ *
8
+ * Rules:
9
+ * - Object keys are sorted lexicographically (Unicode code point order)
10
+ * - No trailing commas, no whitespace
11
+ * - Arrays preserve insertion order
12
+ * - null, boolean, number, string are encoded as standard JSON literals
13
+ * - Undefined values and function-valued properties are omitted (same as JSON.stringify)
14
+ */
15
+ export declare function toCanonicalJson(value: unknown): string;
16
+ //# sourceMappingURL=canonicalJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalJson.d.ts","sourceRoot":"","sources":["../../../../canonicalJson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAwBtD"}
@@ -14,10 +14,14 @@ export { createP5Runtime, injectTimeVariables, createProtocolVAR, VAR_COUNT, VAR
14
14
  export { runStaticMode, } from './static-engine';
15
15
  export { runLoopMode, cancelLoopMode, } from './loop-engine';
16
16
  export { createEngine, } from './engine';
17
+ export { CodeVerifyCode, type CodeVerifyCode as CodeVerifyCodeType, type CodeVerificationResult, type NodeReceiptVerifyResult, type NodeKeysDocument, type SignedAttestationReceipt, type CodeAttestationReceipt, } from './types.js';
18
+ export { verifyNodeReceiptSignature, fetchNodeKeys, selectNodeKey, verifyBundleAttestation, } from './nodeReceipt.js';
19
+ export { getAttestationReceipt, hasAttestation, } from './attestation.js';
20
+ export { toCanonicalJson } from './canonicalJson.js';
17
21
  /**
18
22
  * SDK Identity — imported from version.ts (single source of truth)
19
23
  */
20
- export declare const SDK_VERSION = "1.8.3";
24
+ export declare const SDK_VERSION = "1.9.0";
21
25
  export declare const SDK_NAME = "@nexart/codemode-sdk";
22
26
  export { PROTOCOL_VERSION, PROTOCOL_PHASE };
23
27
  //# sourceMappingURL=core-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-index.d.ts","sourceRoot":"","sources":["../../../../core-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA+B,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG1F,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,OAAO,EACP,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,YAAY,GACb,MAAM,UAAU,CAAC;AAKlB,OAAO,EACL,cAAc,EACd,KAAK,cAAc,IAAI,kBAAkB,EACzC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,WAAW,UAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,yBAAyB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAKhE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA+CzD;AAGD,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
@@ -28,7 +28,7 @@ export { createRuntime, NexArtRuntime, RUNTIME_VERSION, } from '../runtime';
28
28
  export type { RuntimeOptions, RuntimeState, NexArtRuntime as NexArtRuntimeType, } from '../runtime';
29
29
  export { renderSoundArtViaCodeMode, canRenderViaCodeMode, getCodeModeAvailableStyles, } from '../soundart-engine';
30
30
  export type { TweakParams, SoundArtEngineConfig, SoundArtRenderOptions, SoundArtRenderResult, SoundArtMetadata, SoundSnapshot, SoundFeatures, SoundArtSketchName, } from '../soundart-engine';
31
- export declare const SDK_VERSION = "1.8.3";
31
+ export declare const SDK_VERSION = "1.9.0";
32
32
  export declare const SDK_NAME = "@nexart/codemode-sdk";
33
33
  export declare const SDK_ENTRY = "browser";
34
34
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../../../entry/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,UAAU,CAAC;AAKlB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,OAAO,EACP,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,SAAS,EACT,eAAe,GAChB,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,YAAY,GACb,MAAM,WAAW,CAAC;AAKnB,OAAO,EACL,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,cAAc,EACd,YAAY,EACZ,aAAa,IAAI,iBAAiB,GACnC,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,WAAW,UAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,yBAAyB,CAAC;AAC/C,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC;;;;;;;;;;;GAWG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../../entry/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,cAAc,WAAW,CAAC;AAK1B,OAAO,EACL,aAAa,GACd,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,eAAe,GAChB,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClD,eAAO,MAAM,SAAS,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../../execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAMtB,MAAM,SAAS,CAAC;AAuNjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CAmChC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAuCpH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-sandbox.d.ts","sourceRoot":"","sources":["../../../../execution-sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAyDH;;GAEG;AACH,eAAO,MAAM,cAAc;6BAvD2B,GAAG,EAAE,KAAK,KAAK;;;;;;mCAAf,GAAG,EAAE,KAAK,KAAK;oCAAf,GAAG,EAAE,KAAK,KAAK;qCAAf,GAAG,EAAE,KAAK,KAAK;sCAAf,GAAG,EAAE,KAAK,KAAK;8CAAf,GAAG,EAAE,KAAK,KAAK;6CAAf,GAAG,EAAE,KAAK,KAAK;8BAAf,GAAG,EAAE,KAAK,KAAK;uCAAf,GAAG,EAAE,KAAK,KAAK;kCAAf,GAAG,EAAE,KAAK,KAAK;;;;;;;;;;;;;qCAAf,GAAG,EAAE,KAAK,KAAK;+BAAf,GAAG,EAAE,KAAK,KAAK;qCAAf,GAAG,EAAE,KAAK,KAAK;;6BAAf,GAAG,EAAE,KAAK,KAAK;6BAAf,GAAG,EAAE,KAAK,KAAK;mCAAf,GAAG,EAAE,KAAK,KAAK;4BAAf,GAAG,EAAE,KAAK,KAAK;wCAAf,GAAG,EAAE,KAAK,KAAK;gCAAf,GAAG,EAAE,KAAK,KAAK;gCAAf,GAAG,EAAE,KAAK,KAAK;iCAAf,GAAG,EAAE,KAAK,KAAK;oCAAf,GAAG,EAAE,KAAK,KAAK;8BAAf,GAAG,EAAE,KAAK,KAAK;8BAAf,GAAG,EAAE,KAAK,KAAK;8BAAf,GAAG,EAAE,KAAK,KAAK;6BAAf,GAAG,EAAE,KAAK,KAAK;iCAAf,GAAG,EAAE,KAAK,KAAK;CAqG3D,CAAC;AAEX;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,IAAI,CAU5C;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,UAA8B,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAavF;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,gBAAgB,GAAE,MAAM,EAAO,GAC9B,QAAQ,CAiBV;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAC1C,IAAI,CAsBN"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-engine.d.ts","sourceRoot":"","sources":["../../../../loop-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAA+B,MAAM,SAAS,CAAC;AAOrF,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CA+Mf"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @nexart/codemode-sdk — Node Receipt Verification (v1.9.0)
3
+ *
4
+ * Offline Ed25519 signature verification for Code Mode attestation receipts.
5
+ * Browser and Node.js compatible — uses @noble/ed25519 with @noble/hashes/sha2.
6
+ *
7
+ * Usage:
8
+ * const res = await verifyBundleAttestation(bundle, { nodeUrl });
9
+ * console.log(res.ok, res.code);
10
+ */
11
+ import type { NodeKeysDocument, SignedAttestationReceipt, NodeReceiptVerifyResult } from './types.js';
12
+ /**
13
+ * Verify an Ed25519 signature over the canonical JSON bytes of a receipt.
14
+ *
15
+ * @param params.receipt - The receipt object that was signed.
16
+ * @param params.signatureB64Url - Base64url-encoded 64-byte Ed25519 signature.
17
+ * @param params.key - Public key in one of: JWK, raw base64url, or SPKI.
18
+ */
19
+ export declare function verifyNodeReceiptSignature(params: {
20
+ receipt: SignedAttestationReceipt;
21
+ signatureB64Url: string;
22
+ key: {
23
+ jwk?: NodeKeysDocument['keys'][number]['publicKeyJwk'];
24
+ spkiB64?: string;
25
+ rawB64Url?: string;
26
+ };
27
+ }): Promise<NodeReceiptVerifyResult>;
28
+ /**
29
+ * Fetch node keys from /.well-known/nexart-node.json on the attestation node.
30
+ */
31
+ export declare function fetchNodeKeys(nodeUrl: string): Promise<NodeKeysDocument>;
32
+ type SelectKeySuccess = {
33
+ key: NodeKeysDocument['keys'][number];
34
+ error?: never;
35
+ };
36
+ type SelectKeyFailure = {
37
+ error: NodeReceiptVerifyResult;
38
+ key?: never;
39
+ };
40
+ type SelectKeyResult = SelectKeySuccess | SelectKeyFailure;
41
+ /**
42
+ * Select the appropriate key from a NodeKeysDocument.
43
+ *
44
+ * Priority: explicit kid → activeKid → first key in array.
45
+ */
46
+ export declare function selectNodeKey(doc: NodeKeysDocument, kid?: string): SelectKeyResult;
47
+ /**
48
+ * Fully verify a Code Mode bundle's node attestation (offline).
49
+ *
50
+ * Steps:
51
+ * 1. Extract signed receipt + signature from the bundle.
52
+ * 2. Cross-check receipt.certificateHash === bundle.certificateHash.
53
+ * 3. Fetch node keys from nodeUrl.
54
+ * 4. Select the key (by kid, activeKid, or first).
55
+ * 5. Verify the Ed25519 signature over canonical JSON of the receipt.
56
+ *
57
+ * @param bundle - A Code Mode snapshot bundle (any recognised layout).
58
+ * @param options - nodeUrl to fetch keys from; optional kid to select.
59
+ */
60
+ export declare function verifyBundleAttestation(bundle: unknown, options: {
61
+ nodeUrl: string;
62
+ kid?: string;
63
+ }): Promise<NodeReceiptVerifyResult>;
64
+ export {};
65
+ //# sourceMappingURL=nodeReceipt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeReceipt.d.ts","sourceRoot":"","sources":["../../../../nodeReceipt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAsBtG;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,OAAO,EAAE,wBAAwB,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE;QACH,GAAG,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACvD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA0EnC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAe9E;AAED,KAAK,gBAAgB,GAAG;IAAE,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACjF,KAAK,gBAAgB,GAAG;IAAE,KAAK,EAAE,uBAAuB,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACxE,KAAK,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,CAwClF;AAiDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,uBAAuB,CAAC,CAqFlC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p5-runtime.d.ts","sourceRoot":"","sources":["../../../../p5-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,UAAmB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,IAAiB,CAAC;AACvD,eAAO,MAAM,qBAAqB,EAAG,MAAe,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,KAAK,aAAa,GAAG,iBAAiB,CAAC;AAEvC,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,eAAe,GACvB,SAAS,CAs8BX;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAM3E;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,OAAO,MAAM,CAAC;AAE3B;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAmCpE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAE3E"}
@@ -18,7 +18,7 @@
18
18
  * ║ BROWSER-SAFE: No Node.js dependencies. Works in Vite/Next/React. ║
19
19
  * ╚══════════════════════════════════════════════════════════════════════════╝
20
20
  */
21
- export declare const RUNTIME_VERSION = "1.8.3";
21
+ export declare const RUNTIME_VERSION = "1.9.0";
22
22
  export interface RuntimeOptions {
23
23
  seed: string | number;
24
24
  vars?: number[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,eAAO,MAAM,eAAe,UAAc,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,IAAI,MAAM,CAAC;IACjB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,IAAI,MAAM,CAAC;IACjB,QAAQ,IAAI,YAAY,CAAC;IACzB,OAAO,IAAI,MAAM,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAqGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAuHpE;AAED,eAAO,MAAM,aAAa;;;CAGzB,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * NexArt CodeMode SDK - Snapshot Support
3
+ * See version.ts for SDK version (single source of truth)
4
+ *
5
+ * Provides snapshot utilities for deterministic execution and verification.
6
+ */
7
+ import { SDK_VERSION, PROTOCOL_VERSION } from './version';
8
+ /**
9
+ * Snapshot v1 format
10
+ */
11
+ export interface NexArtSnapshotV1 {
12
+ protocol: 'nexart';
13
+ protocolVersion: string;
14
+ runtime: 'canonical';
15
+ runtimeHash: string;
16
+ codeHash: string;
17
+ seed: number;
18
+ VAR: number[];
19
+ canvas: {
20
+ width: number;
21
+ height: number;
22
+ };
23
+ outputHash: string;
24
+ createdAt: string;
25
+ code?: string;
26
+ }
27
+ /**
28
+ * Options for snapshot creation
29
+ */
30
+ export interface CreateSnapshotOptions {
31
+ code: string;
32
+ seed: number;
33
+ VAR: number[];
34
+ width: number;
35
+ height: number;
36
+ outputHash: string;
37
+ runtimeHash?: string;
38
+ includeCode?: boolean;
39
+ }
40
+ /**
41
+ * Normalize code for consistent hashing
42
+ * - CRLF to LF
43
+ * - Trim trailing whitespace per line
44
+ * - Ensure single trailing newline
45
+ */
46
+ export declare function normalizeCode(code: string): string;
47
+ /**
48
+ * SHA-256 hash for bytes (Node.js only, synchronous)
49
+ */
50
+ export declare function sha256Bytes(data: Buffer | Uint8Array): string;
51
+ /**
52
+ * SHA-256 hash for strings (Node.js only, synchronous)
53
+ */
54
+ export declare function sha256String(data: string): string;
55
+ /**
56
+ * Hash code after normalization
57
+ */
58
+ export declare function hashCode(code: string): string;
59
+ /**
60
+ * Pad or truncate VAR array to exactly 10 elements
61
+ */
62
+ export declare function normalizeVAR(vars?: number[]): number[];
63
+ /**
64
+ * Create a Snapshot v1 from execution parameters
65
+ */
66
+ export declare function createSnapshotV1(options: CreateSnapshotOptions): NexArtSnapshotV1;
67
+ /**
68
+ * Validate snapshot structure
69
+ */
70
+ export declare function validateSnapshot(snapshot: unknown): snapshot is NexArtSnapshotV1;
71
+ export { SDK_VERSION, PROTOCOL_VERSION };
72
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../../snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAK7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAQtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,gBAAgB,CAmBjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,gBAAgB,CAmBhF;AAGD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound-bridge.d.ts","sourceRoot":"","sources":["../../../../sound-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,aAAa,CAAC;CAE5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,CAExE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,CAEtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9D,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,aAAa,GACtB,CAAC,GAAG;IAAE,CAAC,EAAE,YAAY,CAAA;CAAE,CAuBzB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB;IAE9B;;OAEG;sBACe,MAAM,UAAU,MAAM,UAAU,MAAM,KAAG,MAAM;IAIjE;;OAEG;2BACoB,MAAM,UAAU,MAAM,UAAU,MAAM,WAAU,MAAM,KAAO,MAAM;IAK1F;;OAEG;2BACoB,MAAM,aAAa,MAAM,cAAc,MAAM,KAAG,MAAM;EAIhF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,EACvB,WAAW,GAAE,MAAU,GACtB,MAAM,EAAE,CAeV;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AACjD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,CAiBvE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soundart-engine.d.ts","sourceRoot":"","sources":["../../../../soundart-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI/E,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACP,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,gBAAgB,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH;AAqCD;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAoG/B;AA4BD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAEvE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,kBAAkB,EAAE,CAGjE;AAGD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chladniBloom.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/chladniBloom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,+hEAmDhC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dualVortex.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/dualVortex.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,m/EAiE9B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometryIllusion.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/geometryIllusion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,krGAuFpC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,aAAa,GACb,aAAa,GACb,KAAK,GACL,aAAa,GACb,SAAS,GACT,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,SAAS,GACT,kBAAkB,GAClB,qBAAqB,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAehE,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,kBAAkB,EAAE,CAEnE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAE3E;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isoflow.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/isoflow.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,g2EA0D1B,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loomWeave.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/loomWeave.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,0wEAyD7B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noiseTerraces.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/noiseTerraces.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,muDAmDjC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orb.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/orb.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,4kEAgDtB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixelGlyphs.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/pixelGlyphs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,m4FAsE/B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prismFlowFields.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/prismFlowFields.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,43DAiDpC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radialBurst.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/radialBurst.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,+5DA0D/B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resonantSoundBodies.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/resonantSoundBodies.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,wtGAuFxC,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rings.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/rings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,YAAY,u2FA+ExB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"squares.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/squares.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,0kDAkD1B,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waveStripes.d.ts","sourceRoot":"","sources":["../../../../../soundart-sketches/waveStripes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,6vDA0C/B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-engine.d.ts","sourceRoot":"","sources":["../../../../static-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AAkDtE,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CA6Hf"}
@@ -149,6 +149,102 @@ export interface ExecuteCodeModeResult {
149
149
  frames?: ImageData[];
150
150
  metadata: ProtocolMetadata;
151
151
  }
152
+ /**
153
+ * ─────────────────────────────────────────────────────────────────────────────
154
+ * Verification Reason Codes (v1.9.0)
155
+ * ─────────────────────────────────────────────────────────────────────────────
156
+ *
157
+ * Stable, string-valued reason codes returned by all Code Mode verification
158
+ * functions. Additive-only: existing codes will never be renamed or removed.
159
+ */
160
+ export declare const CodeVerifyCode: {
161
+ readonly OK: "OK";
162
+ readonly CERTIFICATE_HASH_MISMATCH: "CERTIFICATE_HASH_MISMATCH";
163
+ readonly SNAPSHOT_HASH_MISMATCH: "SNAPSHOT_HASH_MISMATCH";
164
+ readonly RENDER_HASH_MISMATCH: "RENDER_HASH_MISMATCH";
165
+ readonly INVALID_SHA256_FORMAT: "INVALID_SHA256_FORMAT";
166
+ readonly CANONICALIZATION_ERROR: "CANONICALIZATION_ERROR";
167
+ readonly SCHEMA_ERROR: "SCHEMA_ERROR";
168
+ readonly NODE_RECEIPT_MISSING: "NODE_RECEIPT_MISSING";
169
+ readonly NODE_RECEIPT_KEY_NOT_FOUND: "NODE_RECEIPT_KEY_NOT_FOUND";
170
+ readonly NODE_RECEIPT_INVALID_SIGNATURE: "NODE_RECEIPT_INVALID_SIGNATURE";
171
+ readonly NODE_RECEIPT_KEY_FORMAT_UNSUPPORTED: "NODE_RECEIPT_KEY_FORMAT_UNSUPPORTED";
172
+ readonly UNKNOWN_ERROR: "UNKNOWN_ERROR";
173
+ };
174
+ export type CodeVerifyCode = typeof CodeVerifyCode[keyof typeof CodeVerifyCode];
175
+ /**
176
+ * Verification result returned by Code Mode verification functions.
177
+ * `ok` — true on success
178
+ * `code` — stable machine-readable reason code (CodeVerifyCode)
179
+ * `details` — optional human-readable detail lines
180
+ */
181
+ export interface CodeVerificationResult {
182
+ ok: boolean;
183
+ code: CodeVerifyCode;
184
+ details?: string[];
185
+ }
186
+ /**
187
+ * ─────────────────────────────────────────────────────────────────────────────
188
+ * Signed Attestation Receipt — Code Mode (v1.9.0)
189
+ * ─────────────────────────────────────────────────────────────────────────────
190
+ *
191
+ * Payload signed by the attestation node over a Code Mode snapshot bundle.
192
+ * The signature is Ed25519 over the canonical JSON bytes of this object.
193
+ */
194
+ export interface SignedAttestationReceipt {
195
+ receiptVersion: 'attestation.receipt.v1';
196
+ attestationId: string;
197
+ attestedAt: string;
198
+ nodeId: string;
199
+ attestorKeyId: string;
200
+ nodeRuntimeHash: string;
201
+ certificateHash: string;
202
+ protocolVersion: string;
203
+ [key: string]: unknown;
204
+ }
205
+ /**
206
+ * Node Keys Document
207
+ * Fetched from /.well-known/nexart-node.json on the attestation node.
208
+ */
209
+ export interface NodeKeysDocument {
210
+ nodeId: string;
211
+ activeKid?: string;
212
+ keys: Array<{
213
+ kid: string;
214
+ alg: 'Ed25519';
215
+ use: 'sig';
216
+ publicKeyJwk?: {
217
+ kty: 'OKP';
218
+ crv: 'Ed25519';
219
+ x: string;
220
+ };
221
+ publicKey?: string;
222
+ publicKeySpkiB64?: string;
223
+ createdAt?: string;
224
+ }>;
225
+ }
226
+ /**
227
+ * Result of node receipt signature verification (Code Mode variant).
228
+ * Alias of CodeVerificationResult — kept as a distinct named type for
229
+ * clarity in function signatures.
230
+ */
231
+ export type NodeReceiptVerifyResult = CodeVerificationResult;
232
+ /**
233
+ * Normalised attestation receipt extracted from any Code Mode bundle format.
234
+ * Returned by getAttestationReceipt().
235
+ */
236
+ export interface CodeAttestationReceipt {
237
+ attestationId: string;
238
+ attestedAt: string;
239
+ nodeId?: string;
240
+ attestorKeyId?: string;
241
+ nodeRuntimeHash?: string;
242
+ certificateHash?: string;
243
+ protocolVersion?: string;
244
+ receipt?: SignedAttestationReceipt;
245
+ signature?: string;
246
+ [key: string]: unknown;
247
+ }
152
248
  /**
153
249
  * Builder Manifest (v1.6.0)
154
250
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../types.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@
8
8
  * See package.json for the canonical npm version.
9
9
  */
10
10
  /** SDK version - must match package.json version */
11
- export declare const SDK_VERSION = "1.8.3";
11
+ export declare const SDK_VERSION = "1.9.0";
12
12
  /** Protocol version - defines runtime semantics and determinism guarantees */
13
13
  export declare const PROTOCOL_VERSION = "1.2.0";
14
14
  /** Protocol phase - phase 3 = stable, production-ready */
15
15
  export declare const PROTOCOL_PHASE = 3;
16
16
  /** Combined version string for display */
17
- export declare const VERSION_STRING = "v1.8.3 (Protocol v1.2.0)";
17
+ export declare const VERSION_STRING = "v1.9.0 (Protocol v1.2.0)";
18
18
  //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oDAAoD;AACpD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,0CAA0C;AAC1C,eAAO,MAAM,cAAc,6BAAoD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soundSnapshot.d.ts","sourceRoot":"","sources":["../../../../../shared/soundSnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAE5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAC;IAGpB,OAAO,EAAE,MAAM,CAAC;IAGhB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IAGV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAmBxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,MAAM,CAAC,EAAE,aAAa,EAAE,EACxB,QAAQ,GAAE,MAAY,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,aAAa,CAsEf;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAEpF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Minimal NexArt Code Mode Sketch
3
+ *
4
+ * A simple sketch demonstrating basic canvas operations.
5
+ * No randomness - produces identical output every run.
6
+ *
7
+ * Canonical size: 1950x2400 (enforced by canonical renderer)
8
+ */
9
+
10
+ createCanvas(1950, 2400);
11
+ background(20, 20, 30);
12
+
13
+ noStroke();
14
+
15
+ fill(255, 100, 100);
16
+ ellipse(width / 2, height / 3, 600, 600);
17
+
18
+ fill(100, 255, 100);
19
+ ellipse(width / 3, height * 2 / 3, 400, 400);
20
+
21
+ fill(100, 100, 255);
22
+ ellipse(width * 2 / 3, height * 2 / 3, 400, 400);
23
+
24
+ stroke(255);
25
+ strokeWeight(4);
26
+ noFill();
27
+ rect(100, 100, width - 200, height - 200, 50);
@@ -0,0 +1,59 @@
1
+ /**
2
+ * VAR + Random Sketch - Demonstrates Determinism
3
+ *
4
+ * This sketch uses VAR parameters and random() to show that
5
+ * NexArt Code Mode produces identical output for the same seed.
6
+ *
7
+ * VAR[0]: Number of circles (0-100 maps to 10-50)
8
+ * VAR[1]: Circle size multiplier (0-100 maps to 0.5-2.0)
9
+ * VAR[2]: Color hue shift (0-100 maps to 0-360)
10
+ *
11
+ * Canonical size: 1950x2400 (enforced by canonical renderer)
12
+ *
13
+ * Usage:
14
+ * nexart run sketch-vars.js --seed 12345 --vars 50,75,25
15
+ */
16
+
17
+ createCanvas(1950, 2400);
18
+ background(10, 10, 20);
19
+
20
+ const numCircles = Math.floor(map(VAR[0], 0, 100, 10, 50));
21
+ const sizeMultiplier = map(VAR[1], 0, 100, 0.5, 2.0);
22
+ const hueShift = map(VAR[2], 0, 100, 0, 360);
23
+
24
+ colorMode(HSB, 360, 100, 100, 100);
25
+
26
+ noStroke();
27
+
28
+ for (let i = 0; i < numCircles; i++) {
29
+ const x = random(100, width - 100);
30
+ const y = random(100, height - 100);
31
+ const baseSize = random(50, 200) * sizeMultiplier;
32
+ const hue = (random(360) + hueShift) % 360;
33
+ const sat = random(60, 100);
34
+ const bright = random(70, 100);
35
+ const alpha = random(40, 80);
36
+
37
+ fill(hue, sat, bright, alpha);
38
+ ellipse(x, y, baseSize, baseSize);
39
+ }
40
+
41
+ stroke(0, 0, 100, 50);
42
+ strokeWeight(2);
43
+ noFill();
44
+
45
+ for (let i = 0; i < 20; i++) {
46
+ const x1 = random(width);
47
+ const y1 = random(height);
48
+ const x2 = random(width);
49
+ const y2 = random(height);
50
+ line(x1, y1, x2, y2);
51
+ }
52
+
53
+ colorMode(RGB, 255);
54
+ fill(255);
55
+ noStroke();
56
+ textSize(48);
57
+ textAlign(CENTER, TOP);
58
+ text(`Seed: ${SEED}`, width / 2, 50);
59
+ text(`VAR: [${VAR[0]}, ${VAR[1]}, ${VAR[2]}]`, width / 2, 120);
@@ -0,0 +1,24 @@
1
+ function setup() {
2
+ const brightness = map(VAR[0], 0, 100, 20, 245);
3
+ background(brightness);
4
+
5
+ const diameter = map(VAR[1], 0, 100, 200, 1400);
6
+
7
+ // Deterministic palette choice (no random dependency)
8
+ const paletteIndex = floor(map(VAR[2], 0, 100, 0, 2.9999));
9
+
10
+ const palettes = [
11
+ { main: [255, 100, 120], accent: [100, 200, 255] },
12
+ { main: [100, 220, 180], accent: [255, 180, 100] },
13
+ { main: [180, 120, 255], accent: [255, 220, 100] }
14
+ ];
15
+ const palette = palettes[paletteIndex];
16
+
17
+ noStroke();
18
+
19
+ fill(palette.main[0], palette.main[1], palette.main[2]);
20
+ ellipse(width / 2, height / 2, diameter, diameter);
21
+
22
+ fill(palette.accent[0], palette.accent[1], palette.accent[2]);
23
+ ellipse(width / 2, height / 2, diameter * 0.4, diameter * 0.4);
24
+ }