@nexart/codemode-sdk 1.9.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @nexart/codemode-sdk
2
2
 
3
- **Version: 1.9.0 (Protocol v1.2.0)**
3
+ **Version: 1.10.1 (Protocol v1.2.0)**
4
4
 
5
5
  A deterministic execution runtime for reproducible, verifiable computation.
6
6
 
@@ -471,7 +471,7 @@ The following are rejected with `[Code Mode Protocol Error]`:
471
471
 
472
472
  ---
473
473
 
474
- ## Attestation & Verification (v1.9.0)
474
+ ## Attestation & Verification (v1.10.1)
475
475
 
476
476
  ### Verification Reason Codes
477
477
 
@@ -1068,7 +1068,7 @@ var init_soundart_sketches = __esm({
1068
1068
  });
1069
1069
 
1070
1070
  // version.ts
1071
- var SDK_VERSION = "1.9.0";
1071
+ var SDK_VERSION = "1.10.1";
1072
1072
  var PROTOCOL_VERSION = "1.2.0";
1073
1073
  var PROTOCOL_PHASE = 3;
1074
1074
 
@@ -1065,7 +1065,7 @@ var init_soundart_sketches = __esm({
1065
1065
  });
1066
1066
 
1067
1067
  // version.ts
1068
- var SDK_VERSION = "1.9.0";
1068
+ var SDK_VERSION = "1.10.1";
1069
1069
  var PROTOCOL_VERSION = "1.2.0";
1070
1070
  var PROTOCOL_PHASE = 3;
1071
1071
 
package/dist/cjs/core.cjs CHANGED
@@ -5,7 +5,7 @@ var sha2_js = require('@noble/hashes/sha2.js');
5
5
 
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
7
  // version.ts
8
- var SDK_VERSION = "1.9.0";
8
+ var SDK_VERSION = "1.10.1";
9
9
  var PROTOCOL_VERSION = "1.2.0";
10
10
  var PROTOCOL_PHASE = 3;
11
11
 
@@ -1962,6 +1962,71 @@ function hasAttestation(bundle) {
1962
1962
  return getAttestationReceipt(bundle) !== null;
1963
1963
  }
1964
1964
 
1965
+ // cerProtocol.ts
1966
+ var ReasonCode = {
1967
+ BUNDLE_HASH_MISMATCH: "BUNDLE_HASH_MISMATCH",
1968
+ NODE_SIGNATURE_INVALID: "NODE_SIGNATURE_INVALID",
1969
+ NODE_SIGNATURE_MISSING: "NODE_SIGNATURE_MISSING",
1970
+ RECEIPT_HASH_MISMATCH: "RECEIPT_HASH_MISMATCH",
1971
+ SCHEMA_VERSION_UNSUPPORTED: "SCHEMA_VERSION_UNSUPPORTED",
1972
+ RECORD_NOT_FOUND: "RECORD_NOT_FOUND",
1973
+ BUNDLE_CORRUPTED: "BUNDLE_CORRUPTED"
1974
+ };
1975
+
1976
+ // verifyDetailed.ts
1977
+ function validateSnapshotStructure(snapshot) {
1978
+ const codes = [];
1979
+ if (!snapshot || typeof snapshot !== "object") {
1980
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1981
+ return codes;
1982
+ }
1983
+ if (snapshot.protocol !== "nexart") {
1984
+ codes.push(ReasonCode.SCHEMA_VERSION_UNSUPPORTED);
1985
+ }
1986
+ if (!snapshot.outputHash || !snapshot.outputHash.startsWith("sha256:")) {
1987
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1988
+ }
1989
+ if (!snapshot.codeHash || !snapshot.codeHash.startsWith("sha256:")) {
1990
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1991
+ }
1992
+ return codes;
1993
+ }
1994
+ function verifyCodeModeSnapshotDetailed(snapshot, options = {}) {
1995
+ const verifiedAt = (/* @__PURE__ */ new Date()).toISOString();
1996
+ const verifier = "@nexart/codemode-sdk";
1997
+ if (!snapshot || typeof snapshot !== "object" || Array.isArray(snapshot)) {
1998
+ return {
1999
+ status: "FAILED",
2000
+ checks: { bundleIntegrity: "FAIL", nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
2001
+ reasonCodes: [ReasonCode.BUNDLE_CORRUPTED],
2002
+ certificateHash: "",
2003
+ bundleType: "codemode.snapshot.v1",
2004
+ verifiedAt,
2005
+ verifier
2006
+ };
2007
+ }
2008
+ const snap = snapshot;
2009
+ const structureReasons = validateSnapshotStructure(snap);
2010
+ const hashReasons = [];
2011
+ if (options.outputHash !== void 0 && options.outputHash !== snap.outputHash) {
2012
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2013
+ }
2014
+ if (options.codeHash !== void 0 && options.codeHash !== snap.codeHash) {
2015
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2016
+ }
2017
+ const reasonCodes = [.../* @__PURE__ */ new Set([...structureReasons, ...hashReasons])];
2018
+ const bundleIntegrity = reasonCodes.length === 0 ? "PASS" : "FAIL";
2019
+ return {
2020
+ status: bundleIntegrity === "PASS" ? "VERIFIED" : "FAILED",
2021
+ checks: { bundleIntegrity, nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
2022
+ reasonCodes,
2023
+ certificateHash: snap.outputHash ?? "",
2024
+ bundleType: "codemode.snapshot.v1",
2025
+ verifiedAt,
2026
+ verifier
2027
+ };
2028
+ }
2029
+
1965
2030
  // core-index.ts
1966
2031
  var SDK_VERSION2 = SDK_VERSION;
1967
2032
  var SDK_NAME = "@nexart/codemode-sdk";
@@ -1975,6 +2040,7 @@ exports.DEFAULT_VARS = DEFAULT_VARS;
1975
2040
  exports.PROTOCOL_IDENTITY = PROTOCOL_IDENTITY;
1976
2041
  exports.PROTOCOL_PHASE = PROTOCOL_PHASE;
1977
2042
  exports.PROTOCOL_VERSION = PROTOCOL_VERSION;
2043
+ exports.ReasonCode = ReasonCode;
1978
2044
  exports.SDK_NAME = SDK_NAME;
1979
2045
  exports.SDK_VERSION = SDK_VERSION2;
1980
2046
  exports.VAR_COUNT = VAR_COUNT;
@@ -1995,4 +2061,5 @@ exports.selectNodeKey = selectNodeKey;
1995
2061
  exports.toCanonicalJson = toCanonicalJson;
1996
2062
  exports.validateCodeModeSource = validateCodeModeSource;
1997
2063
  exports.verifyBundleAttestation = verifyBundleAttestation;
2064
+ exports.verifyCodeModeSnapshotDetailed = verifyCodeModeSnapshotDetailed;
1998
2065
  exports.verifyNodeReceiptSignature = verifyNodeReceiptSignature;
package/dist/cjs/core.js CHANGED
@@ -2,7 +2,7 @@ import { hashes, verify } from '@noble/ed25519';
2
2
  import { sha512 } from '@noble/hashes/sha2.js';
3
3
 
4
4
  // version.ts
5
- var SDK_VERSION = "1.9.0";
5
+ var SDK_VERSION = "1.10.1";
6
6
  var PROTOCOL_VERSION = "1.2.0";
7
7
  var PROTOCOL_PHASE = 3;
8
8
 
@@ -1959,8 +1959,73 @@ function hasAttestation(bundle) {
1959
1959
  return getAttestationReceipt(bundle) !== null;
1960
1960
  }
1961
1961
 
1962
+ // cerProtocol.ts
1963
+ var ReasonCode = {
1964
+ BUNDLE_HASH_MISMATCH: "BUNDLE_HASH_MISMATCH",
1965
+ NODE_SIGNATURE_INVALID: "NODE_SIGNATURE_INVALID",
1966
+ NODE_SIGNATURE_MISSING: "NODE_SIGNATURE_MISSING",
1967
+ RECEIPT_HASH_MISMATCH: "RECEIPT_HASH_MISMATCH",
1968
+ SCHEMA_VERSION_UNSUPPORTED: "SCHEMA_VERSION_UNSUPPORTED",
1969
+ RECORD_NOT_FOUND: "RECORD_NOT_FOUND",
1970
+ BUNDLE_CORRUPTED: "BUNDLE_CORRUPTED"
1971
+ };
1972
+
1973
+ // verifyDetailed.ts
1974
+ function validateSnapshotStructure(snapshot) {
1975
+ const codes = [];
1976
+ if (!snapshot || typeof snapshot !== "object") {
1977
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1978
+ return codes;
1979
+ }
1980
+ if (snapshot.protocol !== "nexart") {
1981
+ codes.push(ReasonCode.SCHEMA_VERSION_UNSUPPORTED);
1982
+ }
1983
+ if (!snapshot.outputHash || !snapshot.outputHash.startsWith("sha256:")) {
1984
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1985
+ }
1986
+ if (!snapshot.codeHash || !snapshot.codeHash.startsWith("sha256:")) {
1987
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1988
+ }
1989
+ return codes;
1990
+ }
1991
+ function verifyCodeModeSnapshotDetailed(snapshot, options = {}) {
1992
+ const verifiedAt = (/* @__PURE__ */ new Date()).toISOString();
1993
+ const verifier = "@nexart/codemode-sdk";
1994
+ if (!snapshot || typeof snapshot !== "object" || Array.isArray(snapshot)) {
1995
+ return {
1996
+ status: "FAILED",
1997
+ checks: { bundleIntegrity: "FAIL", nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
1998
+ reasonCodes: [ReasonCode.BUNDLE_CORRUPTED],
1999
+ certificateHash: "",
2000
+ bundleType: "codemode.snapshot.v1",
2001
+ verifiedAt,
2002
+ verifier
2003
+ };
2004
+ }
2005
+ const snap = snapshot;
2006
+ const structureReasons = validateSnapshotStructure(snap);
2007
+ const hashReasons = [];
2008
+ if (options.outputHash !== void 0 && options.outputHash !== snap.outputHash) {
2009
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2010
+ }
2011
+ if (options.codeHash !== void 0 && options.codeHash !== snap.codeHash) {
2012
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2013
+ }
2014
+ const reasonCodes = [.../* @__PURE__ */ new Set([...structureReasons, ...hashReasons])];
2015
+ const bundleIntegrity = reasonCodes.length === 0 ? "PASS" : "FAIL";
2016
+ return {
2017
+ status: bundleIntegrity === "PASS" ? "VERIFIED" : "FAILED",
2018
+ checks: { bundleIntegrity, nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
2019
+ reasonCodes,
2020
+ certificateHash: snap.outputHash ?? "",
2021
+ bundleType: "codemode.snapshot.v1",
2022
+ verifiedAt,
2023
+ verifier
2024
+ };
2025
+ }
2026
+
1962
2027
  // core-index.ts
1963
2028
  var SDK_VERSION2 = SDK_VERSION;
1964
2029
  var SDK_NAME = "@nexart/codemode-sdk";
1965
2030
 
1966
- export { CODE_MODE_ENFORCEMENT, CODE_MODE_PROTOCOL_PHASE, CODE_MODE_PROTOCOL_VERSION, CodeVerifyCode, DEFAULT_CONFIG, DEFAULT_VARS, PROTOCOL_IDENTITY, PROTOCOL_PHASE, PROTOCOL_VERSION, SDK_NAME, SDK_VERSION2 as SDK_VERSION, VAR_COUNT, VAR_MAX, VAR_MIN, cancelLoopMode, createEngine, createP5Runtime, createProtocolVAR, executeCodeMode, fetchNodeKeys, getAttestationReceipt, hasAttestation, injectTimeVariables, runLoopMode, runStaticMode, selectNodeKey, toCanonicalJson, validateCodeModeSource, verifyBundleAttestation, verifyNodeReceiptSignature };
2031
+ export { CODE_MODE_ENFORCEMENT, CODE_MODE_PROTOCOL_PHASE, CODE_MODE_PROTOCOL_VERSION, CodeVerifyCode, DEFAULT_CONFIG, DEFAULT_VARS, PROTOCOL_IDENTITY, PROTOCOL_PHASE, PROTOCOL_VERSION, ReasonCode, SDK_NAME, SDK_VERSION2 as SDK_VERSION, VAR_COUNT, VAR_MAX, VAR_MIN, cancelLoopMode, createEngine, createP5Runtime, createProtocolVAR, executeCodeMode, fetchNodeKeys, getAttestationReceipt, hasAttestation, injectTimeVariables, runLoopMode, runStaticMode, selectNodeKey, toCanonicalJson, validateCodeModeSource, verifyBundleAttestation, verifyCodeModeSnapshotDetailed, verifyNodeReceiptSignature };
package/dist/cjs/node.cjs CHANGED
@@ -1068,7 +1068,7 @@ var init_soundart_sketches = __esm({
1068
1068
  });
1069
1069
 
1070
1070
  // version.ts
1071
- var SDK_VERSION = "1.9.0";
1071
+ var SDK_VERSION = "1.10.1";
1072
1072
  var PROTOCOL_VERSION = "1.2.0";
1073
1073
  var PROTOCOL_PHASE = 3;
1074
1074
 
package/dist/cjs/node.js CHANGED
@@ -1065,7 +1065,7 @@ var init_soundart_sketches = __esm({
1065
1065
  });
1066
1066
 
1067
1067
  // version.ts
1068
- var SDK_VERSION = "1.9.0";
1068
+ var SDK_VERSION = "1.10.1";
1069
1069
  var PROTOCOL_VERSION = "1.2.0";
1070
1070
  var PROTOCOL_PHASE = 3;
1071
1071
 
@@ -1068,7 +1068,7 @@ var init_soundart_sketches = __esm({
1068
1068
  });
1069
1069
 
1070
1070
  // version.ts
1071
- var SDK_VERSION = "1.9.0";
1071
+ var SDK_VERSION = "1.10.1";
1072
1072
  var PROTOCOL_VERSION = "1.2.0";
1073
1073
  var PROTOCOL_PHASE = 3;
1074
1074
 
@@ -1065,7 +1065,7 @@ var init_soundart_sketches = __esm({
1065
1065
  });
1066
1066
 
1067
1067
  // version.ts
1068
- var SDK_VERSION = "1.9.0";
1068
+ var SDK_VERSION = "1.10.1";
1069
1069
  var PROTOCOL_VERSION = "1.2.0";
1070
1070
  var PROTOCOL_PHASE = 3;
1071
1071
 
package/dist/esm/core.cjs CHANGED
@@ -5,7 +5,7 @@ var sha2_js = require('@noble/hashes/sha2.js');
5
5
 
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
7
  // version.ts
8
- var SDK_VERSION = "1.9.0";
8
+ var SDK_VERSION = "1.10.1";
9
9
  var PROTOCOL_VERSION = "1.2.0";
10
10
  var PROTOCOL_PHASE = 3;
11
11
 
@@ -1962,6 +1962,71 @@ function hasAttestation(bundle) {
1962
1962
  return getAttestationReceipt(bundle) !== null;
1963
1963
  }
1964
1964
 
1965
+ // cerProtocol.ts
1966
+ var ReasonCode = {
1967
+ BUNDLE_HASH_MISMATCH: "BUNDLE_HASH_MISMATCH",
1968
+ NODE_SIGNATURE_INVALID: "NODE_SIGNATURE_INVALID",
1969
+ NODE_SIGNATURE_MISSING: "NODE_SIGNATURE_MISSING",
1970
+ RECEIPT_HASH_MISMATCH: "RECEIPT_HASH_MISMATCH",
1971
+ SCHEMA_VERSION_UNSUPPORTED: "SCHEMA_VERSION_UNSUPPORTED",
1972
+ RECORD_NOT_FOUND: "RECORD_NOT_FOUND",
1973
+ BUNDLE_CORRUPTED: "BUNDLE_CORRUPTED"
1974
+ };
1975
+
1976
+ // verifyDetailed.ts
1977
+ function validateSnapshotStructure(snapshot) {
1978
+ const codes = [];
1979
+ if (!snapshot || typeof snapshot !== "object") {
1980
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1981
+ return codes;
1982
+ }
1983
+ if (snapshot.protocol !== "nexart") {
1984
+ codes.push(ReasonCode.SCHEMA_VERSION_UNSUPPORTED);
1985
+ }
1986
+ if (!snapshot.outputHash || !snapshot.outputHash.startsWith("sha256:")) {
1987
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1988
+ }
1989
+ if (!snapshot.codeHash || !snapshot.codeHash.startsWith("sha256:")) {
1990
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1991
+ }
1992
+ return codes;
1993
+ }
1994
+ function verifyCodeModeSnapshotDetailed(snapshot, options = {}) {
1995
+ const verifiedAt = (/* @__PURE__ */ new Date()).toISOString();
1996
+ const verifier = "@nexart/codemode-sdk";
1997
+ if (!snapshot || typeof snapshot !== "object" || Array.isArray(snapshot)) {
1998
+ return {
1999
+ status: "FAILED",
2000
+ checks: { bundleIntegrity: "FAIL", nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
2001
+ reasonCodes: [ReasonCode.BUNDLE_CORRUPTED],
2002
+ certificateHash: "",
2003
+ bundleType: "codemode.snapshot.v1",
2004
+ verifiedAt,
2005
+ verifier
2006
+ };
2007
+ }
2008
+ const snap = snapshot;
2009
+ const structureReasons = validateSnapshotStructure(snap);
2010
+ const hashReasons = [];
2011
+ if (options.outputHash !== void 0 && options.outputHash !== snap.outputHash) {
2012
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2013
+ }
2014
+ if (options.codeHash !== void 0 && options.codeHash !== snap.codeHash) {
2015
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2016
+ }
2017
+ const reasonCodes = [.../* @__PURE__ */ new Set([...structureReasons, ...hashReasons])];
2018
+ const bundleIntegrity = reasonCodes.length === 0 ? "PASS" : "FAIL";
2019
+ return {
2020
+ status: bundleIntegrity === "PASS" ? "VERIFIED" : "FAILED",
2021
+ checks: { bundleIntegrity, nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
2022
+ reasonCodes,
2023
+ certificateHash: snap.outputHash ?? "",
2024
+ bundleType: "codemode.snapshot.v1",
2025
+ verifiedAt,
2026
+ verifier
2027
+ };
2028
+ }
2029
+
1965
2030
  // core-index.ts
1966
2031
  var SDK_VERSION2 = SDK_VERSION;
1967
2032
  var SDK_NAME = "@nexart/codemode-sdk";
@@ -1975,6 +2040,7 @@ exports.DEFAULT_VARS = DEFAULT_VARS;
1975
2040
  exports.PROTOCOL_IDENTITY = PROTOCOL_IDENTITY;
1976
2041
  exports.PROTOCOL_PHASE = PROTOCOL_PHASE;
1977
2042
  exports.PROTOCOL_VERSION = PROTOCOL_VERSION;
2043
+ exports.ReasonCode = ReasonCode;
1978
2044
  exports.SDK_NAME = SDK_NAME;
1979
2045
  exports.SDK_VERSION = SDK_VERSION2;
1980
2046
  exports.VAR_COUNT = VAR_COUNT;
@@ -1995,4 +2061,5 @@ exports.selectNodeKey = selectNodeKey;
1995
2061
  exports.toCanonicalJson = toCanonicalJson;
1996
2062
  exports.validateCodeModeSource = validateCodeModeSource;
1997
2063
  exports.verifyBundleAttestation = verifyBundleAttestation;
2064
+ exports.verifyCodeModeSnapshotDetailed = verifyCodeModeSnapshotDetailed;
1998
2065
  exports.verifyNodeReceiptSignature = verifyNodeReceiptSignature;
package/dist/esm/core.js CHANGED
@@ -2,7 +2,7 @@ import { hashes, verify } from '@noble/ed25519';
2
2
  import { sha512 } from '@noble/hashes/sha2.js';
3
3
 
4
4
  // version.ts
5
- var SDK_VERSION = "1.9.0";
5
+ var SDK_VERSION = "1.10.1";
6
6
  var PROTOCOL_VERSION = "1.2.0";
7
7
  var PROTOCOL_PHASE = 3;
8
8
 
@@ -1959,8 +1959,73 @@ function hasAttestation(bundle) {
1959
1959
  return getAttestationReceipt(bundle) !== null;
1960
1960
  }
1961
1961
 
1962
+ // cerProtocol.ts
1963
+ var ReasonCode = {
1964
+ BUNDLE_HASH_MISMATCH: "BUNDLE_HASH_MISMATCH",
1965
+ NODE_SIGNATURE_INVALID: "NODE_SIGNATURE_INVALID",
1966
+ NODE_SIGNATURE_MISSING: "NODE_SIGNATURE_MISSING",
1967
+ RECEIPT_HASH_MISMATCH: "RECEIPT_HASH_MISMATCH",
1968
+ SCHEMA_VERSION_UNSUPPORTED: "SCHEMA_VERSION_UNSUPPORTED",
1969
+ RECORD_NOT_FOUND: "RECORD_NOT_FOUND",
1970
+ BUNDLE_CORRUPTED: "BUNDLE_CORRUPTED"
1971
+ };
1972
+
1973
+ // verifyDetailed.ts
1974
+ function validateSnapshotStructure(snapshot) {
1975
+ const codes = [];
1976
+ if (!snapshot || typeof snapshot !== "object") {
1977
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1978
+ return codes;
1979
+ }
1980
+ if (snapshot.protocol !== "nexart") {
1981
+ codes.push(ReasonCode.SCHEMA_VERSION_UNSUPPORTED);
1982
+ }
1983
+ if (!snapshot.outputHash || !snapshot.outputHash.startsWith("sha256:")) {
1984
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1985
+ }
1986
+ if (!snapshot.codeHash || !snapshot.codeHash.startsWith("sha256:")) {
1987
+ codes.push(ReasonCode.BUNDLE_CORRUPTED);
1988
+ }
1989
+ return codes;
1990
+ }
1991
+ function verifyCodeModeSnapshotDetailed(snapshot, options = {}) {
1992
+ const verifiedAt = (/* @__PURE__ */ new Date()).toISOString();
1993
+ const verifier = "@nexart/codemode-sdk";
1994
+ if (!snapshot || typeof snapshot !== "object" || Array.isArray(snapshot)) {
1995
+ return {
1996
+ status: "FAILED",
1997
+ checks: { bundleIntegrity: "FAIL", nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
1998
+ reasonCodes: [ReasonCode.BUNDLE_CORRUPTED],
1999
+ certificateHash: "",
2000
+ bundleType: "codemode.snapshot.v1",
2001
+ verifiedAt,
2002
+ verifier
2003
+ };
2004
+ }
2005
+ const snap = snapshot;
2006
+ const structureReasons = validateSnapshotStructure(snap);
2007
+ const hashReasons = [];
2008
+ if (options.outputHash !== void 0 && options.outputHash !== snap.outputHash) {
2009
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2010
+ }
2011
+ if (options.codeHash !== void 0 && options.codeHash !== snap.codeHash) {
2012
+ hashReasons.push(ReasonCode.BUNDLE_HASH_MISMATCH);
2013
+ }
2014
+ const reasonCodes = [.../* @__PURE__ */ new Set([...structureReasons, ...hashReasons])];
2015
+ const bundleIntegrity = reasonCodes.length === 0 ? "PASS" : "FAIL";
2016
+ return {
2017
+ status: bundleIntegrity === "PASS" ? "VERIFIED" : "FAILED",
2018
+ checks: { bundleIntegrity, nodeSignature: "SKIPPED", receiptConsistency: "SKIPPED" },
2019
+ reasonCodes,
2020
+ certificateHash: snap.outputHash ?? "",
2021
+ bundleType: "codemode.snapshot.v1",
2022
+ verifiedAt,
2023
+ verifier
2024
+ };
2025
+ }
2026
+
1962
2027
  // core-index.ts
1963
2028
  var SDK_VERSION2 = SDK_VERSION;
1964
2029
  var SDK_NAME = "@nexart/codemode-sdk";
1965
2030
 
1966
- export { CODE_MODE_ENFORCEMENT, CODE_MODE_PROTOCOL_PHASE, CODE_MODE_PROTOCOL_VERSION, CodeVerifyCode, DEFAULT_CONFIG, DEFAULT_VARS, PROTOCOL_IDENTITY, PROTOCOL_PHASE, PROTOCOL_VERSION, SDK_NAME, SDK_VERSION2 as SDK_VERSION, VAR_COUNT, VAR_MAX, VAR_MIN, cancelLoopMode, createEngine, createP5Runtime, createProtocolVAR, executeCodeMode, fetchNodeKeys, getAttestationReceipt, hasAttestation, injectTimeVariables, runLoopMode, runStaticMode, selectNodeKey, toCanonicalJson, validateCodeModeSource, verifyBundleAttestation, verifyNodeReceiptSignature };
2031
+ export { CODE_MODE_ENFORCEMENT, CODE_MODE_PROTOCOL_PHASE, CODE_MODE_PROTOCOL_VERSION, CodeVerifyCode, DEFAULT_CONFIG, DEFAULT_VARS, PROTOCOL_IDENTITY, PROTOCOL_PHASE, PROTOCOL_VERSION, ReasonCode, SDK_NAME, SDK_VERSION2 as SDK_VERSION, VAR_COUNT, VAR_MAX, VAR_MIN, cancelLoopMode, createEngine, createP5Runtime, createProtocolVAR, executeCodeMode, fetchNodeKeys, getAttestationReceipt, hasAttestation, injectTimeVariables, runLoopMode, runStaticMode, selectNodeKey, toCanonicalJson, validateCodeModeSource, verifyBundleAttestation, verifyCodeModeSnapshotDetailed, verifyNodeReceiptSignature };
package/dist/esm/node.cjs CHANGED
@@ -1068,7 +1068,7 @@ var init_soundart_sketches = __esm({
1068
1068
  });
1069
1069
 
1070
1070
  // version.ts
1071
- var SDK_VERSION = "1.9.0";
1071
+ var SDK_VERSION = "1.10.1";
1072
1072
  var PROTOCOL_VERSION = "1.2.0";
1073
1073
  var PROTOCOL_PHASE = 3;
1074
1074
 
package/dist/esm/node.js CHANGED
@@ -1065,7 +1065,7 @@ var init_soundart_sketches = __esm({
1065
1065
  });
1066
1066
 
1067
1067
  // version.ts
1068
- var SDK_VERSION = "1.9.0";
1068
+ var SDK_VERSION = "1.10.1";
1069
1069
  var PROTOCOL_VERSION = "1.2.0";
1070
1070
  var PROTOCOL_PHASE = 3;
1071
1071
 
@@ -0,0 +1,40 @@
1
+ /**
2
+ * CER Protocol verification types — @nexart/codemode-sdk v1.10.0
3
+ *
4
+ * Mirrors the types in @nexart/ai-execution/cerProtocol so both SDKs
5
+ * produce interoperable CerVerificationResult objects without a cross-package
6
+ * dependency at runtime.
7
+ */
8
+ export type VerificationStatus = 'VERIFIED' | 'FAILED' | 'NOT_FOUND';
9
+ export type CheckStatus = 'PASS' | 'FAIL' | 'SKIPPED';
10
+ export declare const ReasonCode: {
11
+ readonly BUNDLE_HASH_MISMATCH: "BUNDLE_HASH_MISMATCH";
12
+ readonly NODE_SIGNATURE_INVALID: "NODE_SIGNATURE_INVALID";
13
+ readonly NODE_SIGNATURE_MISSING: "NODE_SIGNATURE_MISSING";
14
+ readonly RECEIPT_HASH_MISMATCH: "RECEIPT_HASH_MISMATCH";
15
+ readonly SCHEMA_VERSION_UNSUPPORTED: "SCHEMA_VERSION_UNSUPPORTED";
16
+ readonly RECORD_NOT_FOUND: "RECORD_NOT_FOUND";
17
+ readonly BUNDLE_CORRUPTED: "BUNDLE_CORRUPTED";
18
+ };
19
+ export type ReasonCode = typeof ReasonCode[keyof typeof ReasonCode];
20
+ /**
21
+ * Canonical protocol verification result.
22
+ *
23
+ * Produced by verifyAiCerBundleDetailed() and verifyCodeModeSnapshotDetailed().
24
+ * Code Mode snapshots do not carry node signatures, so nodeSignature and
25
+ * receiptConsistency are always SKIPPED for Code Mode.
26
+ */
27
+ export interface CerVerificationResult {
28
+ status: VerificationStatus;
29
+ checks: {
30
+ bundleIntegrity: CheckStatus;
31
+ nodeSignature: CheckStatus;
32
+ receiptConsistency: CheckStatus;
33
+ };
34
+ reasonCodes: ReasonCode[];
35
+ certificateHash: string;
36
+ bundleType: string;
37
+ verifiedAt: string;
38
+ verifier: string;
39
+ }
40
+ //# sourceMappingURL=cerProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cerProtocol.d.ts","sourceRoot":"","sources":["../../../../cerProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtD,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE;QACN,eAAe,EAAE,WAAW,CAAC;QAC7B,aAAa,EAAE,WAAW,CAAC;QAC3B,kBAAkB,EAAE,WAAW,CAAC;KACjC,CAAC;IACF,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -21,7 +21,11 @@ export { toCanonicalJson } from './canonicalJson.js';
21
21
  /**
22
22
  * SDK Identity — imported from version.ts (single source of truth)
23
23
  */
24
- export declare const SDK_VERSION = "1.9.0";
24
+ export declare const SDK_VERSION = "1.10.1";
25
25
  export declare const SDK_NAME = "@nexart/codemode-sdk";
26
26
  export { PROTOCOL_VERSION, PROTOCOL_PHASE };
27
+ export { ReasonCode } from './cerProtocol';
28
+ export type { VerificationStatus, CheckStatus, ReasonCode as ReasonCodeType, CerVerificationResult, } from './cerProtocol';
29
+ export { verifyCodeModeSnapshotDetailed } from './verifyDetailed';
30
+ export type { VerifyCodeModeOptions } from './verifyDetailed';
27
31
  //# sourceMappingURL=core-index.d.ts.map
@@ -1 +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"}
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,WAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,yBAAyB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAK5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,UAAU,IAAI,cAAc,EAC5B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,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.9.0";
31
+ export declare const SDK_VERSION = "1.10.1";
32
32
  export declare const SDK_NAME = "@nexart/codemode-sdk";
33
33
  export declare const SDK_ENTRY = "browser";
34
34
  /**
@@ -1 +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"}
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,WAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,yBAAyB,CAAC;AAC/C,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC;;;;;;;;;;;GAWG"}
@@ -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.9.0";
21
+ export declare const RUNTIME_VERSION = "1.10.1";
22
22
  export interface RuntimeOptions {
23
23
  seed: string | number;
24
24
  vars?: number[];
@@ -1 +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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,eAAO,MAAM,eAAe,WAAc,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,25 @@
1
+ /**
2
+ * verifyCodeModeSnapshotDetailed — protocol-aligned Code Mode snapshot verifier
3
+ *
4
+ * Returns a CerVerificationResult conforming to the CER Protocol spec.
5
+ *
6
+ * bundleIntegrity — PASS if snapshot structure is valid AND (when outputHash
7
+ * is provided) the output hash matches the snapshot value.
8
+ * nodeSignature — always SKIPPED (Code Mode snapshots carry no node signature)
9
+ * receiptConsistency — always SKIPPED (same reason)
10
+ */
11
+ import { type CerVerificationResult } from './cerProtocol';
12
+ export interface VerifyCodeModeOptions {
13
+ /** Actual output hash (sha256:...) to compare against snapshot.outputHash. */
14
+ outputHash?: string;
15
+ /** Actual code hash to compare against snapshot.codeHash. */
16
+ codeHash?: string;
17
+ }
18
+ /**
19
+ * Verify a Code Mode snapshot and return a structured CerVerificationResult.
20
+ *
21
+ * @param snapshot - The NexArtSnapshotV1 object to verify
22
+ * @param options - Optional actual hashes to compare against the snapshot
23
+ */
24
+ export declare function verifyCodeModeSnapshotDetailed(snapshot: unknown, options?: VerifyCodeModeOptions): CerVerificationResult;
25
+ //# sourceMappingURL=verifyDetailed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyDetailed.d.ts","sourceRoot":"","sources":["../../../../verifyDetailed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAA6B,KAAK,qBAAqB,EAAqC,MAAM,eAAe,CAAC;AAEzH,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6BD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,qBAA0B,GAClC,qBAAqB,CAuCvB"}
@@ -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.9.0";
11
+ export declare const SDK_VERSION = "1.10.1";
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.9.0 (Protocol v1.2.0)";
17
+ export declare const VERSION_STRING = "v1.10.1 (Protocol v1.2.0)";
18
18
  //# sourceMappingURL=version.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,oDAAoD;AACpD,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,0CAA0C;AAC1C,eAAO,MAAM,cAAc,8BAAoD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexart/codemode-sdk",
3
- "version": "1.9.0",
3
+ "version": "1.10.1",
4
4
  "description": "NexArt Code Mode SDK - Deterministic, reproducible, verifiable generative art runtime. Agent-first design for AI coding assistants.",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/browser.cjs",