chainlesschain 0.166.74 → 0.166.77
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 +4 -2
- package/package.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-BlIvP3k1.js → AIOps-CpiCBhRh.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DYF7atSV.js → ActionButton-CnU-Xvx-.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-LZYaYek6.js → Analytics-BJW-CNtf.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BJxrjNbj.js → AppLayout-UFQJL3G9.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-gEDhxhmE.js → Artifacts-Dr_IUDoY.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-B0MR950Q.js → Audit-aglWo6rr.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-3e6Os_Kl.js → BackgroundAgents-Dm_TCiXC.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DB_X8KUg.js → Backup-DUdX4-gA.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DTNcvNeG.js → BaseInput-BTcLjy1o.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-SnqdA62j.js → Chat-Bhy9qZrl.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-BaiWNH_V.js → ChatBubbleRenderer-D0WrJQaQ.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-Dj0O4dyP.js → Checkbox-CblrPa21.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BeelW3dx.js → Codegen-SEAHzOlr.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BmstiyBM.js → Col-DJz8iFOR.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CrbmFk3f.js → Community-RufKhcQt.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DCg5ZPIw.js → Compact-Dlifx08U.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-B3sajhq7.js → Compliance-DdhQWcHh.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DWcdvrDK.js → Cowork-BLNn6oOm.js} +4 -4
- package/src/assets/web-panel/assets/{Cron-Bjwp_NDf.js → Cron-Dv-JWY2d.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BXTLC9o8.js → Crosschain-k7Pz7O-b.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Di62M46b.js → DID-C_10syUW.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BQED8Rkt.js → Dashboard-CMyH6Szx.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-DEf9VYaj.js → Dropdown-DjmD2Saa.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DhFpPMAM.js → EmailListRenderer-36_IRUSo.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-BOqmzkpS.js → EvolutionSettings-CmtU0XmM.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BxBnJ4fe.js → FamilyGuardDashboard-DEgf9kyP.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-BN9Q8nsZ.js → Federation-DGO1wQls.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CGeqFEd-.js → FormItemContext-Doj1FmKW.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DElmWQTc.js → GenericCardRenderer-GzOU27iT.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BHBSgKck.js → Git-Dd7D1EDK.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-Breo3NTU.js → Governance-6IY8LcjI.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-CCABy4E0.js → Inference-BB9gl8q1.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-B6_ryn-X.js → KnowledgeGraph-CeCed5wd.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-CkmJjJok.js → Logs-CYOeHuaI.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-DQEQBaRu.js → MarkdownRenderer-Bk8Zqc2R.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-iip65jxv.js → Marketplace-D-_xgHgM.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DDwp_QLb.js → McpTools-NnaUTF5t.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-2ZmNDRkC.js → Memory-CndN9pMt.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-C6HilwZl.js → MobileBridge-BXblFmhY.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-BeMtYRhx.js → MobileProjects-CC26Dm2k.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-Bp-FEcoo.js → Mtc-BhaqWCiW.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-DNdkTCe5.js → MtcAudit-D6fktM2w.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-PnKg2_Eo.js → Multisig-CFvahz7s.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-DDp4lZeG.js → NLProgramming-Co73Ivya.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DEjFktcO.js → Notes-B4g33L1o.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-FR8fJDAn.js → NotificationSettings-lXd17EbN.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Cyc-XI0L.js → OrderTableRenderer-BiOB0GIi.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DNW2E_JU.js → Organization-JQ7_wQIA.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BHfd6wk6.js → Overflow-gwgJgozQ.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-COIkaXH4.js → P2P-D9L_0gie.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DuRP0UeX.js → PdhVaultBrowser-CbOPsFE9.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-BfVRGMy8.js → Permissions-Cz42HNQf.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BWYjO6Aa.js → PersonalDataHub-DjorYtrF.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-C0e0fPBW.js → Pipeline-DyWPhmm5.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-CnId4Jv-.js → Privacy-DyfLMl2j.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CYf1grXg.js → ProjectInit-CyqDx1OE.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-HsXgJdiH.js → ProjectSettings-DsBw0Csy.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-Bi0r9QcC.js → Projects-CRaSI25Z.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-B-Tu_-_4.js → Providers-CCI_klN-.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-CPDqYT2F.js → QrScannerModal-DNsnlDdS.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Df6qcjXy.js → QuickAsk-B9r2iaee.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-dP6sfGSY.js → Recommend-BJDe03GR.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-VAt9-tM3.js → RemoteSession-J7JR3rRo.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-DtRVRiLI.js → Reputation-DR39AJeV.js} +1 -1
- package/src/assets/web-panel/assets/{Row-B6Ukqvli.js → Row-Dh77m3NZ.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DfVRQMrZ.js → RssFeed-BUdg28nJ.js} +2 -2
- package/src/assets/web-panel/assets/{Search-CyncAiqQ.js → Search-BNC7sGhj.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DEO7nrkb.js → Security-DISENGI7.js} +3 -3
- package/src/assets/web-panel/assets/{Services-CkusQEhN.js → Services-BBBGpJ1-.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CbGtO3kc.js → Skeleton-DMcIoIv2.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-diOh0gAr.js → Skills-QAyFbI3r.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-CIu9Ahak.js → Sla-CSg5wLH7.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-_Nzyi4K9.js → SpeechSettings-DMPxTc5x.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BAOLFlRq.js → SyncSettings-CPG7l30y.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-BpmvL1Eq.js → Tasks-Y1kOVvVL.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Dkr_vRdJ.js → Templates-jt9NagL0.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-kM7lHUFR.js → Tenant-DauuJICx.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-9zfc41aU.js → Terminal-E9rnKeGq.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-Cg_7j6cj.js → TimelineRenderer-Cc7z2APG.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Cs1aikaM.js → Tokens-CV0UthRA.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-DKYPJ9gl.js → Trigger-BFcJJGfu.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BFy1Sm8B.js → Trust-BAydbNJA.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-B31L9NBH.js → UkeySign-DcOS6sqL.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-OMmUYdIC.js → VideoEditing-BLHJZvif.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-y3aE7oru.js → Wallet-4QFLKHwW.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-C0ICKvpu.js → WebAuthn-BocEOOSj.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Cq5UYbr5.js → WorkflowEditor-DCfF7D0B.js} +1 -1
- package/src/assets/web-panel/assets/{chat-B1ijaKFv.js → chat-CxvfsYGr.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CHkI8PDg.js → colors-KtQB9DmQ.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-1BYvgWEs.js → compact-item-Dx4J6arN.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BGti56u4.js → createContext-Cq0olgzo.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-CmgDNkoO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-Cr87Fph1.js → hasIn-Bf9-h3D-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CS0MIE2C.js → index-0fi8DIVQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJjnXDAD.js → index-6dDDSCHD.js} +1 -1
- package/src/assets/web-panel/assets/{index-tY479EoQ.js → index-B3xfiItB.js} +1 -1
- package/src/assets/web-panel/assets/{index-BjgtiMdY.js → index-B8WuPI-h.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQWMHlY7.js → index-BHmdMKYl.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bdkrut2A.js → index-BKtQyb2o.js} +1 -1
- package/src/assets/web-panel/assets/{index-6Ta8Pg47.js → index-BMcC4cbj.js} +1 -1
- package/src/assets/web-panel/assets/{index-BA0FMuDX.js → index-BO6XvO-C.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4BSM3BK.js → index-B_8UcDan.js} +1 -1
- package/src/assets/web-panel/assets/index-BpIZ2S01.js +1 -0
- package/src/assets/web-panel/assets/{index-BkFXPrdx.js → index-Br1mDMfO.js} +1 -1
- package/src/assets/web-panel/assets/index-C-VmKuyv.js +1 -0
- package/src/assets/web-panel/assets/{index-CkcWhgLB.js → index-C9yaUHm9.js} +1 -1
- package/src/assets/web-panel/assets/{index-DzevrmLK.js → index-CK2U_AHi.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6g4jxdE.js → index-CaIclw-E.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmmSJBNi.js → index-CeYP_kT9.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKb16YKp.js → index-Cfsn7N18.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1yur8MU.js → index-ClUfSChI.js} +1 -1
- package/src/assets/web-panel/assets/{index-1WxCzqYq.js → index-CmQuG0fr.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYpqBWlt.js → index-CpO6DKuu.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcoI3ENn.js → index-CqnggDos.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bni5GodE.js → index-Cy865Hhq.js} +1 -1
- package/src/assets/web-panel/assets/{index-CbkGda_k.js → index-Cz7f4Jaq.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dam-LB_J.js → index-D2BfSIrn.js} +1 -1
- package/src/assets/web-panel/assets/{index-fhpMyq0u.js → index-DBRlZdZj.js} +1 -1
- package/src/assets/web-panel/assets/{index-CevUJTXd.js → index-DDAe1UmZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cvu95WPI.js → index-DFdEDvFn.js} +1 -1
- package/src/assets/web-panel/assets/{index-CDTNnQDz.js → index-DI5bRqNG.js} +1 -1
- package/src/assets/web-panel/assets/{index-B8Jb_cGt.js → index-DMR-keCL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DCkvhzaY.js → index-DQDR-_ai.js} +1 -1
- package/src/assets/web-panel/assets/{index-rVnXNFST.js → index-DZWjYfWt.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dnp-4yPc.js → index-DfrFNMvz.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjBkVrq9.js → index-DnU-dUWd.js} +1 -1
- package/src/assets/web-panel/assets/{index-Duv0TfJa.js → index-DsCdl2Od.js} +1 -1
- package/src/assets/web-panel/assets/{index-rO6VKJv5.js → index-_FIz-0tp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DHJtAEx8.js → index-gt5N6VM_.js} +1 -1
- package/src/assets/web-panel/assets/{index-BOjTRSHE.js → index-hSzyoXri.js} +3 -3
- package/src/assets/web-panel/assets/{index-CvcpesEZ.js → index-iE9tqEN5.js} +1 -1
- package/src/assets/web-panel/assets/{index-C_lEztok.js → index-nmyDOh_b.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DAGtnwoX.js → initDefaultProps-DvzKJ6o5.js} +1 -1
- package/src/assets/web-panel/assets/{motion-02FXBi5C.js → motion-D1yTvmxW.js} +1 -1
- package/src/assets/web-panel/assets/{move-BLf7rhzJ.js → move-DxtSIF8K.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Ct6i1vqQ.js → mtc-parser-BDsQgIHY.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DKvTU8IT.js → omit-UVBJW8kh.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DqDsKoMe.js → pickAttrs-D4QqtTyX.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-kae6Cnwx.js → placementArrow-QXmu6vBf.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DzFM_TQf.js → responsiveObserve-D-PmXO9M.js} +1 -1
- package/src/assets/web-panel/assets/{slide-qDjNFPuM.js → slide-CKbGxEZJ.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BihSr7G3.js → statusUtils-BbgXPkXm.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BzoT0TfJ.js → styleChecker-DOr9rk68.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CjXXcU1j.js → useFlexGapSupport-B2wO2r36.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DrWcbDJ1.js → useFs-SeVGBK34.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DO1oBNTE.js → usePersonalDataHub-DUJBCxjD.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BR6crWko.js → vnode-CF4EYsig.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DmKLfw6W.js → zoom-pRUs5pqI.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +39 -0
- package/src/lib/decision-layer/providers.js +84 -9
- package/src/lib/decision-layer/runtime.js +86 -49
- package/src/lib/direct-model-usage.js +14 -3
- package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +2 -0
- package/src/lib/evolution/evolution-eval-cohort-enrollment.js +770 -0
- package/src/lib/evolution/evolution-eval-contracts.js +86 -0
- package/src/lib/evolution/evolution-eval-gate.js +136 -85
- package/src/lib/evolution/evolution-eval-launch-admission.js +505 -0
- package/src/lib/evolution/skill-target-matrix-eval.js +84 -3
- package/src/lib/with-file-lock.js +81 -16
- package/src/runtime/headless-runner.js +8 -0
- package/src/assets/web-panel/assets/devWarning-Isft1nEX.js +0 -1
- package/src/assets/web-panel/assets/index-B_T9NUk7.js +0 -1
- package/src/assets/web-panel/assets/index-DBqUxaat.js +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/** Shared evaluation contracts; keep this module free of runtime dependencies. */
|
|
2
|
+
|
|
3
|
+
export const EVOLUTION_EVAL_TASK_SCHEMA =
|
|
4
|
+
"chainlesschain.evolution-eval-task/v1";
|
|
5
|
+
export const EVOLUTION_EVAL_SUITE_SCHEMA =
|
|
6
|
+
"chainlesschain.evolution-eval-suite/v1";
|
|
7
|
+
export const EVOLUTION_EVAL_POLICY_SCHEMA =
|
|
8
|
+
"chainlesschain.evolution-eval-policy/v2";
|
|
9
|
+
export const EVOLUTION_EVAL_RECEIPT_SCHEMA =
|
|
10
|
+
"chainlesschain.evolution-eval-receipt/v4";
|
|
11
|
+
export const EVOLUTION_EVAL_RESULT_EVIDENCE_SCHEMA =
|
|
12
|
+
"chainlesschain.evolution-eval-result-evidence/v1";
|
|
13
|
+
export const EVOLUTION_EVAL_SUITE_AUTHORITY_SCHEMA =
|
|
14
|
+
"chainlesschain.evolution-eval-suite-authority-receipt/v1";
|
|
15
|
+
export const EVOLUTION_EVAL_ENVIRONMENT_SCHEMA =
|
|
16
|
+
"chainlesschain.evolution-eval-environment-receipt/v1";
|
|
17
|
+
export const EVOLUTION_EVAL_ARTIFACT_SCHEMA =
|
|
18
|
+
"chainlesschain.evolution-eval-artifact-resolution-receipt/v1";
|
|
19
|
+
export const EVOLUTION_EVAL_PROVENANCE_SCHEMA =
|
|
20
|
+
"chainlesschain.evolution-eval-provenance-binding-receipt/v1";
|
|
21
|
+
export const EVOLUTION_EVAL_SUBJECT_SCHEMA =
|
|
22
|
+
"chainlesschain.evolution-eval-subject-handle-receipt/v1";
|
|
23
|
+
export const EVOLUTION_EVAL_REPLAY_SCHEMA =
|
|
24
|
+
"chainlesschain.evolution-eval-handle-reservation-receipt/v1";
|
|
25
|
+
export const EVOLUTION_EVAL_SUPERVISION_SCHEMA =
|
|
26
|
+
"chainlesschain.evolution-eval-deadline-enforcement-receipt/v3";
|
|
27
|
+
export const EVOLUTION_EVAL_ISOLATED_TARGET_SCHEMA =
|
|
28
|
+
"chainlesschain.evolution-eval-isolated-target/v2";
|
|
29
|
+
export const EVOLUTION_EVAL_AUTHORITY_DESCRIPTOR_SCHEMA =
|
|
30
|
+
"chainlesschain.evolution-eval-authority-descriptor/v1";
|
|
31
|
+
/**
|
|
32
|
+
* Authority roots commit configuration supplied by a trusted composition
|
|
33
|
+
* boundary. They are not local proofs that JavaScript callable bytes match a
|
|
34
|
+
* declared handlerArtifactDigest. Production must use an attested loader that
|
|
35
|
+
* binds each descriptor to the loaded callable; requests and plugins must not
|
|
36
|
+
* construct Gate/Verifier authority ports.
|
|
37
|
+
*/
|
|
38
|
+
export const EVOLUTION_EVAL_AUTHORITY_ROOT_SEMANTICS = Object.freeze({
|
|
39
|
+
kind: "trusted-composition-configuration-commitment",
|
|
40
|
+
callableBinding: "attested-loader-required",
|
|
41
|
+
requestConstructedAuthorities: "forbidden",
|
|
42
|
+
});
|
|
43
|
+
export const EVOLUTION_EVAL_TARGET_INVOCATION_SCHEMA =
|
|
44
|
+
"chainlesschain.evolution-eval-target-invocation/v2";
|
|
45
|
+
export const EVOLUTION_EVAL_TARGET_REVOCATION_SCHEMA =
|
|
46
|
+
"chainlesschain.evolution-eval-target-revocation/v2";
|
|
47
|
+
export const EVOLUTION_EVAL_EXECUTION_SCHEMA =
|
|
48
|
+
"chainlesschain.evolution-eval-execution-receipt/v1";
|
|
49
|
+
export const EVOLUTION_EVAL_GRADE_SCHEMA =
|
|
50
|
+
"chainlesschain.evolution-eval-grade-receipt/v1";
|
|
51
|
+
export const EVOLUTION_EVAL_SAFETY_SCHEMA =
|
|
52
|
+
"chainlesschain.evolution-eval-safety-receipt/v1";
|
|
53
|
+
|
|
54
|
+
export const EVOLUTION_EVAL_INVALID_CODE = "CC_EVOLUTION_EVAL_INVALID";
|
|
55
|
+
export const EVOLUTION_EVAL_LEAKAGE_CODE = "CC_EVOLUTION_EVAL_LEAKAGE";
|
|
56
|
+
export const EVOLUTION_EVAL_AUTHORITY_FAILED_CODE =
|
|
57
|
+
"CC_EVOLUTION_EVAL_AUTHORITY_FAILED";
|
|
58
|
+
export const EVOLUTION_EVAL_EXECUTION_FAILED_CODE =
|
|
59
|
+
"CC_EVOLUTION_EVAL_EXECUTION_FAILED";
|
|
60
|
+
export const EVOLUTION_EVAL_GRADER_FAILED_CODE =
|
|
61
|
+
"CC_EVOLUTION_EVAL_GRADER_FAILED";
|
|
62
|
+
export const EVOLUTION_EVAL_SAFETY_FAILED_CODE =
|
|
63
|
+
"CC_EVOLUTION_EVAL_SAFETY_FAILED";
|
|
64
|
+
export const EVOLUTION_EVAL_SUPERVISOR_UNRESPONSIVE_CODE =
|
|
65
|
+
"CC_EVOLUTION_EVAL_SUPERVISOR_UNRESPONSIVE";
|
|
66
|
+
export const EVOLUTION_EVAL_TARGET_SETTLEMENT_UNCONFIRMED_CODE =
|
|
67
|
+
"CC_EVOLUTION_EVAL_TARGET_SETTLEMENT_UNCONFIRMED";
|
|
68
|
+
|
|
69
|
+
export const EVOLUTION_EVAL_ATTESTATION_PURPOSES = Object.freeze({
|
|
70
|
+
suite: "chainlesschain.evolution-eval.suite-authority/v1",
|
|
71
|
+
environment: "chainlesschain.evolution-eval.environment/v1",
|
|
72
|
+
artifact: "chainlesschain.evolution-eval.artifact/v1",
|
|
73
|
+
provenance: "chainlesschain.evolution-eval.provenance/v1",
|
|
74
|
+
subject: "chainlesschain.evolution-eval.subject/v1",
|
|
75
|
+
replay: "chainlesschain.evolution-eval.handle-replay/v1",
|
|
76
|
+
supervisor: "chainlesschain.evolution-eval.deadline-supervisor/v3",
|
|
77
|
+
targetInvocation:
|
|
78
|
+
"chainlesschain.evolution-eval.target-invocation-evidence/v1",
|
|
79
|
+
targetRevocation:
|
|
80
|
+
"chainlesschain.evolution-eval.target-revocation-evidence/v1",
|
|
81
|
+
execution: "chainlesschain.evolution-eval.execution/v1",
|
|
82
|
+
grade: "chainlesschain.evolution-eval.grade/v1",
|
|
83
|
+
safety: "chainlesschain.evolution-eval.safety/v1",
|
|
84
|
+
receipt: "chainlesschain.evolution-eval.receipt/v3",
|
|
85
|
+
clock: "chainlesschain.evolution-eval.trusted-clock/v1",
|
|
86
|
+
});
|
|
@@ -9,91 +9,44 @@
|
|
|
9
9
|
|
|
10
10
|
import { createHash, randomBytes } from "node:crypto";
|
|
11
11
|
import { isProxy } from "node:util/types";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
callableBinding: "attested-loader-required",
|
|
51
|
-
requestConstructedAuthorities: "forbidden",
|
|
52
|
-
});
|
|
53
|
-
export const EVOLUTION_EVAL_TARGET_INVOCATION_SCHEMA =
|
|
54
|
-
"chainlesschain.evolution-eval-target-invocation/v2";
|
|
55
|
-
export const EVOLUTION_EVAL_TARGET_REVOCATION_SCHEMA =
|
|
56
|
-
"chainlesschain.evolution-eval-target-revocation/v2";
|
|
57
|
-
export const EVOLUTION_EVAL_EXECUTION_SCHEMA =
|
|
58
|
-
"chainlesschain.evolution-eval-execution-receipt/v1";
|
|
59
|
-
export const EVOLUTION_EVAL_GRADE_SCHEMA =
|
|
60
|
-
"chainlesschain.evolution-eval-grade-receipt/v1";
|
|
61
|
-
export const EVOLUTION_EVAL_SAFETY_SCHEMA =
|
|
62
|
-
"chainlesschain.evolution-eval-safety-receipt/v1";
|
|
63
|
-
|
|
64
|
-
export const EVOLUTION_EVAL_INVALID_CODE = "CC_EVOLUTION_EVAL_INVALID";
|
|
65
|
-
export const EVOLUTION_EVAL_LEAKAGE_CODE = "CC_EVOLUTION_EVAL_LEAKAGE";
|
|
66
|
-
export const EVOLUTION_EVAL_AUTHORITY_FAILED_CODE =
|
|
67
|
-
"CC_EVOLUTION_EVAL_AUTHORITY_FAILED";
|
|
68
|
-
export const EVOLUTION_EVAL_EXECUTION_FAILED_CODE =
|
|
69
|
-
"CC_EVOLUTION_EVAL_EXECUTION_FAILED";
|
|
70
|
-
export const EVOLUTION_EVAL_GRADER_FAILED_CODE =
|
|
71
|
-
"CC_EVOLUTION_EVAL_GRADER_FAILED";
|
|
72
|
-
export const EVOLUTION_EVAL_SAFETY_FAILED_CODE =
|
|
73
|
-
"CC_EVOLUTION_EVAL_SAFETY_FAILED";
|
|
74
|
-
export const EVOLUTION_EVAL_SUPERVISOR_UNRESPONSIVE_CODE =
|
|
75
|
-
"CC_EVOLUTION_EVAL_SUPERVISOR_UNRESPONSIVE";
|
|
76
|
-
export const EVOLUTION_EVAL_TARGET_SETTLEMENT_UNCONFIRMED_CODE =
|
|
77
|
-
"CC_EVOLUTION_EVAL_TARGET_SETTLEMENT_UNCONFIRMED";
|
|
78
|
-
|
|
79
|
-
export const EVOLUTION_EVAL_ATTESTATION_PURPOSES = Object.freeze({
|
|
80
|
-
suite: "chainlesschain.evolution-eval.suite-authority/v1",
|
|
81
|
-
environment: "chainlesschain.evolution-eval.environment/v1",
|
|
82
|
-
artifact: "chainlesschain.evolution-eval.artifact/v1",
|
|
83
|
-
provenance: "chainlesschain.evolution-eval.provenance/v1",
|
|
84
|
-
subject: "chainlesschain.evolution-eval.subject/v1",
|
|
85
|
-
replay: "chainlesschain.evolution-eval.handle-replay/v1",
|
|
86
|
-
supervisor: "chainlesschain.evolution-eval.deadline-supervisor/v3",
|
|
87
|
-
targetInvocation:
|
|
88
|
-
"chainlesschain.evolution-eval.target-invocation-evidence/v1",
|
|
89
|
-
targetRevocation:
|
|
90
|
-
"chainlesschain.evolution-eval.target-revocation-evidence/v1",
|
|
91
|
-
execution: "chainlesschain.evolution-eval.execution/v1",
|
|
92
|
-
grade: "chainlesschain.evolution-eval.grade/v1",
|
|
93
|
-
safety: "chainlesschain.evolution-eval.safety/v1",
|
|
94
|
-
receipt: "chainlesschain.evolution-eval.receipt/v3",
|
|
95
|
-
clock: "chainlesschain.evolution-eval.trusted-clock/v1",
|
|
96
|
-
});
|
|
12
|
+
import {
|
|
13
|
+
admitEvolutionEvalLaunch,
|
|
14
|
+
captureEvolutionEvalLaunchAdmissionBinding,
|
|
15
|
+
isEvolutionEvalLaunchAdmissionAuthority,
|
|
16
|
+
} from "./evolution-eval-launch-admission.js";
|
|
17
|
+
|
|
18
|
+
import {
|
|
19
|
+
EVOLUTION_EVAL_TASK_SCHEMA,
|
|
20
|
+
EVOLUTION_EVAL_SUITE_SCHEMA,
|
|
21
|
+
EVOLUTION_EVAL_POLICY_SCHEMA,
|
|
22
|
+
EVOLUTION_EVAL_RECEIPT_SCHEMA,
|
|
23
|
+
EVOLUTION_EVAL_RESULT_EVIDENCE_SCHEMA,
|
|
24
|
+
EVOLUTION_EVAL_SUITE_AUTHORITY_SCHEMA,
|
|
25
|
+
EVOLUTION_EVAL_ENVIRONMENT_SCHEMA,
|
|
26
|
+
EVOLUTION_EVAL_ARTIFACT_SCHEMA,
|
|
27
|
+
EVOLUTION_EVAL_PROVENANCE_SCHEMA,
|
|
28
|
+
EVOLUTION_EVAL_SUBJECT_SCHEMA,
|
|
29
|
+
EVOLUTION_EVAL_REPLAY_SCHEMA,
|
|
30
|
+
EVOLUTION_EVAL_SUPERVISION_SCHEMA,
|
|
31
|
+
EVOLUTION_EVAL_ISOLATED_TARGET_SCHEMA,
|
|
32
|
+
EVOLUTION_EVAL_AUTHORITY_DESCRIPTOR_SCHEMA,
|
|
33
|
+
EVOLUTION_EVAL_AUTHORITY_ROOT_SEMANTICS,
|
|
34
|
+
EVOLUTION_EVAL_TARGET_INVOCATION_SCHEMA,
|
|
35
|
+
EVOLUTION_EVAL_TARGET_REVOCATION_SCHEMA,
|
|
36
|
+
EVOLUTION_EVAL_EXECUTION_SCHEMA,
|
|
37
|
+
EVOLUTION_EVAL_GRADE_SCHEMA,
|
|
38
|
+
EVOLUTION_EVAL_SAFETY_SCHEMA,
|
|
39
|
+
EVOLUTION_EVAL_INVALID_CODE,
|
|
40
|
+
EVOLUTION_EVAL_LEAKAGE_CODE,
|
|
41
|
+
EVOLUTION_EVAL_AUTHORITY_FAILED_CODE,
|
|
42
|
+
EVOLUTION_EVAL_EXECUTION_FAILED_CODE,
|
|
43
|
+
EVOLUTION_EVAL_GRADER_FAILED_CODE,
|
|
44
|
+
EVOLUTION_EVAL_SAFETY_FAILED_CODE,
|
|
45
|
+
EVOLUTION_EVAL_SUPERVISOR_UNRESPONSIVE_CODE,
|
|
46
|
+
EVOLUTION_EVAL_TARGET_SETTLEMENT_UNCONFIRMED_CODE,
|
|
47
|
+
EVOLUTION_EVAL_ATTESTATION_PURPOSES,
|
|
48
|
+
} from "./evolution-eval-contracts.js";
|
|
49
|
+
export * from "./evolution-eval-contracts.js";
|
|
97
50
|
|
|
98
51
|
const DIGEST_PATTERN = /^sha256:[a-f0-9]{64}$/u;
|
|
99
52
|
const TASK_BINDING_NONCE_PATTERN = /^task-binding-[a-f0-9]{48,128}$/u;
|
|
@@ -713,6 +666,7 @@ const RECEIPT_KEYS = new Set([
|
|
|
713
666
|
const SPLIT_COUNT_KEYS = new Set(SPLITS);
|
|
714
667
|
|
|
715
668
|
const GATE_INSTANCES = new WeakSet();
|
|
669
|
+
const GATE_LAUNCH_BINDINGS = new WeakMap();
|
|
716
670
|
const RECEIPT_VERIFIER_INSTANCES = new WeakSet();
|
|
717
671
|
const IMMUTABLE_ISOLATED_TARGET_BINDINGS = new WeakMap();
|
|
718
672
|
|
|
@@ -1813,6 +1767,26 @@ function normalizeRunEvaluationContext(value) {
|
|
|
1813
1767
|
});
|
|
1814
1768
|
}
|
|
1815
1769
|
|
|
1770
|
+
/** Freeze the exact caller-controlled part of a launch before a run ID exists. */
|
|
1771
|
+
export function computeEvolutionEvalLaunchRequestDigest(input) {
|
|
1772
|
+
preflightCanonicalStructure(input);
|
|
1773
|
+
assertExactRecord(input, RUN_REQUEST_KEYS, "evaluation launch request");
|
|
1774
|
+
return digest(
|
|
1775
|
+
{
|
|
1776
|
+
suiteRef: normalizeId(input.suiteRef, "suiteRef", 256),
|
|
1777
|
+
candidateId: normalizeDigest(input.candidateId, "candidateId"),
|
|
1778
|
+
baselineId: normalizeDigest(input.baselineId, "baselineId"),
|
|
1779
|
+
targetEnvironmentRef: normalizeId(
|
|
1780
|
+
input.targetEnvironmentRef,
|
|
1781
|
+
"targetEnvironmentRef",
|
|
1782
|
+
256,
|
|
1783
|
+
),
|
|
1784
|
+
evaluationContext: normalizeRunEvaluationContext(input.evaluationContext),
|
|
1785
|
+
},
|
|
1786
|
+
"chainlesschain.evolution-eval-launch-request/v1",
|
|
1787
|
+
);
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1816
1790
|
function normalizeEvaluationContext(value) {
|
|
1817
1791
|
preflightCanonicalStructure(value);
|
|
1818
1792
|
assertExactRecord(value, EVALUATION_CONTEXT_KEYS, "evaluation context");
|
|
@@ -3631,6 +3605,7 @@ export class EvolutionEvalGate {
|
|
|
3631
3605
|
#authorityPolicies;
|
|
3632
3606
|
#supervision;
|
|
3633
3607
|
#clock;
|
|
3608
|
+
#launchAdmission;
|
|
3634
3609
|
|
|
3635
3610
|
constructor({
|
|
3636
3611
|
policy,
|
|
@@ -3655,7 +3630,24 @@ export class EvolutionEvalGate {
|
|
|
3655
3630
|
invocationEvidenceVerifier,
|
|
3656
3631
|
revocationEvidenceVerifier,
|
|
3657
3632
|
clock,
|
|
3633
|
+
launchAdmission,
|
|
3658
3634
|
}) {
|
|
3635
|
+
if (
|
|
3636
|
+
launchAdmission !== undefined &&
|
|
3637
|
+
!isEvolutionEvalLaunchAdmissionAuthority(launchAdmission)
|
|
3638
|
+
) {
|
|
3639
|
+
throw evalError(
|
|
3640
|
+
EVOLUTION_EVAL_INVALID_CODE,
|
|
3641
|
+
"launchAdmission must be a trusted admission authority",
|
|
3642
|
+
);
|
|
3643
|
+
}
|
|
3644
|
+
this.#launchAdmission = launchAdmission;
|
|
3645
|
+
GATE_LAUNCH_BINDINGS.set(
|
|
3646
|
+
this,
|
|
3647
|
+
launchAdmission === undefined
|
|
3648
|
+
? null
|
|
3649
|
+
: captureEvolutionEvalLaunchAdmissionBinding(launchAdmission),
|
|
3650
|
+
);
|
|
3659
3651
|
this.#policy = verifyEvolutionEvalPolicy(policy);
|
|
3660
3652
|
this.#authorityPolicies = normalizeAuthorityPolicies(authorityPolicies);
|
|
3661
3653
|
const supervisorPolicy = this.#authorityPolicies.supervisor;
|
|
@@ -5440,6 +5432,54 @@ export class EvolutionEvalGate {
|
|
|
5440
5432
|
const deadlineMs = started.milliseconds + this.#policy.maxWallClockMs;
|
|
5441
5433
|
const deadlineAt = new Date(deadlineMs).toISOString();
|
|
5442
5434
|
|
|
5435
|
+
if (this.#launchAdmission) {
|
|
5436
|
+
const binding = GATE_LAUNCH_BINDINGS.get(this);
|
|
5437
|
+
const requestDigest = computeEvolutionEvalLaunchRequestDigest({
|
|
5438
|
+
suiteRef,
|
|
5439
|
+
candidateId,
|
|
5440
|
+
baselineId,
|
|
5441
|
+
targetEnvironmentRef,
|
|
5442
|
+
evaluationContext,
|
|
5443
|
+
});
|
|
5444
|
+
if (binding.descriptor.planDigest !== evaluationContext.planDigest) {
|
|
5445
|
+
throw evalError(
|
|
5446
|
+
EVOLUTION_EVAL_INVALID_CODE,
|
|
5447
|
+
"launch admission plan differs from the evaluation run context",
|
|
5448
|
+
);
|
|
5449
|
+
}
|
|
5450
|
+
if (
|
|
5451
|
+
binding.expectedRequest &&
|
|
5452
|
+
(binding.expectedRequest.requestDigest !== requestDigest ||
|
|
5453
|
+
binding.expectedRequest.policyDigest !== this.#policy.policyDigest ||
|
|
5454
|
+
binding.expectedRequest.evaluationAuthorityRoot !==
|
|
5455
|
+
this.#evaluationAuthorityRoot)
|
|
5456
|
+
) {
|
|
5457
|
+
throw evalError(
|
|
5458
|
+
EVOLUTION_EVAL_INVALID_CODE,
|
|
5459
|
+
"evaluation run differs from its enrolled launch request",
|
|
5460
|
+
);
|
|
5461
|
+
}
|
|
5462
|
+
await admitEvolutionEvalLaunch(this.#launchAdmission, {
|
|
5463
|
+
runId,
|
|
5464
|
+
runNonce,
|
|
5465
|
+
requestDigest,
|
|
5466
|
+
policyDigest: this.#policy.policyDigest,
|
|
5467
|
+
evaluationAuthorityRoot: this.#evaluationAuthorityRoot,
|
|
5468
|
+
tenantId: this.#tenantId,
|
|
5469
|
+
admittedAt: started.timestamp,
|
|
5470
|
+
deadlineAt,
|
|
5471
|
+
});
|
|
5472
|
+
if (
|
|
5473
|
+
NATIVE_MONOTONIC_NOW() >= runLocalDeadlineMs ||
|
|
5474
|
+
readClock(this.#clock).milliseconds >= deadlineMs
|
|
5475
|
+
) {
|
|
5476
|
+
throw evalError(
|
|
5477
|
+
EVOLUTION_EVAL_AUTHORITY_FAILED_CODE,
|
|
5478
|
+
"launch admission crossed the evaluation deadline",
|
|
5479
|
+
);
|
|
5480
|
+
}
|
|
5481
|
+
}
|
|
5482
|
+
|
|
5443
5483
|
const suiteRequest = deepFreeze({
|
|
5444
5484
|
runId,
|
|
5445
5485
|
runNonce,
|
|
@@ -6535,6 +6575,17 @@ export function isEvolutionEvalGate(value) {
|
|
|
6535
6575
|
return GATE_INSTANCES.has(value);
|
|
6536
6576
|
}
|
|
6537
6577
|
|
|
6578
|
+
/** Read-only composition check; the authority capability itself stays private. */
|
|
6579
|
+
export function captureEvolutionEvalGateLaunchAdmissionBinding(gate) {
|
|
6580
|
+
if (!GATE_INSTANCES.has(gate)) {
|
|
6581
|
+
throw evalError(
|
|
6582
|
+
EVOLUTION_EVAL_INVALID_CODE,
|
|
6583
|
+
"a branded EvolutionEvalGate is required",
|
|
6584
|
+
);
|
|
6585
|
+
}
|
|
6586
|
+
return GATE_LAUNCH_BINDINGS.get(gate);
|
|
6587
|
+
}
|
|
6588
|
+
|
|
6538
6589
|
export function isEvolutionEvalReceiptVerifier(value) {
|
|
6539
6590
|
return RECEIPT_VERIFIER_INSTANCES.has(value);
|
|
6540
6591
|
}
|