chainlesschain 0.166.90 → 0.166.92
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 +15 -13
- package/package.json +4 -4
- package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
- package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-CZzXRe1-.js → AIOps-C74YzqwJ.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-_AZfbW1Q.js → ActionButton-TFef1hOE.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-CzaUx_wv.js → Analytics-CYsWpkkU.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-xHEeeD-m.js → AppLayout-CFf9kjwu.js} +4 -4
- package/src/assets/web-panel/assets/{Artifacts-DmTbtudE.js → Artifacts-TQqa94YO.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-Cn4ng4fo.js → Audit-B79ayqfS.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-DLUY1VD2.js → BackgroundAgents-pjkHfLP9.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-B2v--wB6.js → Backup-CE6A-t_r.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-Bgih7yAv.js → BaseInput-CwcgWMBY.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-1MiiA3yA.js → Chat-BIkDNesY.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-CPLynmbb.js → ChatBubbleRenderer-DgaokYts.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DsyBa_NO.js → Checkbox-MbypIy5V.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-B7WCFx9H.js → Codegen-DiFHWDnt.js} +1 -1
- package/src/assets/web-panel/assets/{Col-D2x4GBGm.js → Col-BNMlYMso.js} +1 -1
- package/src/assets/web-panel/assets/{Community-Rnwg9nea.js → Community-B3HVyHOX.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BPczlrRh.js → Compact-C7hlAubb.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-Br1L_wGU.js → Compliance-PaXZu6sE.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DlsWB_oS.js → Cowork-BGiojbm-.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-BWo_KGpG.js → Cron-Bmr-1QAx.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-Cug7N8ge.js → Crosschain-BwUvWCVd.js} +1 -1
- package/src/assets/web-panel/assets/{DID-CMbyOZJN.js → DID-k_4QZocW.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-C4dl_UaE.js → Dashboard-_ieRo2C5.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CBrC7M-9.js → Dropdown-DYHh6T27.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DTq7tU4b.js → EmailListRenderer-BNlQcWQX.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-DWP3csxS.js → EvolutionSettings-DIkZ6U2D.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-DZl7zuv_.js → FamilyGuardDashboard-Dq7qSr0P.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-W-GSlVK5.js → Federation-C64e3Cbx.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DMB7xYFV.js → FormItemContext-D-GE2vUa.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DNv8GEoq.js → GenericCardRenderer-DO3B2gis.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BZ0Bbzw6.js → Git-0ETirIQH.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-BNEdcOM5.js → Governance-C9fnRygX.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-C8249gIz.js → Inference-CLJ9RTsK.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-ngzebU3e.js → KnowledgeGraph-D3C_GxrN.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-CP15th-f.js → Logs-C5ctGbkN.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-Ce-eWK3j.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-CaH59OsY.js → Marketplace-GF_t6hJ_.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-C07vnJev.js → McpTools-BGsGzgQs.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-CqAOkVAS.js → Memory-CcrY2A0j.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-qp7mZimq.js → MobileBridge-Bi4T0RlS.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-DKhbqvTw.js → MobileProjects-DvjEGyvf.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-CRYCnWXv.js → Mtc-DL77Vf-k.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-Z08IrKws.js → MtcAudit-CDy_Uswb.js} +4 -4
- package/src/assets/web-panel/assets/{Multisig-BWdatUnH.js → Multisig-DL0BAO_c.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-BKWiCZ_m.js → NLProgramming-B-woh5IR.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-Bgpzk3sm.js → Notes-CEFVCxk7.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DvtZEktR.js → NotificationSettings-BqPPMuAP.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-CBcy0szc.js → OrderTableRenderer-GUKQ1xwp.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DRRL6vW1.js → Organization-B1gX8jlr.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-COmfB8Ns.js → Overflow-CeMxuUZy.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BqMq_DSa.js → P2P-B5aIRWwJ.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-BX7iNvle.js → PdhVaultBrowser-6rYgejd4.js} +4 -4
- package/src/assets/web-panel/assets/{Permissions-DzYkjmV_.js → Permissions-CqCp2SIl.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BBTcxBbN.js → PersonalDataHub-BsA7DJWW.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-eRkYFSbO.js → Pipeline-CiW6HeZh.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-Ch7IFKBh.js → Privacy-DckUOLYq.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-Ci8EcBYg.js → ProjectInit-CZppOOYR.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-B4lYHFbI.js → ProjectSettings-B9QPzhDU.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-zkE5cCo_.js → Projects-BErjjGha.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BKDVD3_e.js → Providers-DehU6Qiz.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-BromrHlf.js → QrScannerModal-E1SUvv1m.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CCgoY1gR.js → QuickAsk-COWFxyH3.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-DCPZvpq7.js → Recommend-D26pWKxX.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-DPnFP8HU.js → RemoteSession-DCOIaId3.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-l6r8ytAs.js → Reputation-DT_AHGAR.js} +1 -1
- package/src/assets/web-panel/assets/{Row-ke9Mk1cx.js → Row-B50S-1nl.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DQOEzUEn.js → RssFeed-BaBnHg3Q.js} +2 -2
- package/src/assets/web-panel/assets/{Search-BqgA0aUz.js → Search-BVdnLuuS.js} +1 -1
- package/src/assets/web-panel/assets/{Security-FeGD_jqV.js → Security-BnacH74J.js} +3 -3
- package/src/assets/web-panel/assets/{Services-4kiYYAjZ.js → Services-CxM08Zch.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BbU8Xegs.js → Skeleton-DE7CIc1N.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-Dl2bUMUL.js → Skills-CGI0SJmf.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-xRGALeaZ.js → Sla-DpEzPcqc.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DZfd4RDm.js → SpeechSettings-CTmnmMHn.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BRtCV9Ga.js → SyncSettings-Dxgrd9hd.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DVRQklfG.js → Tasks-CW4slS0A.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BbhE5jt5.js → Templates-DxvGWDgB.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-qXPDNKbK.js → Tenant-_Q0o2tNK.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CV48Ks7E.js → Terminal-BTZn8pow.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-BLGfJIDr.js → TimelineRenderer-CauL0KFe.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-7G9H6Hrt.js → Tokens-CDoM2qeT.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger--F64N11F.js → Trigger-B-QYGEU7.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Cq1r-D_y.js → Trust-BD6XJHT-.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Dqyu4RVh.js → UkeySign-x4TFwCy0.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DuFmWH_B.js → VideoEditing-t3imBK_0.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-C3mg7EWP.js → Wallet-BCfkWwNC.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CDK-Aj_X.js → WebAuthn-WH314Mdm.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor--K7K-T1F.js → WorkflowEditor-jUlcjrUg.js} +1 -1
- package/src/assets/web-panel/assets/{chat-BQDcS6VP.js → chat-Dg3VASTL.js} +1 -1
- package/src/assets/web-panel/assets/{colors-BKxJL2-T.js → colors-BNvmBRKE.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CFjQAMbY.js → compact-item-BGOfoqf4.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DbgCsdQd.js → createContext-BNQeqKAs.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-B7_ypN1G.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BhkaOBNv.js → hasIn-Bg3AjCrq.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvWWFJHJ.js → index--I3UF5t1.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJ2OiRvh.js → index-2D04Zltx.js} +3 -3
- package/src/assets/web-panel/assets/{index-BuWPqSGT.js → index-60AnjUTX.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2Zb-Kd1.js → index-7QJUWemf.js} +1 -1
- package/src/assets/web-panel/assets/{index-C0DzhUOX.js → index-B--0QM0S.js} +1 -1
- package/src/assets/web-panel/assets/index-B-jSKJK6.js +1 -0
- package/src/assets/web-panel/assets/{index-COGy6wXn.js → index-B0mgngoB.js} +1 -1
- package/src/assets/web-panel/assets/{index-bMX8BBLE.js → index-BBCMulQ-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CE506mgj.js → index-BSNhW95G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CoOu7sdP.js → index-B_JmInC0.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4LlAJqc.js → index-BaPvEvB4.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRtUDiXx.js → index-Bkz1tgFR.js} +1 -1
- package/src/assets/web-panel/assets/{index-Du_SxxBY.js → index-BmTacaQV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CSUDlsIr.js → index-CCFZN66A.js} +1 -1
- package/src/assets/web-panel/assets/{index-3uR0ThJO.js → index-COol3xfA.js} +1 -1
- package/src/assets/web-panel/assets/{index-DmYK9Tqt.js → index-CY8cRKHR.js} +1 -1
- package/src/assets/web-panel/assets/{index-T9ka3Xj3.js → index-Cbp-wp-U.js} +1 -1
- package/src/assets/web-panel/assets/{index-CB4oHynY.js → index-Co_LnCWD.js} +1 -1
- package/src/assets/web-panel/assets/{index-DEwHywz9.js → index-Cx2EXRfr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUs7XpUO.js → index-D-mSvCQK.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRqlCTrz.js → index-D072oLjp.js} +1 -1
- package/src/assets/web-panel/assets/{index-sKfUUldY.js → index-D6UqK83L.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dhfa_BIl.js → index-DF_FKSVH.js} +1 -1
- package/src/assets/web-panel/assets/{index-D9sVcw6v.js → index-DLwEXRrb.js} +1 -1
- package/src/assets/web-panel/assets/{index-3djsY75k.js → index-DO0VlNtc.js} +1 -1
- package/src/assets/web-panel/assets/{index-BfGGsAU7.js → index-DS04wRll.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dn2QSsuI.js → index-DYn5DnDk.js} +1 -1
- package/src/assets/web-panel/assets/{index-D-Yh3-1z.js → index-D_O2ZjPk.js} +1 -1
- package/src/assets/web-panel/assets/{index-BNjYPJNU.js → index-DcCnO0RU.js} +1 -1
- package/src/assets/web-panel/assets/{index-DP1NrM9J.js → index-Dkp-okWa.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdcrixaQ.js → index-OUFoxUgH.js} +1 -1
- package/src/assets/web-panel/assets/index-P4FXZJqI.js +1 -0
- package/src/assets/web-panel/assets/{index-7BY44UEv.js → index-Wo0f2iqb.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjmVlpap.js → index-ZD5Kd8tx.js} +1 -1
- package/src/assets/web-panel/assets/{index-3YutaXnp.js → index-fOwii3LP.js} +1 -1
- package/src/assets/web-panel/assets/{index-aPdVzagA.js → index-hG7jXGEW.js} +1 -1
- package/src/assets/web-panel/assets/{index-De7daEnc.js → index-pVdQieac.js} +1 -1
- package/src/assets/web-panel/assets/{index-CJoXgJ2N.js → index-uH2LnAs_.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFt48Z-x.js → index-xzaUx19r.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-wrqabmui.js → initDefaultProps-B8PN9AxJ.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BoyB3ilP.js → motion-BHivfw5Q.js} +1 -1
- package/src/assets/web-panel/assets/{move-Cq31cSFE.js → move-B0QU5nDd.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-BkxNt-8H.js → mtc-parser-DRwRM3PE.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DofGni53.js → omit-SHt2rV2p.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-BnluLL16.js → pickAttrs-CcmDlEb2.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-C-yegJSP.js → placementArrow-DYatmXDS.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CD3ziNhu.js → responsiveObserve-B7qrsXq5.js} +1 -1
- package/src/assets/web-panel/assets/{slide-ToZO4gQ1.js → slide-BRGhlOWd.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DFVmDmVl.js → statusUtils-CT-7NXsQ.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-De0Y8g1O.js → styleChecker-rZdw_Yyp.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-wBKIYFKX.js → useFlexGapSupport-D8YNIP4P.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-CP9nmUMJ.js → useFs-B8pt0Gu-.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-vFGrVDyp.js → usePersonalDataHub-VMmYM1tt.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BcBIjvjH.js → vnode-UNDuoPoq.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DnXDAQxA.js → zoom-dN-u667S.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-help-index.json +1 -1
- package/src/commands/agent-process-ownership.js +121 -0
- package/src/commands/agent.js +2 -0
- package/src/commands/hub.js +86 -9
- package/src/data/changelog.json +54 -2
- package/src/lib/audit-logger.js +46 -20
- package/src/lib/checkpoint-restore-saga.js +11 -1
- package/src/lib/eval/verify01-host-evidence.js +36 -3
- package/src/lib/evolution/evolution-artifact-ports.js +26 -0
- package/src/lib/evolution/evolution-eval-cohort-enrollment.js +713 -47
- package/src/lib/evolution/evolution-eval-gate.js +146 -0
- package/src/lib/evolution/evolution-eval-launch-admission.js +168 -90
- package/src/lib/evolution/evolution-eval-ledger-capture.js +50 -0
- package/src/lib/evolution/evolution-eval-readonly-audit.js +106 -0
- package/src/lib/evolution/evolution-ledger-file-backend.js +20 -0
- package/src/lib/evolution/evolution-ledger-ports.js +59 -27
- package/src/lib/evolution/evolution-ledger-v2-journal.js +55 -18
- package/src/lib/evolution/evolution-workbench-file-resources.js +19 -1
- package/src/lib/evolution/rrsi-cohort-registration.js +275 -0
- package/src/lib/evolution/rrsi-contracts.js +742 -0
- package/src/lib/evolution/rrsi-data.js +196 -0
- package/src/lib/evolution/rrsi-evaluation-adapter.js +275 -0
- package/src/lib/evolution/rrsi-evaluation-variants.js +267 -0
- package/src/lib/evolution/rrsi-group-statistics.js +553 -0
- package/src/lib/evolution/rrsi-history-ledger-adapter.js +3261 -0
- package/src/lib/evolution/rrsi-native-batch-evidence.js +520 -0
- package/src/lib/evolution/rrsi-native-eval-row-collector.js +538 -0
- package/src/lib/evolution/rrsi-native-evaluation-batch.js +547 -0
- package/src/lib/evolution/rrsi-native-evaluation-plan.js +431 -0
- package/src/lib/evolution/rrsi-native-group-statistics-plan.js +121 -0
- package/src/lib/evolution/rrsi-native-group-statistics.js +482 -0
- package/src/lib/evolution/rrsi-native-quality-receipt-contracts.js +321 -0
- package/src/lib/evolution/rrsi-native-quality-receipt.js +256 -0
- package/src/lib/evolution/rrsi-native-statistics-protocol.js +330 -0
- package/src/lib/evolution/rrsi-parent-binding.js +290 -0
- package/src/lib/evolution/rrsi-pm-execution-bridge.js +500 -0
- package/src/lib/evolution/rrsi-pm-training-mapping.js +134 -0
- package/src/lib/evolution/rrsi-preparation-contracts.js +213 -0
- package/src/lib/evolution/rrsi-registry-history-binding.js +193 -0
- package/src/lib/evolution/rrsi-registry-store-policy.js +1191 -0
- package/src/lib/evolution/rrsi-runtime-composition.js +79 -0
- package/src/lib/evolution/rrsi-selector.js +434 -0
- package/src/lib/evolution/rrsi-statistics-simulation.js +354 -0
- package/src/lib/evolution/skill-candidate-registry.js +216 -29
- package/src/lib/evolution/skill-registry-maintenance.js +80 -0
- package/src/lib/evolution/skill-registry-writer-control.js +138 -0
- package/src/lib/evolution/skill-release-registry.js +399 -169
- package/src/lib/formal-quality-eval-runtime.js +2 -14
- package/src/lib/goal-store.js +225 -16
- package/src/lib/process-execution-broker/index.js +91 -1
- package/src/lib/process-execution-broker/platform-sandbox.js +42 -0
- package/src/lib/process-execution-broker/windows-native-evaluator-capabilities.js +757 -0
- package/src/lib/process-execution-broker/windows-native-evaluator.js +316 -0
- package/src/lib/process-execution-broker/windows-sandbox-helper.dll +0 -0
- package/src/lib/process-execution-broker/windows-sandbox-helper.exe +0 -0
- package/src/lib/process-execution-broker/windows-sandbox.cs +383 -11
- package/src/lib/record-replay/skill-recorder.js +38 -3
- package/src/lib/scheduler-kernel/authority-resolver.js +12 -163
- package/src/lib/scheduler-kernel/contract.js +27 -414
- package/src/lib/scheduler-kernel/runtime.js +21 -823
- package/src/lib/scheduler-kernel/service.js +11 -328
- package/src/lib/scheduler-kernel/source-locator-path.js +7 -142
- package/src/lib/scheduler-kernel/store.js +67 -5931
- package/src/lib/secure-fs.js +16 -1314
- package/src/lib/with-file-lock.js +122 -20
- package/src/assets/web-panel/assets/MarkdownRenderer-CW3B3JDq.js +0 -1
- package/src/assets/web-panel/assets/devWarning-DlIv9Mbc.js +0 -1
- package/src/assets/web-panel/assets/index-BC972Grv.js +0 -1
- package/src/assets/web-panel/assets/index-CVifyQqL.js +0 -1
package/src/data/changelog.json
CHANGED
|
@@ -1,16 +1,68 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.92",
|
|
7
|
+
"cliVersions": ["0.166.92"],
|
|
8
|
+
"date": null,
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Fixed - cc CLI 0.166.92: private storage and release regression repairs",
|
|
13
|
+
"body": "- Publish Session Core `0.3.17` and Context Memory Kernel `0.1.7` before CLI\n `0.166.92`, with exact CLI dependency pins and public package readback.\n- Stage the actual Session Core package in isolated CLI and desktop fixtures;\n missing private-storage code fails the fixture checks. Extract the complete\n packed library when validating new transitive authorization dependencies.\n- Compare temporary fixture paths by their physical identity on Windows and\n macOS while retaining production symlink and path-admission checks.\n- Preserve full 64-bit RRSI directory and marker identities on Windows so\n distinct objects cannot collide after numeric rounding. Existing identity\n mismatches still hold the store without rewriting authenticated records.\n- Create SQLite WAL/SHM files before applying final private-storage protection,\n including owner-only Windows ACLs when goal schedulers reopen their stores.\n- Exclude validated browser digest metadata from Record & Replay content scans;\n malformed metadata and sensitive values in user content still fail review.\n- Avoid repeating the same authenticated journal read for each signed sibling\n in the cohort enrollment regression test; keep every admission assertion.\n- Stop canceled execution-location workflows from reporting missing producer\n artifacts as a new aggregate failure; failed producers still fail the gate.\n- Await main-process logout in desktop tests and preserve the UI session until\n revocation succeeds. Failed or unavailable revocation still rejects logout.\n- Require the parent to acknowledge RRSI process-test results before workers\n disconnect, retaining both the competing-process assertions and exit checks.\n- Pair VS Code `0.37.137` and JetBrains `0.4.155` with CLI `0.166.92`. Disable\n development plugin hot reload in the JetBrains test host so restart validation\n retains both the packaged plugin and its UI driver.\n- Require the authorized CLI and downloadable OIDC-published child packages\n before desktop and mobile builds; remove the product workflow's npm token\n fallback so dependency failures cannot trigger a separate npm publication."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.92",
|
|
20
|
+
"cliVersions": ["0.166.92"],
|
|
21
|
+
"date": null,
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Added - CLI 0.166.92: organization workflows and authenticated registry reads",
|
|
26
|
+
"body": "- Carry the committed organization project workbench into the desktop product\n candidate, with project setup, saved proposals and governed task actions.\n Session Core `0.3.17` includes the proposal store used by those host services.\n- Bind RRSI Registry read-only construction to authenticated backend evidence.\n Read-only queries require that construction authority and retain checks for\n replacement and mutation instead of creating a fresh writable registry."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"productVersion": null,
|
|
32
|
+
"cliVersion": "0.166.92",
|
|
33
|
+
"cliVersions": ["0.166.92"],
|
|
34
|
+
"date": "2026-10-07",
|
|
35
|
+
"title": "",
|
|
36
|
+
"sections": [
|
|
37
|
+
{
|
|
38
|
+
"heading": "Upgrade - CLI 0.166.92 and product v5.0.3.139 candidates (2026-10-07)",
|
|
39
|
+
"body": "- These versions are release candidates until the final versioned commit passes\n its complete GitHub Actions gates and public release verification.\n- After CLI publication, run `npm install -g chainlesschain@0.166.92`, then\n `chainlesschain --version`. `cc changelog` includes these bundled release notes.\n Keep the existing configuration and data directories when replacing binaries.\n- Upgrade IDE plugins after the CLI: VS Code `0.37.137` and JetBrains `0.4.155`.\n Restart the editor and verify its CLI path. If `cc` resolves to a C compiler,\n configure the full path to the installed ChainlessChain executable.\n- The final product stage uses desktop `5.0.3-alpha.139`, Android\n `5.0.3.139` / code `503139`, and iOS `5.0.3` / build `139`. Install the\n matching platform artifact after the CLI and IDE release stages finish.\n- Back up existing application data before upgrading persistent stores. Close\n desktop clients before copying SQLite stores, and retain their WAL/SHM files\n when present so the backup includes committed data."
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"productVersion": null,
|
|
45
|
+
"cliVersion": "0.166.91",
|
|
46
|
+
"cliVersions": ["0.166.91"],
|
|
47
|
+
"date": null,
|
|
48
|
+
"title": "",
|
|
49
|
+
"sections": [
|
|
50
|
+
{
|
|
51
|
+
"heading": "Fixed - cc CLI 0.166.91: cross-platform release validation",
|
|
52
|
+
"body": "- Accept verified directory identities through the Windows Server 2025 native\n file-information API, while retaining handle binding and reparse-point checks.\n- Preserve Windows native evaluator failure and cleanup evidence when the helper\n cannot publish a settlement. Compare journal identities within their pathname\n and descriptor domains on supported Node versions.\n- Keep literal audit search assertions independent of redacted operation text;\n verify that unsafe legacy text remains omitted from query results.\n- Give the receipt signer deadline test enough admission time on hosted runners\n and verify that the signer is actually invoked before its bounded timeout.\n- Regenerate the bundled CLI changelog from its canonical source.\n- Capture JetBrains transcript snapshots on the event dispatch thread during\n cross-platform host validation, retaining the full transcript assertions.\n- Preserve equivalent protected Windows evaluator ACLs across .NET Framework\n and PowerShell's .NET runtime through the native security API.\n- Retry cooperative lock release during nested safe owner reads without treating\n it as corruption; losing a held lock still fails closed.\n- Pin the patched `shell-quote` dependency in both workspace and standalone\n desktop installs to reject command injection after shell comment tokens.\n- Publish Session Core `0.3.16` and Personal Data Hub `0.4.64` before CLI\n `0.166.91`, with exact dependency pins and public package verification.\n- Pair VS Code `0.37.136` and JetBrains `0.4.154` with CLI `0.166.91` after\n the full exact-commit CLI and IDE validation workflows pass."
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
4
56
|
{
|
|
5
57
|
"productVersion": null,
|
|
6
58
|
"cliVersion": "0.166.90",
|
|
7
59
|
"cliVersions": ["0.166.90"],
|
|
8
|
-
"date":
|
|
60
|
+
"date": "2026-10-06",
|
|
9
61
|
"title": "",
|
|
10
62
|
"sections": [
|
|
11
63
|
{
|
|
12
64
|
"heading": "Added - cc CLI 0.166.90: recoverable projections and project risk evidence",
|
|
13
|
-
"body": "- Publish Personal Data Hub `0.4.63` and Session Core `0.3.15` before the CLI,\n with exact dependency pins and public tarball verification. Require the full\n PDH suite with its declared native SQLCipher driver on Linux, Windows and macOS.\n- Publish Agent SDK `0.2.13` with Vitest `4.1.11` test tooling to remove the\n vulnerable Tinypool dependency, and upgrade the workspace proxy-addr to\n `2.0.8`. Require SDK build and tests on the exact Linux, Windows and macOS\n release commit before OIDC publication.\n- Persist PDH projection receipts, recover incomplete derivations and support\n bounded receipt retention. Harden RAG updates, audit redaction and capability\n reporting so unavailable sources do not appear as successful live collection.\n- Add offline project risk evaluation and version-bound task description\n previews. Session Core also supplies native SQLite action/read services and\n saved rule/source reviews for the desktop project workbench; CLI previews\n carry unverified snapshot authority and do not execute those desktop actions.\n- Pair VS Code `0.37.135` and JetBrains `0.4.153` with CLI `0.166.90` after\n exact-commit release checks and public npm readback."
|
|
65
|
+
"body": "- Verified on 2026-10-06: exact release commit `28cff6adc8` passed complete\n CLI CI, Strict Sandbox, IDE host and security gates. Session Core `0.3.15`,\n Agent SDK `0.2.13`, PDH `0.4.63` and CLI `0.166.90` were published through\n GitHub Actions OIDC with independent public archive verification. Open VSX\n `0.37.135` and JetBrains `0.4.153` are public; both publication workflows\n succeeded, and JetBrains approval/listing was independently read back.\n Desktop workbench changes are outside the separate v5.0.3.138 installer.\n- Publish Personal Data Hub `0.4.63` and Session Core `0.3.15` before the CLI,\n with exact dependency pins and public tarball verification. Require the full\n PDH suite with its declared native SQLCipher driver on Linux, Windows and macOS.\n- Publish Agent SDK `0.2.13` with Vitest `4.1.11` test tooling to remove the\n vulnerable Tinypool dependency, and upgrade the workspace proxy-addr to\n `2.0.8`. Require SDK build and tests on the exact Linux, Windows and macOS\n release commit before OIDC publication.\n- Persist PDH projection receipts, recover incomplete derivations and support\n bounded receipt retention. Harden RAG updates, audit redaction and capability\n reporting so unavailable sources do not appear as successful live collection.\n- Add offline project risk evaluation and version-bound task description\n previews. Session Core also supplies native SQLite action/read services and\n saved rule/source reviews for the desktop project workbench; CLI previews\n carry unverified snapshot authority and do not execute those desktop actions.\n- Pair VS Code `0.37.135` and JetBrains `0.4.153` with CLI `0.166.90` after\n exact-commit release checks and public npm readback."
|
|
14
66
|
}
|
|
15
67
|
]
|
|
16
68
|
},
|
package/src/lib/audit-logger.js
CHANGED
|
@@ -7,6 +7,17 @@ import crypto from "crypto";
|
|
|
7
7
|
import { safeJsonParse } from "./safe-json.js";
|
|
8
8
|
import { escapeLike } from "./sql-like.js";
|
|
9
9
|
import { sanitizeAuditDetails } from "./audit-sanitizer.js";
|
|
10
|
+
import auditDataPolicy from "@chainlesschain/session-core/audit-data-policy";
|
|
11
|
+
import restrictedAudit from "@chainlesschain/session-core/restricted-audit-store";
|
|
12
|
+
|
|
13
|
+
const { projectAuditMetadata, projectAuditField, validateRetentionDays } =
|
|
14
|
+
auditDataPolicy;
|
|
15
|
+
|
|
16
|
+
// Host API: authorization must come from the invoking host, never event details.
|
|
17
|
+
// No general audit query/export includes this separate store.
|
|
18
|
+
export function createAuditDiagnostics(db, options) {
|
|
19
|
+
return new restrictedAudit.RestrictedAuditStore(db, options);
|
|
20
|
+
}
|
|
10
21
|
|
|
11
22
|
/**
|
|
12
23
|
* Event types for audit logging.
|
|
@@ -117,7 +128,7 @@ export function sanitizeDetails(details) {
|
|
|
117
128
|
}
|
|
118
129
|
|
|
119
130
|
function sanitizeErrorMessage(value) {
|
|
120
|
-
const sanitized =
|
|
131
|
+
const sanitized = projectAuditMetadata(value);
|
|
121
132
|
if (sanitized == null) return null;
|
|
122
133
|
return typeof sanitized === "object"
|
|
123
134
|
? JSON.stringify(sanitized)
|
|
@@ -131,23 +142,24 @@ export function logEvent(db, event) {
|
|
|
131
142
|
ensureAuditTables(db);
|
|
132
143
|
|
|
133
144
|
const id = crypto.randomUUID();
|
|
134
|
-
const sanitized =
|
|
135
|
-
const risk =
|
|
136
|
-
event.riskLevel
|
|
145
|
+
const sanitized = projectAuditMetadata(event.details);
|
|
146
|
+
const risk = Object.values(RISK_LEVELS).includes(event.riskLevel)
|
|
147
|
+
? event.riskLevel
|
|
148
|
+
: assessRisk(event.eventType, event.operation || "unknown", sanitized);
|
|
137
149
|
|
|
138
150
|
db.prepare(
|
|
139
151
|
`INSERT INTO audit_log (id, event_type, operation, actor, target, details, risk_level, ip_address, user_agent, success, error_message)
|
|
140
152
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
141
153
|
).run(
|
|
142
154
|
id,
|
|
143
|
-
event.eventType || EVENT_TYPES.SYSTEM,
|
|
144
|
-
event.operation || "unknown",
|
|
145
|
-
event.actor || null,
|
|
146
|
-
event.target || null,
|
|
155
|
+
projectAuditField("eventType", event.eventType || EVENT_TYPES.SYSTEM),
|
|
156
|
+
projectAuditField("operation", event.operation || "unknown"),
|
|
157
|
+
projectAuditField("actor", event.actor || null),
|
|
158
|
+
projectAuditField("target", event.target || null),
|
|
147
159
|
sanitized == null ? null : JSON.stringify(sanitized),
|
|
148
160
|
risk,
|
|
149
|
-
event.ipAddress
|
|
150
|
-
event.userAgent
|
|
161
|
+
event.ipAddress ? projectAuditField("ipAddress", event.ipAddress) : null,
|
|
162
|
+
event.userAgent ? projectAuditField("userAgent", event.userAgent) : null,
|
|
151
163
|
event.success !== false ? 1 : 0,
|
|
152
164
|
sanitizeErrorMessage(event.errorMessage),
|
|
153
165
|
);
|
|
@@ -220,8 +232,21 @@ export function queryLogs(db, filters = {}) {
|
|
|
220
232
|
const rows = db.prepare(sql).all(...params);
|
|
221
233
|
return rows.map((r) => ({
|
|
222
234
|
...r,
|
|
235
|
+
event_type: projectAuditField("eventType", r.event_type),
|
|
236
|
+
operation: projectAuditField("operation", r.operation),
|
|
223
237
|
// One corrupt details cell must not throw out of the whole query.
|
|
224
|
-
details: safeJsonParse(r.details, null),
|
|
238
|
+
details: projectAuditMetadata(safeJsonParse(r.details, null)),
|
|
239
|
+
error_message: sanitizeErrorMessage(
|
|
240
|
+
safeJsonParse(r.error_message, r.error_message),
|
|
241
|
+
),
|
|
242
|
+
actor: projectAuditField("actor", r.actor),
|
|
243
|
+
target: projectAuditField("target", r.target),
|
|
244
|
+
ip_address: r.ip_address
|
|
245
|
+
? projectAuditField("ipAddress", r.ip_address)
|
|
246
|
+
: null,
|
|
247
|
+
user_agent: r.user_agent
|
|
248
|
+
? projectAuditField("userAgent", r.user_agent)
|
|
249
|
+
: null,
|
|
225
250
|
success: r.success === 1,
|
|
226
251
|
}));
|
|
227
252
|
}
|
|
@@ -333,6 +358,7 @@ export function exportLogs(db, format = "json", filters = {}) {
|
|
|
333
358
|
* Delete old audit logs.
|
|
334
359
|
*/
|
|
335
360
|
export function purgeLogs(db, daysToKeep = 90) {
|
|
361
|
+
validateRetentionDays(daysToKeep);
|
|
336
362
|
ensureAuditTables(db);
|
|
337
363
|
|
|
338
364
|
const cutoff = new Date();
|
|
@@ -502,7 +528,7 @@ export function logEventV2(
|
|
|
502
528
|
if (_logStatesV2.has(logId)) {
|
|
503
529
|
throw new Error(`Log already registered: ${logId}`);
|
|
504
530
|
}
|
|
505
|
-
const sanitized =
|
|
531
|
+
const sanitized = projectAuditMetadata(details);
|
|
506
532
|
const risk = riskLevel || assessRisk(eventType, operation, sanitized);
|
|
507
533
|
if (!RISK_LEVELS_V2.includes(risk)) {
|
|
508
534
|
throw new Error(`Invalid riskLevel: ${risk}`);
|
|
@@ -510,14 +536,14 @@ export function logEventV2(
|
|
|
510
536
|
const now = Date.now();
|
|
511
537
|
const entry = {
|
|
512
538
|
logId,
|
|
513
|
-
eventType,
|
|
514
|
-
operation,
|
|
515
|
-
actor: actor || null,
|
|
516
|
-
target: target || null,
|
|
539
|
+
eventType: projectAuditField("eventType", eventType),
|
|
540
|
+
operation: projectAuditField("operation", operation),
|
|
541
|
+
actor: projectAuditField("actor", actor || null),
|
|
542
|
+
target: projectAuditField("target", target || null),
|
|
517
543
|
details: sanitized ?? null,
|
|
518
544
|
riskLevel: risk,
|
|
519
|
-
ipAddress: ipAddress
|
|
520
|
-
userAgent: userAgent
|
|
545
|
+
ipAddress: ipAddress ? projectAuditField("ipAddress", ipAddress) : null,
|
|
546
|
+
userAgent: userAgent ? projectAuditField("userAgent", userAgent) : null,
|
|
521
547
|
success: success !== false,
|
|
522
548
|
errorMessage: sanitizeErrorMessage(errorMessage),
|
|
523
549
|
status: LOG_STATUS_V2.ACTIVE,
|
|
@@ -539,8 +565,8 @@ export function logEventV2(
|
|
|
539
565
|
_alertStatesV2.set(alertId, {
|
|
540
566
|
alertId,
|
|
541
567
|
logId,
|
|
542
|
-
actor,
|
|
543
|
-
operation,
|
|
568
|
+
actor: entry.actor,
|
|
569
|
+
operation: entry.operation,
|
|
544
570
|
riskLevel: risk,
|
|
545
571
|
status: ALERT_STATUS_V2.OPEN,
|
|
546
572
|
reason: null,
|
|
@@ -464,6 +464,16 @@ function isMissingPathError(error) {
|
|
|
464
464
|
return error?.code === "ENOENT" || error?.cause?.code === "ENOENT";
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
+
function hasMissingLockPathCause(error) {
|
|
468
|
+
// A bounded owner read wraps secure-parent errors, which themselves wrap
|
|
469
|
+
// ENOENT when a cooperating process detaches its released lock directory.
|
|
470
|
+
// Only unlocked lock inspection uses this; losing our held owner still fails.
|
|
471
|
+
for (let depth = 0; error && depth < 8; depth++, error = error.cause) {
|
|
472
|
+
if (error.code === "ENOENT") return true;
|
|
473
|
+
}
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
|
|
467
477
|
function attachCommitState(error, details) {
|
|
468
478
|
if (!error || typeof error !== "object") return error;
|
|
469
479
|
for (const [key, value] of Object.entries(details)) {
|
|
@@ -1887,7 +1897,7 @@ export class CheckpointRestoreSagaStore {
|
|
|
1887
1897
|
// The same valid release can happen after readdir observed owner.json
|
|
1888
1898
|
// but before its lstat/read. Only tolerate absence during the unlocked
|
|
1889
1899
|
// pre/postflight inspection; losing our own owner still fails closed.
|
|
1890
|
-
if (
|
|
1900
|
+
if (hasMissingLockPathCause(cause) && !requireOwner) return null;
|
|
1891
1901
|
throw sagaError(
|
|
1892
1902
|
CHECKPOINT_RESTORE_SAGA_ERROR_CODES.LOCK_FAILED,
|
|
1893
1903
|
"Saga state lock owner is corrupt or unbounded",
|
|
@@ -149,13 +149,46 @@ export function inspectIdeProtocol(records, { prompt, comparison } = {}) {
|
|
|
149
149
|
resultRecords[0].event.session_id === sessionId,
|
|
150
150
|
"IDE terminal is missing or ambiguous",
|
|
151
151
|
);
|
|
152
|
+
const terminal = resultRecords[0].event;
|
|
153
|
+
// Persistent headless streams emit one lifecycle end after stdin closes.
|
|
154
|
+
// Accept only that exact, same-session one-turn trailer; task output after
|
|
155
|
+
// the result stays ambiguous. Keep the complete capture intact.
|
|
156
|
+
const trailing = outputs.slice(outputs.indexOf(resultRecords[0]) + 1);
|
|
157
|
+
const end = trailing[0]?.event;
|
|
158
|
+
const lifecycleFrames = outputs.filter(
|
|
159
|
+
(record) =>
|
|
160
|
+
record.event.type === "system" && record.event.subtype === "end",
|
|
161
|
+
);
|
|
162
|
+
const lifecycleEnded =
|
|
163
|
+
trailing.length === 1 &&
|
|
164
|
+
lifecycleFrames.length === 1 &&
|
|
165
|
+
end.type === "system" &&
|
|
166
|
+
end.subtype === "end" &&
|
|
167
|
+
end.session_id === sessionId &&
|
|
168
|
+
end.turns === 1 &&
|
|
169
|
+
terminal.turn === 1 &&
|
|
170
|
+
Object.keys(end).every((key) =>
|
|
171
|
+
["type", "subtype", "session_id", "turns", "trace_id", "seq"].includes(
|
|
172
|
+
key,
|
|
173
|
+
),
|
|
174
|
+
) &&
|
|
175
|
+
(end.trace_id === undefined ||
|
|
176
|
+
(typeof end.trace_id === "string" &&
|
|
177
|
+
end.trace_id === terminal.trace_id)) &&
|
|
178
|
+
(end.seq === undefined ||
|
|
179
|
+
(Number.isSafeInteger(end.seq) &&
|
|
180
|
+
Number.isSafeInteger(terminal.seq) &&
|
|
181
|
+
end.seq === terminal.seq + 1));
|
|
182
|
+
const taskOutputs = lifecycleEnded ? outputs.slice(0, -1) : outputs;
|
|
152
183
|
const parsed = verifyAgentTerminal(
|
|
153
|
-
|
|
184
|
+
taskOutputs.map((record) => JSON.stringify(record.event)).join("\n"),
|
|
154
185
|
);
|
|
155
|
-
|
|
186
|
+
if (lifecycleFrames.length > 0 && !lifecycleEnded)
|
|
187
|
+
parsed.terminalVerified = false;
|
|
156
188
|
// A complete explicit failure is an observation. It never becomes success.
|
|
157
189
|
const knownFailure =
|
|
158
|
-
|
|
190
|
+
taskOutputs.at(-1) === resultRecords[0] &&
|
|
191
|
+
(lifecycleFrames.length === 0 || lifecycleEnded) &&
|
|
159
192
|
terminal.is_error === true &&
|
|
160
193
|
typeof terminal.subtype === "string" &&
|
|
161
194
|
terminal.subtype.length > 0 &&
|
|
@@ -82,6 +82,8 @@ export const EVOLUTION_ARTIFACT_LEDGER_RETENTION_TYPES = Object.freeze([
|
|
|
82
82
|
"skill-runtime-revalidation-state",
|
|
83
83
|
"evolution-ledger-v2-journal",
|
|
84
84
|
"evolution-run-event",
|
|
85
|
+
"rrsi-history-event",
|
|
86
|
+
"skill-registry-store-policy",
|
|
85
87
|
"pm-exploration-recovery-snapshot",
|
|
86
88
|
"pm-exploration-provider-settlement",
|
|
87
89
|
"evolution-eval-child-evidence",
|
|
@@ -140,6 +142,8 @@ export const EVOLUTION_ARTIFACT_TYPES = Object.freeze([
|
|
|
140
142
|
"evaluation",
|
|
141
143
|
"evaluation-result",
|
|
142
144
|
"evolution-run-event",
|
|
145
|
+
"rrsi-history-event",
|
|
146
|
+
"skill-registry-store-policy",
|
|
143
147
|
"pm-exploration-recovery-snapshot",
|
|
144
148
|
"pm-exploration-provider-settlement",
|
|
145
149
|
"evolution-eval-child-evidence",
|
|
@@ -357,6 +361,7 @@ const CONSTRUCTOR_REQUIRED_KEYS = new Set([
|
|
|
357
361
|
const LEDGER_RESOLVER_OPTION_KEYS = new Set(["purpose"]);
|
|
358
362
|
const EVOLUTION_LEDGER_ARTIFACT_RESOLVERS = new WeakSet();
|
|
359
363
|
const EVOLUTION_LEDGER_BATCH_RESOLVERS = new WeakMap();
|
|
364
|
+
const EVOLUTION_LEDGER_RESOLVER_BINDINGS = new WeakMap();
|
|
360
365
|
const isProxy = Object.freeze(utilTypes.isProxy.bind(utilTypes));
|
|
361
366
|
const isDate = Object.freeze(utilTypes.isDate.bind(utilTypes));
|
|
362
367
|
const dateGetTime = Object.freeze(
|
|
@@ -395,6 +400,8 @@ const LEDGER_RETENTION_PURPOSES_BY_TYPE = new Map([
|
|
|
395
400
|
["wiki-pruning-journal", new Set(["evolution-ledger"])],
|
|
396
401
|
["wiki-pruning-retrieval-projection", new Set(["evolution-ledger"])],
|
|
397
402
|
["evolution-run-event", new Set(["evolution-ledger"])],
|
|
403
|
+
["rrsi-history-event", new Set(["evolution-ledger"])],
|
|
404
|
+
["skill-registry-store-policy", new Set(["evolution-ledger"])],
|
|
398
405
|
["pm-exploration-recovery-snapshot", new Set(["evolution-ledger"])],
|
|
399
406
|
["pm-exploration-provider-settlement", new Set(["evolution-ledger"])],
|
|
400
407
|
["evolution-eval-child-evidence", new Set(["evolution-ledger"])],
|
|
@@ -3557,6 +3564,15 @@ export class EvolutionArtifactPorts {
|
|
|
3557
3564
|
EVOLUTION_LEDGER_BATCH_RESOLVERS.set(resolveReadOnly, (requests) =>
|
|
3558
3565
|
this.#resolveLedgerBatch(requests, normalizedPurpose),
|
|
3559
3566
|
);
|
|
3567
|
+
EVOLUTION_LEDGER_RESOLVER_BINDINGS.set(
|
|
3568
|
+
resolveReadOnly,
|
|
3569
|
+
Object.freeze({
|
|
3570
|
+
purpose: normalizedPurpose,
|
|
3571
|
+
tenantId: this.#tenantId,
|
|
3572
|
+
audience: this.#audience,
|
|
3573
|
+
matchesArtifactPorts: Object.freeze((value) => value === this),
|
|
3574
|
+
}),
|
|
3575
|
+
);
|
|
3560
3576
|
return Object.freeze(resolveReadOnly);
|
|
3561
3577
|
}
|
|
3562
3578
|
}
|
|
@@ -3591,4 +3607,14 @@ export function captureEvolutionLedgerBatchResolver(value) {
|
|
|
3591
3607
|
return resolve;
|
|
3592
3608
|
}
|
|
3593
3609
|
|
|
3610
|
+
/** Private construction identity, independent of matching resolver descriptors. */
|
|
3611
|
+
export function captureEvolutionLedgerArtifactResolverBinding(value) {
|
|
3612
|
+
const binding = EVOLUTION_LEDGER_RESOLVER_BINDINGS.get(value);
|
|
3613
|
+
if (!binding)
|
|
3614
|
+
throw new TypeError(
|
|
3615
|
+
"a branded ledger artifact resolver binding is required",
|
|
3616
|
+
);
|
|
3617
|
+
return binding;
|
|
3618
|
+
}
|
|
3619
|
+
|
|
3594
3620
|
Object.freeze(EvolutionArtifactPorts.prototype);
|