chainlesschain 0.143.0 → 0.152.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 (227) hide show
  1. package/package.json +1 -1
  2. package/src/commands/a2a.js +196 -28
  3. package/src/commands/activitypub.js +364 -27
  4. package/src/commands/agent-network.js +217 -0
  5. package/src/commands/agent.js +587 -103
  6. package/src/commands/audit.js +206 -0
  7. package/src/commands/automation.js +201 -0
  8. package/src/commands/bi.js +355 -27
  9. package/src/commands/bm25.js +111 -27
  10. package/src/commands/browse.js +403 -29
  11. package/src/commands/ccron.js +128 -28
  12. package/src/commands/chat.js +207 -0
  13. package/src/commands/codegen.js +207 -0
  14. package/src/commands/collab.js +211 -0
  15. package/src/commands/compliance.js +824 -34
  16. package/src/commands/compt.js +127 -29
  17. package/src/commands/consol.js +8 -2
  18. package/src/commands/cowork.js +783 -34
  19. package/src/commands/crosschain.js +182 -28
  20. package/src/commands/dao.js +182 -28
  21. package/src/commands/dbevo.js +227 -0
  22. package/src/commands/dev.js +207 -0
  23. package/src/commands/did-v2.js +217 -0
  24. package/src/commands/did.js +221 -0
  25. package/src/commands/dlp.js +385 -27
  26. package/src/commands/economy.js +205 -50
  27. package/src/commands/evolution.js +203 -50
  28. package/src/commands/evomap.js +387 -27
  29. package/src/commands/export.js +213 -0
  30. package/src/commands/federation.js +209 -0
  31. package/src/commands/fflag.js +74 -22
  32. package/src/commands/fusion.js +205 -0
  33. package/src/commands/git.js +177 -37
  34. package/src/commands/governance.js +209 -0
  35. package/src/commands/hardening.js +209 -0
  36. package/src/commands/hmemory.js +204 -50
  37. package/src/commands/hook.js +209 -0
  38. package/src/commands/import.js +209 -0
  39. package/src/commands/incentive.js +209 -0
  40. package/src/commands/inference.js +170 -34
  41. package/src/commands/infra.js +203 -0
  42. package/src/commands/instinct.js +209 -0
  43. package/src/commands/ipfs.js +207 -0
  44. package/src/commands/itbudget.js +149 -33
  45. package/src/commands/kg.js +206 -0
  46. package/src/commands/llm.js +217 -0
  47. package/src/commands/lowcode.js +195 -38
  48. package/src/commands/marketplace.js +206 -0
  49. package/src/commands/matrix.js +386 -27
  50. package/src/commands/mcp.js +217 -0
  51. package/src/commands/mcpscaf.js +145 -33
  52. package/src/commands/meminj.js +145 -33
  53. package/src/commands/memory.js +209 -0
  54. package/src/commands/multimodal.js +203 -0
  55. package/src/commands/nlprog.js +225 -0
  56. package/src/commands/nostr.js +387 -27
  57. package/src/commands/note.js +205 -0
  58. package/src/commands/ops.js +219 -0
  59. package/src/commands/orchestrate.js +217 -0
  60. package/src/commands/orchgov.js +144 -33
  61. package/src/commands/org.js +209 -0
  62. package/src/commands/p2p.js +209 -0
  63. package/src/commands/pdfp.js +109 -27
  64. package/src/commands/perception.js +209 -0
  65. package/src/commands/perf.js +169 -32
  66. package/src/commands/perm.js +144 -33
  67. package/src/commands/permmem.js +203 -0
  68. package/src/commands/pipeline.js +207 -52
  69. package/src/commands/planmode.js +141 -32
  70. package/src/commands/plugin-ecosystem.js +209 -0
  71. package/src/commands/pqc.js +213 -0
  72. package/src/commands/privacy.js +203 -0
  73. package/src/commands/promcomp.js +111 -27
  74. package/src/commands/quantization.js +207 -0
  75. package/src/commands/rcache.js +205 -0
  76. package/src/commands/recommend.js +410 -34
  77. package/src/commands/reputation.js +208 -0
  78. package/src/commands/runtime.js +205 -0
  79. package/src/commands/sandbox.js +206 -0
  80. package/src/commands/scim.js +209 -0
  81. package/src/commands/seshhook.js +145 -33
  82. package/src/commands/seshsearch.js +141 -33
  83. package/src/commands/seshtail.js +144 -33
  84. package/src/commands/seshu.js +152 -33
  85. package/src/commands/session.js +209 -0
  86. package/src/commands/sganal.js +123 -29
  87. package/src/commands/siem.js +201 -34
  88. package/src/commands/skill.js +207 -0
  89. package/src/commands/sla.js +212 -0
  90. package/src/commands/slotfill.js +146 -33
  91. package/src/commands/social.js +358 -32
  92. package/src/commands/sso.js +209 -0
  93. package/src/commands/stress.js +206 -0
  94. package/src/commands/svccont.js +145 -33
  95. package/src/commands/sync.js +209 -0
  96. package/src/commands/tech.js +209 -0
  97. package/src/commands/tenant.js +217 -0
  98. package/src/commands/terraform.js +206 -0
  99. package/src/commands/tms.js +171 -33
  100. package/src/commands/tokens.js +209 -0
  101. package/src/commands/topiccls.js +146 -33
  102. package/src/commands/trust.js +217 -0
  103. package/src/commands/uprof.js +141 -32
  104. package/src/commands/vcheck.js +122 -28
  105. package/src/commands/wallet.js +209 -0
  106. package/src/commands/webfetch.js +141 -32
  107. package/src/commands/workflow.js +203 -0
  108. package/src/commands/zkp.js +184 -28
  109. package/src/index.js +180 -0
  110. package/src/lib/a2a-protocol.js +319 -51
  111. package/src/lib/activitypub-bridge.js +622 -50
  112. package/src/lib/agent-economy.js +304 -51
  113. package/src/lib/agent-network.js +341 -0
  114. package/src/lib/aiops.js +346 -0
  115. package/src/lib/app-builder.js +279 -46
  116. package/src/lib/audit-logger.js +321 -0
  117. package/src/lib/automation-engine.js +335 -0
  118. package/src/lib/autonomous-agent.js +284 -48
  119. package/src/lib/autonomous-developer.js +332 -0
  120. package/src/lib/bi-engine.js +616 -49
  121. package/src/lib/bm25-search.js +301 -49
  122. package/src/lib/browser-automation.js +630 -49
  123. package/src/lib/chat-core.js +336 -0
  124. package/src/lib/claude-code-bridge.js +341 -0
  125. package/src/lib/code-agent.js +339 -0
  126. package/src/lib/collaboration-governance.js +334 -0
  127. package/src/lib/community-governance.js +346 -0
  128. package/src/lib/compliance-framework-reporter.js +305 -51
  129. package/src/lib/compliance-manager.js +330 -0
  130. package/src/lib/compression-telemetry.js +301 -49
  131. package/src/lib/content-recommendation.js +351 -0
  132. package/src/lib/content-recommender.js +317 -52
  133. package/src/lib/cowork-cron.js +298 -49
  134. package/src/lib/cowork-learning.js +333 -0
  135. package/src/lib/cowork-share.js +338 -0
  136. package/src/lib/cowork-task-runner.js +308 -51
  137. package/src/lib/cowork-workflow.js +327 -0
  138. package/src/lib/cross-chain.js +311 -51
  139. package/src/lib/dao-governance.js +280 -46
  140. package/src/lib/dbevo.js +351 -0
  141. package/src/lib/decentral-infra.js +330 -0
  142. package/src/lib/did-manager.js +341 -0
  143. package/src/lib/did-v2-manager.js +341 -0
  144. package/src/lib/dlp-engine.js +626 -49
  145. package/src/lib/evolution-system.js +278 -47
  146. package/src/lib/evomap-governance.js +334 -0
  147. package/src/lib/evomap-manager.js +280 -46
  148. package/src/lib/execution-backend.js +294 -48
  149. package/src/lib/feature-flags.js +294 -49
  150. package/src/lib/federation-hardening.js +340 -0
  151. package/src/lib/git-integration.js +285 -47
  152. package/src/lib/hardening-manager.js +341 -0
  153. package/src/lib/hierarchical-memory.js +284 -48
  154. package/src/lib/hook-manager.js +341 -0
  155. package/src/lib/inference-network.js +308 -51
  156. package/src/lib/instinct-manager.js +346 -0
  157. package/src/lib/ipfs-storage.js +334 -0
  158. package/src/lib/iteration-budget.js +302 -50
  159. package/src/lib/knowledge-exporter.js +341 -0
  160. package/src/lib/knowledge-graph.js +333 -0
  161. package/src/lib/knowledge-importer.js +341 -0
  162. package/src/lib/llm-providers.js +346 -0
  163. package/src/lib/matrix-bridge.js +620 -47
  164. package/src/lib/mcp-registry.js +346 -0
  165. package/src/lib/mcp-scaffold.js +318 -54
  166. package/src/lib/memory-injection.js +288 -49
  167. package/src/lib/memory-manager.js +336 -0
  168. package/src/lib/multimodal.js +330 -0
  169. package/src/lib/nl-programming.js +341 -0
  170. package/src/lib/nostr-bridge.js +622 -49
  171. package/src/lib/note-versioning.js +339 -0
  172. package/src/lib/orchestrator.js +293 -48
  173. package/src/lib/org-manager.js +336 -0
  174. package/src/lib/p2p-manager.js +341 -0
  175. package/src/lib/pdf-parser.js +298 -49
  176. package/src/lib/perception.js +346 -0
  177. package/src/lib/perf-tuning.js +309 -50
  178. package/src/lib/permanent-memory.js +327 -0
  179. package/src/lib/permission-engine.js +287 -49
  180. package/src/lib/pipeline-orchestrator.js +289 -49
  181. package/src/lib/plan-mode.js +298 -51
  182. package/src/lib/plugin-ecosystem.js +346 -0
  183. package/src/lib/pqc-manager.js +346 -0
  184. package/src/lib/privacy-computing.js +335 -0
  185. package/src/lib/protocol-fusion.js +338 -0
  186. package/src/lib/quantization.js +337 -0
  187. package/src/lib/reputation-optimizer.js +340 -0
  188. package/src/lib/response-cache.js +333 -0
  189. package/src/lib/sandbox-v2.js +327 -0
  190. package/src/lib/scim-manager.js +346 -0
  191. package/src/lib/service-container.js +313 -52
  192. package/src/lib/session-consolidator.js +296 -49
  193. package/src/lib/session-hooks.js +312 -53
  194. package/src/lib/session-manager.js +334 -0
  195. package/src/lib/session-search.js +304 -51
  196. package/src/lib/session-tail.js +288 -49
  197. package/src/lib/session-usage.js +298 -52
  198. package/src/lib/siem-exporter.js +298 -51
  199. package/src/lib/skill-loader.js +334 -0
  200. package/src/lib/skill-marketplace.js +345 -0
  201. package/src/lib/sla-manager.js +341 -0
  202. package/src/lib/slot-filler.js +303 -51
  203. package/src/lib/social-graph-analytics.js +295 -49
  204. package/src/lib/social-graph.js +272 -49
  205. package/src/lib/social-manager.js +330 -0
  206. package/src/lib/sso-manager.js +340 -0
  207. package/src/lib/stress-tester.js +342 -0
  208. package/src/lib/sub-agent-registry.js +302 -53
  209. package/src/lib/sync-manager.js +336 -0
  210. package/src/lib/task-model-selector.js +302 -50
  211. package/src/lib/tech-learning-engine.js +341 -0
  212. package/src/lib/tenant-saas.js +341 -0
  213. package/src/lib/terraform-manager.js +333 -0
  214. package/src/lib/threat-intel.js +330 -0
  215. package/src/lib/todo-manager.js +281 -47
  216. package/src/lib/token-incentive.js +341 -0
  217. package/src/lib/token-tracker.js +336 -0
  218. package/src/lib/topic-classifier.js +297 -49
  219. package/src/lib/trust-security.js +343 -0
  220. package/src/lib/ueba.js +340 -0
  221. package/src/lib/universal-runtime.js +330 -0
  222. package/src/lib/user-profile.js +294 -50
  223. package/src/lib/version-checker.js +304 -50
  224. package/src/lib/wallet-manager.js +336 -0
  225. package/src/lib/web-fetch.js +292 -51
  226. package/src/lib/workflow-engine.js +330 -0
  227. package/src/lib/zkp-engine.js +286 -49
@@ -743,25 +743,53 @@ export function getZKPStatsV2() {
743
743
  };
744
744
  }
745
745
 
746
-
747
746
  // ===== V2 Surface: ZKP Engine governance overlay (CLI v0.136.0) =====
748
747
  export const ZKP_CIRCUIT_MATURITY_V2 = Object.freeze({
749
- PENDING: "pending", ACTIVE: "active", DEPRECATED: "deprecated", ARCHIVED: "archived",
748
+ PENDING: "pending",
749
+ ACTIVE: "active",
750
+ DEPRECATED: "deprecated",
751
+ ARCHIVED: "archived",
750
752
  });
751
753
  export const ZKP_PROOF_LIFECYCLE_V2 = Object.freeze({
752
- QUEUED: "queued", PROVING: "proving", VERIFIED: "verified", FAILED: "failed", CANCELLED: "cancelled",
754
+ QUEUED: "queued",
755
+ PROVING: "proving",
756
+ VERIFIED: "verified",
757
+ FAILED: "failed",
758
+ CANCELLED: "cancelled",
753
759
  });
754
760
 
755
761
  const _zkpCircTrans = new Map([
756
- [ZKP_CIRCUIT_MATURITY_V2.PENDING, new Set([ZKP_CIRCUIT_MATURITY_V2.ACTIVE, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED])],
757
- [ZKP_CIRCUIT_MATURITY_V2.ACTIVE, new Set([ZKP_CIRCUIT_MATURITY_V2.DEPRECATED, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED])],
758
- [ZKP_CIRCUIT_MATURITY_V2.DEPRECATED, new Set([ZKP_CIRCUIT_MATURITY_V2.ACTIVE, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED])],
762
+ [
763
+ ZKP_CIRCUIT_MATURITY_V2.PENDING,
764
+ new Set([ZKP_CIRCUIT_MATURITY_V2.ACTIVE, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED]),
765
+ ],
766
+ [
767
+ ZKP_CIRCUIT_MATURITY_V2.ACTIVE,
768
+ new Set([
769
+ ZKP_CIRCUIT_MATURITY_V2.DEPRECATED,
770
+ ZKP_CIRCUIT_MATURITY_V2.ARCHIVED,
771
+ ]),
772
+ ],
773
+ [
774
+ ZKP_CIRCUIT_MATURITY_V2.DEPRECATED,
775
+ new Set([ZKP_CIRCUIT_MATURITY_V2.ACTIVE, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED]),
776
+ ],
759
777
  [ZKP_CIRCUIT_MATURITY_V2.ARCHIVED, new Set()],
760
778
  ]);
761
779
  const _zkpCircTerminal = new Set([ZKP_CIRCUIT_MATURITY_V2.ARCHIVED]);
762
780
  const _zkpProofTrans = new Map([
763
- [ZKP_PROOF_LIFECYCLE_V2.QUEUED, new Set([ZKP_PROOF_LIFECYCLE_V2.PROVING, ZKP_PROOF_LIFECYCLE_V2.CANCELLED])],
764
- [ZKP_PROOF_LIFECYCLE_V2.PROVING, new Set([ZKP_PROOF_LIFECYCLE_V2.VERIFIED, ZKP_PROOF_LIFECYCLE_V2.FAILED, ZKP_PROOF_LIFECYCLE_V2.CANCELLED])],
781
+ [
782
+ ZKP_PROOF_LIFECYCLE_V2.QUEUED,
783
+ new Set([ZKP_PROOF_LIFECYCLE_V2.PROVING, ZKP_PROOF_LIFECYCLE_V2.CANCELLED]),
784
+ ],
785
+ [
786
+ ZKP_PROOF_LIFECYCLE_V2.PROVING,
787
+ new Set([
788
+ ZKP_PROOF_LIFECYCLE_V2.VERIFIED,
789
+ ZKP_PROOF_LIFECYCLE_V2.FAILED,
790
+ ZKP_PROOF_LIFECYCLE_V2.CANCELLED,
791
+ ]),
792
+ ],
765
793
  [ZKP_PROOF_LIFECYCLE_V2.VERIFIED, new Set()],
766
794
  [ZKP_PROOF_LIFECYCLE_V2.FAILED, new Set()],
767
795
  [ZKP_PROOF_LIFECYCLE_V2.CANCELLED, new Set()],
@@ -774,76 +802,285 @@ let _zkpMaxPendingPerCircuit = 15;
774
802
  let _zkpCircuitIdleMs = 30 * 24 * 60 * 60 * 1000;
775
803
  let _zkpProofStuckMs = 10 * 60 * 1000;
776
804
 
777
- function _zkpPos(n, lbl) { const v = Math.floor(Number(n)); if (!Number.isFinite(v) || v <= 0) throw new Error(`${lbl} must be positive integer`); return v; }
805
+ function _zkpPos(n, lbl) {
806
+ const v = Math.floor(Number(n));
807
+ if (!Number.isFinite(v) || v <= 0)
808
+ throw new Error(`${lbl} must be positive integer`);
809
+ return v;
810
+ }
778
811
 
779
- export function setMaxActiveZkpCircuitsPerOwnerV2(n) { _zkpMaxActivePerOwner = _zkpPos(n, "maxActiveZkpCircuitsPerOwner"); }
780
- export function getMaxActiveZkpCircuitsPerOwnerV2() { return _zkpMaxActivePerOwner; }
781
- export function setMaxPendingZkpProofsPerCircuitV2(n) { _zkpMaxPendingPerCircuit = _zkpPos(n, "maxPendingZkpProofsPerCircuit"); }
782
- export function getMaxPendingZkpProofsPerCircuitV2() { return _zkpMaxPendingPerCircuit; }
783
- export function setZkpCircuitIdleMsV2(n) { _zkpCircuitIdleMs = _zkpPos(n, "zkpCircuitIdleMs"); }
784
- export function getZkpCircuitIdleMsV2() { return _zkpCircuitIdleMs; }
785
- export function setZkpProofStuckMsV2(n) { _zkpProofStuckMs = _zkpPos(n, "zkpProofStuckMs"); }
786
- export function getZkpProofStuckMsV2() { return _zkpProofStuckMs; }
812
+ export function setMaxActiveZkpCircuitsPerOwnerV2(n) {
813
+ _zkpMaxActivePerOwner = _zkpPos(n, "maxActiveZkpCircuitsPerOwner");
814
+ }
815
+ export function getMaxActiveZkpCircuitsPerOwnerV2() {
816
+ return _zkpMaxActivePerOwner;
817
+ }
818
+ export function setMaxPendingZkpProofsPerCircuitV2(n) {
819
+ _zkpMaxPendingPerCircuit = _zkpPos(n, "maxPendingZkpProofsPerCircuit");
820
+ }
821
+ export function getMaxPendingZkpProofsPerCircuitV2() {
822
+ return _zkpMaxPendingPerCircuit;
823
+ }
824
+ export function setZkpCircuitIdleMsV2(n) {
825
+ _zkpCircuitIdleMs = _zkpPos(n, "zkpCircuitIdleMs");
826
+ }
827
+ export function getZkpCircuitIdleMsV2() {
828
+ return _zkpCircuitIdleMs;
829
+ }
830
+ export function setZkpProofStuckMsV2(n) {
831
+ _zkpProofStuckMs = _zkpPos(n, "zkpProofStuckMs");
832
+ }
833
+ export function getZkpProofStuckMsV2() {
834
+ return _zkpProofStuckMs;
835
+ }
787
836
 
788
837
  export function _resetStateZkpEngineV2() {
789
- _zkpCircs.clear(); _zkpProofs.clear();
790
- _zkpMaxActivePerOwner = 10; _zkpMaxPendingPerCircuit = 15;
791
- _zkpCircuitIdleMs = 30 * 24 * 60 * 60 * 1000; _zkpProofStuckMs = 10 * 60 * 1000;
838
+ _zkpCircs.clear();
839
+ _zkpProofs.clear();
840
+ _zkpMaxActivePerOwner = 10;
841
+ _zkpMaxPendingPerCircuit = 15;
842
+ _zkpCircuitIdleMs = 30 * 24 * 60 * 60 * 1000;
843
+ _zkpProofStuckMs = 10 * 60 * 1000;
792
844
  }
793
845
 
794
846
  export function registerZkpCircuitV2({ id, owner, scheme, metadata } = {}) {
795
847
  if (!id || typeof id !== "string") throw new Error("id is required");
796
848
  if (!owner || typeof owner !== "string") throw new Error("owner is required");
797
- if (_zkpCircs.has(id)) throw new Error(`zkp circuit ${id} already registered`);
849
+ if (_zkpCircs.has(id))
850
+ throw new Error(`zkp circuit ${id} already registered`);
798
851
  const now = Date.now();
799
- const c = { id, owner, scheme: scheme || "groth16", status: ZKP_CIRCUIT_MATURITY_V2.PENDING, createdAt: now, updatedAt: now, activatedAt: null, archivedAt: null, lastTouchedAt: now, metadata: { ...(metadata || {}) } };
852
+ const c = {
853
+ id,
854
+ owner,
855
+ scheme: scheme || "groth16",
856
+ status: ZKP_CIRCUIT_MATURITY_V2.PENDING,
857
+ createdAt: now,
858
+ updatedAt: now,
859
+ activatedAt: null,
860
+ archivedAt: null,
861
+ lastTouchedAt: now,
862
+ metadata: { ...(metadata || {}) },
863
+ };
800
864
  _zkpCircs.set(id, c);
801
865
  return { ...c, metadata: { ...c.metadata } };
802
866
  }
803
- function _zkpCheckC(from, to) { const a = _zkpCircTrans.get(from); if (!a || !a.has(to)) throw new Error(`invalid zkp circuit transition ${from} → ${to}`); }
804
- function _zkpCountActive(owner) { let n = 0; for (const c of _zkpCircs.values()) if (c.owner === owner && c.status === ZKP_CIRCUIT_MATURITY_V2.ACTIVE) n++; return n; }
867
+ function _zkpCheckC(from, to) {
868
+ const a = _zkpCircTrans.get(from);
869
+ if (!a || !a.has(to))
870
+ throw new Error(`invalid zkp circuit transition ${from} → ${to}`);
871
+ }
872
+ function _zkpCountActive(owner) {
873
+ let n = 0;
874
+ for (const c of _zkpCircs.values())
875
+ if (c.owner === owner && c.status === ZKP_CIRCUIT_MATURITY_V2.ACTIVE) n++;
876
+ return n;
877
+ }
805
878
 
806
879
  export function activateZkpCircuitV2(id) {
807
- const c = _zkpCircs.get(id); if (!c) throw new Error(`zkp circuit ${id} not found`);
880
+ const c = _zkpCircs.get(id);
881
+ if (!c) throw new Error(`zkp circuit ${id} not found`);
808
882
  _zkpCheckC(c.status, ZKP_CIRCUIT_MATURITY_V2.ACTIVE);
809
883
  const recovery = c.status === ZKP_CIRCUIT_MATURITY_V2.DEPRECATED;
810
- if (!recovery) { const a = _zkpCountActive(c.owner); if (a >= _zkpMaxActivePerOwner) throw new Error(`max active zkp circuits per owner (${_zkpMaxActivePerOwner}) reached for ${c.owner}`); }
811
- const now = Date.now(); c.status = ZKP_CIRCUIT_MATURITY_V2.ACTIVE; c.updatedAt = now; c.lastTouchedAt = now; if (!c.activatedAt) c.activatedAt = now;
884
+ if (!recovery) {
885
+ const a = _zkpCountActive(c.owner);
886
+ if (a >= _zkpMaxActivePerOwner)
887
+ throw new Error(
888
+ `max active zkp circuits per owner (${_zkpMaxActivePerOwner}) reached for ${c.owner}`,
889
+ );
890
+ }
891
+ const now = Date.now();
892
+ c.status = ZKP_CIRCUIT_MATURITY_V2.ACTIVE;
893
+ c.updatedAt = now;
894
+ c.lastTouchedAt = now;
895
+ if (!c.activatedAt) c.activatedAt = now;
812
896
  return { ...c, metadata: { ...c.metadata } };
813
897
  }
814
- export function deprecateZkpCircuitV2(id) { const c = _zkpCircs.get(id); if (!c) throw new Error(`zkp circuit ${id} not found`); _zkpCheckC(c.status, ZKP_CIRCUIT_MATURITY_V2.DEPRECATED); c.status = ZKP_CIRCUIT_MATURITY_V2.DEPRECATED; c.updatedAt = Date.now(); return { ...c, metadata: { ...c.metadata } }; }
815
- export function archiveZkpCircuitV2(id) { const c = _zkpCircs.get(id); if (!c) throw new Error(`zkp circuit ${id} not found`); _zkpCheckC(c.status, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED); const now = Date.now(); c.status = ZKP_CIRCUIT_MATURITY_V2.ARCHIVED; c.updatedAt = now; if (!c.archivedAt) c.archivedAt = now; return { ...c, metadata: { ...c.metadata } }; }
816
- export function touchZkpCircuitV2(id) { const c = _zkpCircs.get(id); if (!c) throw new Error(`zkp circuit ${id} not found`); if (_zkpCircTerminal.has(c.status)) throw new Error(`cannot touch terminal zkp circuit ${id}`); const now = Date.now(); c.lastTouchedAt = now; c.updatedAt = now; return { ...c, metadata: { ...c.metadata } }; }
817
- export function getZkpCircuitV2(id) { const c = _zkpCircs.get(id); if (!c) return null; return { ...c, metadata: { ...c.metadata } }; }
818
- export function listZkpCircuitsV2() { return [..._zkpCircs.values()].map((c) => ({ ...c, metadata: { ...c.metadata } })); }
898
+ export function deprecateZkpCircuitV2(id) {
899
+ const c = _zkpCircs.get(id);
900
+ if (!c) throw new Error(`zkp circuit ${id} not found`);
901
+ _zkpCheckC(c.status, ZKP_CIRCUIT_MATURITY_V2.DEPRECATED);
902
+ c.status = ZKP_CIRCUIT_MATURITY_V2.DEPRECATED;
903
+ c.updatedAt = Date.now();
904
+ return { ...c, metadata: { ...c.metadata } };
905
+ }
906
+ export function archiveZkpCircuitV2(id) {
907
+ const c = _zkpCircs.get(id);
908
+ if (!c) throw new Error(`zkp circuit ${id} not found`);
909
+ _zkpCheckC(c.status, ZKP_CIRCUIT_MATURITY_V2.ARCHIVED);
910
+ const now = Date.now();
911
+ c.status = ZKP_CIRCUIT_MATURITY_V2.ARCHIVED;
912
+ c.updatedAt = now;
913
+ if (!c.archivedAt) c.archivedAt = now;
914
+ return { ...c, metadata: { ...c.metadata } };
915
+ }
916
+ export function touchZkpCircuitV2(id) {
917
+ const c = _zkpCircs.get(id);
918
+ if (!c) throw new Error(`zkp circuit ${id} not found`);
919
+ if (_zkpCircTerminal.has(c.status))
920
+ throw new Error(`cannot touch terminal zkp circuit ${id}`);
921
+ const now = Date.now();
922
+ c.lastTouchedAt = now;
923
+ c.updatedAt = now;
924
+ return { ...c, metadata: { ...c.metadata } };
925
+ }
926
+ export function getZkpCircuitV2(id) {
927
+ const c = _zkpCircs.get(id);
928
+ if (!c) return null;
929
+ return { ...c, metadata: { ...c.metadata } };
930
+ }
931
+ export function listZkpCircuitsV2() {
932
+ return [..._zkpCircs.values()].map((c) => ({
933
+ ...c,
934
+ metadata: { ...c.metadata },
935
+ }));
936
+ }
819
937
 
820
- function _zkpCountPending(cid) { let n = 0; for (const p of _zkpProofs.values()) if (p.circuitId === cid && (p.status === ZKP_PROOF_LIFECYCLE_V2.QUEUED || p.status === ZKP_PROOF_LIFECYCLE_V2.PROVING)) n++; return n; }
938
+ function _zkpCountPending(cid) {
939
+ let n = 0;
940
+ for (const p of _zkpProofs.values())
941
+ if (
942
+ p.circuitId === cid &&
943
+ (p.status === ZKP_PROOF_LIFECYCLE_V2.QUEUED ||
944
+ p.status === ZKP_PROOF_LIFECYCLE_V2.PROVING)
945
+ )
946
+ n++;
947
+ return n;
948
+ }
821
949
 
822
950
  export function createZkpProofV2({ id, circuitId, inputs, metadata } = {}) {
823
951
  if (!id || typeof id !== "string") throw new Error("id is required");
824
- if (!circuitId || typeof circuitId !== "string") throw new Error("circuitId is required");
952
+ if (!circuitId || typeof circuitId !== "string")
953
+ throw new Error("circuitId is required");
825
954
  if (_zkpProofs.has(id)) throw new Error(`zkp proof ${id} already exists`);
826
- if (!_zkpCircs.has(circuitId)) throw new Error(`zkp circuit ${circuitId} not found`);
955
+ if (!_zkpCircs.has(circuitId))
956
+ throw new Error(`zkp circuit ${circuitId} not found`);
827
957
  const pending = _zkpCountPending(circuitId);
828
- if (pending >= _zkpMaxPendingPerCircuit) throw new Error(`max pending zkp proofs per circuit (${_zkpMaxPendingPerCircuit}) reached for ${circuitId}`);
958
+ if (pending >= _zkpMaxPendingPerCircuit)
959
+ throw new Error(
960
+ `max pending zkp proofs per circuit (${_zkpMaxPendingPerCircuit}) reached for ${circuitId}`,
961
+ );
829
962
  const now = Date.now();
830
- const p = { id, circuitId, inputs: inputs || "", status: ZKP_PROOF_LIFECYCLE_V2.QUEUED, createdAt: now, updatedAt: now, startedAt: null, settledAt: null, metadata: { ...(metadata || {}) } };
963
+ const p = {
964
+ id,
965
+ circuitId,
966
+ inputs: inputs || "",
967
+ status: ZKP_PROOF_LIFECYCLE_V2.QUEUED,
968
+ createdAt: now,
969
+ updatedAt: now,
970
+ startedAt: null,
971
+ settledAt: null,
972
+ metadata: { ...(metadata || {}) },
973
+ };
831
974
  _zkpProofs.set(id, p);
832
975
  return { ...p, metadata: { ...p.metadata } };
833
976
  }
834
- function _zkpCheckP(from, to) { const a = _zkpProofTrans.get(from); if (!a || !a.has(to)) throw new Error(`invalid zkp proof transition ${from} → ${to}`); }
835
- export function startZkpProofV2(id) { const p = _zkpProofs.get(id); if (!p) throw new Error(`zkp proof ${id} not found`); _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.PROVING); const now = Date.now(); p.status = ZKP_PROOF_LIFECYCLE_V2.PROVING; p.updatedAt = now; if (!p.startedAt) p.startedAt = now; return { ...p, metadata: { ...p.metadata } }; }
836
- export function verifyZkpProofV2(id) { const p = _zkpProofs.get(id); if (!p) throw new Error(`zkp proof ${id} not found`); _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.VERIFIED); const now = Date.now(); p.status = ZKP_PROOF_LIFECYCLE_V2.VERIFIED; p.updatedAt = now; if (!p.settledAt) p.settledAt = now; return { ...p, metadata: { ...p.metadata } }; }
837
- export function failZkpProofV2(id, reason) { const p = _zkpProofs.get(id); if (!p) throw new Error(`zkp proof ${id} not found`); _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.FAILED); const now = Date.now(); p.status = ZKP_PROOF_LIFECYCLE_V2.FAILED; p.updatedAt = now; if (!p.settledAt) p.settledAt = now; if (reason) p.metadata.failReason = String(reason); return { ...p, metadata: { ...p.metadata } }; }
838
- export function cancelZkpProofV2(id, reason) { const p = _zkpProofs.get(id); if (!p) throw new Error(`zkp proof ${id} not found`); _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.CANCELLED); const now = Date.now(); p.status = ZKP_PROOF_LIFECYCLE_V2.CANCELLED; p.updatedAt = now; if (!p.settledAt) p.settledAt = now; if (reason) p.metadata.cancelReason = String(reason); return { ...p, metadata: { ...p.metadata } }; }
839
- export function getZkpProofV2(id) { const p = _zkpProofs.get(id); if (!p) return null; return { ...p, metadata: { ...p.metadata } }; }
840
- export function listZkpProofsV2() { return [..._zkpProofs.values()].map((p) => ({ ...p, metadata: { ...p.metadata } })); }
977
+ function _zkpCheckP(from, to) {
978
+ const a = _zkpProofTrans.get(from);
979
+ if (!a || !a.has(to))
980
+ throw new Error(`invalid zkp proof transition ${from} ${to}`);
981
+ }
982
+ export function startZkpProofV2(id) {
983
+ const p = _zkpProofs.get(id);
984
+ if (!p) throw new Error(`zkp proof ${id} not found`);
985
+ _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.PROVING);
986
+ const now = Date.now();
987
+ p.status = ZKP_PROOF_LIFECYCLE_V2.PROVING;
988
+ p.updatedAt = now;
989
+ if (!p.startedAt) p.startedAt = now;
990
+ return { ...p, metadata: { ...p.metadata } };
991
+ }
992
+ export function verifyZkpProofV2(id) {
993
+ const p = _zkpProofs.get(id);
994
+ if (!p) throw new Error(`zkp proof ${id} not found`);
995
+ _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.VERIFIED);
996
+ const now = Date.now();
997
+ p.status = ZKP_PROOF_LIFECYCLE_V2.VERIFIED;
998
+ p.updatedAt = now;
999
+ if (!p.settledAt) p.settledAt = now;
1000
+ return { ...p, metadata: { ...p.metadata } };
1001
+ }
1002
+ export function failZkpProofV2(id, reason) {
1003
+ const p = _zkpProofs.get(id);
1004
+ if (!p) throw new Error(`zkp proof ${id} not found`);
1005
+ _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.FAILED);
1006
+ const now = Date.now();
1007
+ p.status = ZKP_PROOF_LIFECYCLE_V2.FAILED;
1008
+ p.updatedAt = now;
1009
+ if (!p.settledAt) p.settledAt = now;
1010
+ if (reason) p.metadata.failReason = String(reason);
1011
+ return { ...p, metadata: { ...p.metadata } };
1012
+ }
1013
+ export function cancelZkpProofV2(id, reason) {
1014
+ const p = _zkpProofs.get(id);
1015
+ if (!p) throw new Error(`zkp proof ${id} not found`);
1016
+ _zkpCheckP(p.status, ZKP_PROOF_LIFECYCLE_V2.CANCELLED);
1017
+ const now = Date.now();
1018
+ p.status = ZKP_PROOF_LIFECYCLE_V2.CANCELLED;
1019
+ p.updatedAt = now;
1020
+ if (!p.settledAt) p.settledAt = now;
1021
+ if (reason) p.metadata.cancelReason = String(reason);
1022
+ return { ...p, metadata: { ...p.metadata } };
1023
+ }
1024
+ export function getZkpProofV2(id) {
1025
+ const p = _zkpProofs.get(id);
1026
+ if (!p) return null;
1027
+ return { ...p, metadata: { ...p.metadata } };
1028
+ }
1029
+ export function listZkpProofsV2() {
1030
+ return [..._zkpProofs.values()].map((p) => ({
1031
+ ...p,
1032
+ metadata: { ...p.metadata },
1033
+ }));
1034
+ }
841
1035
 
842
- export function autoDeprecateIdleZkpCircuitsV2({ now } = {}) { const t = now ?? Date.now(); const flipped = []; for (const c of _zkpCircs.values()) if (c.status === ZKP_CIRCUIT_MATURITY_V2.ACTIVE && (t - c.lastTouchedAt) >= _zkpCircuitIdleMs) { c.status = ZKP_CIRCUIT_MATURITY_V2.DEPRECATED; c.updatedAt = t; flipped.push(c.id); } return { flipped, count: flipped.length }; }
843
- export function autoFailStuckZkpProofsV2({ now } = {}) { const t = now ?? Date.now(); const flipped = []; for (const p of _zkpProofs.values()) if (p.status === ZKP_PROOF_LIFECYCLE_V2.PROVING && p.startedAt != null && (t - p.startedAt) >= _zkpProofStuckMs) { p.status = ZKP_PROOF_LIFECYCLE_V2.FAILED; p.updatedAt = t; if (!p.settledAt) p.settledAt = t; p.metadata.failReason = "auto-fail-stuck"; flipped.push(p.id); } return { flipped, count: flipped.length }; }
1036
+ export function autoDeprecateIdleZkpCircuitsV2({ now } = {}) {
1037
+ const t = now ?? Date.now();
1038
+ const flipped = [];
1039
+ for (const c of _zkpCircs.values())
1040
+ if (
1041
+ c.status === ZKP_CIRCUIT_MATURITY_V2.ACTIVE &&
1042
+ t - c.lastTouchedAt >= _zkpCircuitIdleMs
1043
+ ) {
1044
+ c.status = ZKP_CIRCUIT_MATURITY_V2.DEPRECATED;
1045
+ c.updatedAt = t;
1046
+ flipped.push(c.id);
1047
+ }
1048
+ return { flipped, count: flipped.length };
1049
+ }
1050
+ export function autoFailStuckZkpProofsV2({ now } = {}) {
1051
+ const t = now ?? Date.now();
1052
+ const flipped = [];
1053
+ for (const p of _zkpProofs.values())
1054
+ if (
1055
+ p.status === ZKP_PROOF_LIFECYCLE_V2.PROVING &&
1056
+ p.startedAt != null &&
1057
+ t - p.startedAt >= _zkpProofStuckMs
1058
+ ) {
1059
+ p.status = ZKP_PROOF_LIFECYCLE_V2.FAILED;
1060
+ p.updatedAt = t;
1061
+ if (!p.settledAt) p.settledAt = t;
1062
+ p.metadata.failReason = "auto-fail-stuck";
1063
+ flipped.push(p.id);
1064
+ }
1065
+ return { flipped, count: flipped.length };
1066
+ }
844
1067
 
845
1068
  export function getZkpEngineGovStatsV2() {
846
- const circuitsByStatus = {}; for (const s of Object.values(ZKP_CIRCUIT_MATURITY_V2)) circuitsByStatus[s] = 0; for (const c of _zkpCircs.values()) circuitsByStatus[c.status]++;
847
- const proofsByStatus = {}; for (const s of Object.values(ZKP_PROOF_LIFECYCLE_V2)) proofsByStatus[s] = 0; for (const p of _zkpProofs.values()) proofsByStatus[p.status]++;
848
- return { totalCircuitsV2: _zkpCircs.size, totalProofsV2: _zkpProofs.size, maxActiveZkpCircuitsPerOwner: _zkpMaxActivePerOwner, maxPendingZkpProofsPerCircuit: _zkpMaxPendingPerCircuit, zkpCircuitIdleMs: _zkpCircuitIdleMs, zkpProofStuckMs: _zkpProofStuckMs, circuitsByStatus, proofsByStatus };
1069
+ const circuitsByStatus = {};
1070
+ for (const s of Object.values(ZKP_CIRCUIT_MATURITY_V2))
1071
+ circuitsByStatus[s] = 0;
1072
+ for (const c of _zkpCircs.values()) circuitsByStatus[c.status]++;
1073
+ const proofsByStatus = {};
1074
+ for (const s of Object.values(ZKP_PROOF_LIFECYCLE_V2)) proofsByStatus[s] = 0;
1075
+ for (const p of _zkpProofs.values()) proofsByStatus[p.status]++;
1076
+ return {
1077
+ totalCircuitsV2: _zkpCircs.size,
1078
+ totalProofsV2: _zkpProofs.size,
1079
+ maxActiveZkpCircuitsPerOwner: _zkpMaxActivePerOwner,
1080
+ maxPendingZkpProofsPerCircuit: _zkpMaxPendingPerCircuit,
1081
+ zkpCircuitIdleMs: _zkpCircuitIdleMs,
1082
+ zkpProofStuckMs: _zkpProofStuckMs,
1083
+ circuitsByStatus,
1084
+ proofsByStatus,
1085
+ };
849
1086
  }