chainlesschain 0.166.64 → 0.166.68
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 +29 -12
- package/package.json +4 -4
- package/src/assets/web-panel/assets/{AIOps-BFbLDWTF.js → AIOps-CXkSNOGY.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CAHMtgNB.js → ActionButton-ysMR6gTs.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-CkrSj0oR.js → Analytics-WGZ0sWuw.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BTb0Ws1l.js → AppLayout-Cs2iRlQG.js} +4 -4
- package/src/assets/web-panel/assets/{Artifacts-C2Pgepj-.js → Artifacts-5IdfxWz0.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-ZweyxXW8.js → Audit-U9V434QX.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-BS8tAnzP.js → BackgroundAgents-BvFwxPlC.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CLkG_74M.js → Backup-C9yTr9hO.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-MIfNcdUZ.js → BaseInput-BdsSwUgE.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-DBwqlWWr.js → Chat-BB_2oBgH.js} +5 -5
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Bpf1hDUl.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-DdBYhlVX.js → Checkbox-v6M5m7dK.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BR6MhiDo.js → Codegen-CtouWSIz.js} +1 -1
- package/src/assets/web-panel/assets/{Col-yO-5EbbM.js → Col-CqQJ4ORW.js} +1 -1
- package/src/assets/web-panel/assets/{Community-B608q_m7.js → Community-BO__QCOy.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BmVHi7Z7.js → Compact-D0Kq4xlH.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BQ-DzutA.js → Compliance-BSLKKBjA.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BEfLyXvi.js → Cowork-VsujXW5o.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-Cld6NX-_.js → Cron-j8DbLGi5.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CUA3nDId.js → Crosschain-DWpYH1yN.js} +1 -1
- package/src/assets/web-panel/assets/{DID-DSI3E9zv.js → DID-mLaRxLQh.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CoWtEdhO.js → Dashboard-Cff033Jr.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CGhZ1Dyy.js → Dropdown-B1Upt6fP.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-BHZe2K5q.js → EmailListRenderer-CPtb8joV.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-Corjo98k.js → EvolutionSettings-CVh4Uv4g.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-dPSWF3Pt.js → FamilyGuardDashboard-CrD1PhbF.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DT-Zr78c.js → Federation-ftxrvqW5.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CzKq63B0.js → FormItemContext-9O80slC1.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CDkKrmu0.js → GenericCardRenderer-DaYvYIj9.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BrwRnLOv.js → Git-BKZh0YE5.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-C4PtCzod.js → Governance-vWbN873j.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-CVPv5nwa.js → Inference-BN6RR-l8.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CmT9lvED.js → KnowledgeGraph-x49x9m7Q.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DaRgv7pL.js → Logs-Co2EPLsJ.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-B3zZwlSz.js → MarkdownRenderer-D7wIB-c7.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-Bm0GGEaL.js → Marketplace-DpPu6XQp.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-71L5h0en.js → McpTools-BR0ksiax.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-BoWrfASi.js → Memory-BXznJ5-C.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-Dp4FcX_-.js → MobileBridge-BHSOpfv7.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-00ja0Z7O.js → MobileProjects-DdWmgIup.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BZF6YNYp.js → Mtc-D9Rk_IGT.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-Bp_vcI6H.js → MtcAudit--i8q1lKc.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-CnCo56CS.js → Multisig-BHnNG7R9.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-BCSzNHpv.js → NLProgramming-Duo1ij2_.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-kXoQk8B7.js → Notes-B44Le73p.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-oN-1fkcy.js → NotificationSettings-C3oy_7Gf.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-5ZVHrVZ9.js → OrderTableRenderer-Da_73SI5.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-D4_T9Tdc.js → Organization-ChsSwKxT.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-d8vZwo9w.js → Overflow-DR5G_cCn.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-0HGUdmTv.js → P2P-yfaobqow.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-DgimH6Jp.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-XHd6pVQB.js → Permissions-DhinFvtE.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-CB5bZU9T.js → PersonalDataHub-CfeNVic1.js} +3 -3
- package/src/assets/web-panel/assets/{Pipeline-Dy_qx4-0.js → Pipeline-CGKO26Nk.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-BgR0-uEu.js → Privacy-CxxfYEJh.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DAcRi1Nx.js → ProjectInit-CZsaAab9.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Bd1Q0rK_.js → ProjectSettings-BUm_6clQ.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DVc9DcbM.js → Projects-Capr8bVq.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-C3c4QfUT.js → Providers-D28VqPja.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-Ba_GbitW.js → QrScannerModal-Cj200vUb.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CSn5tIkO.js → QuickAsk-BGpnEiam.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-B3-8PLX0.js → Recommend-Ix79Tpni.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-Bd_7Zmi-.js → RemoteSession-BdGAFbIk.js} +2 -2
- package/src/assets/web-panel/assets/{Reputation-BU2A_wy5.js → Reputation-B1Lis0Wk.js} +1 -1
- package/src/assets/web-panel/assets/{Row-I0JFMjCz.js → Row-Ba_okwOW.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CNc4Dgfz.js → RssFeed-DDbEuI-m.js} +3 -3
- package/src/assets/web-panel/assets/{Search-uAA6ceLl.js → Search-D89wAkMy.js} +1 -1
- package/src/assets/web-panel/assets/{Security-U1SWj5nP.js → Security-CJKCKAU-.js} +3 -3
- package/src/assets/web-panel/assets/{Services-BFjZ5ASY.js → Services-mitEc1XV.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-B8InBvQf.js → Skeleton-CnBjLDfX.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BDYwf3QV.js → Skills-DSzDYvH3.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-Dcc6iq3q.js → Sla-CglJ_4p3.js} +1 -1
- package/src/assets/web-panel/assets/SpeechSettings-BicWJS7f.js +1 -0
- package/src/assets/web-panel/assets/{SyncSettings-BNHEYO95.js → SyncSettings-Cq7o6fmr.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-JbV6L1FX.js → Tasks-DOxFOBpU.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Yp0CUTBz.js → Templates-bY0wSbQM.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-CToNYxCo.js → Tenant-BAyyl0qX.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-D7W9UqSD.js → Terminal-BGBhSpqc.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-B7rqc1kE.js → TimelineRenderer-BvW5lXYz.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-QP7K4ppA.js → Tokens-Ua_LIx8-.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CAWowQCR.js → Trigger-BGwb2KL1.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-B-0XOP97.js → Trust-CD2IEHvj.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-BtiZbiuj.js → UkeySign-D5LetK6P.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Dee11JI0.js → VideoEditing-oP7ehFgR.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-y7qOmaWY.js → Wallet-BBtu4-xa.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CjyRRWGK.js → WebAuthn-iSPRU4Ht.js} +3 -3
- package/src/assets/web-panel/assets/{WorkflowEditor-D7Kiz25Q.js → WorkflowEditor-DuEDhQmB.js} +1 -1
- package/src/assets/web-panel/assets/{chat-4F_yB-Gw.js → chat-DGDgqvvm.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CrczPd-t.js → colors-DGQMWa1-.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-AenPL6fz.js → compact-item-COVznBL4.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BcwoqPgi.js → createContext-DIxVeHXI.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-CjR9h-Z_.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-YouHmap8.js → hasIn-DkxZO3E9.js} +1 -1
- package/src/assets/web-panel/assets/{index-fCuM1NPH.js → index-0ToBFsvW.js} +1 -1
- package/src/assets/web-panel/assets/{index-D0dXNgvi.js → index-2JZizEPc.js} +1 -1
- package/src/assets/web-panel/assets/{index-BHA5Fyjc.js → index-BAL2p7YC.js} +1 -1
- package/src/assets/web-panel/assets/{index-CedvtJA_.js → index-BAlrovUm.js} +1 -1
- package/src/assets/web-panel/assets/{index-5GHNjmnt.js → index-BBw2MLIe.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5hpEYbx.js → index-BHH95jcm.js} +1 -1
- package/src/assets/web-panel/assets/{index-D8a1AEVK.js → index-BOTshZNx.js} +1 -1
- package/src/assets/web-panel/assets/{index-D7m5Z4We.js → index-BQm7ntcn.js} +1 -1
- package/src/assets/web-panel/assets/{index-D_4VsL-L.js → index-BUqwlzc8.js} +1 -1
- package/src/assets/web-panel/assets/{index-GP5u18DV.js → index-BY6MSbWT.js} +1 -1
- package/src/assets/web-panel/assets/{index-CHNKoexH.js → index-BY9Ossof.js} +1 -1
- package/src/assets/web-panel/assets/{index-DNHmbdGm.js → index-BgM-3a1w.js} +1 -1
- package/src/assets/web-panel/assets/{index-YX4dcbgh.js → index-Bv0_u0ze.js} +1 -1
- package/src/assets/web-panel/assets/{index-D5Rvq67L.js → index-C3XeNS82.js} +3 -3
- package/src/assets/web-panel/assets/{index-DAGfuEUu.js → index-C3bN6751.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZT-LLGS.js → index-CNRRrP3-.js} +1 -1
- package/src/assets/web-panel/assets/{index-4r7B8sTx.js → index-CV0KnNqR.js} +1 -1
- package/src/assets/web-panel/assets/{index-B5Vmr0CM.js → index-CcNGQWum.js} +1 -1
- package/src/assets/web-panel/assets/{index-DE3qPp9l.js → index-Ci34vbh0.js} +1 -1
- package/src/assets/web-panel/assets/{index-CWgIKCVS.js → index-ClQVcrFt.js} +1 -1
- package/src/assets/web-panel/assets/{index-31dhJpt3.js → index-Cligb-Dl.js} +1 -1
- package/src/assets/web-panel/assets/{index-BsGhFk79.js → index-CokrhbY2.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_I1INkw.js → index-CpZxDiVK.js} +1 -1
- package/src/assets/web-panel/assets/{index-BaguGDJP.js → index-CyMHF2Bi.js} +1 -1
- package/src/assets/web-panel/assets/{index-DPrzFdCg.js → index-DDwPBGdA.js} +1 -1
- package/src/assets/web-panel/assets/{index-gy1H_PJk.js → index-DU1ArKl5.js} +1 -1
- package/src/assets/web-panel/assets/{index-DAh5KwVL.js → index-DV0H83eS.js} +1 -1
- package/src/assets/web-panel/assets/index-D_nxBMX5.js +1 -0
- package/src/assets/web-panel/assets/{index-q_9aqSgF.js → index-DaWQSp5a.js} +1 -1
- package/src/assets/web-panel/assets/{index-B8EXHVmM.js → index-DmduvOYT.js} +1 -1
- package/src/assets/web-panel/assets/{index-DVrgnhfu.js → index-ECoDhyH3.js} +1 -1
- package/src/assets/web-panel/assets/{index-BwUqDg9_.js → index-ZcqTvPnt.js} +1 -1
- package/src/assets/web-panel/assets/{index--xwN0ZvG.js → index-b2_M6o20.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZ9Ikuo6.js → index-b_0qTo8O.js} +1 -1
- package/src/assets/web-panel/assets/{index-BoVeUGhC.js → index-dfYkGovV.js} +1 -1
- package/src/assets/web-panel/assets/{index-COgeZETv.js → index-jo7DbU0w.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dfw3WyZU.js → index-usmG13jq.js} +1 -1
- package/src/assets/web-panel/assets/{index-BzyDSW_e.js → index-vXrktF3e.js} +1 -1
- package/src/assets/web-panel/assets/index-z_cTUMX-.js +1 -0
- package/src/assets/web-panel/assets/{initDefaultProps-Ci6zc6ZA.js → initDefaultProps-CkSeiBwL.js} +1 -1
- package/src/assets/web-panel/assets/{motion-DS3kjIxw.js → motion-CSzhDP0s.js} +1 -1
- package/src/assets/web-panel/assets/{move-DCdWAKk4.js → move-mgCt4iC6.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-B0Wfce9U.js → mtc-parser-BEZBLcKt.js} +1 -1
- package/src/assets/web-panel/assets/{omit-Clx9TR6z.js → omit-BsHctMEr.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CqSiqUvN.js → pickAttrs-1BHamnGW.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-BWe_v-40.js → placementArrow--Vb4Bd7l.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-BSJ68bw6.js → responsiveObserve-DD33SqCm.js} +1 -1
- package/src/assets/web-panel/assets/{slide-VRPlLxZB.js → slide-DfrLtxgK.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BFBVDPdB.js → statusUtils-D9Pe_gXW.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CehOXy1f.js → styleChecker-0NY5iMun.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BCOdfK18.js → useFlexGapSupport-DSsZstwg.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-BMKrjfJQ.js → useFs-BU8HyH59.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-BIjZ7IgI.js → usePersonalDataHub-D_xttink.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-oD0MXddQ.js → vnode-39VhX2lM.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-D7WqH2Ai.js → zoom-D5KQ8Pks.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 +202 -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/governance-coverage.js +1 -1
- package/src/lib/headless-manifest.js +1 -1
- package/src/lib/protocol-replay.js +1 -1
- package/src/lib/read-file-loop-guard.js +5 -8
- package/src/lib/remote-read-loop-guard.js +25 -18
- package/src/lib/skill-outcome-transcript-authority.js +45 -5
- package/src/lib/tool-recovery-result.js +11 -0
- package/src/runtime/agent-core.js +26 -3
- package/src/assets/web-panel/assets/ChatBubbleRenderer-6T0uoJuS.js +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-Cx8vp92z.js +0 -7
- package/src/assets/web-panel/assets/SpeechSettings-C3Ta-mC9.js +0 -1
- package/src/assets/web-panel/assets/devWarning-C4qWsAvh.js +0 -1
- package/src/assets/web-panel/assets/index-C-ltOW-O.js +0 -1
- package/src/assets/web-panel/assets/index-D7Ir0TiS.js +0 -1
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
PM_EXPLORATION_GRADE_REQUEST_SCHEMA_V1,
|
|
8
8
|
PM_EXPLORATION_MERGE_REQUEST_SCHEMA,
|
|
9
9
|
PM_EXPLORATION_RUN_REQUEST_SCHEMA,
|
|
10
|
+
PM_EXPLORATION_TASK_SELECTION_REQUEST_SCHEMA,
|
|
10
11
|
verifyPmExplorationExecutionManifest,
|
|
11
12
|
} from "./pm-exploration-execution-host.js";
|
|
12
13
|
import {
|
|
@@ -24,6 +25,10 @@ export const PM_EXPLORATION_EVIDENCE_BUNDLE_SCHEMA =
|
|
|
24
25
|
"chainlesschain.pm-exploration-evidence-bundle/v1";
|
|
25
26
|
export const PM_EXPLORATION_PROVIDER_EVIDENCE_BUNDLE_SCHEMA =
|
|
26
27
|
"chainlesschain.pm-exploration-evidence-bundle/v2";
|
|
28
|
+
export const PM_EXPLORATION_CURRICULUM_EVIDENCE_BUNDLE_SCHEMA =
|
|
29
|
+
"chainlesschain.pm-exploration-evidence-bundle/v3";
|
|
30
|
+
export const PM_EXPLORATION_CURRICULUM_PROVIDER_EVIDENCE_BUNDLE_SCHEMA =
|
|
31
|
+
"chainlesschain.pm-exploration-evidence-bundle/v4";
|
|
27
32
|
|
|
28
33
|
const DIGEST = /^sha256:[a-f0-9]{64}$/u;
|
|
29
34
|
|
|
@@ -106,22 +111,32 @@ function array(value, label, maximum) {
|
|
|
106
111
|
return value;
|
|
107
112
|
}
|
|
108
113
|
|
|
109
|
-
function metricsEqual(checkpoint, execution, grader) {
|
|
114
|
+
function metricsEqual(checkpoint, execution, grader, curriculum = null) {
|
|
110
115
|
return ["tokens", "toolCalls", "wallClockMs"].every(
|
|
111
116
|
(key) =>
|
|
112
117
|
checkpoint.metrics[key] ===
|
|
113
|
-
execution.payload.metrics[key] +
|
|
118
|
+
execution.payload.metrics[key] +
|
|
119
|
+
grader.payload.metrics[key] +
|
|
120
|
+
(curriculum?.payload.metrics[key] ?? 0),
|
|
114
121
|
);
|
|
115
122
|
}
|
|
116
123
|
|
|
117
124
|
function authoritySet(value, manifest) {
|
|
125
|
+
const hasCurriculum = Object.hasOwn(manifest, "curriculum");
|
|
118
126
|
exact(
|
|
119
127
|
value,
|
|
120
|
-
[
|
|
128
|
+
[
|
|
129
|
+
...(hasCurriculum ? ["curriculum"] : []),
|
|
130
|
+
"execution",
|
|
131
|
+
"grader",
|
|
132
|
+
"merge",
|
|
133
|
+
"evaluator",
|
|
134
|
+
],
|
|
121
135
|
"PM exploration evidence authorities",
|
|
122
136
|
);
|
|
123
137
|
const result = {};
|
|
124
138
|
for (const [key, expected] of [
|
|
139
|
+
...(hasCurriculum ? [["curriculum", manifest.curriculum]] : []),
|
|
125
140
|
["execution", manifest.runner],
|
|
126
141
|
["grader", manifest.grader],
|
|
127
142
|
["merge", manifest.merger],
|
|
@@ -135,6 +150,71 @@ function authoritySet(value, manifest) {
|
|
|
135
150
|
return Object.freeze(result);
|
|
136
151
|
}
|
|
137
152
|
|
|
153
|
+
function validateCurriculumReceipts({
|
|
154
|
+
inputs,
|
|
155
|
+
authority,
|
|
156
|
+
manifest,
|
|
157
|
+
plan,
|
|
158
|
+
snapshot,
|
|
159
|
+
}) {
|
|
160
|
+
const receipts = receiptMap(inputs, plan.maxRounds, "curriculum receipts");
|
|
161
|
+
const byRound = new Map();
|
|
162
|
+
for (const input of receipts.values()) {
|
|
163
|
+
const receipt = verifyPmExplorationReceipt(authority, input, {
|
|
164
|
+
planDigest: plan.planDigest,
|
|
165
|
+
environmentDigest: plan.environmentDigest,
|
|
166
|
+
executionManifestDigest: manifest.manifestDigest,
|
|
167
|
+
status: "succeeded",
|
|
168
|
+
});
|
|
169
|
+
if (byRound.has(receipt.payload.roundId))
|
|
170
|
+
throw new Error("PM evidence contains duplicate Curriculum rounds");
|
|
171
|
+
byRound.set(receipt.payload.roundId, receipt);
|
|
172
|
+
}
|
|
173
|
+
const ordered = [];
|
|
174
|
+
let previousStage = null;
|
|
175
|
+
let consecutiveNoGain = 0;
|
|
176
|
+
for (let index = 0; index < snapshot.checkpoints.length; index += 1) {
|
|
177
|
+
const checkpoint = snapshot.checkpoints[index];
|
|
178
|
+
if (checkpoint.stage !== previousStage) consecutiveNoGain = 0;
|
|
179
|
+
const receipt = byRound.get(checkpoint.roundId);
|
|
180
|
+
if (!receipt)
|
|
181
|
+
throw new Error("PM checkpoint is missing its Curriculum receipt");
|
|
182
|
+
const core = {
|
|
183
|
+
schema: PM_EXPLORATION_TASK_SELECTION_REQUEST_SCHEMA,
|
|
184
|
+
planDigest: plan.planDigest,
|
|
185
|
+
suiteDigest: plan.suiteDigest,
|
|
186
|
+
trainingPartitionDigest: plan.trainingPartitionDigest,
|
|
187
|
+
environmentDigest: plan.environmentDigest,
|
|
188
|
+
executionManifestDigest: manifest.manifestDigest,
|
|
189
|
+
selectionId: receipt.payload.selectionId,
|
|
190
|
+
roundId: checkpoint.roundId,
|
|
191
|
+
stage: checkpoint.stage,
|
|
192
|
+
branchId: checkpoint.branchId,
|
|
193
|
+
inputMemoryDigest: checkpoint.inputMemoryDigest,
|
|
194
|
+
candidateTaskIds: plan.trainingTaskIds,
|
|
195
|
+
completedRoundCount: index,
|
|
196
|
+
consecutiveNoGain,
|
|
197
|
+
};
|
|
198
|
+
const verified = verifyPmExplorationReceipt(authority, receipt, {
|
|
199
|
+
requestDigest: hash(PM_EXPLORATION_TASK_SELECTION_REQUEST_SCHEMA, core),
|
|
200
|
+
roundId: checkpoint.roundId,
|
|
201
|
+
stage: checkpoint.stage,
|
|
202
|
+
branchId: checkpoint.branchId,
|
|
203
|
+
inputMemoryDigest: checkpoint.inputMemoryDigest,
|
|
204
|
+
taskId: checkpoint.taskId,
|
|
205
|
+
});
|
|
206
|
+
ordered.push(verified);
|
|
207
|
+
byRound.delete(checkpoint.roundId);
|
|
208
|
+
previousStage = checkpoint.stage;
|
|
209
|
+
consecutiveNoGain = checkpoint.accepted ? 0 : consecutiveNoGain + 1;
|
|
210
|
+
}
|
|
211
|
+
if (byRound.size !== 0)
|
|
212
|
+
throw new Error(
|
|
213
|
+
"PM evidence contains Curriculum receipts outside its checkpoint history",
|
|
214
|
+
);
|
|
215
|
+
return Object.freeze(ordered);
|
|
216
|
+
}
|
|
217
|
+
|
|
138
218
|
function receiptMap(values, maximum, label) {
|
|
139
219
|
const entries = array(values, label, maximum);
|
|
140
220
|
const result = new Map();
|
|
@@ -195,6 +275,7 @@ function validateCheckpointReceipts({
|
|
|
195
275
|
authorities,
|
|
196
276
|
executionReceipts,
|
|
197
277
|
graderReceipts,
|
|
278
|
+
curriculumReceipt = null,
|
|
198
279
|
manifest,
|
|
199
280
|
plan,
|
|
200
281
|
}) {
|
|
@@ -234,6 +315,12 @@ function validateCheckpointReceipts({
|
|
|
234
315
|
outputMemoryDigest: checkpoint.outputMemoryDigest,
|
|
235
316
|
},
|
|
236
317
|
);
|
|
318
|
+
if (
|
|
319
|
+
Object.hasOwn(manifest, "memoryRetrieval") &&
|
|
320
|
+
!Object.hasOwn(execution.payload, "egressEvidenceDigest")
|
|
321
|
+
) {
|
|
322
|
+
throw new Error("PM governed egress execution lacks signed evidence");
|
|
323
|
+
}
|
|
237
324
|
const gradeCore = {
|
|
238
325
|
schema: PM_EXPLORATION_GRADE_REQUEST_SCHEMA,
|
|
239
326
|
planDigest: plan.planDigest,
|
|
@@ -294,7 +381,7 @@ function validateCheckpointReceipts({
|
|
|
294
381
|
),
|
|
295
382
|
});
|
|
296
383
|
}
|
|
297
|
-
if (!metricsEqual(checkpoint, execution, grader))
|
|
384
|
+
if (!metricsEqual(checkpoint, execution, grader, curriculumReceipt))
|
|
298
385
|
throw new Error("PM checkpoint metrics differ from its signed receipts");
|
|
299
386
|
if (
|
|
300
387
|
execution.payload.status !== "succeeded" &&
|
|
@@ -392,12 +479,28 @@ function buildBundle({
|
|
|
392
479
|
throw new Error("PM evidence manifest differs from its plan");
|
|
393
480
|
}
|
|
394
481
|
const trustedAuthorities = authoritySet(authorities, executionManifest);
|
|
482
|
+
const hasCurriculum = Object.hasOwn(executionManifest, "curriculum");
|
|
395
483
|
exact(
|
|
396
484
|
receipts,
|
|
397
|
-
[
|
|
485
|
+
[
|
|
486
|
+
...(hasCurriculum ? ["curriculum"] : []),
|
|
487
|
+
"execution",
|
|
488
|
+
"grader",
|
|
489
|
+
"merge",
|
|
490
|
+
"evaluator",
|
|
491
|
+
],
|
|
398
492
|
"PM exploration evidence receipts",
|
|
399
493
|
);
|
|
400
494
|
const normalizedSnapshot = normalizeSnapshot(plan, snapshot);
|
|
495
|
+
const orderedCurriculum = hasCurriculum
|
|
496
|
+
? validateCurriculumReceipts({
|
|
497
|
+
inputs: receipts.curriculum,
|
|
498
|
+
authority: trustedAuthorities.curriculum,
|
|
499
|
+
manifest: executionManifest,
|
|
500
|
+
plan,
|
|
501
|
+
snapshot: normalizedSnapshot,
|
|
502
|
+
})
|
|
503
|
+
: null;
|
|
401
504
|
const executionInputs = receiptMap(
|
|
402
505
|
receipts.execution,
|
|
403
506
|
plan.maxRounds,
|
|
@@ -410,12 +513,19 @@ function buildBundle({
|
|
|
410
513
|
);
|
|
411
514
|
const orderedExecution = [];
|
|
412
515
|
const orderedGraders = [];
|
|
516
|
+
const curriculumByRound = new Map(
|
|
517
|
+
(orderedCurriculum ?? []).map((receipt) => [
|
|
518
|
+
receipt.payload.roundId,
|
|
519
|
+
receipt,
|
|
520
|
+
]),
|
|
521
|
+
);
|
|
413
522
|
for (const checkpoint of normalizedSnapshot.checkpoints) {
|
|
414
523
|
const verified = validateCheckpointReceipts({
|
|
415
524
|
checkpoint,
|
|
416
525
|
authorities: trustedAuthorities,
|
|
417
526
|
executionReceipts: executionInputs,
|
|
418
527
|
graderReceipts: graderInputs,
|
|
528
|
+
curriculumReceipt: curriculumByRound.get(checkpoint.roundId) ?? null,
|
|
419
529
|
manifest: executionManifest,
|
|
420
530
|
plan,
|
|
421
531
|
});
|
|
@@ -468,8 +578,11 @@ function buildBundle({
|
|
|
468
578
|
mergeReceipt,
|
|
469
579
|
plan,
|
|
470
580
|
});
|
|
471
|
-
const schema =
|
|
472
|
-
providerSettlements === null
|
|
581
|
+
const schema = hasCurriculum
|
|
582
|
+
? providerSettlements === null
|
|
583
|
+
? PM_EXPLORATION_CURRICULUM_EVIDENCE_BUNDLE_SCHEMA
|
|
584
|
+
: PM_EXPLORATION_CURRICULUM_PROVIDER_EVIDENCE_BUNDLE_SCHEMA
|
|
585
|
+
: providerSettlements === null
|
|
473
586
|
? PM_EXPLORATION_EVIDENCE_BUNDLE_SCHEMA
|
|
474
587
|
: PM_EXPLORATION_PROVIDER_EVIDENCE_BUNDLE_SCHEMA;
|
|
475
588
|
const core = deepFreeze({
|
|
@@ -478,6 +591,7 @@ function buildBundle({
|
|
|
478
591
|
environmentDigest: plan.environmentDigest,
|
|
479
592
|
executionManifestDigest: executionManifest.manifestDigest,
|
|
480
593
|
snapshotDigest: normalizedSnapshot.snapshotDigest,
|
|
594
|
+
...(hasCurriculum ? { curriculumReceipts: orderedCurriculum } : {}),
|
|
481
595
|
executionReceipts: orderedExecution,
|
|
482
596
|
graderReceipts: orderedGraders,
|
|
483
597
|
mergeReceipt,
|
|
@@ -544,47 +658,37 @@ export function verifyPmExplorationEvidenceBundle({
|
|
|
544
658
|
bundle,
|
|
545
659
|
} = {}) {
|
|
546
660
|
const providerBound =
|
|
547
|
-
bundle?.schema === PM_EXPLORATION_PROVIDER_EVIDENCE_BUNDLE_SCHEMA
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
"snapshotDigest",
|
|
573
|
-
"executionReceipts",
|
|
574
|
-
"graderReceipts",
|
|
575
|
-
"mergeReceipt",
|
|
576
|
-
"evaluatorReceipt",
|
|
577
|
-
"evidenceDigest",
|
|
578
|
-
"authenticated",
|
|
579
|
-
"snapshotAuthenticated",
|
|
580
|
-
"qualifiesForPromotion",
|
|
581
|
-
],
|
|
582
|
-
"PM exploration evidence bundle",
|
|
583
|
-
);
|
|
661
|
+
bundle?.schema === PM_EXPLORATION_PROVIDER_EVIDENCE_BUNDLE_SCHEMA ||
|
|
662
|
+
bundle?.schema ===
|
|
663
|
+
PM_EXPLORATION_CURRICULUM_PROVIDER_EVIDENCE_BUNDLE_SCHEMA;
|
|
664
|
+
const curriculumBound =
|
|
665
|
+
bundle?.schema === PM_EXPLORATION_CURRICULUM_EVIDENCE_BUNDLE_SCHEMA ||
|
|
666
|
+
bundle?.schema ===
|
|
667
|
+
PM_EXPLORATION_CURRICULUM_PROVIDER_EVIDENCE_BUNDLE_SCHEMA;
|
|
668
|
+
const fields = [
|
|
669
|
+
"schema",
|
|
670
|
+
"planDigest",
|
|
671
|
+
"environmentDigest",
|
|
672
|
+
"executionManifestDigest",
|
|
673
|
+
"snapshotDigest",
|
|
674
|
+
...(curriculumBound ? ["curriculumReceipts"] : []),
|
|
675
|
+
"executionReceipts",
|
|
676
|
+
"graderReceipts",
|
|
677
|
+
"mergeReceipt",
|
|
678
|
+
"evaluatorReceipt",
|
|
679
|
+
...(providerBound ? ["providerSettlements"] : []),
|
|
680
|
+
"evidenceDigest",
|
|
681
|
+
"authenticated",
|
|
682
|
+
"snapshotAuthenticated",
|
|
683
|
+
"qualifiesForPromotion",
|
|
684
|
+
];
|
|
685
|
+
exact(bundle, fields, "PM exploration evidence bundle");
|
|
584
686
|
if (
|
|
585
687
|
![
|
|
586
688
|
PM_EXPLORATION_EVIDENCE_BUNDLE_SCHEMA,
|
|
587
689
|
PM_EXPLORATION_PROVIDER_EVIDENCE_BUNDLE_SCHEMA,
|
|
690
|
+
PM_EXPLORATION_CURRICULUM_EVIDENCE_BUNDLE_SCHEMA,
|
|
691
|
+
PM_EXPLORATION_CURRICULUM_PROVIDER_EVIDENCE_BUNDLE_SCHEMA,
|
|
588
692
|
].includes(bundle.schema) ||
|
|
589
693
|
bundle.authenticated !== true ||
|
|
590
694
|
bundle.snapshotAuthenticated !== true ||
|
|
@@ -598,6 +702,7 @@ export function verifyPmExplorationEvidenceBundle({
|
|
|
598
702
|
snapshot,
|
|
599
703
|
authorities,
|
|
600
704
|
receipts: {
|
|
705
|
+
...(curriculumBound ? { curriculum: bundle.curriculumReceipts } : {}),
|
|
601
706
|
execution: bundle.executionReceipts,
|
|
602
707
|
grader: bundle.graderReceipts,
|
|
603
708
|
merge: bundle.mergeReceipt,
|