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
@@ -788,3 +788,212 @@ export function registerPluginEcosystemCommand(program) {
788
788
  program.addCommand(eco);
789
789
  return eco;
790
790
  }
791
+
792
+ // === Iter24 V2 governance overlay ===
793
+ export function registerEcogovV2Commands(program) {
794
+ const parent = program.commands.find((c) => c.name() === "ecosystem");
795
+ if (!parent) return;
796
+ const L = async () => await import("../lib/plugin-ecosystem.js");
797
+ parent
798
+ .command("ecogov-enums-v2")
799
+ .description("Show V2 enums")
800
+ .action(async () => {
801
+ const m = await L();
802
+ console.log(
803
+ JSON.stringify(
804
+ {
805
+ profileMaturity: m.ECOGOV_PROFILE_MATURITY_V2,
806
+ installLifecycle: m.ECOGOV_INSTALL_LIFECYCLE_V2,
807
+ },
808
+ null,
809
+ 2,
810
+ ),
811
+ );
812
+ });
813
+ parent
814
+ .command("ecogov-config-v2")
815
+ .description("Show V2 config")
816
+ .action(async () => {
817
+ const m = await L();
818
+ console.log(
819
+ JSON.stringify(
820
+ {
821
+ maxActive: m.getMaxActiveEcogovProfilesPerOwnerV2(),
822
+ maxPending: m.getMaxPendingEcogovInstallsPerProfileV2(),
823
+ idleMs: m.getEcogovProfileIdleMsV2(),
824
+ stuckMs: m.getEcogovInstallStuckMsV2(),
825
+ },
826
+ null,
827
+ 2,
828
+ ),
829
+ );
830
+ });
831
+ parent
832
+ .command("ecogov-set-max-active-v2 <n>")
833
+ .description("Set max active")
834
+ .action(async (n) => {
835
+ (await L()).setMaxActiveEcogovProfilesPerOwnerV2(Number(n));
836
+ console.log("ok");
837
+ });
838
+ parent
839
+ .command("ecogov-set-max-pending-v2 <n>")
840
+ .description("Set max pending")
841
+ .action(async (n) => {
842
+ (await L()).setMaxPendingEcogovInstallsPerProfileV2(Number(n));
843
+ console.log("ok");
844
+ });
845
+ parent
846
+ .command("ecogov-set-idle-ms-v2 <n>")
847
+ .description("Set idle threshold ms")
848
+ .action(async (n) => {
849
+ (await L()).setEcogovProfileIdleMsV2(Number(n));
850
+ console.log("ok");
851
+ });
852
+ parent
853
+ .command("ecogov-set-stuck-ms-v2 <n>")
854
+ .description("Set stuck threshold ms")
855
+ .action(async (n) => {
856
+ (await L()).setEcogovInstallStuckMsV2(Number(n));
857
+ console.log("ok");
858
+ });
859
+ parent
860
+ .command("ecogov-register-v2 <id> <owner>")
861
+ .description("Register V2 profile")
862
+ .option("--category <v>", "category")
863
+ .action(async (id, owner, o) => {
864
+ const m = await L();
865
+ console.log(
866
+ JSON.stringify(
867
+ m.registerEcogovProfileV2({ id, owner, category: o.category }),
868
+ null,
869
+ 2,
870
+ ),
871
+ );
872
+ });
873
+ parent
874
+ .command("ecogov-activate-v2 <id>")
875
+ .description("Activate profile")
876
+ .action(async (id) => {
877
+ console.log(
878
+ JSON.stringify((await L()).activateEcogovProfileV2(id), null, 2),
879
+ );
880
+ });
881
+ parent
882
+ .command("ecogov-disable-v2 <id>")
883
+ .description("Disable profile")
884
+ .action(async (id) => {
885
+ console.log(
886
+ JSON.stringify((await L()).disableEcogovProfileV2(id), null, 2),
887
+ );
888
+ });
889
+ parent
890
+ .command("ecogov-archive-v2 <id>")
891
+ .description("Archive profile")
892
+ .action(async (id) => {
893
+ console.log(
894
+ JSON.stringify((await L()).archiveEcogovProfileV2(id), null, 2),
895
+ );
896
+ });
897
+ parent
898
+ .command("ecogov-touch-v2 <id>")
899
+ .description("Touch profile")
900
+ .action(async (id) => {
901
+ console.log(
902
+ JSON.stringify((await L()).touchEcogovProfileV2(id), null, 2),
903
+ );
904
+ });
905
+ parent
906
+ .command("ecogov-get-v2 <id>")
907
+ .description("Get profile")
908
+ .action(async (id) => {
909
+ console.log(JSON.stringify((await L()).getEcogovProfileV2(id), null, 2));
910
+ });
911
+ parent
912
+ .command("ecogov-list-v2")
913
+ .description("List profiles")
914
+ .action(async () => {
915
+ console.log(JSON.stringify((await L()).listEcogovProfilesV2(), null, 2));
916
+ });
917
+ parent
918
+ .command("ecogov-create-install-v2 <id> <profileId>")
919
+ .description("Create install")
920
+ .option("--version <v>", "version")
921
+ .action(async (id, profileId, o) => {
922
+ const m = await L();
923
+ console.log(
924
+ JSON.stringify(
925
+ m.createEcogovInstallV2({ id, profileId, version: o.version }),
926
+ null,
927
+ 2,
928
+ ),
929
+ );
930
+ });
931
+ parent
932
+ .command("ecogov-installing-install-v2 <id>")
933
+ .description("Mark install as installing")
934
+ .action(async (id) => {
935
+ console.log(
936
+ JSON.stringify((await L()).installingEcogovInstallV2(id), null, 2),
937
+ );
938
+ });
939
+ parent
940
+ .command("ecogov-complete-install-v2 <id>")
941
+ .description("Complete install")
942
+ .action(async (id) => {
943
+ console.log(
944
+ JSON.stringify((await L()).completeInstallEcogovV2(id), null, 2),
945
+ );
946
+ });
947
+ parent
948
+ .command("ecogov-fail-install-v2 <id> [reason]")
949
+ .description("Fail install")
950
+ .action(async (id, reason) => {
951
+ console.log(
952
+ JSON.stringify((await L()).failEcogovInstallV2(id, reason), null, 2),
953
+ );
954
+ });
955
+ parent
956
+ .command("ecogov-cancel-install-v2 <id> [reason]")
957
+ .description("Cancel install")
958
+ .action(async (id, reason) => {
959
+ console.log(
960
+ JSON.stringify((await L()).cancelEcogovInstallV2(id, reason), null, 2),
961
+ );
962
+ });
963
+ parent
964
+ .command("ecogov-get-install-v2 <id>")
965
+ .description("Get install")
966
+ .action(async (id) => {
967
+ console.log(JSON.stringify((await L()).getEcogovInstallV2(id), null, 2));
968
+ });
969
+ parent
970
+ .command("ecogov-list-installs-v2")
971
+ .description("List installs")
972
+ .action(async () => {
973
+ console.log(JSON.stringify((await L()).listEcogovInstallsV2(), null, 2));
974
+ });
975
+ parent
976
+ .command("ecogov-auto-disable-idle-v2")
977
+ .description("Auto-disable idle")
978
+ .action(async () => {
979
+ console.log(
980
+ JSON.stringify((await L()).autoDisableIdleEcogovProfilesV2(), null, 2),
981
+ );
982
+ });
983
+ parent
984
+ .command("ecogov-auto-fail-stuck-v2")
985
+ .description("Auto-fail stuck installs")
986
+ .action(async () => {
987
+ console.log(
988
+ JSON.stringify((await L()).autoFailStuckEcogovInstallsV2(), null, 2),
989
+ );
990
+ });
991
+ parent
992
+ .command("ecogov-gov-stats-v2")
993
+ .description("V2 gov stats")
994
+ .action(async () => {
995
+ console.log(
996
+ JSON.stringify((await L()).getPluginEcosystemGovStatsV2(), null, 2),
997
+ );
998
+ });
999
+ }
@@ -587,3 +587,216 @@ export function registerPqcCommand(program) {
587
587
  else logger.log(JSON.stringify(s, null, 2));
588
588
  });
589
589
  }
590
+
591
+ // === Iter22 V2 governance overlay ===
592
+ export function registerPqcgovV2Commands(program) {
593
+ const parent = program.commands.find((c) => c.name() === "pqc");
594
+ if (!parent) return;
595
+ const L = async () => await import("../lib/pqc-manager.js");
596
+ parent
597
+ .command("pqcgov-enums-v2")
598
+ .description("Show V2 enums")
599
+ .action(async () => {
600
+ const m = await L();
601
+ console.log(
602
+ JSON.stringify(
603
+ {
604
+ profileMaturity: m.PQCGOV_PROFILE_MATURITY_V2,
605
+ keygenLifecycle: m.PQCGOV_KEYGEN_LIFECYCLE_V2,
606
+ },
607
+ null,
608
+ 2,
609
+ ),
610
+ );
611
+ });
612
+ parent
613
+ .command("pqcgov-config-v2")
614
+ .description("Show V2 config")
615
+ .action(async () => {
616
+ const m = await L();
617
+ console.log(
618
+ JSON.stringify(
619
+ {
620
+ maxActive: m.getMaxActivePqcgovProfilesPerOwnerV2(),
621
+ maxPending: m.getMaxPendingPqcgovKeygensPerProfileV2(),
622
+ idleMs: m.getPqcgovProfileIdleMsV2(),
623
+ stuckMs: m.getPqcgovKeygenStuckMsV2(),
624
+ },
625
+ null,
626
+ 2,
627
+ ),
628
+ );
629
+ });
630
+ parent
631
+ .command("pqcgov-set-max-active-v2 <n>")
632
+ .description("Set max active")
633
+ .action(async (n) => {
634
+ (await L()).setMaxActivePqcgovProfilesPerOwnerV2(Number(n));
635
+ console.log("ok");
636
+ });
637
+ parent
638
+ .command("pqcgov-set-max-pending-v2 <n>")
639
+ .description("Set max pending")
640
+ .action(async (n) => {
641
+ (await L()).setMaxPendingPqcgovKeygensPerProfileV2(Number(n));
642
+ console.log("ok");
643
+ });
644
+ parent
645
+ .command("pqcgov-set-idle-ms-v2 <n>")
646
+ .description("Set idle threshold ms")
647
+ .action(async (n) => {
648
+ (await L()).setPqcgovProfileIdleMsV2(Number(n));
649
+ console.log("ok");
650
+ });
651
+ parent
652
+ .command("pqcgov-set-stuck-ms-v2 <n>")
653
+ .description("Set stuck threshold ms")
654
+ .action(async (n) => {
655
+ (await L()).setPqcgovKeygenStuckMsV2(Number(n));
656
+ console.log("ok");
657
+ });
658
+ parent
659
+ .command("pqcgov-register-v2 <id> <owner>")
660
+ .description("Register V2 profile")
661
+ .option("--algorithm <v>", "algorithm")
662
+ .action(async (id, owner, o) => {
663
+ const m = await L();
664
+ console.log(
665
+ JSON.stringify(
666
+ m.registerPqcgovProfileV2({ id, owner, algorithm: o.algorithm }),
667
+ null,
668
+ 2,
669
+ ),
670
+ );
671
+ });
672
+ parent
673
+ .command("pqcgov-activate-v2 <id>")
674
+ .description("Activate profile")
675
+ .action(async (id) => {
676
+ console.log(
677
+ JSON.stringify((await L()).activatePqcgovProfileV2(id), null, 2),
678
+ );
679
+ });
680
+ parent
681
+ .command("pqcgov-deprecate-v2 <id>")
682
+ .description("Deprecate profile")
683
+ .action(async (id) => {
684
+ console.log(
685
+ JSON.stringify((await L()).deprecatePqcgovProfileV2(id), null, 2),
686
+ );
687
+ });
688
+ parent
689
+ .command("pqcgov-archive-v2 <id>")
690
+ .description("Archive profile")
691
+ .action(async (id) => {
692
+ console.log(
693
+ JSON.stringify((await L()).archivePqcgovProfileV2(id), null, 2),
694
+ );
695
+ });
696
+ parent
697
+ .command("pqcgov-touch-v2 <id>")
698
+ .description("Touch profile")
699
+ .action(async (id) => {
700
+ console.log(
701
+ JSON.stringify((await L()).touchPqcgovProfileV2(id), null, 2),
702
+ );
703
+ });
704
+ parent
705
+ .command("pqcgov-get-v2 <id>")
706
+ .description("Get profile")
707
+ .action(async (id) => {
708
+ console.log(JSON.stringify((await L()).getPqcgovProfileV2(id), null, 2));
709
+ });
710
+ parent
711
+ .command("pqcgov-list-v2")
712
+ .description("List profiles")
713
+ .action(async () => {
714
+ console.log(JSON.stringify((await L()).listPqcgovProfilesV2(), null, 2));
715
+ });
716
+ parent
717
+ .command("pqcgov-create-keygen-v2 <id> <profileId>")
718
+ .description("Create keygen")
719
+ .option("--purpose <v>", "purpose")
720
+ .action(async (id, profileId, o) => {
721
+ const m = await L();
722
+ console.log(
723
+ JSON.stringify(
724
+ m.createPqcgovKeygenV2({ id, profileId, purpose: o.purpose }),
725
+ null,
726
+ 2,
727
+ ),
728
+ );
729
+ });
730
+ parent
731
+ .command("pqcgov-generating-keygen-v2 <id>")
732
+ .description("Mark keygen as generating")
733
+ .action(async (id) => {
734
+ console.log(
735
+ JSON.stringify((await L()).generatingPqcgovKeygenV2(id), null, 2),
736
+ );
737
+ });
738
+ parent
739
+ .command("pqcgov-complete-keygen-v2 <id>")
740
+ .description("Complete keygen")
741
+ .action(async (id) => {
742
+ console.log(
743
+ JSON.stringify((await L()).completeKeygenPqcgovV2(id), null, 2),
744
+ );
745
+ });
746
+ parent
747
+ .command("pqcgov-fail-keygen-v2 <id> [reason]")
748
+ .description("Fail keygen")
749
+ .action(async (id, reason) => {
750
+ console.log(
751
+ JSON.stringify((await L()).failPqcgovKeygenV2(id, reason), null, 2),
752
+ );
753
+ });
754
+ parent
755
+ .command("pqcgov-cancel-keygen-v2 <id> [reason]")
756
+ .description("Cancel keygen")
757
+ .action(async (id, reason) => {
758
+ console.log(
759
+ JSON.stringify((await L()).cancelPqcgovKeygenV2(id, reason), null, 2),
760
+ );
761
+ });
762
+ parent
763
+ .command("pqcgov-get-keygen-v2 <id>")
764
+ .description("Get keygen")
765
+ .action(async (id) => {
766
+ console.log(JSON.stringify((await L()).getPqcgovKeygenV2(id), null, 2));
767
+ });
768
+ parent
769
+ .command("pqcgov-list-keygens-v2")
770
+ .description("List keygens")
771
+ .action(async () => {
772
+ console.log(JSON.stringify((await L()).listPqcgovKeygensV2(), null, 2));
773
+ });
774
+ parent
775
+ .command("pqcgov-auto-deprecate-idle-v2")
776
+ .description("Auto-deprecate idle")
777
+ .action(async () => {
778
+ console.log(
779
+ JSON.stringify(
780
+ (await L()).autoDeprecateIdlePqcgovProfilesV2(),
781
+ null,
782
+ 2,
783
+ ),
784
+ );
785
+ });
786
+ parent
787
+ .command("pqcgov-auto-fail-stuck-v2")
788
+ .description("Auto-fail stuck keygens")
789
+ .action(async () => {
790
+ console.log(
791
+ JSON.stringify((await L()).autoFailStuckPqcgovKeygensV2(), null, 2),
792
+ );
793
+ });
794
+ parent
795
+ .command("pqcgov-gov-stats-v2")
796
+ .description("V2 gov stats")
797
+ .action(async () => {
798
+ console.log(
799
+ JSON.stringify((await L()).getPqcManagerGovStatsV2(), null, 2),
800
+ );
801
+ });
802
+ }
@@ -664,3 +664,206 @@ export function registerPrivacyCommand(program) {
664
664
 
665
665
  program.addCommand(pc);
666
666
  }
667
+
668
+ // === Iter17 V2 governance overlay ===
669
+ export function registerPcgovV2Commands(program) {
670
+ const parent = program.commands.find((c) => c.name() === "privacy");
671
+ if (!parent) return;
672
+ const L = async () => await import("../lib/privacy-computing.js");
673
+ parent
674
+ .command("pcgov-enums-v2")
675
+ .description("Show V2 enums")
676
+ .action(async () => {
677
+ const m = await L();
678
+ console.log(
679
+ JSON.stringify(
680
+ {
681
+ profileMaturity: m.PCGOV_PROFILE_MATURITY_V2,
682
+ jobLifecycle: m.PCGOV_JOB_LIFECYCLE_V2,
683
+ },
684
+ null,
685
+ 2,
686
+ ),
687
+ );
688
+ });
689
+ parent
690
+ .command("pcgov-config-v2")
691
+ .description("Show V2 config")
692
+ .action(async () => {
693
+ const m = await L();
694
+ console.log(
695
+ JSON.stringify(
696
+ {
697
+ maxActive: m.getMaxActivePcgovProfilesPerOwnerV2(),
698
+ maxPending: m.getMaxPendingPcgovJobsPerProfileV2(),
699
+ idleMs: m.getPcgovProfileIdleMsV2(),
700
+ stuckMs: m.getPcgovJobStuckMsV2(),
701
+ },
702
+ null,
703
+ 2,
704
+ ),
705
+ );
706
+ });
707
+ parent
708
+ .command("pcgov-set-max-active-v2 <n>")
709
+ .description("Set max active")
710
+ .action(async (n) => {
711
+ (await L()).setMaxActivePcgovProfilesPerOwnerV2(Number(n));
712
+ console.log("ok");
713
+ });
714
+ parent
715
+ .command("pcgov-set-max-pending-v2 <n>")
716
+ .description("Set max pending")
717
+ .action(async (n) => {
718
+ (await L()).setMaxPendingPcgovJobsPerProfileV2(Number(n));
719
+ console.log("ok");
720
+ });
721
+ parent
722
+ .command("pcgov-set-idle-ms-v2 <n>")
723
+ .description("Set idle threshold ms")
724
+ .action(async (n) => {
725
+ (await L()).setPcgovProfileIdleMsV2(Number(n));
726
+ console.log("ok");
727
+ });
728
+ parent
729
+ .command("pcgov-set-stuck-ms-v2 <n>")
730
+ .description("Set stuck threshold ms")
731
+ .action(async (n) => {
732
+ (await L()).setPcgovJobStuckMsV2(Number(n));
733
+ console.log("ok");
734
+ });
735
+ parent
736
+ .command("pcgov-register-v2 <id> <owner>")
737
+ .description("Register V2 profile")
738
+ .option("--technique <v>", "technique")
739
+ .action(async (id, owner, o) => {
740
+ const m = await L();
741
+ console.log(
742
+ JSON.stringify(
743
+ m.registerPcgovProfileV2({ id, owner, technique: o.technique }),
744
+ null,
745
+ 2,
746
+ ),
747
+ );
748
+ });
749
+ parent
750
+ .command("pcgov-activate-v2 <id>")
751
+ .description("Activate profile")
752
+ .action(async (id) => {
753
+ console.log(
754
+ JSON.stringify((await L()).activatePcgovProfileV2(id), null, 2),
755
+ );
756
+ });
757
+ parent
758
+ .command("pcgov-suspend-v2 <id>")
759
+ .description("Suspend profile")
760
+ .action(async (id) => {
761
+ console.log(
762
+ JSON.stringify((await L()).suspendPcgovProfileV2(id), null, 2),
763
+ );
764
+ });
765
+ parent
766
+ .command("pcgov-archive-v2 <id>")
767
+ .description("Archive profile")
768
+ .action(async (id) => {
769
+ console.log(
770
+ JSON.stringify((await L()).archivePcgovProfileV2(id), null, 2),
771
+ );
772
+ });
773
+ parent
774
+ .command("pcgov-touch-v2 <id>")
775
+ .description("Touch profile")
776
+ .action(async (id) => {
777
+ console.log(JSON.stringify((await L()).touchPcgovProfileV2(id), null, 2));
778
+ });
779
+ parent
780
+ .command("pcgov-get-v2 <id>")
781
+ .description("Get profile")
782
+ .action(async (id) => {
783
+ console.log(JSON.stringify((await L()).getPcgovProfileV2(id), null, 2));
784
+ });
785
+ parent
786
+ .command("pcgov-list-v2")
787
+ .description("List profiles")
788
+ .action(async () => {
789
+ console.log(JSON.stringify((await L()).listPcgovProfilesV2(), null, 2));
790
+ });
791
+ parent
792
+ .command("pcgov-create-job-v2 <id> <profileId>")
793
+ .description("Create job")
794
+ .option("--dataset <v>", "dataset")
795
+ .action(async (id, profileId, o) => {
796
+ const m = await L();
797
+ console.log(
798
+ JSON.stringify(
799
+ m.createPcgovJobV2({ id, profileId, dataset: o.dataset }),
800
+ null,
801
+ 2,
802
+ ),
803
+ );
804
+ });
805
+ parent
806
+ .command("pcgov-computing-job-v2 <id>")
807
+ .description("Mark job as computing")
808
+ .action(async (id) => {
809
+ console.log(JSON.stringify((await L()).computingPcgovJobV2(id), null, 2));
810
+ });
811
+ parent
812
+ .command("pcgov-complete-job-v2 <id>")
813
+ .description("Complete job")
814
+ .action(async (id) => {
815
+ console.log(JSON.stringify((await L()).completeJobPcgovV2(id), null, 2));
816
+ });
817
+ parent
818
+ .command("pcgov-fail-job-v2 <id> [reason]")
819
+ .description("Fail job")
820
+ .action(async (id, reason) => {
821
+ console.log(
822
+ JSON.stringify((await L()).failPcgovJobV2(id, reason), null, 2),
823
+ );
824
+ });
825
+ parent
826
+ .command("pcgov-cancel-job-v2 <id> [reason]")
827
+ .description("Cancel job")
828
+ .action(async (id, reason) => {
829
+ console.log(
830
+ JSON.stringify((await L()).cancelPcgovJobV2(id, reason), null, 2),
831
+ );
832
+ });
833
+ parent
834
+ .command("pcgov-get-job-v2 <id>")
835
+ .description("Get job")
836
+ .action(async (id) => {
837
+ console.log(JSON.stringify((await L()).getPcgovJobV2(id), null, 2));
838
+ });
839
+ parent
840
+ .command("pcgov-list-jobs-v2")
841
+ .description("List jobs")
842
+ .action(async () => {
843
+ console.log(JSON.stringify((await L()).listPcgovJobsV2(), null, 2));
844
+ });
845
+ parent
846
+ .command("pcgov-auto-suspend-idle-v2")
847
+ .description("Auto-suspend idle")
848
+ .action(async () => {
849
+ console.log(
850
+ JSON.stringify((await L()).autoSuspendIdlePcgovProfilesV2(), null, 2),
851
+ );
852
+ });
853
+ parent
854
+ .command("pcgov-auto-fail-stuck-v2")
855
+ .description("Auto-fail stuck jobs")
856
+ .action(async () => {
857
+ console.log(
858
+ JSON.stringify((await L()).autoFailStuckPcgovJobsV2(), null, 2),
859
+ );
860
+ });
861
+ parent
862
+ .command("pcgov-gov-stats-v2")
863
+ .description("V2 gov stats")
864
+ .action(async () => {
865
+ console.log(
866
+ JSON.stringify((await L()).getPrivacyComputingGovStatsV2(), null, 2),
867
+ );
868
+ });
869
+ }