chainlesschain 0.166.65 → 0.166.69
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 +20 -12
- package/package.json +4 -4
- package/src/assets/web-panel/assets/{AIOps-Byz17CTN.js → AIOps-FhevRfL6.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-C5LiW2-J.js → ActionButton-rOeOykx5.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-D1INcvZF.js → Analytics-BK_wYlfz.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-DZzHO1VV.js → AppLayout-_2cCtZKV.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-WfYQL6Ia.js → Artifacts-D5MSvVzk.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DohBoGWO.js → Audit-yd-Ah-A3.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-Chtk-Hde.js → BackgroundAgents-yCaw_Gu_.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-B813PuMz.js → Backup-G3ADD4N-.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DaDdWWgK.js → BaseInput-ByDhkLbF.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D4pJ6oZ7.js → Chat-BMrc7qjz.js} +4 -4
- package/src/assets/web-panel/assets/ChatBubbleRenderer-nA7n0I6S.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-Clo9TvO6.js → Checkbox-BHYgyZWA.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-uejLg8Ih.js → Codegen-DJfcy0jC.js} +1 -1
- package/src/assets/web-panel/assets/{Col-B7nbx-iJ.js → Col-C27zROxc.js} +1 -1
- package/src/assets/web-panel/assets/{Community-FEyjPK1j.js → Community-CuS5tq_1.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-B6Fk0Kn6.js → Compact-BrYJNe7Q.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BQG8goUl.js → Compliance-8hfahYHT.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CbBeEfHp.js → Cowork-DdE0n2lp.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-DPzlFcEZ.js → Cron-CUq3aSiX.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-B8pWJrbg.js → Crosschain-BM4XSPWG.js} +1 -1
- package/src/assets/web-panel/assets/{DID-gGQHUlFN.js → DID-CdaBY57N.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-C2TMFHrn.js → Dashboard-Cwtd52So.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BVPxGbll.js → Dropdown-BvlObh6U.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CNPxs0hd.js → EmailListRenderer-e3fLhjnX.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-_XTiB7q1.js → EvolutionSettings-CTtk1Zo8.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-UyE3VWtI.js → FamilyGuardDashboard-BpPJUnCU.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CLt6FHK-.js → Federation-vzjZ6_nQ.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CdNQPRPw.js → FormItemContext-DEDNLhkE.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-BJ0AMhrh.js → GenericCardRenderer-DEl2Te5f.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CQnvMfOM.js → Git-BzsYQnCq.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-deYsHC-o.js → Governance-zxJs6Y8s.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-qaSck43z.js → Inference-5JUsrmF1.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-De0aJ3Ls.js → KnowledgeGraph-Br8b5Htz.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-ZtS98jCm.js → Logs-D-tubDMJ.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-In4itZX2.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-Byz3xCBN.js → Marketplace-s8MmWkS9.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DOZUUW6z.js → McpTools-Wu-WRg4M.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-C33wC2hA.js → Memory-B_i-eX9w.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-zZe-T_6M.js → MobileBridge-Ca64kjVx.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-CRnUIume.js → MobileProjects-Cq9AFiO4.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-C1xlRVAN.js → Mtc-DKvGmG3y.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-D0U07bIi.js → MtcAudit-BVvWx8pF.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-DF8uvV3h.js → Multisig-wqeJ2O9x.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-bBPGAFlt.js → NLProgramming-DX87ysYu.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BHAaOsgg.js → Notes-ChenGdu0.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-Cl0fG_rA.js → NotificationSettings-BZRa68-x.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-BEPAs8Zv.js → OrderTableRenderer-DZ6xG1M6.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BAxSwgk5.js → Organization-BWJp4VPX.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-D68KubAu.js → Overflow-BoM4bYt5.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-bhdT17zk.js → P2P-Cvi8YV09.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DqaO6wgH.js → PdhVaultBrowser-CNVC1NIj.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-Bq8fvkak.js → Permissions-DNd1MRjW.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BYd2JEic.js → PersonalDataHub-DGSBYZ5-.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-Csg_ja69.js → Pipeline-DkcoGMBo.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-lwxwLj4M.js → Privacy-DltwvMAW.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-BdBZkH8z.js → ProjectInit-ChYbpHg8.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-ClWgFy-K.js → ProjectSettings-B8FWiHTJ.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-Bu-qj8N1.js → Projects-DuyhtSm4.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-DEjxrxw3.js → Providers-Bo18Tx_6.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-eccy-8Vi.js → QrScannerModal-6W85KlsG.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Vx3uDvFg.js → QuickAsk-DznRUedP.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CfUivNps.js → Recommend-CQDN3_p-.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BU4gk7GI.js → RemoteSession-CiJgokEj.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-CbPzdZ0C.js → Reputation-DexzGH7E.js} +1 -1
- package/src/assets/web-panel/assets/{Row-CYLrgfKA.js → Row-BgZOIvSi.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DbY1oyuv.js → RssFeed-BWIZJ_Jr.js} +3 -3
- package/src/assets/web-panel/assets/{Search-QeW41K5r.js → Search-B376EwWJ.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CJxf1kLZ.js → Security-92mUR5OD.js} +4 -4
- package/src/assets/web-panel/assets/{Services-CFO9ySZc.js → Services-ClSEAOHk.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CQFjeQN0.js → Skeleton-DVhLbv99.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CLLB4INW.js → Skills-JTcXs_xI.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DxeLIJk0.js → Sla-DnKY9zy9.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-D4FA9KYI.js → SpeechSettings-GO1JefAH.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-C6NOkcQK.js → SyncSettings-jX5tB2St.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-LmVPWDfQ.js → Tasks-BxRBzhUc.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BdEfUoVB.js → Templates-CAVkbTG1.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-IUlESacN.js → Tenant-5Y7sHBkz.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-B9pDe7sn.js → Terminal-CbbLShYb.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-ZCwB-Pki.js → TimelineRenderer-2HptWihL.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-4qk16LX1.js → Tokens-B-jGxzHl.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-jXNyargn.js → Trigger-9DGa90DT.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-D13PydtT.js → Trust-BSJEkEOO.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-yPgws6mS.js → UkeySign-C807So5R.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-B329WjpG.js → VideoEditing-ByiieAv-.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-T8VM-Ttm.js → Wallet-BixbIOUv.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-XuRibrpP.js → WebAuthn-z7akhor4.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-D1Gwz3YR.js → WorkflowEditor-KvijuUuR.js} +1 -1
- package/src/assets/web-panel/assets/{chat-DjydtnT-.js → chat-BYKoh0YG.js} +1 -1
- package/src/assets/web-panel/assets/{colors-gFtBvPrr.js → colors-CLT8IYBt.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CndxhGfx.js → compact-item-DlBIyYHF.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DnfGpd0L.js → createContext-5XmAnNLr.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-BmcCIHwY.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-CmT5hRVW.js → hasIn-rPdRhm7K.js} +1 -1
- package/src/assets/web-panel/assets/{index-DoBKSzqu.js → index-8un-eUDI.js} +1 -1
- package/src/assets/web-panel/assets/{index-DGbKeg8G.js → index-B-0nAxf5.js} +1 -1
- package/src/assets/web-panel/assets/{index-DreYqebI.js → index-B1VfBUPB.js} +1 -1
- package/src/assets/web-panel/assets/{index-zQf599Uq.js → index-BBt2CSAx.js} +1 -1
- package/src/assets/web-panel/assets/{index-BlTcxT_L.js → index-BDtlwjSr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CqpR0Des.js → index-BIRl2Ii5.js} +1 -1
- package/src/assets/web-panel/assets/{index-C3HvYeA3.js → index-BgevTkUv.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0WFjxWs.js → index-Bve7Wsgf.js} +1 -1
- package/src/assets/web-panel/assets/{index-BNHdO6Jr.js → index-Bzd0sFkp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DV2PR3Fa.js → index-C2sFDVb_.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2d7358Y.js → index-CErvHCDe.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaEPE2DC.js → index-CM_a9spK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DKyuE_Y2.js → index-CY6TMc2m.js} +1 -1
- package/src/assets/web-panel/assets/{index-BVM_w30N.js → index-ChlzaTV3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZLDbPTa.js → index-CsnbOKdI.js} +1 -1
- package/src/assets/web-panel/assets/{index-HHP1zzo7.js → index-D3-NL-x-.js} +1 -1
- package/src/assets/web-panel/assets/{index-BFif4Cev.js → index-D3f9Jzx2.js} +1 -1
- package/src/assets/web-panel/assets/{index-C14jryXi.js → index-DCDSycWo.js} +1 -1
- package/src/assets/web-panel/assets/{index-CB27echm.js → index-DIVrVGvf.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGlmPbl_.js → index-DI_tYFBe.js} +1 -1
- package/src/assets/web-panel/assets/{index-BsRKmb6k.js → index-DPS4mWnI.js} +1 -1
- package/src/assets/web-panel/assets/{index-BXNUTiW8.js → index-DTslLzPJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dbpk75MO.js → index-DW8vozBS.js} +1 -1
- package/src/assets/web-panel/assets/index-DY8rmd6x.js +1 -0
- package/src/assets/web-panel/assets/{index-DjY-3sMA.js → index-DZiSMYoD.js} +3 -3
- package/src/assets/web-panel/assets/{index-DV6NrfJx.js → index-DZjGcIGU.js} +1 -1
- package/src/assets/web-panel/assets/{index-ktN-K1Tf.js → index-Dea32nOK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjcR-CwS.js → index-Djd7uqwM.js} +1 -1
- package/src/assets/web-panel/assets/{index-CuOx4Pbe.js → index-Dntid6oj.js} +1 -1
- package/src/assets/web-panel/assets/{index-BW3nWiu0.js → index-DqZU4_7J.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4Mqhmas.js → index-DuvweiCz.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRqz8TtI.js → index-DzExCCLS.js} +1 -1
- package/src/assets/web-panel/assets/{index-D5na0B7G.js → index-LKT-Ol0A.js} +1 -1
- package/src/assets/web-panel/assets/{index-_-wGLtAg.js → index-akwXS-FF.js} +1 -1
- package/src/assets/web-panel/assets/{index-CgMKElUh.js → index-b-rQCMkx.js} +1 -1
- package/src/assets/web-panel/assets/{index-DUlubR4l.js → index-eHbr3f5I.js} +1 -1
- package/src/assets/web-panel/assets/{index-D88-8bsB.js → index-kx6zDWew.js} +1 -1
- package/src/assets/web-panel/assets/{index-DuAvYTmY.js → index-rRuCGdKW.js} +1 -1
- package/src/assets/web-panel/assets/index-sbwcUeRS.js +1 -0
- package/src/assets/web-panel/assets/{initDefaultProps-KV3V-PNH.js → initDefaultProps-a8411LiK.js} +1 -1
- package/src/assets/web-panel/assets/{motion-PFGQg7_X.js → motion-oVcQdpCm.js} +1 -1
- package/src/assets/web-panel/assets/{move-Dnl79wq4.js → move-B-eyzzzL.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Bwl5JH9V.js → mtc-parser-BCYIxuG7.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DCcTtM1l.js → omit-DuFtWiYh.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-Cl6BjjDf.js → pickAttrs-CVAoJhGu.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-fdqhyo42.js → placementArrow-Y2iub2bO.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DYQpmcDW.js → responsiveObserve-BHenWIVD.js} +1 -1
- package/src/assets/web-panel/assets/{slide-C4l-VfO4.js → slide-CKrMaL29.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DYDw_dyZ.js → statusUtils-w8eb_1da.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BEsubSMu.js → styleChecker-CCVi_Ww3.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-Cj82ggQ_.js → useFlexGapSupport-BsmR_q0r.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-B7L1eJ0V.js → useFs-a8GMBjnc.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DVlJVD4d.js → usePersonalDataHub-BMUYSPn-.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BBAbRN_Y.js → vnode-DL2pI31V.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-BYn48q-I.js → zoom-Cbi8fISi.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +33 -7
- package/src/lib/dependency-install-policy.js +1 -1
- package/src/lib/evolution/browser-download-action-authority.js +747 -0
- package/src/lib/evolution/browser-download-artifact-disposal-authority.js +436 -0
- package/src/lib/evolution/browser-filesystem-quarantine-custody.js +2453 -0
- package/src/lib/evolution/browser-filesystem-quarantine-disposal.js +36 -0
- package/src/lib/evolution/browser-keyboard-action-authority.js +560 -0
- package/src/lib/evolution/browser-navigation-action-authority.js +546 -0
- package/src/lib/evolution/browser-quarantine-lock-maintenance-authority.js +573 -0
- package/src/lib/evolution/browser-quarantine-operator-revocation-authority.js +442 -0
- package/src/lib/evolution/browser-quarantine-retention-authority.js +503 -0
- package/src/lib/evolution/browser-quarantine-retention-scheduler.js +207 -0
- package/src/lib/evolution/browser-quarantined-download-executor.js +525 -0
- package/src/lib/evolution/browser-tab-open-action-authority.js +491 -0
- package/src/lib/evolution/browser-vision-action-authority.js +444 -0
- package/src/lib/evolution/browser-vision-observation-authority.js +304 -0
- package/src/lib/evolution/evolution-deployment-loader.js +241 -1
- package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +5 -0
- package/src/lib/evolution/evolution-eval-gate.js +2 -1
- package/src/lib/evolution/evolution-eval-process-supervisor-worker.mjs +71 -9
- package/src/lib/evolution/evolution-eval-process-supervisor.js +276 -9
- package/src/lib/evolution/evolution-workbench-metrics.js +81 -21
- package/src/lib/evolution/pm-exploration-benchmark.js +747 -0
- package/src/lib/evolution/pm-exploration-budget-executor.js +106 -9
- package/src/lib/evolution/pm-exploration-egress-authority.js +382 -0
- package/src/lib/evolution/pm-exploration-evidence-bundle.js +149 -44
- package/src/lib/evolution/pm-exploration-execution-host.js +1254 -8
- package/src/lib/evolution/pm-exploration-process-grader.js +458 -0
- package/src/lib/evolution/pm-exploration-process-reviewer.js +456 -0
- package/src/lib/evolution/pm-exploration-process-runner.js +500 -0
- package/src/lib/evolution/pm-exploration-receipts.js +211 -11
- package/src/lib/evolution/pm-exploration-recovery-snapshot-store.js +465 -46
- package/src/lib/evolution/pm-exploration-transition-committer.js +185 -34
- package/src/lib/evolution/skill-outcome-index-authority.js +7 -3
- package/src/lib/evolution/skill-writer-inventory-manifest.js +0 -39
- package/src/lib/evolution/volcengine-function-execution-authority.js +2949 -0
- package/src/lib/evolution/volcengine-function-process-executor.js +615 -0
- package/src/lib/evolution/volcengine-function-replay-store.js +836 -0
- package/src/lib/evolution/volcengine-function-revocation-status-floor-store.js +480 -0
- package/src/lib/governance-coverage.js +1 -1
- package/src/lib/headless-manifest.js +1 -1
- package/src/lib/protocol-replay.js +1 -1
- package/src/lib/skill-outcome-transcript-authority.js +45 -5
- package/src/runtime/agent-core.js +17 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Cf3LLgDc.js +0 -1
- package/src/assets/web-panel/assets/MarkdownRenderer-CTsYo9NN.js +0 -1
- package/src/assets/web-panel/assets/devWarning-D60SbiD-.js +0 -1
- package/src/assets/web-panel/assets/index-C0yR4_7h.js +0 -1
- package/src/assets/web-panel/assets/index-D4xuvo03.js +0 -1
|
@@ -7,6 +7,8 @@ export const PM_EXPLORATION_SUCCESS_TRANSITION_SCHEMA =
|
|
|
7
7
|
"chainlesschain.desktop-pm-state-transition-success/v1";
|
|
8
8
|
export const PM_EXPLORATION_FAILED_TRANSITION_SCHEMA =
|
|
9
9
|
"chainlesschain.desktop-pm-failed-execution-evidence/v1";
|
|
10
|
+
export const PM_EXPLORATION_CLONE_RECOVERY_EVENT_SCHEMA =
|
|
11
|
+
"chainlesschain.desktop-pm-clone-recovery-event/v1";
|
|
10
12
|
export const PM_EXPLORATION_TRANSITION_DURABILITY_ACK_SCHEMA =
|
|
11
13
|
"chainlesschain.pm-exploration-transition-durability-ack/v1";
|
|
12
14
|
export const PM_EXPLORATION_SNAPSHOT_BOUND_TRANSITION_DURABILITY_ACK_SCHEMA =
|
|
@@ -15,6 +17,8 @@ export const PM_EXPLORATION_TRANSITION_RECOVERY_REQUEST_SCHEMA =
|
|
|
15
17
|
"chainlesschain.pm-exploration-transition-recovery-request/v1";
|
|
16
18
|
export const PM_EXPLORATION_TRANSITION_RECOVERY_SCHEMA =
|
|
17
19
|
"chainlesschain.pm-exploration-transition-recovery/v1";
|
|
20
|
+
export const PM_EXPLORATION_SNAPSHOT_BOUND_TRANSITION_RECOVERY_SCHEMA =
|
|
21
|
+
"chainlesschain.pm-exploration-transition-recovery/v2";
|
|
18
22
|
|
|
19
23
|
const DATABASE_SEAL_SCHEMA =
|
|
20
24
|
"chainlesschain.desktop-pm-database-pre-run-seal/v1";
|
|
@@ -285,6 +289,106 @@ function failedTransition(value, expectedManifestDigest) {
|
|
|
285
289
|
return deepFreeze({ ...core, evidenceDigest });
|
|
286
290
|
}
|
|
287
291
|
|
|
292
|
+
function cloneRecoveryEvent(value, expectedManifestDigest) {
|
|
293
|
+
exact(
|
|
294
|
+
value,
|
|
295
|
+
[
|
|
296
|
+
"schema",
|
|
297
|
+
"manifestDigest",
|
|
298
|
+
"cloneIdentityDigest",
|
|
299
|
+
"sourceTransitionRevision",
|
|
300
|
+
"sourceFailureEvidenceDigest",
|
|
301
|
+
"previousStateTransitionDigest",
|
|
302
|
+
"recoverySnapshotAckDigest",
|
|
303
|
+
"restoredDatabaseSealDigest",
|
|
304
|
+
"restoredWorkspaceSealDigest",
|
|
305
|
+
"switchReceiptDigest",
|
|
306
|
+
"authenticated",
|
|
307
|
+
"durable",
|
|
308
|
+
"qualifiesForPromotion",
|
|
309
|
+
"recoveryEventDigest",
|
|
310
|
+
],
|
|
311
|
+
"PM clone recovery event",
|
|
312
|
+
);
|
|
313
|
+
if (
|
|
314
|
+
value.schema !== PM_EXPLORATION_CLONE_RECOVERY_EVENT_SCHEMA ||
|
|
315
|
+
value.manifestDigest !== expectedManifestDigest ||
|
|
316
|
+
!Number.isSafeInteger(value.sourceTransitionRevision) ||
|
|
317
|
+
value.sourceTransitionRevision < 1 ||
|
|
318
|
+
value.authenticated !== false ||
|
|
319
|
+
value.durable !== false ||
|
|
320
|
+
value.qualifiesForPromotion !== false
|
|
321
|
+
) {
|
|
322
|
+
throw new Error("PM clone recovery event fields are invalid");
|
|
323
|
+
}
|
|
324
|
+
const core = {
|
|
325
|
+
schema: value.schema,
|
|
326
|
+
manifestDigest: digest(value.manifestDigest, "manifestDigest"),
|
|
327
|
+
cloneIdentityDigest: digest(
|
|
328
|
+
value.cloneIdentityDigest,
|
|
329
|
+
"cloneIdentityDigest",
|
|
330
|
+
),
|
|
331
|
+
sourceTransitionRevision: value.sourceTransitionRevision,
|
|
332
|
+
sourceFailureEvidenceDigest: digest(
|
|
333
|
+
value.sourceFailureEvidenceDigest,
|
|
334
|
+
"sourceFailureEvidenceDigest",
|
|
335
|
+
),
|
|
336
|
+
previousStateTransitionDigest: optionalDigest(
|
|
337
|
+
value.previousStateTransitionDigest,
|
|
338
|
+
"previousStateTransitionDigest",
|
|
339
|
+
),
|
|
340
|
+
recoverySnapshotAckDigest: digest(
|
|
341
|
+
value.recoverySnapshotAckDigest,
|
|
342
|
+
"recoverySnapshotAckDigest",
|
|
343
|
+
),
|
|
344
|
+
restoredDatabaseSealDigest: digest(
|
|
345
|
+
value.restoredDatabaseSealDigest,
|
|
346
|
+
"restoredDatabaseSealDigest",
|
|
347
|
+
),
|
|
348
|
+
restoredWorkspaceSealDigest: digest(
|
|
349
|
+
value.restoredWorkspaceSealDigest,
|
|
350
|
+
"restoredWorkspaceSealDigest",
|
|
351
|
+
),
|
|
352
|
+
switchReceiptDigest: digest(
|
|
353
|
+
value.switchReceiptDigest,
|
|
354
|
+
"switchReceiptDigest",
|
|
355
|
+
),
|
|
356
|
+
authenticated: false,
|
|
357
|
+
durable: false,
|
|
358
|
+
qualifiesForPromotion: false,
|
|
359
|
+
};
|
|
360
|
+
const recoveryEventDigest = digest(
|
|
361
|
+
value.recoveryEventDigest,
|
|
362
|
+
"recoveryEventDigest",
|
|
363
|
+
);
|
|
364
|
+
if (
|
|
365
|
+
recoveryEventDigest !==
|
|
366
|
+
hash(PM_EXPLORATION_CLONE_RECOVERY_EVENT_SCHEMA, core)
|
|
367
|
+
) {
|
|
368
|
+
throw new Error("PM clone recovery event digest mismatch");
|
|
369
|
+
}
|
|
370
|
+
return deepFreeze({ ...core, recoveryEventDigest });
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
function transitionBinding(evidence) {
|
|
374
|
+
if (evidence.schema === PM_EXPLORATION_SUCCESS_TRANSITION_SCHEMA) {
|
|
375
|
+
return Object.freeze({
|
|
376
|
+
transitionKind: "success",
|
|
377
|
+
evidenceDigest: evidence.stateTransitionDigest,
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
if (evidence.schema === PM_EXPLORATION_FAILED_TRANSITION_SCHEMA) {
|
|
381
|
+
return Object.freeze({
|
|
382
|
+
transitionKind: "failure",
|
|
383
|
+
evidenceDigest: evidence.evidenceDigest,
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
return Object.freeze({
|
|
387
|
+
transitionKind: "recovery",
|
|
388
|
+
evidenceDigest: evidence.recoveryEventDigest,
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
|
|
288
392
|
export function verifyPmExplorationTransitionEvidence(
|
|
289
393
|
value,
|
|
290
394
|
expectedManifestDigest,
|
|
@@ -305,6 +409,8 @@ export function verifyPmExplorationTransitionEvidence(
|
|
|
305
409
|
return successTransition(value, manifestDigest);
|
|
306
410
|
if (schema.value === PM_EXPLORATION_FAILED_TRANSITION_SCHEMA)
|
|
307
411
|
return failedTransition(value, manifestDigest);
|
|
412
|
+
if (schema.value === PM_EXPLORATION_CLONE_RECOVERY_EVENT_SCHEMA)
|
|
413
|
+
return cloneRecoveryEvent(value, manifestDigest);
|
|
308
414
|
throw new TypeError("PM transition evidence schema is invalid");
|
|
309
415
|
}
|
|
310
416
|
|
|
@@ -370,34 +476,67 @@ function durabilityAck(value, binding) {
|
|
|
370
476
|
}
|
|
371
477
|
|
|
372
478
|
function transitionRecovery(value, expectedManifestDigest) {
|
|
479
|
+
const schemaDescriptor =
|
|
480
|
+
value &&
|
|
481
|
+
typeof value === "object" &&
|
|
482
|
+
!Array.isArray(value) &&
|
|
483
|
+
!isProxy(value) &&
|
|
484
|
+
Object.getPrototypeOf(value) === Object.prototype
|
|
485
|
+
? Object.getOwnPropertyDescriptor(value, "schema")
|
|
486
|
+
: null;
|
|
487
|
+
const snapshotBound =
|
|
488
|
+
schemaDescriptor &&
|
|
489
|
+
"value" in schemaDescriptor &&
|
|
490
|
+
schemaDescriptor.value ===
|
|
491
|
+
PM_EXPLORATION_SNAPSHOT_BOUND_TRANSITION_RECOVERY_SCHEMA;
|
|
373
492
|
exact(
|
|
374
493
|
value,
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
494
|
+
snapshotBound
|
|
495
|
+
? [
|
|
496
|
+
"schema",
|
|
497
|
+
"authenticated",
|
|
498
|
+
"durable",
|
|
499
|
+
"readbackVerified",
|
|
500
|
+
"manifestDigest",
|
|
501
|
+
"revision",
|
|
502
|
+
"transitionKind",
|
|
503
|
+
"evidenceDigest",
|
|
504
|
+
"evidence",
|
|
505
|
+
"recoverySnapshot",
|
|
506
|
+
"ledgerHeadDigest",
|
|
507
|
+
"ledgerEventDigest",
|
|
508
|
+
"durabilityReceiptDigest",
|
|
509
|
+
"qualifiesForPromotion",
|
|
510
|
+
]
|
|
511
|
+
: [
|
|
512
|
+
"schema",
|
|
513
|
+
"authenticated",
|
|
514
|
+
"durable",
|
|
515
|
+
"readbackVerified",
|
|
516
|
+
"manifestDigest",
|
|
517
|
+
"revision",
|
|
518
|
+
"transitionKind",
|
|
519
|
+
"evidenceDigest",
|
|
520
|
+
"evidence",
|
|
521
|
+
"ledgerHeadDigest",
|
|
522
|
+
"ledgerEventDigest",
|
|
523
|
+
"durabilityReceiptDigest",
|
|
524
|
+
"qualifiesForPromotion",
|
|
525
|
+
],
|
|
390
526
|
"PM transition recovery",
|
|
391
527
|
);
|
|
392
528
|
if (
|
|
393
|
-
|
|
529
|
+
![
|
|
530
|
+
PM_EXPLORATION_TRANSITION_RECOVERY_SCHEMA,
|
|
531
|
+
PM_EXPLORATION_SNAPSHOT_BOUND_TRANSITION_RECOVERY_SCHEMA,
|
|
532
|
+
].includes(value.schema) ||
|
|
394
533
|
value.authenticated !== true ||
|
|
395
534
|
value.durable !== true ||
|
|
396
535
|
value.readbackVerified !== true ||
|
|
397
536
|
value.manifestDigest !== expectedManifestDigest ||
|
|
398
537
|
!Number.isSafeInteger(value.revision) ||
|
|
399
538
|
value.revision < 0 ||
|
|
400
|
-
![null, "success", "failure"].includes(value.transitionKind) ||
|
|
539
|
+
![null, "success", "failure", "recovery"].includes(value.transitionKind) ||
|
|
401
540
|
!DIGEST.test(value.ledgerHeadDigest ?? "") ||
|
|
402
541
|
value.qualifiesForPromotion !== false
|
|
403
542
|
) {
|
|
@@ -405,6 +544,7 @@ function transitionRecovery(value, expectedManifestDigest) {
|
|
|
405
544
|
}
|
|
406
545
|
if (value.transitionKind === null) {
|
|
407
546
|
if (
|
|
547
|
+
snapshotBound ||
|
|
408
548
|
value.revision !== 0 ||
|
|
409
549
|
value.evidenceDigest !== null ||
|
|
410
550
|
value.evidence !== null ||
|
|
@@ -427,21 +567,34 @@ function transitionRecovery(value, expectedManifestDigest) {
|
|
|
427
567
|
value.evidence,
|
|
428
568
|
expectedManifestDigest,
|
|
429
569
|
);
|
|
430
|
-
const transitionKind =
|
|
431
|
-
evidence.schema === PM_EXPLORATION_SUCCESS_TRANSITION_SCHEMA
|
|
432
|
-
? "success"
|
|
433
|
-
: "failure";
|
|
434
|
-
const evidenceDigest =
|
|
435
|
-
transitionKind === "success"
|
|
436
|
-
? evidence.stateTransitionDigest
|
|
437
|
-
: evidence.evidenceDigest;
|
|
570
|
+
const { transitionKind, evidenceDigest } = transitionBinding(evidence);
|
|
438
571
|
if (
|
|
439
572
|
value.transitionKind !== transitionKind ||
|
|
440
573
|
value.evidenceDigest !== evidenceDigest
|
|
441
574
|
) {
|
|
442
575
|
throw new Error("PM transition recovery evidence binding is invalid");
|
|
443
576
|
}
|
|
444
|
-
|
|
577
|
+
if (snapshotBound && transitionKind === "recovery") {
|
|
578
|
+
throw new Error(
|
|
579
|
+
"PM clone recovery event cannot carry a transition recovery snapshot",
|
|
580
|
+
);
|
|
581
|
+
}
|
|
582
|
+
const recoverySnapshot = snapshotBound
|
|
583
|
+
? verifyPmExplorationRecoverySnapshotAck(value.recoverySnapshot, {
|
|
584
|
+
manifestDigest: expectedManifestDigest,
|
|
585
|
+
transitionKind,
|
|
586
|
+
evidenceDigest,
|
|
587
|
+
sealDigest:
|
|
588
|
+
transitionKind === "success"
|
|
589
|
+
? evidence.postRunSeal.sealDigest
|
|
590
|
+
: evidence.preRunSeal.sealDigest,
|
|
591
|
+
})
|
|
592
|
+
: null;
|
|
593
|
+
return deepFreeze({
|
|
594
|
+
...value,
|
|
595
|
+
evidence,
|
|
596
|
+
...(snapshotBound ? { recoverySnapshot } : {}),
|
|
597
|
+
});
|
|
445
598
|
}
|
|
446
599
|
|
|
447
600
|
export function createPmExplorationTransitionCommitter(input = {}) {
|
|
@@ -493,14 +646,12 @@ export function capturePmExplorationTransitionCommitter(value) {
|
|
|
493
646
|
input,
|
|
494
647
|
captured.manifestDigest,
|
|
495
648
|
);
|
|
496
|
-
const transitionKind =
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
? evidence.stateTransitionDigest
|
|
503
|
-
: evidence.evidenceDigest;
|
|
649
|
+
const { transitionKind, evidenceDigest } = transitionBinding(evidence);
|
|
650
|
+
if (transitionKind === "recovery" && recoverySnapshotInput !== null) {
|
|
651
|
+
throw new Error(
|
|
652
|
+
"PM clone recovery event cannot retain another recovery snapshot",
|
|
653
|
+
);
|
|
654
|
+
}
|
|
504
655
|
const recoverySnapshot =
|
|
505
656
|
recoverySnapshotInput === null
|
|
506
657
|
? null
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
EVOLUTION_WORKBENCH_METRICS_SNAPSHOT_SCHEMA,
|
|
5
|
+
verifyEvolutionWorkbenchMetricsSnapshot,
|
|
6
|
+
} from "./evolution-workbench-metrics.js";
|
|
4
7
|
import { isEvolutionWorkbenchMetricsOutcomeReader } from "./evolution-workbench-metrics-ledger-adapter.js";
|
|
5
8
|
|
|
6
9
|
export const SKILL_OUTCOME_INDEX_AUTHORITY_SCHEMA =
|
|
@@ -96,8 +99,9 @@ function inspectSource(adapter) {
|
|
|
96
99
|
descriptor,
|
|
97
100
|
);
|
|
98
101
|
if (
|
|
99
|
-
snapshot.
|
|
100
|
-
snapshot.
|
|
102
|
+
snapshot.versions.length !== 0 &&
|
|
103
|
+
(snapshot.schema !== EVOLUTION_WORKBENCH_METRICS_SNAPSHOT_SCHEMA ||
|
|
104
|
+
snapshot.outcomeHistoryComplete !== true)
|
|
101
105
|
) {
|
|
102
106
|
throw unavailable(
|
|
103
107
|
"Skill outcome index requires a complete outcome backfill",
|
|
@@ -604,45 +604,6 @@ export const SKILL_WRITER_INVENTORY = Object.freeze({
|
|
|
604
604
|
],
|
|
605
605
|
},
|
|
606
606
|
}),
|
|
607
|
-
writer({
|
|
608
|
-
id: "desktop-skills-create-ipc",
|
|
609
|
-
surface: "desktop",
|
|
610
|
-
triggerClass: "manual",
|
|
611
|
-
targetAuthority: "legacy-active",
|
|
612
|
-
mutationType: "skill-bytes",
|
|
613
|
-
discoverySymbol: "ipc:skills:create",
|
|
614
|
-
entrypoint: {
|
|
615
|
-
file: "desktop-app-vue/src/main/ai-engine/cowork/skills/skills-ipc.js",
|
|
616
|
-
symbol: "ipc:skills:create",
|
|
617
|
-
evidence: ['ipcMain.handle("skills:create"'],
|
|
618
|
-
},
|
|
619
|
-
mutation: {
|
|
620
|
-
file: "desktop-app-vue/src/main/ai-engine/cowork/skills/skills-ipc.js",
|
|
621
|
-
symbol: "ipc:skills:create",
|
|
622
|
-
evidence: [
|
|
623
|
-
'path.join(targetDir, "SKILL.md")',
|
|
624
|
-
"await fs.writeFile(skillMdPath, content",
|
|
625
|
-
],
|
|
626
|
-
},
|
|
627
|
-
}),
|
|
628
|
-
writer({
|
|
629
|
-
id: "desktop-skills-enabled-ipc",
|
|
630
|
-
surface: "desktop",
|
|
631
|
-
triggerClass: "manual",
|
|
632
|
-
targetAuthority: "legacy-active",
|
|
633
|
-
mutationType: "active-selection",
|
|
634
|
-
discoverySymbol: null,
|
|
635
|
-
entrypoint: {
|
|
636
|
-
file: "desktop-app-vue/src/main/ai-engine/cowork/skills/skills-ipc.js",
|
|
637
|
-
symbol: "ipc:skills:set-enabled",
|
|
638
|
-
evidence: ['ipcMain.handle("skills:set-enabled"'],
|
|
639
|
-
},
|
|
640
|
-
mutation: {
|
|
641
|
-
file: "desktop-app-vue/src/main/ai-engine/cowork/skills/skills-ipc.js",
|
|
642
|
-
symbol: "ipc:skills:set-enabled",
|
|
643
|
-
evidence: ["skill.config.enabled = enabled"],
|
|
644
|
-
},
|
|
645
|
-
}),
|
|
646
607
|
writer({
|
|
647
608
|
id: "desktop-skill-creator-create",
|
|
648
609
|
surface: "desktop",
|