@straiffi/archon 1.8.14 → 1.8.16
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/dist/client/assets/ActivityView-p8gBUxYN.js +1 -0
- package/dist/client/assets/GitHubActionsDialog-BRxGcSyq.js +1 -0
- package/dist/client/assets/VerificationDialog-B6l5TYOS.js +4 -0
- package/dist/client/assets/{arc-C83vRtlz.js → arc-D2Nn9xIj.js} +1 -1
- package/dist/client/assets/architecture-7EHR7CIX-C-4Cp4ml.js +1 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-DFbki8mi.js → architectureDiagram-3BPJPVTR-DnuKO1RY.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BZFehG8P.js → blockDiagram-GPEHLZMM-CnQ7FwEp.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-FVDXRu1t.js → c4Diagram-AAUBKEIU-BF1hFXwp.js} +1 -1
- package/dist/client/assets/channel-TJtf4cBJ.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-4tuVZaT0.js → chunk-2J33WTMH-UvCFvkZO.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-DSn14S35.js → chunk-3OPIFGDE-z1l5nBD0.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-C5pU9ApX.js → chunk-4BX2VUAB-CtLS8D71.js} +1 -1
- package/dist/client/assets/{chunk-4EGX6M5U-CAjWPjND.js → chunk-4EGX6M5U-Btnm0QNe.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DhO4-AG4.js → chunk-55IACEB6-74CcJaub.js} +1 -1
- package/dist/client/assets/{chunk-5DO6E6H7-BDKA-zHS.js → chunk-5DO6E6H7-WLZ8L4ko.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-Cwx1KNjg.js → chunk-5ZQYHXKU-Bis0Pw2_.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-Odza4hes.js → chunk-727SXJPM-B3gUO8rD.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-BmVoQT7M.js → chunk-AQP2D5EJ-hPBzrrh5.js} +1 -1
- package/dist/client/assets/{chunk-BR22UD5L-12D2GWh4.js → chunk-BR22UD5L-Cou5beGe.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-DMi77e84.js → chunk-BSJP7CBP-DJ57XcV5.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-Bg7Ktx0B.js → chunk-CSCIHK7Q-BfOng_VY.js} +2 -2
- package/dist/client/assets/{chunk-FHYWG6QK-BhSajKiB.js → chunk-FHYWG6QK-Ba10e2kj.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Drmlc0wM.js → chunk-FMBD7UC4-CEo2wZMx.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-2tnhar2x.js → chunk-KSCS5N6A-B2Jg7PW5.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-dAyg8qMJ.js → chunk-L5ZTLDWV-CUYujZxt.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-0gElxrlR.js → chunk-LZXEDZCA-CH_eV8jH.js} +2 -2
- package/dist/client/assets/{chunk-MPE355IW-Cw8YmjTC.js → chunk-MPE355IW-MqEt-J8G.js} +1 -1
- package/dist/client/assets/{chunk-MZUSXYTE-jvxRCZ7x.js → chunk-MZUSXYTE-DdNi9lhx.js} +1 -1
- package/dist/client/assets/{chunk-N66VUXT2-00i4y0yD.js → chunk-N66VUXT2-CjemTW4E.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-Bu-8Lz91.js → chunk-ND2GUHAM-BVF5evM9.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-CInZFdzd.js → chunk-NZK2D7GU-WfG-2AOS.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-rAzpvdNR.js → chunk-O5CBEL6O-CSF9ozqy.js} +1 -1
- package/dist/client/assets/{chunk-PUPMXCY4-DfWourL7.js → chunk-PUPMXCY4-ZvwTw0To.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-LI_RZca2.js +1 -0
- package/dist/client/assets/{chunk-UIBZB4QT-v-a5ZfN6.js → chunk-UIBZB4QT-BTY9be9s.js} +1 -1
- package/dist/client/assets/{chunk-WCWK7LTN-CtYzhvvb.js → chunk-WCWK7LTN-Db1n3n3-.js} +1 -1
- package/dist/client/assets/chunk-WU5MYG2G-DoVpb2oe.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-CvnAuXH2.js → chunk-XPW4576I-DObFPxjB.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CnKIRKWC.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-5ZgjUwTv.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-fchD-dH2.js → cose-bilkent-S5V4N54A-MlOPiG6P.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-Dgua1iuh.js → dagre-BM42HDAG-rekDIYnC.js} +1 -1
- package/dist/client/assets/{dagre-DSrzm-Gq.js → dagre-BWNHuDdf.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-odacwlwu.js → diagram-2AECGRRQ-Z4mXdhW0.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-BiKjFmJ1.js → diagram-5GNKFQAL-DqeVe5Vc.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-CmYcvFri.js → diagram-KO2AKTUF-ijppTuNc.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-ncx0RBuX.js → diagram-LMA3HP47-CDGLx0-N.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-DbchKIzw.js → diagram-OG6HWLK6-DDlnjzF8.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-CMnpvRyQ.js → erDiagram-TEJ5UH35-V_axe9oz.js} +1 -1
- package/dist/client/assets/eventmodeling-FCH6USID-Dqb6QKoI.js +1 -0
- package/dist/client/assets/{flowDiagram-I6XJVG4X-Bi02_PK5.js → flowDiagram-I6XJVG4X-GH5q79jg.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BiS992US.js → ganttDiagram-6RSMTGT7-BMWVdLeQ.js} +1 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-DYEsqh93.js +1 -0
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Cc1hrTsT.js → gitGraphDiagram-PVQCEYII-VrV8jMUg.js} +1 -1
- package/dist/client/assets/index-B7J4DYDu.js +275 -0
- package/dist/client/assets/index-CsZfTdMO.css +2 -0
- package/dist/client/assets/info-J43DQDTF-CfjXFZai.js +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-BKVfqJCe.js → infoDiagram-5YYISTIA-EGiVbp17.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-B-IbFOty.js → ishikawaDiagram-YF4QCWOH-Dw3CiXbm.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-DAZBgAQW.js → journeyDiagram-JHISSGLW-2S631RY5.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-Bkr_fXev.js → kanban-definition-UN3LZRKU-pc9vzUtB.js} +1 -1
- package/dist/client/assets/{line-CROuuXDO.js → line-BBMBmEjI.js} +1 -1
- package/dist/client/assets/{linear-BOwW57yX.js → linear-DT4rSZvy.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-DrBw_Rsc.js → mermaid-parser.core-ClNeolx0.js} +2 -2
- package/dist/client/assets/{mermaid.core-pPd6OYYj.js → mermaid.core-Q4IJbm5V.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BXSd3TZU.js → mindmap-definition-RKZ34NQL-DUTZxR8H.js} +1 -1
- package/dist/client/assets/{ordinal-CZ33lFpK.js → ordinal-k--hYEme.js} +1 -1
- package/dist/client/assets/packet-YPE3B663-Dv0HkRHU.js +1 -0
- package/dist/client/assets/pie-LRSECV5Y-S5zPzZFN.js +1 -0
- package/dist/client/assets/{pieDiagram-4H26LBE5-DoT7PIZC.js → pieDiagram-4H26LBE5-RW5hNtJq.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-ycZkLowm.js → quadrantDiagram-W4KKPZXB-CK60c7X9.js} +1 -1
- package/dist/client/assets/radar-GUYGQ44K-B7psLv22.js +1 -0
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-BPkO1yLu.js → requirementDiagram-4Y6WPE33-Dz35FvcC.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-D7AvhhCw.js → sankeyDiagram-5OEKKPKP-ByyluoXu.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-C982swnH.js → sequenceDiagram-3UESZ5HK-C-879UFe.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-xvJ3u8lc.js → stateDiagram-AJRCARHV-B8neDlUu.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-B4Mq8Abu.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-D89qjzb5.js → timeline-definition-PNZ67QCA-iAwrltn1.js} +1 -1
- package/dist/client/assets/treeView-BLDUP644-B8H0kT67.js +1 -0
- package/dist/client/assets/treemap-LRROVOQU-DPLhFHnh.js +1 -0
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CoKeC__u.js → vennDiagram-CIIHVFJN-DHN61m8d.js} +1 -1
- package/dist/client/assets/wardley-L42UT6IY-B5-Vb08V.js +1 -0
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DKhjzvSE.js → wardleyDiagram-YWT4CUSO-XDVo7Jy1.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-DFn9ass1.js → xychartDiagram-2RQKCTM6-Cb-HLpaN.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db.js +237 -0
- package/dist/server/db.js.map +1 -1
- package/dist/server/index.js +211 -87
- package/dist/server/index.js.map +1 -1
- package/dist/server/lib/agent.js +198 -100
- package/dist/server/lib/agent.js.map +1 -1
- package/dist/server/lib/agentProvider.js +14 -9
- package/dist/server/lib/agentProvider.js.map +1 -1
- package/dist/server/lib/agentRuns.js +20 -9
- package/dist/server/lib/agentRuns.js.map +1 -1
- package/dist/server/lib/buildExecutionEnvironment.js +517 -0
- package/dist/server/lib/buildExecutionEnvironment.js.map +1 -0
- package/dist/server/lib/buildOpenQuestionOperations.js +9 -3
- package/dist/server/lib/buildOpenQuestionOperations.js.map +1 -1
- package/dist/server/lib/chatOperations.js +30 -1
- package/dist/server/lib/chatOperations.js.map +1 -1
- package/dist/server/lib/checkAutoFix.js +1 -0
- package/dist/server/lib/checkAutoFix.js.map +1 -1
- package/dist/server/lib/checkRepairDispatch.js +3 -1
- package/dist/server/lib/checkRepairDispatch.js.map +1 -1
- package/dist/server/lib/dockerSandboxCredentials.js +62 -0
- package/dist/server/lib/dockerSandboxCredentials.js.map +1 -0
- package/dist/server/lib/dockerSandboxEnvironmentOperations.js +54 -0
- package/dist/server/lib/dockerSandboxEnvironmentOperations.js.map +1 -0
- package/dist/server/lib/dockerSandboxExecutionEnvironment.js +631 -0
- package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -0
- package/dist/server/lib/dockerSandboxExecutionProvider.js +196 -0
- package/dist/server/lib/dockerSandboxExecutionProvider.js.map +1 -0
- package/dist/server/lib/dockerSandboxOpencodeSessionOperations.js +29 -0
- package/dist/server/lib/dockerSandboxOpencodeSessionOperations.js.map +1 -0
- package/dist/server/lib/dockerSandboxRuntimeController.js +187 -0
- package/dist/server/lib/dockerSandboxRuntimeController.js.map +1 -0
- package/dist/server/lib/executionEnvironment.js +22 -0
- package/dist/server/lib/executionEnvironment.js.map +1 -1
- package/dist/server/lib/executionEnvironmentContexts.js +144 -0
- package/dist/server/lib/executionEnvironmentContexts.js.map +1 -0
- package/dist/server/lib/executionEnvironmentLifecycle.js +63 -0
- package/dist/server/lib/executionEnvironmentLifecycle.js.map +1 -0
- package/dist/server/lib/executionEnvironmentReconciliation.js +782 -0
- package/dist/server/lib/executionEnvironmentReconciliation.js.map +1 -0
- package/dist/server/lib/executionEnvironmentRoutes.js +354 -0
- package/dist/server/lib/executionEnvironmentRoutes.js.map +1 -0
- package/dist/server/lib/executionEnvironmentValidation.js +486 -0
- package/dist/server/lib/executionEnvironmentValidation.js.map +1 -0
- package/dist/server/lib/executionEnvironmentValidationOperations.js +635 -0
- package/dist/server/lib/executionEnvironmentValidationOperations.js.map +1 -0
- package/dist/server/lib/executionEnvironments.js +726 -0
- package/dist/server/lib/executionEnvironments.js.map +1 -0
- package/dist/server/lib/executionReconciliation.js +77 -0
- package/dist/server/lib/executionReconciliation.js.map +1 -1
- package/dist/server/lib/executionRetry.js +3 -0
- package/dist/server/lib/executionRetry.js.map +1 -1
- package/dist/server/lib/executionRuns.js +1 -0
- package/dist/server/lib/executionRuns.js.map +1 -1
- package/dist/server/lib/executionTargets.js +107 -0
- package/dist/server/lib/executionTargets.js.map +1 -0
- package/dist/server/lib/executionTimeline.js +3 -0
- package/dist/server/lib/executionTimeline.js.map +1 -1
- package/dist/server/lib/git.js +32 -1
- package/dist/server/lib/git.js.map +1 -1
- package/dist/server/lib/hostExecutionEnvironment.js +47 -1
- package/dist/server/lib/hostExecutionEnvironment.js.map +1 -1
- package/dist/server/lib/lightweightPrompt.js +1 -0
- package/dist/server/lib/lightweightPrompt.js.map +1 -1
- package/dist/server/lib/mobileAccess.js +2 -2
- package/dist/server/lib/mobileAccess.js.map +1 -1
- package/dist/server/lib/models.js +11 -0
- package/dist/server/lib/models.js.map +1 -1
- package/dist/server/lib/opencodeErrors.js +31 -3
- package/dist/server/lib/opencodeErrors.js.map +1 -1
- package/dist/server/lib/opencodeExecutionReliability.js +52 -0
- package/dist/server/lib/opencodeExecutionReliability.js.map +1 -0
- package/dist/server/lib/opencodeSessionOperations.js +210 -20
- package/dist/server/lib/opencodeSessionOperations.js.map +1 -1
- package/dist/server/lib/opencodeTaskSessions.js +7 -12
- package/dist/server/lib/opencodeTaskSessions.js.map +1 -1
- package/dist/server/lib/postBuildChecks.js +2 -1
- package/dist/server/lib/postBuildChecks.js.map +1 -1
- package/dist/server/lib/projectAutoConfig.js +1 -0
- package/dist/server/lib/projectAutoConfig.js.map +1 -1
- package/dist/server/lib/projects.js +10 -0
- package/dist/server/lib/projects.js.map +1 -1
- package/dist/server/lib/specArtifact.js +20 -1
- package/dist/server/lib/specArtifact.js.map +1 -1
- package/dist/server/lib/specBundleGroups.js +151 -0
- package/dist/server/lib/specBundleGroups.js.map +1 -0
- package/dist/server/lib/specDraft.js +1 -5
- package/dist/server/lib/specDraft.js.map +1 -1
- package/dist/server/lib/specExport.js +2 -6
- package/dist/server/lib/specExport.js.map +1 -1
- package/dist/server/lib/specFormatting.js +13 -0
- package/dist/server/lib/specFormatting.js.map +1 -1
- package/dist/server/lib/specGraphFeature.js +3 -0
- package/dist/server/lib/specGraphFeature.js.map +1 -0
- package/dist/server/lib/specRepositoryEvidenceFormatting.js +2 -1
- package/dist/server/lib/specRepositoryEvidenceFormatting.js.map +1 -1
- package/dist/server/lib/specRepositoryImpact.js +4 -0
- package/dist/server/lib/specRepositoryImpact.js.map +1 -1
- package/dist/server/lib/specReviewContext.js +6 -20
- package/dist/server/lib/specReviewContext.js.map +1 -1
- package/dist/server/lib/specReviewValidation.js +22 -1
- package/dist/server/lib/specReviewValidation.js.map +1 -1
- package/dist/server/lib/specReviews.js +1 -1
- package/dist/server/lib/specSections.js +8 -1
- package/dist/server/lib/specSections.js.map +1 -1
- package/dist/server/lib/specSnapshotEvidence.js +4 -0
- package/dist/server/lib/specSnapshotEvidence.js.map +1 -1
- package/dist/server/lib/specTicketMaterialization.js +122 -0
- package/dist/server/lib/specTicketMaterialization.js.map +1 -0
- package/dist/server/lib/specs.js +27 -5
- package/dist/server/lib/specs.js.map +1 -1
- package/dist/server/lib/ticketFollowUpOperations.js +8 -1
- package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
- package/dist/server/lib/ticketRunOperations.js +0 -3
- package/dist/server/lib/ticketRunOperations.js.map +1 -1
- package/dist/server/lib/types.js +1 -0
- package/dist/server/lib/types.js.map +1 -1
- package/dist/server/lib/workspaceIdentity.js +3 -0
- package/dist/server/lib/workspaceIdentity.js.map +1 -1
- package/dist/server/workers/build.js +114 -8
- package/dist/server/workers/build.js.map +1 -1
- package/dist/server/workers/followUp.js +143 -7
- package/dist/server/workers/followUp.js.map +1 -1
- package/dist/server/workers/plan.js +57 -24
- package/dist/server/workers/plan.js.map +1 -1
- package/dist/server/workers/review.js +43 -23
- package/dist/server/workers/review.js.map +1 -1
- package/dist/server/workers/specReview.js +7 -2
- package/dist/server/workers/specReview.js.map +1 -1
- package/dist/server/workers/specSession.js +109 -153
- package/dist/server/workers/specSession.js.map +1 -1
- package/package.json +1 -1
- package/dist/client/assets/ActivityView-DYDYyqIN.js +0 -1
- package/dist/client/assets/GitHubActionsDialog-jhi4GOyV.js +0 -1
- package/dist/client/assets/RepositoryGraphDialog-BZV0vHu6.js +0 -1
- package/dist/client/assets/VerificationDialog-Sc6e8AKH.js +0 -4
- package/dist/client/assets/architecture-7EHR7CIX-Dm8H7N6Z.js +0 -1
- package/dist/client/assets/channel-D1kOpezG.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-CtbsU1Bj.js +0 -1
- package/dist/client/assets/chunk-WU5MYG2G-DOOw2vq7.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-C253nwny.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DFgDA23g.js +0 -1
- package/dist/client/assets/eventmodeling-FCH6USID-BWhw0UJ8.js +0 -1
- package/dist/client/assets/gitGraph-WXDBUCRP-BSnxAa1J.js +0 -1
- package/dist/client/assets/index-B1gdJKwK.js +0 -275
- package/dist/client/assets/index-CCQwWUKF.css +0 -2
- package/dist/client/assets/info-J43DQDTF-DcFwF1-h.js +0 -1
- package/dist/client/assets/packet-YPE3B663-1VZiO_9r.js +0 -1
- package/dist/client/assets/pie-LRSECV5Y-BX1-tQCu.js +0 -1
- package/dist/client/assets/radar-GUYGQ44K-B2HRrCR4.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BKQG8NCn.js +0 -1
- package/dist/client/assets/treeView-BLDUP644-CDfUVbUi.js +0 -1
- package/dist/client/assets/treemap-LRROVOQU-DUWqu8sK.js +0 -1
- package/dist/client/assets/wardley-L42UT6IY-BEFuPUCy.js +0 -1
- /package/dist/client/assets/{array-B2f2amhX.js → array-BNor45A1.js} +0 -0
- /package/dist/client/assets/{chunk-NNHCCRGN-DgKrp8T-.js → chunk-NNHCCRGN-CZB-V-Gv.js} +0 -0
- /package/dist/client/assets/{cytoscape.esm-BInZCgaJ.js → cytoscape.esm-B2lJcMSI.js} +0 -0
- /package/dist/client/assets/{defaultLocale-sPXJ5urm.js → defaultLocale-DPzUsThw.js} +0 -0
- /package/dist/client/assets/{dist-DfHDMDTt.js → dist-CERhmQhR.js} +0 -0
- /package/dist/client/assets/{graphlib-DacNv4Jd.js → graphlib-BHOW-eWz.js} +0 -0
- /package/dist/client/assets/{init-BVCnG1lj.js → init-C0L3woqb.js} +0 -0
- /package/dist/client/assets/{katex-BlkrXOwm.js → katex-CpjQsUQe.js} +0 -0
- /package/dist/client/assets/{path-Bw5AvBNC.js → path-sMK4d_s9.js} +0 -0
- /package/dist/client/assets/{rough.esm-DeLgKbOI.js → rough.esm-BoTisKeL.js} +0 -0
- /package/dist/client/assets/{src-CFGsdLiG.js → src-BRjoYtUW.js} +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import db from '../db.js';
|
|
2
|
+
const parseSnapshot = (value) => {
|
|
3
|
+
if (!value) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const parsed = JSON.parse(value);
|
|
8
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return parsed;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const hasString = (value, key) => typeof value[key] === 'string';
|
|
18
|
+
const isPlacementSnapshot = (value) => {
|
|
19
|
+
const scope = value.scope;
|
|
20
|
+
if (!hasString(value, 'provider')
|
|
21
|
+
|| !hasString(value, 'providerVersion')
|
|
22
|
+
|| !hasString(value, 'environmentId')
|
|
23
|
+
|| typeof value.environmentRevision !== 'number'
|
|
24
|
+
|| !hasString(value, 'executionRunId')
|
|
25
|
+
|| !hasString(value, 'targetKey')
|
|
26
|
+
|| typeof scope !== 'object'
|
|
27
|
+
|| scope === null
|
|
28
|
+
|| Array.isArray(scope)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
const typedScope = scope;
|
|
32
|
+
return (typedScope.kind === 'provider-token' && hasString(typedScope, 'token'))
|
|
33
|
+
|| (typedScope.kind === 'guest-process' && typeof typedScope.pid === 'number' && hasString(typedScope, 'startToken'))
|
|
34
|
+
|| (typedScope.kind === 'exact-sandbox' && hasString(typedScope, 'externalId'));
|
|
35
|
+
};
|
|
36
|
+
const parseAuthority = (row) => {
|
|
37
|
+
if (row.relationship !== 'execution') {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const value = parseSnapshot(row.authority_json);
|
|
41
|
+
const target = value?.target;
|
|
42
|
+
const typedTarget = typeof target === 'object' && target !== null && !Array.isArray(target)
|
|
43
|
+
? target
|
|
44
|
+
: null;
|
|
45
|
+
const capabilities = value?.capabilities;
|
|
46
|
+
const degradationReasons = value?.degradation_reasons;
|
|
47
|
+
return {
|
|
48
|
+
schema_version: value?.schema_version === 1 ? 1 : null,
|
|
49
|
+
provider: value?.provider === 'docker_sandbox' ? value.provider : null,
|
|
50
|
+
provider_version: typeof value?.provider_version === 'string' ? value.provider_version : null,
|
|
51
|
+
environment_id: value?.environment_id === row.binding_environment_id ? value.environment_id : null,
|
|
52
|
+
environment_revision: value?.environment_revision === row.binding_environment_revision
|
|
53
|
+
? value.environment_revision
|
|
54
|
+
: null,
|
|
55
|
+
environment_validation_fingerprint: value?.environment_validation_fingerprint === row.binding_environment_validation_fingerprint
|
|
56
|
+
? value.environment_validation_fingerprint
|
|
57
|
+
: null,
|
|
58
|
+
target: {
|
|
59
|
+
kind: typeof typedTarget?.kind === 'string' ? typedTarget.kind : null,
|
|
60
|
+
key: typeof typedTarget?.key === 'string' ? typedTarget.key : null,
|
|
61
|
+
workspace_path: typeof typedTarget?.workspace_path === 'string' ? typedTarget.workspace_path : null,
|
|
62
|
+
},
|
|
63
|
+
capabilities: typeof capabilities === 'object' && capabilities !== null && !Array.isArray(capabilities)
|
|
64
|
+
? capabilities
|
|
65
|
+
: null,
|
|
66
|
+
degradation_reasons: Array.isArray(degradationReasons) && degradationReasons.every(reason => typeof reason === 'string')
|
|
67
|
+
? degradationReasons
|
|
68
|
+
: null,
|
|
69
|
+
agent: value?.agent === 'opencode' || value?.agent === 'claude' ? value.agent : null,
|
|
70
|
+
authentication_mode: value?.authentication_mode === 'validated_guest' ? value.authentication_mode : null,
|
|
71
|
+
credential_delivery: value?.credential_delivery === 'sandbox_template' ? value.credential_delivery : null,
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
const serializeContext = (row) => {
|
|
75
|
+
const authority = parseAuthority(row);
|
|
76
|
+
const parsedPlacementValue = parseSnapshot(row.placement_json);
|
|
77
|
+
const parsedPlacement = parsedPlacementValue && isPlacementSnapshot(parsedPlacementValue)
|
|
78
|
+
? parsedPlacementValue
|
|
79
|
+
: null;
|
|
80
|
+
const placement = parsedPlacement
|
|
81
|
+
&& parsedPlacement.environmentId === row.binding_environment_id
|
|
82
|
+
&& parsedPlacement.environmentRevision === row.binding_environment_revision
|
|
83
|
+
&& parsedPlacement.executionRunId === row.execution_run_id
|
|
84
|
+
? parsedPlacement
|
|
85
|
+
: null;
|
|
86
|
+
return {
|
|
87
|
+
relationship: row.relationship,
|
|
88
|
+
lease_active: row.released_at === null,
|
|
89
|
+
authority,
|
|
90
|
+
placement,
|
|
91
|
+
live_environment: row.id && row.provider_kind && row.provider_version && row.target_kind
|
|
92
|
+
&& row.target_key && row.target_workspace_path && row.environment_revision !== null
|
|
93
|
+
&& row.environment_validation_fingerprint && row.lifecycle_state
|
|
94
|
+
? {
|
|
95
|
+
id: row.id,
|
|
96
|
+
provider_kind: row.provider_kind,
|
|
97
|
+
provider_version: row.provider_version,
|
|
98
|
+
target_kind: row.target_kind,
|
|
99
|
+
target_key: row.target_key,
|
|
100
|
+
target_workspace_path: row.target_workspace_path,
|
|
101
|
+
environment_revision: row.environment_revision,
|
|
102
|
+
environment_validation_fingerprint: row.environment_validation_fingerprint,
|
|
103
|
+
lifecycle_state: row.lifecycle_state,
|
|
104
|
+
}
|
|
105
|
+
: null,
|
|
106
|
+
bound_at: row.bound_at,
|
|
107
|
+
released_at: row.released_at,
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
export const listExecutionEnvironmentContextsForRuns = (projectId, executionRunIds) => {
|
|
111
|
+
if (executionRunIds.length === 0 || !db.prepare(`
|
|
112
|
+
SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'execution_environments'
|
|
113
|
+
`).get()) {
|
|
114
|
+
return new Map();
|
|
115
|
+
}
|
|
116
|
+
const placeholders = executionRunIds.map(() => '?').join(', ');
|
|
117
|
+
const rows = db.prepare(`
|
|
118
|
+
SELECT binding.execution_run_id, binding.relationship,
|
|
119
|
+
binding.environment_id AS binding_environment_id,
|
|
120
|
+
binding.environment_revision AS binding_environment_revision,
|
|
121
|
+
binding.environment_validation_fingerprint AS binding_environment_validation_fingerprint,
|
|
122
|
+
binding.authority_json,
|
|
123
|
+
binding.placement_json, binding.bound_at, binding.released_at, environment.id,
|
|
124
|
+
environment.provider_kind, environment.provider_version, environment.target_kind,
|
|
125
|
+
environment.target_key, environment.target_workspace_path, environment.environment_revision,
|
|
126
|
+
environment.environment_validation_fingerprint, environment.lifecycle_state
|
|
127
|
+
FROM execution_environment_run_bindings binding
|
|
128
|
+
LEFT JOIN execution_environments environment
|
|
129
|
+
ON environment.id = binding.environment_id
|
|
130
|
+
AND environment.project_id = binding.project_id
|
|
131
|
+
WHERE binding.project_id = ? AND binding.execution_run_id IN (${placeholders})
|
|
132
|
+
ORDER BY binding.bound_at DESC, binding.environment_id DESC
|
|
133
|
+
`).all(projectId, ...executionRunIds);
|
|
134
|
+
const contexts = new Map();
|
|
135
|
+
for (const row of rows) {
|
|
136
|
+
const runId = row.execution_run_id;
|
|
137
|
+
if (!contexts.has(runId)) {
|
|
138
|
+
contexts.set(runId, serializeContext(row));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return contexts;
|
|
142
|
+
};
|
|
143
|
+
export const getExecutionEnvironmentContextForRun = (projectId, executionRunId) => (listExecutionEnvironmentContextsForRuns(projectId, [executionRunId]).get(executionRunId) ?? null);
|
|
144
|
+
//# sourceMappingURL=executionEnvironmentContexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionEnvironmentContexts.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentContexts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
2
|
+
import { ExecutionEnvironmentUnsupportedFailure } from './executionEnvironment.js';
|
|
3
|
+
export const EXECUTION_ENVIRONMENT_VALIDATION_FINGERPRINT_FORMAT = 'archon-environment-validation-v1';
|
|
4
|
+
const assertFingerprintComponent = (value, name) => {
|
|
5
|
+
if (value.length === 0 || Buffer.byteLength(value, 'utf8') > 500) {
|
|
6
|
+
throw new Error(`${name} must contain between 1 and 500 bytes`);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
const appendFingerprintComponent = (hash, name, value) => {
|
|
10
|
+
const bytes = Buffer.from(value, 'utf8');
|
|
11
|
+
hash.update(`${name}:${bytes.length}:`, 'utf8');
|
|
12
|
+
hash.update(bytes);
|
|
13
|
+
hash.update('\n', 'utf8');
|
|
14
|
+
};
|
|
15
|
+
export const canonicalizeEnvironmentValidationFingerprintInput = (input) => {
|
|
16
|
+
if (input.workspaceMode !== 'direct') {
|
|
17
|
+
throw new Error('Environment validation supports only direct workspace mode');
|
|
18
|
+
}
|
|
19
|
+
if (input.template.kind !== 'identity' && input.template.kind !== 'digest') {
|
|
20
|
+
throw new Error('Environment template must use an identity or digest');
|
|
21
|
+
}
|
|
22
|
+
assertFingerprintComponent(input.template.value, 'Environment template identity');
|
|
23
|
+
assertFingerprintComponent(input.validationSuiteSchemaVersion, 'Validation-suite schema version');
|
|
24
|
+
assertFingerprintComponent(input.adapterContractVersion, 'Adapter contract version');
|
|
25
|
+
assertFingerprintComponent(input.qualifiedSbxVersion, 'Qualified sbx version');
|
|
26
|
+
const compatibleAgents = [...new Set(input.compatibleAgents)].sort();
|
|
27
|
+
if (compatibleAgents.length === 0
|
|
28
|
+
|| compatibleAgents.some(agent => agent !== 'opencode' && agent !== 'claude')) {
|
|
29
|
+
throw new Error('Compatible agents must contain at least one supported agent');
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
workspaceMode: 'direct',
|
|
33
|
+
template: { ...input.template },
|
|
34
|
+
compatibleAgents,
|
|
35
|
+
validationSuiteSchemaVersion: input.validationSuiteSchemaVersion,
|
|
36
|
+
adapterContractVersion: input.adapterContractVersion,
|
|
37
|
+
qualifiedSbxVersion: input.qualifiedSbxVersion,
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export const createEnvironmentValidationFingerprint = (input) => {
|
|
41
|
+
const canonical = canonicalizeEnvironmentValidationFingerprintInput(input);
|
|
42
|
+
const hash = createHash('sha256');
|
|
43
|
+
appendFingerprintComponent(hash, 'format', EXECUTION_ENVIRONMENT_VALIDATION_FINGERPRINT_FORMAT);
|
|
44
|
+
appendFingerprintComponent(hash, 'workspace_mode', canonical.workspaceMode);
|
|
45
|
+
appendFingerprintComponent(hash, 'template_kind', canonical.template.kind);
|
|
46
|
+
appendFingerprintComponent(hash, 'template_value', canonical.template.value);
|
|
47
|
+
for (const agent of canonical.compatibleAgents) {
|
|
48
|
+
appendFingerprintComponent(hash, 'compatible_agent', agent);
|
|
49
|
+
}
|
|
50
|
+
appendFingerprintComponent(hash, 'validation_suite_schema_version', canonical.validationSuiteSchemaVersion);
|
|
51
|
+
appendFingerprintComponent(hash, 'adapter_contract_version', canonical.adapterContractVersion);
|
|
52
|
+
appendFingerprintComponent(hash, 'qualified_sbx_version', canonical.qualifiedSbxVersion);
|
|
53
|
+
return hash.digest('hex');
|
|
54
|
+
};
|
|
55
|
+
export const requireExecutionCapabilities = (provider, observation, requiredCapabilities) => {
|
|
56
|
+
for (const capability of requiredCapabilities) {
|
|
57
|
+
const support = observation.capabilities[capability];
|
|
58
|
+
if (support !== 'supported') {
|
|
59
|
+
throw new ExecutionEnvironmentUnsupportedFailure(provider, capability, `Execution provider "${provider}" does not guarantee capability "${capability}" (${support}).`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=executionEnvironmentLifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executionEnvironmentLifecycle.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentLifecycle.ts"],"names":[],"mappings":"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"}
|