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,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,
|