@kern0x1b/penstock-cli 26.11.0 → 26.11.2
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/THIRD-PARTY-NOTICES.md +16 -16
- package/dist/chunk-account-BaYNvO18.js +1 -0
- package/dist/{chunk-agentLaunch-D21uPuMr.js → chunk-agentLaunch-BnrpVME4.js} +1 -1
- package/dist/chunk-agentServe-BeOh1rjE.js +10 -0
- package/dist/chunk-agents-CZJoU2u2.js +1 -0
- package/dist/chunk-agentsMigrate-DnrqoXNz.js +2 -0
- package/dist/{chunk-analyze-BG-rlggA.js → chunk-analyze-ClE2LBCj.js} +1 -1
- package/dist/chunk-analyze-DgQqzEgb.js +1 -0
- package/dist/{chunk-analyzeFlow-2cYPgjh-.js → chunk-analyzeFlow-F2ZFmJhv.js} +1 -1
- package/dist/chunk-apiTemplates-Cl_z63FA.js +1 -0
- package/dist/{chunk-bot-DlhStBoG.js → chunk-bot-C2k8yaXA.js} +5 -5
- package/dist/chunk-cmmnFindings-DKpYqUZN.js +1 -0
- package/dist/{chunk-codeFactSet-LxSnQy8K.js → chunk-codeFactSet-DiAYqvbb.js} +1 -1
- package/dist/{chunk-codeIndex-N1gnP_sW.js → chunk-codeIndex-vStNh6Bm.js} +1 -1
- package/dist/chunk-codeLinks-BVpn4_Sr.js +1 -0
- package/dist/chunk-codeLinks-BrGduhsm.js +1 -0
- package/dist/chunk-command-8s6m3ZUw.js +5 -0
- package/dist/chunk-command-aMxPQdiV.js +1 -0
- package/dist/chunk-command-vH1_y5F0.js +1 -0
- package/dist/chunk-commands-B8YVT41b.js +5 -0
- package/dist/{chunk-commands-DcjlDt7B.js → chunk-commands-CJCSznbv.js} +1 -1
- package/dist/chunk-compose-BUJTvoFX.js +4 -0
- package/dist/chunk-connections-Drr67X9U.js +1 -0
- package/dist/chunk-connectors-DcMqy0u8.js +1 -0
- package/dist/chunk-convert-Ce1MZmsE.js +3 -0
- package/dist/chunk-convert-FkMnlxyi.js +1 -0
- package/dist/chunk-deploy-BHg8pB9x.js +1 -0
- package/dist/chunk-deploy-DZgCTgaY.js +6 -0
- package/dist/{chunk-diagrams-BukAOL0g.js → chunk-diagrams-CtGMGTa8.js} +1 -1
- package/dist/chunk-diff-9hjavV6V.js +1 -0
- package/dist/chunk-diff-Dp3fUALc.js +1 -0
- package/dist/chunk-dispatch-o-eqJb9Y.js +7 -0
- package/dist/chunk-dmnTests-BOxutoRs.js +1 -0
- package/dist/{chunk-dmnTests-ChwX1YVo.js → chunk-dmnTests-BzNA-u2k.js} +1 -1
- package/dist/{chunk-docs-D7yEDpa4.js → chunk-docs-B3C3pZpY.js} +17 -17
- package/dist/chunk-doctor-CRxbsAm7.js +1 -0
- package/dist/{chunk-editPreview-CC2vwhIW.js → chunk-editPreview-DCUnMkTU.js} +1 -1
- package/dist/chunk-evidence-ny_2ltVe.js +23 -0
- package/dist/{chunk-examples-0HkF-frb.js → chunk-examples-BG0lGXcZ.js} +9 -9
- package/dist/chunk-export-Blwjf23H.js +1 -0
- package/dist/chunk-export-kt3sBTZu.js +20 -0
- package/dist/{chunk-facts-DSVaURw5.js → chunk-facts-Dl5lLriU.js} +1 -1
- package/dist/chunk-failure-BRyRvObj.js +1 -0
- package/dist/{chunk-file-BswMa3FN.js → chunk-file-1YhfNmPn.js} +1 -1
- package/dist/chunk-import-Dh3az4BC.js +6 -0
- package/dist/chunk-importCommand-Dhikkmo0.js +1 -0
- package/dist/chunk-incident-LJe2-ohi.js +1 -0
- package/dist/chunk-init-D34Q4YA8.js +227 -0
- package/dist/chunk-lint-CnEhoYRB.js +1 -0
- package/dist/{chunk-lsp-7vA_mIt1.js → chunk-lsp-BzeJkpmf.js} +1 -1
- package/dist/chunk-main-BZF-ErAx.js +1 -0
- package/dist/chunk-mcp-B_B9bet5.js +95 -0
- package/dist/{chunk-mcpLaunch-LyfmIF_Z.js → chunk-mcpLaunch-BS709697.js} +1 -1
- package/dist/chunk-migrate-DVfXC-iJ.js +1 -0
- package/dist/chunk-migrate-DwWg0k5_.js +16 -0
- package/dist/{chunk-migrateApply-CzOkgKhB.js → chunk-migrateApply-e8O9oZXP.js} +3 -3
- package/dist/chunk-migrateVerify-oIBf-PM3.js +1 -0
- package/dist/{chunk-model-f8AzYUK7.js → chunk-model-BulEKnY1.js} +2 -2
- package/dist/{chunk-parse-B-uKGDy-.js → chunk-parse-DiOcpdOU.js} +1 -1
- package/dist/{chunk-penstockCli-CKMvaZ0O.js → chunk-penstockCli-C41P_G7i.js} +1 -1
- package/dist/chunk-policy-BVb7c7G_.js +1 -0
- package/dist/chunk-policyGate-BOgKsqLq.js +2 -0
- package/dist/chunk-pr-1jKcTNnP.js +1 -0
- package/dist/{chunk-project-DBYOlYRi.js → chunk-project-COaBZhMt.js} +1 -1
- package/dist/chunk-project-lO_6DX8G.js +1 -0
- package/dist/chunk-promotion-CTMPjXjZ.js +2 -0
- package/dist/chunk-promotion-DDLrgBqZ.js +1 -0
- package/dist/{chunk-promotion-DchO6xoC.js → chunk-promotion-NeRj4uTP.js} +1 -1
- package/dist/chunk-receipt-C4NqnSkH.js +1 -0
- package/dist/chunk-receiptDeps-B7MehyHT.js +1 -0
- package/dist/chunk-receiptGate-BZCKCMTV.js +1 -0
- package/dist/chunk-receiptGate-DRcw327y.js +1 -0
- package/dist/{chunk-receiptSnapshot-B6ruXw8z.js → chunk-receiptSnapshot-CHSk3_4N.js} +1 -1
- package/dist/{chunk-receiptStore-Cy-L0H1u.js → chunk-receiptStore-DhROtI2h.js} +1 -1
- package/dist/chunk-refactor-CO3qyIEv.js +17 -0
- package/dist/chunk-refactor-CWeCOl7w.js +1 -0
- package/dist/{chunk-render-Ci5d6mg4.js → chunk-render-DZd5hScS.js} +1 -1
- package/dist/chunk-report-w7YZwhyg.js +1 -0
- package/dist/chunk-review-DYMgFDSy.js +1 -0
- package/dist/chunk-say-CP1IyOSv.js +1 -0
- package/dist/{chunk-security-VgKwtohm.js → chunk-security-pgip-kdY.js} +2 -2
- package/dist/chunk-serve-CKt2rO05.js +10 -0
- package/dist/{chunk-share-CBV2FuKq.js → chunk-share-rsL0itIM.js} +18 -18
- package/dist/chunk-stages-B2sBBxUc.js +3 -0
- package/dist/chunk-systemError-O3vQ8hLb.js +1 -0
- package/dist/chunk-systemError-n2E6isvg.js +1 -0
- package/dist/chunk-taskTest-DWoME1mY.js +2 -0
- package/dist/chunk-taskTest-JErgWO6t.js +1 -0
- package/dist/{chunk-templateDiagnostics-BwH7RNkz.js → chunk-templateDiagnostics-6txfKwas.js} +2 -2
- package/dist/chunk-templates-Y3xfCO_3.js +1 -0
- package/dist/chunk-testCases-BwimUfDC.js +4 -0
- package/dist/chunk-testCases-DO2Rkyvd.js +1 -0
- package/dist/chunk-tests-Cy325OGw.js +1 -0
- package/dist/chunk-tests-DNkORsqB.js +23 -0
- package/dist/{chunk-trust-DXcsUJaK.js → chunk-trust-DSX-k3by.js} +1 -1
- package/dist/{chunk-trust-DubjEjlN.js → chunk-trust-Di4EYPah.js} +1 -1
- package/dist/{chunk-variableChecks-KnECGMR3.js → chunk-variableChecks-CBDpmI4d.js} +1 -1
- package/dist/{chunk-workerVariables-CajAcbwl.js → chunk-workerVariables-CNnCRijJ.js} +1 -1
- package/dist/{chunk-workerVariables-DIDoUpHF.js → chunk-workerVariables-CulLc3YH.js} +1 -1
- package/dist/chunk-wrapper-CGYED7G2.js +1 -0
- package/dist/chunk-wrapper-CK7Xtes6.js +3 -0
- package/dist/grammars/web-tree-sitter.wasm +0 -0
- package/dist/penstock.js +1 -1
- package/dist/web/assets/{AgentSettings-Cn5Vcph3.js → AgentSettings-D24jOuht.js} +1 -1
- package/dist/web/assets/{AgentsDialog-C6WqzlxZ.js → AgentsDialog-BMWv3Gyk.js} +1 -1
- package/dist/web/assets/{AgentsDialog-dpbwVSxk.js → AgentsDialog-DbY2O6O5.js} +1 -1
- package/dist/web/assets/{AgentsTab-C34OhVkw.js → AgentsTab-D6LbK6sG.js} +2 -2
- package/dist/web/assets/{BpmnCanvas-yur9daZa.js → BpmnCanvas-BcQRQ2Br.js} +27 -27
- package/dist/web/assets/BpmnDocument-Ce5F4K1e.js +27 -0
- package/dist/web/assets/CmmnDocument-C_UlPowC.js +17 -0
- package/dist/web/assets/{ConflictDialog-Bb5kduaR.js → ConflictDialog-DfFp8F7n.js} +1 -1
- package/dist/web/assets/{ConnectionsDialog-qtF7yDFw.js → ConnectionsDialog-BaYtHD5h.js} +1 -1
- package/dist/web/assets/{DiffDocument-LHOif5Ac.js → DiffDocument-BOPdBEN3.js} +1 -1
- package/dist/web/assets/{DmnDocument-0f5uS67x.css → DmnDocument-DZ9u2uk2.css} +1 -1
- package/dist/web/assets/DmnDocument-vtnARy7Q.js +41 -0
- package/dist/web/assets/{DriftDialog-Chl6BX6k.js → DriftDialog-dIbCbSK2.js} +1 -1
- package/dist/web/assets/FormDocument-B0q8DF9v.css +1 -0
- package/dist/web/assets/FormDocument-DHBUBUzO.js +32 -0
- package/dist/web/assets/FormStepView-CbHb32_8.js +1 -0
- package/dist/web/assets/{GraphAwareLayoutService-wsos3yPD.js → GraphAwareLayoutService-C5N8K9dm.js} +1 -1
- package/dist/web/assets/{MigrationDialog-CBJU7Oe3.js → MigrationDialog-DA3Vrzgw.js} +1 -1
- package/dist/web/assets/{NewFileDialog-B7075LWG.js → NewFileDialog-Dev41oA1.js} +1 -1
- package/dist/web/assets/PolicyDialog-qR19Csji.js +1 -0
- package/dist/web/assets/{QuickOpen-DJQrI7Od.js → QuickOpen-ps-rMjiS.js} +1 -1
- package/dist/web/assets/ScriptPane-BQLMNYzc.js +2 -0
- package/dist/web/assets/{ScriptRunDialog-BwE4cXnp.js → ScriptRunDialog-YivjHB6j.js} +1 -1
- package/dist/web/assets/{SettingsDialog-c307wPsg.js → SettingsDialog-DI0vZ6Ay.js} +1 -1
- package/dist/web/assets/ShortcutsDialog-DLXnv4Vm.js +1 -0
- package/dist/web/assets/SourceDocument-Cj8cGsoS.js +1 -0
- package/dist/web/assets/TemplateDocument-BRyFsofH.js +7 -0
- package/dist/web/assets/TextDocument-DB2hEuMA.js +1 -0
- package/dist/web/assets/{UnreadableFileLayer-CUP_30X8.js → UnreadableFileLayer-CRW3MM7w.js} +1 -1
- package/dist/web/assets/{UploadDialog-CaVBOxUL.js → UploadDialog-D-X6GG98.js} +1 -1
- package/dist/web/assets/Viewer-BcpDlvg_.js +4 -0
- package/dist/web/assets/apply-Nsj6ek02.js +1 -0
- package/dist/web/assets/{bpmnTheme-CZ7xp4R5.js → bpmnTheme-pKgl9Mrn.js} +2 -2
- package/dist/web/assets/{data-ZauKnQ2Z.js → data-CdiToGOq.js} +2 -2
- package/dist/web/assets/{data-Da5Nxzev.js → data-wU6sw6RY.js} +1 -1
- package/dist/web/assets/{dialog-DSLu1Bbo.js → dialog-BDJ5dDiU.js} +1 -1
- package/dist/web/assets/{diff-C4hitkRR.js → diff-BhYqTg4l.js} +1 -1
- package/dist/web/assets/dist-27z6Phtg.js +23 -0
- package/dist/web/assets/{dist-CofBTWz1.js → dist-B7TL-7R3.js} +4 -4
- package/dist/web/assets/dist-BEpeEbIu.js +1 -0
- package/dist/web/assets/{dist-CYCbBoYQ.js → dist-BTf7NfeQ.js} +1 -1
- package/dist/web/assets/{dist-CJKVV2_S.js → dist-BqGv7f4M.js} +10 -10
- package/dist/web/assets/dist-C-q1IWjr.js +6 -0
- package/dist/web/assets/{dist-Blylfrak.js → dist-CJx_2eBF.js} +2 -2
- package/dist/web/assets/dist-COUY_jv5.js +1 -0
- package/dist/web/assets/{dist-DpDu6Wz_.js → dist-CWjAtsKe.js} +1 -1
- package/dist/web/assets/{dist-gb3IfUZi.js → dist-Cv8_A_95.js} +2 -2
- package/dist/web/assets/dist-DDE6BjgI.js +5 -0
- package/dist/web/assets/{dist-7VC_hKpw.js → dist-DDNYYQtV.js} +1 -1
- package/dist/web/assets/dist-DW-S9iZN.js +1 -0
- package/dist/web/assets/dist-OnU5n5o1.js +1 -0
- package/dist/web/assets/dmn-Cgoh6wXm.js +3 -0
- package/dist/web/assets/{documentBridge-1Eg7H9yI.js → documentBridge-CHw4XsZH.js} +3 -3
- package/dist/web/assets/{documents-LG-7CTrn.js → documents-CEtohzAC.js} +1 -1
- package/dist/web/assets/duplicate-D_ic-m62.js +342 -0
- package/dist/web/assets/{engines-DhO6OW1S.js → engines-lyEvb0pH.js} +1 -1
- package/dist/web/assets/{executable-BTarDLry.js → executable--4381_Lf.js} +1 -1
- package/dist/web/assets/{file-CIeVSOHy.js → file-BbVBUuIH.js} +1 -1
- package/dist/web/assets/formChecks-CSClH9sH.js +1 -0
- package/dist/web/assets/frontend-uXAWaalt.js +1 -0
- package/dist/web/assets/{httpHost-DBSjdVth.js → httpHost-C973OTRe.js} +1 -1
- package/dist/web/assets/{index.es-pigASDxC.js → index.es-CMvq8Bhe.js} +3 -3
- package/dist/web/assets/index.es-GbdJvMnO.js +78 -0
- package/dist/web/assets/{index.esm-CTLpq4ik.js → index.esm-Ba6q0zSu.js} +1 -1
- package/dist/web/assets/{intelligence-_1C71hkQ.js → intelligence-DNqJNmdB.js} +3 -3
- package/dist/web/assets/{jspdf.es.min-PgZzOmkT.js → jspdf.es.min-C0L4zezU.js} +6 -6
- package/dist/web/assets/{kind-X3_nabTt.js → kind-DDHnk6dW.js} +1 -1
- package/dist/web/assets/{lib-BmLAen_d.js → lib-DrkEMJ65.js} +1 -1
- package/dist/web/assets/{list-DovB9lWV.js → list-TmXvCwja.js} +1 -1
- package/dist/web/assets/{migrationHost-BcguK4K5.js → migrationHost-DCWBb3L6.js} +1 -1
- package/dist/web/assets/moddle-f0Q4Guwd.js +1 -0
- package/dist/web/assets/{model--Bj28IOj.js → model-afHgSxJs.js} +1 -1
- package/dist/web/assets/{nudges-UF9_cBuO.js → nudges-DPG3WpyV.js} +1 -1
- package/dist/web/assets/{open-C9Kt9JLw.js → open-Vkx72dYx.js} +1 -1
- package/dist/web/assets/platform-G53Cenyw.js +2 -0
- package/dist/web/assets/{preload-helper-VRuDKI9K.js → preload-helper-DExCAR_V.js} +1 -1
- package/dist/web/assets/{run-BZgz1U9U.js → run-BMfRBe5O.js} +1 -1
- package/dist/web/assets/samples-BL3jA_Vd.js +1 -0
- package/dist/web/assets/{say-WvEHqIbO.js → say-BkdZMivA.js} +1 -1
- package/dist/web/assets/{say-ChFGKK2E.js → say-C7KqKcFr.js} +1 -1
- package/dist/web/assets/{sections-N6WYk7b8.js → sections-LJKSRDTS.js} +1 -1
- package/dist/web/assets/sharedReader-BsXfiBT8.js +1 -0
- package/dist/web/assets/{source-frame-DcptKpVq.js → source-frame-DC4W0A5-.js} +2 -2
- package/dist/web/assets/{syntax-DW10Wzg4.js → syntax-00Hk6Xv7.js} +4 -4
- package/dist/web/assets/{template-CMl68jPp.js → template-BQP7ZXdK.js} +1 -1
- package/dist/web/assets/testCaseRuns-liAhWMg7.js +1 -0
- package/dist/web/assets/{trace-DLziNpe2.js → trace-DXQU2N_l.js} +1 -1
- package/dist/web/assets/{translator-DLDFsUlE.js → translator-BLCeE6UY.js} +1 -1
- package/dist/web/assets/ui-BLtm3Y1J.js +1 -0
- package/dist/web/assets/{useTrace-UYBskc2k.js → useTrace-dZdQ805W.js} +1 -1
- package/dist/web/assets/web-C4k0NLZ9.js +982 -0
- package/dist/web/assets/web-CnDpD6qy.css +1 -0
- package/dist/web/assets/{workerVariables-DURgyUbG.js → workerVariables-O6VqwDzr.js} +1 -1
- package/dist/web/assets/xml-DIWt4von.js +1 -0
- package/dist/web/index.html +39 -40
- package/package.json +5 -5
- package/dist/chunk-account-CpZu-RTg.js +0 -1
- package/dist/chunk-agentServe-BYRtgGGD.js +0 -10
- package/dist/chunk-agents-B9oxdPTA.js +0 -1
- package/dist/chunk-agentsMigrate-BV8TeRXq.js +0 -2
- package/dist/chunk-analyze-pgzR-Cx-.js +0 -1
- package/dist/chunk-apiTemplates-cU7C8vap.js +0 -1
- package/dist/chunk-cmmnFindings-S2TGSnEp.js +0 -1
- package/dist/chunk-codeLinks-C8N6e8k3.js +0 -1
- package/dist/chunk-codeLinks-o0a8tBGk.js +0 -1
- package/dist/chunk-command-Bqlbgo-2.js +0 -1
- package/dist/chunk-command-DT84ioJb.js +0 -5
- package/dist/chunk-command-DrGP2kg8.js +0 -1
- package/dist/chunk-commands-B4PoZbpX.js +0 -5
- package/dist/chunk-compose-CWKKVtN5.js +0 -4
- package/dist/chunk-connections-DQpKbIGD.js +0 -1
- package/dist/chunk-connectors-PtAvE91B.js +0 -1
- package/dist/chunk-convert-CpgtOlZk.js +0 -1
- package/dist/chunk-convert-HbFpg8ab.js +0 -3
- package/dist/chunk-deploy-l4MdFfn8.js +0 -6
- package/dist/chunk-deploy-qRaaKGZb.js +0 -1
- package/dist/chunk-diff-BhTFlCE3.js +0 -1
- package/dist/chunk-diff-kBF83vzM.js +0 -1
- package/dist/chunk-dispatch-BnO-QhMh.js +0 -7
- package/dist/chunk-dmnTests-0x_yUH6S.js +0 -1
- package/dist/chunk-doctor-BuHK1dTm.js +0 -1
- package/dist/chunk-evidence-oLw_C6j8.js +0 -23
- package/dist/chunk-export-cIFHDXug.js +0 -1
- package/dist/chunk-export-jBVxtmCH.js +0 -20
- package/dist/chunk-failure-D5brrYW2.js +0 -1
- package/dist/chunk-import-BBOe-5RZ.js +0 -6
- package/dist/chunk-importCommand-DRjYoljA.js +0 -1
- package/dist/chunk-incident-BK1h37CD.js +0 -1
- package/dist/chunk-init-_OALJuKm.js +0 -227
- package/dist/chunk-lint-7KJFxyCN.js +0 -1
- package/dist/chunk-main-Cw2JXCil.js +0 -1
- package/dist/chunk-mcp-K63bhqnF.js +0 -95
- package/dist/chunk-migrate-BMwBV5sc.js +0 -16
- package/dist/chunk-migrate-CxfVmKt0.js +0 -1
- package/dist/chunk-migrateVerify-DSEXSpfR.js +0 -1
- package/dist/chunk-policy-BX0Ftdws.js +0 -1
- package/dist/chunk-policyGate-dmcufnwB.js +0 -2
- package/dist/chunk-pr-ByrGcfam.js +0 -1
- package/dist/chunk-project-DA3KnAZH.js +0 -1
- package/dist/chunk-promotion-Boedyq43.js +0 -1
- package/dist/chunk-promotion-D8Ti-vxp.js +0 -2
- package/dist/chunk-receipt-CusJaqNn.js +0 -1
- package/dist/chunk-receiptDeps-oVbX156d.js +0 -1
- package/dist/chunk-receiptGate-DrGChj7i.js +0 -1
- package/dist/chunk-receiptGate-xldHKMyJ.js +0 -1
- package/dist/chunk-refactor-B1W_MGTp.js +0 -1
- package/dist/chunk-refactor-BJXxEtVs.js +0 -17
- package/dist/chunk-report-D9pM09Nu.js +0 -1
- package/dist/chunk-review-UcqS5AAi.js +0 -1
- package/dist/chunk-say-CYb4HeJD.js +0 -1
- package/dist/chunk-serve-Dmqen1yd.js +0 -10
- package/dist/chunk-stages-BTQJrAMF.js +0 -3
- package/dist/chunk-systemError-BYrMzp2o.js +0 -1
- package/dist/chunk-systemError-CXvnhNPK.js +0 -1
- package/dist/chunk-taskTest-9gMsx0zu.js +0 -2
- package/dist/chunk-taskTest-BjXYpG5p.js +0 -1
- package/dist/chunk-templates-D3ouIwHD.js +0 -1
- package/dist/chunk-testCases-9jwT_Y7z.js +0 -4
- package/dist/chunk-testCases-BcpBPg9L.js +0 -1
- package/dist/chunk-tests-CEEXnWOp.js +0 -23
- package/dist/chunk-tests-CRVosdWp.js +0 -1
- package/dist/chunk-wrapper-B2WnOIoB.js +0 -3
- package/dist/chunk-wrapper-DiKCKZti.js +0 -1
- package/dist/web/assets/BpmnDocument-C247Rqim.js +0 -27
- package/dist/web/assets/CmmnDocument-Dj48bsUd.js +0 -17
- package/dist/web/assets/DmnDocument-Cb9Zi9fS.js +0 -41
- package/dist/web/assets/FormDocument-DoZaxWd-.js +0 -32
- package/dist/web/assets/FormDocument-URLcKn84.css +0 -1
- package/dist/web/assets/FormStepView-D8MFcpeI.js +0 -1
- package/dist/web/assets/PolicyDialog-CGdglmDn.js +0 -1
- package/dist/web/assets/ScriptPane-T6M5f6fc.js +0 -2
- package/dist/web/assets/ShortcutsDialog-BAoL9EHu.js +0 -1
- package/dist/web/assets/SourceDocument-C9KIzBA5.js +0 -1
- package/dist/web/assets/TemplateDocument-CNt2turg.js +0 -7
- package/dist/web/assets/TextDocument-CtkHoEqN.js +0 -1
- package/dist/web/assets/Viewer-DZske1C5.js +0 -4
- package/dist/web/assets/apply-nnKP9HIM.js +0 -1
- package/dist/web/assets/dist--PmHUHDp.js +0 -1
- package/dist/web/assets/dist-BoPrKCf2.js +0 -5
- package/dist/web/assets/dist-C1m02xAO.js +0 -1
- package/dist/web/assets/dist-CLqJMzT-.js +0 -1
- package/dist/web/assets/dist-D3jqq0XS.js +0 -1
- package/dist/web/assets/dist-DA-9F0U9.js +0 -1
- package/dist/web/assets/dist-DojzF5q2.js +0 -6
- package/dist/web/assets/dist-yvjzrXXf.js +0 -23
- package/dist/web/assets/dmn-DwdcYXGr.js +0 -3
- package/dist/web/assets/duplicate-D-ilQqKz.js +0 -342
- package/dist/web/assets/formChecks-CGox1z7R.js +0 -1
- package/dist/web/assets/frontend-Qq5hBH0U.js +0 -1
- package/dist/web/assets/index.es-CcNNw3VB.js +0 -78
- package/dist/web/assets/moddle-DJxj0oEU.js +0 -1
- package/dist/web/assets/platform-BLPhsye9.js +0 -2
- package/dist/web/assets/samples-oeXBsJ9Y.js +0 -1
- package/dist/web/assets/sharedReader-Bopy7Uk9.js +0 -1
- package/dist/web/assets/testCaseRuns-B_XdqGFh.js +0 -1
- package/dist/web/assets/ui-BTKMbWYG.js +0 -1
- package/dist/web/assets/web-FzNBw1kZ.css +0 -1
- package/dist/web/assets/web-jPMZVwbQ.js +0 -982
- package/dist/web/assets/xml-DTgZ-B-l.js +0 -1
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -18,7 +18,7 @@ Contact: 157722763+kern0x1b@users.noreply.github.com
|
|
|
18
18
|
|
|
19
19
|
## Components with license terms reproduced in full
|
|
20
20
|
|
|
21
|
-
### @bpmn-io/form-js-editor 2.
|
|
21
|
+
### @bpmn-io/form-js-editor 2.2.0
|
|
22
22
|
|
|
23
23
|
License: SEE LICENSE IN LICENSE
|
|
24
24
|
Homepage: https://github.com/bpmn-io/form-js.git
|
|
@@ -49,7 +49,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
49
49
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
### @bpmn-io/form-js-viewer 2.
|
|
52
|
+
### @bpmn-io/form-js-viewer 2.2.0
|
|
53
53
|
|
|
54
54
|
License: SEE LICENSE IN LICENSE
|
|
55
55
|
Homepage: https://github.com/bpmn-io/form-js.git
|
|
@@ -111,7 +111,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
111
111
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
### dmn-js 18.0.
|
|
114
|
+
### dmn-js 18.0.3
|
|
115
115
|
|
|
116
116
|
License: SEE LICENSE IN LICENSE
|
|
117
117
|
Homepage: https://github.com/bpmn-io/dmn-js
|
|
@@ -142,7 +142,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
142
142
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
-
### dmn-js-boxed-expression 18.0.
|
|
145
|
+
### dmn-js-boxed-expression 18.0.1
|
|
146
146
|
|
|
147
147
|
License: SEE LICENSE IN LICENSE
|
|
148
148
|
Homepage: https://github.com/bpmn-io/dmn-js
|
|
@@ -173,7 +173,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
173
173
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
-
### dmn-js-decision-table 18.0.
|
|
176
|
+
### dmn-js-decision-table 18.0.3
|
|
177
177
|
|
|
178
178
|
License: SEE LICENSE IN LICENSE
|
|
179
179
|
Homepage: https://github.com/bpmn-io/dmn-js
|
|
@@ -204,7 +204,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
204
204
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
205
205
|
```
|
|
206
206
|
|
|
207
|
-
### dmn-js-drd 18.0.
|
|
207
|
+
### dmn-js-drd 18.0.1
|
|
208
208
|
|
|
209
209
|
License: SEE LICENSE IN LICENSE
|
|
210
210
|
Homepage: https://github.com/bpmn-io/dmn-js
|
|
@@ -235,7 +235,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
235
235
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
-
### dmn-js-literal-expression 18.0.
|
|
238
|
+
### dmn-js-literal-expression 18.0.1
|
|
239
239
|
|
|
240
240
|
License: SEE LICENSE IN LICENSE
|
|
241
241
|
Homepage: https://github.com/bpmn-io/dmn-js
|
|
@@ -266,7 +266,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
|
|
|
266
266
|
OR OTHER DEALINGS IN THE SOFTWARE.
|
|
267
267
|
```
|
|
268
268
|
|
|
269
|
-
### dmn-js-shared 18.0.
|
|
269
|
+
### dmn-js-shared 18.0.1
|
|
270
270
|
|
|
271
271
|
License: SEE LICENSE IN LICENSE
|
|
272
272
|
Homepage: https://github.com/bpmn-io/dmn-js
|
|
@@ -1504,7 +1504,7 @@ SOFTWARE.
|
|
|
1504
1504
|
| @bpmn-io/element-templates-validator | 2.26.0 | MIT |
|
|
1505
1505
|
| @bpmn-io/extract-process-variables | 2.2.1 | MIT |
|
|
1506
1506
|
| @bpmn-io/feel-analyzer | 0.5.1 | MIT |
|
|
1507
|
-
| @bpmn-io/feel-editor | 2.8.
|
|
1507
|
+
| @bpmn-io/feel-editor | 2.8.1 | MIT |
|
|
1508
1508
|
| @bpmn-io/feel-lint | 3.2.0 | MIT |
|
|
1509
1509
|
| @bpmn-io/feelers-editor | 1.2.0 | MIT |
|
|
1510
1510
|
| @bpmn-io/feelers-lint | 1.0.0 | MIT |
|
|
@@ -1513,9 +1513,9 @@ SOFTWARE.
|
|
|
1513
1513
|
| @bpmn-io/lang-feelers | 1.0.0 | MIT |
|
|
1514
1514
|
| @bpmn-io/lezer-feel | 3.0.1 | MIT |
|
|
1515
1515
|
| @bpmn-io/lezer-feelers | 1.0.0 | MIT |
|
|
1516
|
-
| @bpmn-io/lint-core | 0.1.
|
|
1516
|
+
| @bpmn-io/lint-core | 0.1.1 | MIT |
|
|
1517
1517
|
| @bpmn-io/moddle-utils | 0.3.0 | MIT |
|
|
1518
|
-
| @bpmn-io/properties-panel | 3.
|
|
1518
|
+
| @bpmn-io/properties-panel | 3.59.0 | MIT |
|
|
1519
1519
|
| @bpmn-io/semver-compat | 0.1.0 | MIT |
|
|
1520
1520
|
| @bpmn-io/svg-to-image | 1.0.1 | MIT |
|
|
1521
1521
|
| @bpmn-io/variable-resolver | 3.3.1 | MIT |
|
|
@@ -1534,7 +1534,7 @@ SOFTWARE.
|
|
|
1534
1534
|
| @codemirror/lang-yaml | 6.1.3 | MIT |
|
|
1535
1535
|
| @codemirror/language | 6.13.1 | MIT |
|
|
1536
1536
|
| @codemirror/legacy-modes | 6.5.5 | MIT |
|
|
1537
|
-
| @codemirror/lint | 6.9.
|
|
1537
|
+
| @codemirror/lint | 6.9.8 | MIT |
|
|
1538
1538
|
| @codemirror/lsp-client | 6.3.0 | MIT |
|
|
1539
1539
|
| @codemirror/search | 6.7.2 | MIT |
|
|
1540
1540
|
| @codemirror/state | 6.7.6 | MIT |
|
|
@@ -1573,7 +1573,7 @@ SOFTWARE.
|
|
|
1573
1573
|
| bpmn-js-task-resize | 1.2.0 | MIT |
|
|
1574
1574
|
| bpmn-js-token-simulation | 1.1.0 | MIT |
|
|
1575
1575
|
| bpmn-moddle | 10.3.1 | MIT |
|
|
1576
|
-
| bpmnlint | 12.
|
|
1576
|
+
| bpmnlint | 12.1.1 | MIT |
|
|
1577
1577
|
| bpmnlint-plugin-camunda-compat | 2.63.0 | MIT |
|
|
1578
1578
|
| bpmnlint-utils | 1.1.1 | MIT |
|
|
1579
1579
|
| camunda-bpmn-js | 5.38.0 | MIT |
|
|
@@ -1592,7 +1592,7 @@ SOFTWARE.
|
|
|
1592
1592
|
| diagram-js-grid | 2.1.0 | MIT |
|
|
1593
1593
|
| diagram-js-minimap | 5.6.0 | MIT |
|
|
1594
1594
|
| diagram-js-origin | 1.4.2 | MIT |
|
|
1595
|
-
| didi |
|
|
1595
|
+
| didi | 12.0.0 | MIT |
|
|
1596
1596
|
| dmn-js-properties-panel | 3.13.0 | MIT |
|
|
1597
1597
|
| dmn-moddle | 12.2.1 | MIT |
|
|
1598
1598
|
| domify | 3.0.0 | MIT |
|
|
@@ -1608,7 +1608,7 @@ SOFTWARE.
|
|
|
1608
1608
|
| inherits | 2.0.4 | ISC |
|
|
1609
1609
|
| inherits-browser | 0.1.0 | ISC |
|
|
1610
1610
|
| iobuffer | 5.4.0 | MIT |
|
|
1611
|
-
| js-base64 | 3.9.
|
|
1611
|
+
| js-base64 | 3.9.6 | BSD-3-Clause |
|
|
1612
1612
|
| jspdf | 4.2.1 | MIT |
|
|
1613
1613
|
| lodash | 4.18.1 | MIT |
|
|
1614
1614
|
| luxon | 3.7.2 | MIT |
|
|
@@ -1641,7 +1641,7 @@ SOFTWARE.
|
|
|
1641
1641
|
| tree-sitter-scala | 0.24.0 | MIT |
|
|
1642
1642
|
| uuid | 14.0.3 | MIT |
|
|
1643
1643
|
| w3c-keyname | 2.2.8 | MIT |
|
|
1644
|
-
| web-tree-sitter | 0.27.
|
|
1644
|
+
| web-tree-sitter | 0.27.2 | MIT |
|
|
1645
1645
|
| webcola | 3.4.0 | MIT |
|
|
1646
1646
|
| yaml | 2.9.1 | ISC |
|
|
1647
1647
|
| zeebe-bpmn-moddle | 2.0.0 | MIT |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./chunk-features-C6o8of19.js";import{_ as t,a as n,b as r,c as i,d as a,g as o,i as s,l as c,n as l,s as u,u as d,v as f,y as p}from"./chunk-license-BG88gpDZ.js";import{t as m}from"./chunk-table-BOiaGWwY.js";import{r as h}from"./chunk-translator-DNm9zRpP.js";import{spawn as g}from"node:child_process";import{createInterface as _}from"node:readline/promises";function v(e){return e.ask?e.ask:async e=>{let t=_({input:process.stdin,output:process.stderr});try{return(await t.question(e)).trim()}finally{t.close()}}}function y(e){return e.say??(e=>process.stderr.write(`${e}\n`))}const b=/["\u0000-\u001f]/;function x(e,t=process.platform){let n;try{n=new URL(e).protocol}catch{return null}return n!==`http:`&&n!==`https:`||b.test(e)?null:t===`darwin`?{command:`open`,args:[e],verbatim:!1}:t===`win32`?{command:`cmd`,args:[`/c`,`start`,`""`,`"${e}"`],verbatim:!0}:{command:`xdg-open`,args:[e],verbatim:!1}}function S(e){let t=x(e);if(t)try{g(t.command,t.args,{stdio:`ignore`,detached:!0,windowsVerbatimArguments:t.verbatim}).unref()}catch{return}}function C(e){return e.interactive??(process.stdin.isTTY===!0&&process.stderr.isTTY===!0)}function w(){return[h(`app.cli.license.notInteractive`)]}async function T(e,t){let n=v(t),r=y(t);await p(e,t),r(h(`app.cli.license.codeOnItsWay`,{email:e}));let a=null;for(let e=0;e<3&&!a;e+=1){let e=await n(h(`app.cli.license.codeQuestion`));if(!e)return null;try{a=await i(e,t)}catch(e){if(!(e instanceof l))throw e;r(e.message)}}return a}async function E(e,t){let n=v(t),r=y(t),i=await T(e,t);if(!i)return{ok:!1,lines:[h(`app.cli.license.nothingChangedAgain`)]};let a=await c(i,t);for(;a.kind===`full`;){let e=(t.now??Date.now)();r(h(`app.cli.license.tooManyMachines`,{tier:s[a.key.tier],machines:a.activations.length}));let o=a.activations.map((t,n)=>({num:`${n+1}.`,machine:t.label,since:h(`app.cli.license.since`,{when:u(t.createdAt,e)})}));m(o,{columns:[{name:`num`,align:`right`,minWidth:2},{name:`machine`,minWidth:16},{name:`since`,minWidth:14}],headers:!1}).forEach(e=>r(` ${e}`));let l=await n(h(`app.cli.license.freeWhich`)),d=a.activations[Number(l)-1];if(!d)return{ok:!1,lines:[h(`app.cli.nothingChanged`)]};await f(a.key.key,d.id,t),a=await c(i,t)}return a.kind===`none`?{ok:!1,lines:[h(`app.cli.license.noneBought`,{email:e}),h(`app.cli.license.buyOrSignIn`)]}:{ok:!0,lines:[h(`app.cli.license.activeHere`,{tier:s[a.tier],again:a.reused?h(`app.cli.license.again`):``})]}}async function D(e,t={}){if(!C(t))return{ok:!1,lines:w()};try{let n=e[0]??await v(t)(h(`app.cli.license.emailQuestion`));return n?await E(n,t):{ok:!1,lines:[h(`app.cli.nothingChanged`)]}}catch(e){return N(e)}}async function O(e,n={}){let i=e[0]??`pro`;if(i!==`pro`&&i!==`team`)return{ok:!1,lines:[h(`app.cli.license.buyUsage`)]};if(!C(n))return{ok:!1,lines:w()};let a=y(n),o=n.wait??(e=>new Promise(t=>setTimeout(t,e)));try{let e=await d(n);if(e.source===`activation`&&e.tier===i)return{ok:!0,lines:[h(`app.cli.license.alreadyActive`,{tier:s[i]})]};let c=await r(i,void 0,n);(n.open??S)(c.url),a(h(`app.cli.license.checkoutOpen`,{tier:s[i]})),a(` ${c.url}`),a(h(`app.cli.license.waitingForPayment`));let u=(n.now??Date.now)()+36e5,f=0;for(;(n.now??Date.now)()<u;){let e;try{e=await t(c.secret,n),f=0}catch(e){if(e instanceof l||(f+=1)>5)throw e;await o(3e3);continue}if(e.status===`succeeded`){let t=e.email??await v(n)(h(`app.cli.license.paidEmailQuestion`));return a(h(`app.cli.license.paid`)),await E(t,n)}if(e.status===`failed`)return{ok:!1,lines:[h(`app.cli.license.paymentFailed`)]};if(e.status===`expired`)return{ok:!1,lines:[h(`app.cli.license.checkoutExpired`)]};await o(3e3)}return{ok:!1,lines:[h(`app.cli.license.stoppedWaiting`)]}}catch(e){return N(e)}}async function k(e={}){try{let t=await a(e);return t===`released`?{ok:!0,lines:[h(`app.cli.license.released`)]}:t===`cleared`?{ok:!0,lines:[h(`app.cli.license.cleared`)]}:{ok:!1,lines:[h(`app.cli.license.nothingToRelease`)]}}catch(e){return N(e)}}function A(e){let t=e.trialEndsAt?.slice(0,10);return e.source===`trial`&&t?{ok:!1,lines:[h(`app.cli.license.trial`,{left:/\d+ days? left/.exec(e.detail)?.[0]??h(`app.cli.license.running`),ends:t}),h(`app.cli.license.keyComesWithPurchase`),h(`app.cli.license.enterAKey`)]}:{ok:!1,lines:[h(`app.cli.license.noneOnThisMachine`,{trial:t?h(`app.cli.license.trialEnded`,{ends:t}):``}),h(`app.cli.license.orBuyOne`)]}}async function j(e,t){let n=await d(t);if(n.source!==`activation`)return A(n);if(!C(t))return{ok:!1,lines:w()};let r=e??await v(t)(h(`app.cli.license.emailQuestion`));if(!r)return{ok:!1,lines:[h(`app.cli.nothingChanged`)]};let i=await T(r,t);if(!i)return{ok:!1,lines:[h(`app.cli.license.nothingChangedAgain`)]};let a=await o(i,t);if(a.length===0)return{ok:!1,lines:[h(`app.cli.license.noneBought`,{email:r})]};let c=a.filter(e=>e.tier===`team`);return c.length===0?{ok:!1,lines:[h(`app.cli.license.teamOnly`),h(`app.cli.license.buyTeam`)]}:{ok:!0,lines:[...c.map(e=>`${s[e.tier].padEnd(5)} ${e.key}`),``,h(`app.cli.license.keepKeySecret`)]}}async function M(t,r={}){let[i,a]=t;try{switch(i){case`activate`:{if(!a)return{ok:!1,lines:[h(`app.cli.license.activateUsage`)]};await n(a,r);let e=await d(r);return{ok:!0,lines:[h(`app.cli.license.activeHerePlain`,{tier:s[e.tier]})]}}case`deactivate`:return await k(r);case`key`:return await j(a,r);case void 0:case`status`:{let t=await d(r),n=[{property:h(`app.cli.license.tierRow`),value:s[t.tier]},{property:h(`app.cli.license.statusRow`),value:t.detail}],i=m(n,{columns:[{name:`property`,header:h(`app.cli.header.property`),minWidth:10},{name:`value`,header:h(`app.cli.header.value`)}],headers:!1});if(t.tier===`free`||t.source===`trial`){i.push(``,h(`app.cli.license.buyAndSignIn`));let t=e();t&&i.push(t)}return{ok:!0,lines:i}}default:return{ok:!1,lines:[h(`app.cli.license.usage`)]}}}catch(e){return N(e)}}function N(e){return e instanceof l?{ok:!1,lines:[e.message]}:{ok:!1,lines:[h(`app.cli.license.serviceUnreachable`,{reason:e instanceof Error?e.message:String(e)})]}}export{M as licenseCommand,D as loginCommand,k as logoutCommand,O as upgradeCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{A as t,J as n,Q as r,U as i,c as a,n as o,r as s}from"./chunk-mcpLaunch-
|
|
1
|
+
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{A as t,J as n,Q as r,U as i,c as a,n as o,r as s}from"./chunk-mcpLaunch-BS709697.js";import{r as c}from"./chunk-failure-BRyRvObj.js";import{o as l}from"./chunk-load-rfn3E0t5.js";import u from"node:path";import{constants as d,tmpdir as f}from"node:os";import{existsSync as p,mkdirSync as m,mkdtempSync as h,readFileSync as g,readdirSync as _,realpathSync as v,rmSync as y,statSync as b,writeFileSync as x}from"node:fs";import{spawn as S}from"node:child_process";import{randomBytes as C}from"node:crypto";const w=/^[a-z]+-(\d+)-[0-9a-f]{8}\.json$/;function T(e){return u.join(e,s.directory)}function E(e,t,n){let r=T(e);m(r,{recursive:!0,mode:448});let i=u.join(r,`${t}-${process.pid}-${C(4).toString(`hex`)}.json`);return x(i,n,{mode:384,flag:`wx`}),{file:i,remove:()=>y(i,{force:!0})}}function D(e){let t=T(e),n;try{n=_(t)}catch{return}for(let e of n){let n=w.exec(e);n&&!a(Number(n[1]))&&y(u.join(t,e),{force:!0})}}const O=[`claude`,`codex`,`gemini`,`opencode`],k=/^[A-Za-z0-9_-]+$/;function A(e){let t=(e.split(/[\\/]/).pop()??``).replace(/\.(exe|cmd|bat|com)$/i,``).toLowerCase();return O.find(e=>e===t)??`other`}function j(e,t,n){let r={...e.env};return typeof n.PENSTOCK_HOME==`string`&&n.PENSTOCK_HOME!==``&&(r.PENSTOCK_HOME=n.PENSTOCK_HOME),{command:e.command,args:[...e.args,`--project`,t],env:r}}function M(e){return k.test(e)?e:JSON.stringify(e)}function N(e){return`{${Object.entries(e).map(([e,t])=>`${M(e)}=${JSON.stringify(t)}`).join(`,`)}}`}function P(e){return JSON.stringify({mcpServers:{penstock:{type:`stdio`,command:e.command,args:e.args,env:e.env}}})}function F(e){let t=[`mcp_servers.penstock.command=${JSON.stringify(e.command)}`,`mcp_servers.penstock.args=${JSON.stringify(e.args)}`];return Object.keys(e.env).length>0&&t.push(`mcp_servers.penstock.env=${N(e.env)}`),t.flatMap(e=>[`-c`,e])}function I(e){if(e===void 0||e.trim()===``)return{};try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{}}catch{return{}}}function L(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function R(e,t){let n=I(t),r={type:`local`,command:[e.command,...e.args],enabled:!0};return Object.keys(e.env).length>0&&(r.environment=e.env),JSON.stringify({...n,mcp:{...L(n.mcp),penstock:r}})}function z(e,t){let n=I(t),r={command:e.command,args:e.args};return Object.keys(e.env).length>0&&(r.env=e.env),JSON.stringify({...n,mcpServers:{...L(n.mcpServers),penstock:r}})}function B(e){if(e!==void 0&&e!==``)try{return g(e,`utf8`)}catch{return}}function V(e,t,n,r,i,a){let o=()=>void 0;switch(e){case`claude`:{let e=E(a,`mcp`,P(t));return{args:[...i.args,...n,`--mcp-config`,e.file],env:i.env,cleanup:e.remove}}case`codex`:return{args:[...F(t),...i.args,...n],env:i.env,cleanup:o};case`opencode`:return{args:[...i.args,...n],env:{...i.env,OPENCODE_CONFIG_CONTENT:R(t,r.OPENCODE_CONFIG_CONTENT)},cleanup:o};case`gemini`:{let e=h(u.join(f(),`penstock-agent-`)),a=u.join(e,`settings.json`);return x(a,z(t,B(r.GEMINI_CLI_SYSTEM_SETTINGS_PATH)),{mode:384}),{args:[...i.args,...n],env:{...i.env,GEMINI_CLI_SYSTEM_SETTINGS_PATH:a},cleanup:()=>y(e,{recursive:!0,force:!0})}}default:return{args:[...i.args,...n],env:{...i.env,PENSTOCK_MCP_CONFIG:JSON.stringify({mcpServers:{penstock:{command:t.command,args:t.args,env:t.env}}})},cleanup:o}}}function H(r){let a=[...i().map(e=>({id:e.id,name:e.name,found:n(e.binary,r.env,r.cwd)!==null,install:e.install})),...t(r.home).map(e=>({id:e.id,name:e.name,found:n(e.command,r.env,r.cwd)!==null,install:null}))],o=Math.max(...a.map(e=>e.id.length)),s=a.map(t=>{let n=t.found?e(`app.cli.agentLaunch.installed`):t.install?e(`app.cli.agentLaunch.missing`,{install:t.install}):e(`app.cli.agentLaunch.notFound`);return` ${t.id.padEnd(o)} ${t.name}: ${n}`});return{ok:!0,lines:[e(`app.cli.agentLaunch.heading`),...s,``,e(`app.cli.agentLaunch.how`)]}}function U(...e){return{ok:!1,lines:e,code:1}}function W(t){let n=u.resolve(t);return p(n)?b(n).isDirectory()?v(n):U(e(`app.cli.web.notAFolder`,{folder:n})):U(c(n))}function G(e,t){return e===null?128+((t===null?void 0:d.signals[t])??1):e}function K(e,t,n){return new Promise(r=>{let i=S(e.command,e.args,{cwd:n,env:t,stdio:`inherit`,windowsVerbatimArguments:e.verbatim}),a=e=>()=>{i.kill(e)},o=[[`SIGTERM`,a(`SIGTERM`)],[`SIGHUP`,a(`SIGHUP`)],[`SIGINT`,()=>void 0]];for(let[e,t]of o)process.on(e,t);let s=()=>{for(let[e,t]of o)process.off(e,t)};i.once(`error`,e=>{s(),r({failure:e.message})}),i.once(`close`,(e,t)=>{s(),r({code:G(e,t)})})})}async function q(a){if(a.agent===void 0)return H(a);let s=a.agent,c=i().find(e=>e.id===s),u=c?void 0:t(a.home).find(e=>e.id===s);if(!c&&!u){let n=[...i().map(e=>e.id),...t(a.home).map(e=>e.id)].join(`, `);return U(e(`app.cli.agentLaunch.unknown`,{agent:s,list:n}))}let d=c?.name??u?.name??s,f=c?c.binary:u?.command,p=n(f,a.env,a.cwd);if(p===null)return U(c?e(`app.cli.agentLaunch.notInstalled`,{name:d,install:c.install}):e(`app.cli.agentLaunch.commandMissing`,{name:d,command:f}));let m=a.cwd,h;if(a.project!==void 0){let e=W(a.project);if(typeof e!=`string`)return e;m=e,h=e}else h=v(l(a.cwd));let g=a.mcp===void 0?o():a.mcp;if(g===null)return U(e(`app.cli.agentLaunch.noMcp`));let _=j(g,h,a.env),y=c?c.id:A(f);y===`other`&&process.stderr.write(`${e(`app.cli.agentLaunch.customNote`,{name:d})}\n`);let b;try{D(a.home),b=V(y,_,a.passthrough,a.env,{args:u?.args??[],env:u?.env??{}},a.home)}catch(t){return U(e(`app.cli.agentLaunch.cannotPrepare`,{reason:t instanceof Error?t.message:String(t)}))}let x;try{x=r({command:p,args:b.args})}catch{return b.cleanup(),U(e(`app.cli.agentLaunch.unsafeArguments`,{name:d}))}try{let t=await K(x,{...a.env,...b.env},m);return`failure`in t?U(e(`app.cli.agentLaunch.cannotStart`,{name:d,reason:t.failure})):{ok:t.code===0,lines:[],code:t.code}}finally{b.cleanup()}}function J(e){let t=e.indexOf(`--`);return t<0?[]:e.slice(t+1)}export{q as launchAgent,J as passthroughOf};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{r as e}from"./chunk-translator-DNm9zRpP.js";import{t}from"./chunk-atomicWrite-C6J1gDtO.js";import{B as n,C as r,D as i,E as a,H as o,L as s,N as c,O as l,S as u,V as d,Z as f,_ as p,a as m,b as h,c as g,d as ee,f as _,g as v,h as y,j as b,l as te,m as ne,n as re,o as ie,p as x,r as S,s as C,t as w,u as T,v as E,w as D,x as O,y as ae,z as oe}from"./chunk-mcpLaunch-BS709697.js";import{s as se,t as ce}from"./chunk-features-C6o8of19.js";import{u as le}from"./chunk-license-BG88gpDZ.js";import{r as ue,t as de}from"./chunk-preferencesFile-F6bAlNrk.js";import{n as fe}from"./chunk-aiVerify-DPNBNhx4.js";import{i as pe,n as me,r as he,t as ge}from"./chunk-receiptSnapshot-CHSk3_4N.js";import{t as _e}from"./chunk-context-rCJvBM9p.js";import{r as ve}from"./chunk-editPreview-DCUnMkTU.js";import{o as ye,r as be}from"./chunk-receiptStore-DhROtI2h.js";import{A as xe,C as Se,E as Ce,F as k,I as A,L as j,M as we,N as M,O as Te,P as N,T as P,_ as F,a as Ee,b as De,f as Oe,g as ke,j as Ae,k as I,l as je,s as Me,v as L,w as Ne,x as Pe,y as Fe}from"./chunk-security-pgip-kdY.js";import{t as R}from"./chunk-redact-Bz1nB1gq.js";import{r as Ie}from"./chunk-failure-BRyRvObj.js";import{t as Le}from"./chunk-receiptDeps-B7MehyHT.js";import{n as z}from"./chunk-version-CdS8_QQd.js";import B from"node:path";import{mkdirSync as Re,readFileSync as V,rmSync as ze,statSync as H}from"node:fs";import{execFileSync as Be,spawn as Ve}from"node:child_process";import{randomBytes as He}from"node:crypto";import{createServer as Ue}from"node:http";import{RequestError as U}from"@agentclientprotocol/sdk";function W(e,t){return m(e,t).replace(/\.json$/,`.children.json`)}function We(e){return Array.isArray(e)?e.filter(e=>{let t=e;return typeof t==`object`&&!!t&&Number.isInteger(t.pid)&&(t.pid??0)>0&&typeof t.command==`string`&&t.command!==``}):[]}function G(e){try{return We(JSON.parse(V(e,`utf8`)))}catch{return[]}}function Ge(e,n){n.length===0?ze(e,{force:!0}):(Re(B.dirname(e),{recursive:!0,mode:448}),t(e,`${JSON.stringify(n)}\n`,384))}function Ke(e,t,n){let r=W(e,t);Ge(r,[...G(r).filter(e=>e.pid!==n.pid),n])}function qe(e,t,n){let r=W(e,t);Ge(r,G(r).filter(e=>e.pid!==n))}function Je(e){if(process.platform===`win32`)return null;try{return Be(`ps`,[`-o`,`command=`,`-p`,String(e)],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return null}}async function Ye(e,t){let n=W(e,t),r=G(n).filter(e=>g(e.pid)&&Je(e.pid)?.includes(e.command));ze(n,{force:!0});for(let e of r)T(e.pid,`SIGTERM`);if(r.length!==0){await new Promise(e=>setTimeout(e,1e3));for(let e of r)g(e.pid)&&T(e.pid,`SIGKILL`)}}var Xe=class{graceMs;holds=0;attendedAt;idleAt;constructor(e,t){this.graceMs=e,this.attendedAt=t,this.idleAt=t}hold(e){this.holds+=1,this.touch(e);let t=!0;return e=>{t&&(t=!1,--this.holds,this.touch(e))}}tick(e,t,n){let r=this.holds>0;return r&&this.touch(e),t&&(this.idleAt=e),{unattended:!r&&e-this.attendedAt>=this.graceMs,leave:n?!t:!r&&e-this.idleAt>=this.graceMs}}touch(e){this.attendedAt=e,this.idleAt=e}};const K={required:[`file`],allowed:[`file`]},Ze={required:[`file`,`element`],allowed:[`file`,`element`]},Qe={required:[],allowed:[`project`]},$e={list_diagrams:Qe,show_diagram:K,element_context:Ze,check_diagram:K,analyze_flow:K,list_scenarios:K,check_code_links:Qe,search_elements:{required:[`query`],allowed:[`query`,`project`]},diff_diagrams:{required:[`file`],allowed:[`file`,`other`,`ref`]}},et=Object.keys($e),tt=[`file`,`operations`,`dryRun`],nt=/* @__PURE__ */ new Set([`edit`,`delete`,`move`]),rt=/* @__PURE__ */ new Set([`read`,`search`,`other`]),it=/* @__PURE__ */ new Set([`allowAlways`,`rejectAlways`]);function at(e,t){return RegExp(`(?:^|[^a-z0-9_]|__|penstock_)${t}(?![a-z0-9_])`,`i`).test(e.title)}function ot(e,t){return RegExp(`^\\s*(?:tool:\\s*)?(?:mcp__penstock__|penstock(?:[_/:.]|\\s*[:/]\\s*))${t}\\s*$`,`i`).test(e.title)}function st(e){return at(e,`edit_diagram`)}function ct(e,t){let n=t=>t.every(t=>typeof e[t]==`string`&&e[t]!==``);return Object.keys(e).every(e=>t.allowed.includes(e))&&n(t.required)&&n(Object.keys(e))}function lt(e,t){if(!rt.has(e.kind)||e.diffs.length>0)return!1;let n=et.find(t=>ot(e,t));if(n===void 0)return!1;let r=pt(t);return r!==null&&ct(r,$e[n])}function ut(e){return nt.has(e.kind)||e.diffs.length>0||st(e)}function dt(e){return{...e,options:e.options.filter(e=>!it.has(e.kind))}}function ft(e){return e.options.find(e=>e.kind===`allow`)?.id??null}function pt(e){let t=e;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return null}return typeof t==`object`&&t&&!Array.isArray(t)?t:null}function mt(e,t){if(!ot(e,`edit_diagram`)||e.diffs.length>0)return!1;let n=pt(t);return n===null||n.dryRun!==!0||!Object.keys(n).every(e=>tt.includes(e))?!1:typeof n.file==`string`&&n.file!==``&&n.operations!==void 0}function ht(e){let t=e;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return null}if(typeof t!=`object`||!t)return null;let n=t;return typeof n.file!=`string`||n.file===``||n.operations===void 0?null:{file:n.file,operations:n.operations}}const gt=2e5,q=8388608,J=16777216,Y=-32602,X=-32603,Z={outcome:{outcome:`cancelled`}},_t=`app.agent.authRequired`;function vt(e,t){let n=e instanceof U?e.data:null,r=[n?.message,n?.details].find(e=>typeof e==`string`&&e.trim()!==``);return r&&!t.includes(r)?`${t}: ${r}`:t}function yt(e){if(!(e instanceof U))return``;let t=([e.data?.message,e.message].find(e=>typeof e==`string`&&e.trim()!==``)??``).split(/\r?\n/).map(e=>e.trim()).find(e=>e!==``)??``;return R(Array.from(t).slice(0,300).join(``))}function bt(e,t,n,r){if(e instanceof Ae)return{key:i(e.tail),detail:e.tail===``?e.how:`${e.how}: ${e.tail}`};if(e instanceof N)return{key:`app.agent.timeout`,detail:``};if(k(e))return{key:_t,detail:yt(e),signIn:r};let a=e?.code;if(e instanceof M||a===`ENOENT`||a===`EACCES`)return{key:`app.agent.notFound`,detail:c(n,t)??``};if(e instanceof f)return{key:`app.agent.unsafe`,detail:``};let o=e instanceof Error?e.message:String(e);return{key:`app.agent.failed`,detail:R(vt(e,o))}}function xt(){return He(9).toString(`base64url`)}var St=class{host;timings;store;feed;chats=/* @__PURE__ */ new Map;processes=/* @__PURE__ */ new Map;live=/* @__PURE__ */ new Set;started=/* @__PURE__ */ new Map;owners=/* @__PURE__ */ new Map;offered=/* @__PURE__ */ new Map;dirty=/* @__PURE__ */ new Map;unsaved=/* @__PURE__ */ new Set;flushTimer=null;saveTimer=null;watcher=null;asked=0;on=!0;retiring=!1;checkedAt=0;disposed=!1;constructor(e,t={}){this.host=e,this.timings={connectMs:t.connectMs??3e4,flushMs:t.flushMs??40,killMs:t.killMs??2e3,stopMs:t.stopMs??1e4,saveMs:t.saveMs??400,prefsMs:t.prefsMs??1e3,watchMs:t.watchMs??1e3,signInMs:t.signInMs??3e5},this.store=new y(e.home,e.folder);for(let e of this.store.load())this.chats.set(e.id,v.from(e));this.feed=new Te(()=>this.replay(),t.feed),this.on=this.readEnabled()}enabled(){return this.refresh(!1),this.on}refresh(e=!0){if(this.disposed)return;let t=Date.now();if(!e&&t-this.checkedAt<this.timings.prefsMs)return;this.checkedAt=t;let n=this.readEnabled();n!==this.on&&(this.on=n,n||this.shutDown(),this.publish({type:`enabled`,enabled:n}),this.publishChats())}busy(){for(let e of this.chats.values())if(e.turn!==null||e.checking||e.questions.length>0||e.queue.length>0)return!0;return!1}retire(){return this.retiring=!0,this.busy()}drained(){return Promise.all([...this.live].map(e=>e.exited(this.timings.killMs*2))).then(()=>void 0)}cancelUnanswered(){for(let t of this.chats.values()){if(t.questions.length===0)continue;let n=t.transcript.notice(e(`app.agent.unanswered`));this.publish(this.entryEvent(t,n)),this.touch(t),this.halt(t)}}stopQuiet(t){let n=performance.now();for(let r of this.chats.values()){let i=r.turn;if(!i||i.stopping||r.questions.length>0||n-i.heard<t)continue;let a=r.transcript.notice(e(`app.agent.quiet`));this.publish(this.entryEvent(r,a)),this.touch(r),this.halt(r)}}catalog(){return xe({home:this.host.home,env:this.host.env,folder:this.host.folder,version:this.host.version})}choices(){return this.installed().map(e=>({...e,options:this.cached(e.id)}))}installed(){return l(this.host.env,this.host.home,this.host.folder)}cached(e){let t=this.offered.get(e)??A(this.host.home,e)?.options;if(!t)return[];let n=d(this.host.home,e);return t.map(e=>{let t=O.includes(e.category)?n[e.category]:void 0;return u(t!==void 0&&r(e,t)?{...e,current:t}:e)})}list(){let e=this.enabled();return e?{chats:this.dtos(),enabled:e}:{chats:[],enabled:e}}create(e){this.requireOn(),this.requireFree();let t=this.installed();if(e!==null&&!t.some(t=>t.id===e))throw x(404,`app.agent.reason.unknownAgent`,{agent:e.slice(0,80)});let n=e??b(t,this.host.home)??o(this.host.home)??t[0]?.id??`claude`,r=new v(xt(),n,Date.now());return this.chats.set(r.id,r),this.publishChats(),r.dto()}get(e){this.requireOn();let t=this.chat(e);return this.shown(t),t.describe()}rename(e,t){this.requireOn();let n=this.chat(e),r=t.replace(/[\u0000-\u001f\u007f]+/g,` `).trim();if(r===``||Array.from(r).length>120)throw x(400,`app.agent.reason.badTitle`,{limit:120});return n.title=r,this.touch(n),this.publishChats(),n.dto()}remove(t){this.requireOn();let n=this.chat(t);this.forget(n);try{this.store.remove(t)}catch(n){console.warn(e(`app.agent.log.notKept`,{id:t,reason:n instanceof Error?n.message:String(n)}))}this.publishChats()}async prompt(e,t,n=null){this.requireOn(),this.requireFree();let r=this.chat(e),i=t.trim();if(i===``||i.length>gt)throw x(400,`app.agent.reason.badText`,{limit:gt});if(await this.requireLicence(),this.requireOn(),this.requireFree(),this.chats.get(e)!==r)throw x(404,`app.agent.reason.noSuchChat`);let a=this.contextOf(n);if(this.remember(r,this.contextFile(n)),r.turn!==null||r.checking||r.queue.length>0){if(r.queue.length>=20)throw x(409,`app.agent.reason.queueFull`,{limit:20});let e={id:xt(),text:i,context:a};return r.queue.push(e),this.watch(),this.publish({type:`queue`,chatId:r.id,queue:this.queueOf(r)}),this.drainSoon(r),{queued:!0,queueId:e.id}}return this.begin(r,i,a),{queued:!1,queueId:null}}unqueue(e,t){this.requireOn();let n=this.chat(e),r=n.queue.findIndex(e=>e.id===t);if(r<0)throw x(404,`app.agent.reason.noSuchQueued`);n.queue.splice(r,1),this.publish({type:`queue`,chatId:n.id,queue:this.queueOf(n)})}stop(e){this.requireOn(),this.halt(this.chat(e))}async signIn(e){this.requireOn();let t=this.chat(e),n=t.failure;if(t.turn!==null||n?.key!==_t||n.signIn!==!0)throw x(409,`app.agent.reason.noSignIn`);if(await this.requireLicence(),this.requireOn(),this.chats.get(e)!==t)throw x(404,`app.agent.reason.noSuchChat`);try{let e=await this.processOf(t.agentId),n=e.signInMethods[0];if(n===void 0)throw x(409,`app.agent.reason.noSignIn`);await e.authenticate(n,this.timings.signInMs)}catch(e){throw e instanceof _?e:this.signInFailure(e,t.agentId)}this.chats.get(e)===t&&t.failure===n&&(t.failure=null,this.touch(t),this.publish({type:`error`,chatId:t.id,error:null}),this.publishChats())}signInFailure(e,t){return e instanceof U?x(502,`app.agent.reason.signInRefused`,{reason:yt(e)}):ne(e instanceof N?504:500,bt(e,this.host.home,t,!1))}answer(e,t,n){this.requireOn();let r=this.chat(e),i=r.questions[0];if(!i||i.permission.id!==t)throw x(409,`app.agent.reason.staleQuestion`);let a=i.permission.options.find(e=>e.id===n);if(!a)throw x(409,`app.agent.reason.badOption`,{option:n.slice(0,80)});r.questions.shift(),i.grants&&a.kind===`allow`&&this.grant(r,i.permission.tool),i.resolve(n),this.publish({type:`permission`,chatId:r.id,permission:r.questions[0]?.permission??null}),this.publishChats()}next(e,t){return this.refresh(!1),this.watch(),this.feed.next(e,t)}dispose(){if(!this.disposed){this.disposed=!0,this.watcher&&clearInterval(this.watcher),this.watcher=null,this.flush(),this.saveAll();for(let e of this.chats.values()){for(let t of e.questions.splice(0))t.resolve(null);e.turn?.stopping&&clearTimeout(e.turn.stopping)}this.shutDown(),this.saveAll(),this.feed.close()}}readEnabled(){try{return new de(this.host.home).aiChat()!==`off`}catch{return!0}}requireOn(){if(!this.enabled())throw x(409,`app.agent.reason.off`)}requireFree(){if(this.retiring)throw x(409,`app.agent.retiring`)}async requireLicence(){let e={env:this.host.env},t=await le(e);if(!(this.host.licensed?await this.host.licensed():ce(t,e)))throw new _(402,se(t,`ai-chat`,e).join(`
|
|
2
|
+
`))}chat(e){let t=this.chats.get(e);if(!t)throw x(404,`app.agent.reason.noSuchChat`);return t}forget(e){this.abandon(e),this.chats.delete(e.id),this.unsaved.delete(e),this.dirty.delete(e);for(let t of this.owners.values())e.sessionId&&t.delete(e.sessionId)}watch(){this.watcher||this.disposed||(this.watcher=setInterval(()=>this.tick(),this.timings.watchMs),this.watcher.unref())}tick(){if(!this.disposed&&(this.refresh(!1),this.on))for(let e of this.chats.values())e.queue.length>0&&e.turn===null&&this.drainSoon(e)}dtos(){return[...this.chats.values()].sort((e,t)=>t.updated-e.updated).map(e=>e.dto())}entryEvent(e,t){if(t.kind===`tool`)for(let n of t.tool.paths)this.remember(e,n);return t.kind===`tool`?{type:`tool`,chatId:e.id,tool:t.tool}:t.kind===`plan`?{type:`plan`,chatId:e.id,items:t.items}:{type:`entry`,chatId:e.id,entry:p(t)}}replay(){return[{type:`sync`},this.chatsEvent()]}chatsEvent(){let e=this.on;return{type:`chats`,chats:e?this.dtos():[],enabled:e}}publishChats(){this.flush(),this.feed.publish(this.chatsEvent())}publish(e){this.flush(),this.feed.publish(e)}queueOf(e){return e.queue.map(e=>({id:e.id,text:e.text}))}contextFile(e){if(!e||typeof e.file!=`string`||e.file===``)return null;try{return this.host.files.relative(this.host.files.resolve(e.file))}catch{return null}}remember(e,t){t!==null&&e.addFile(t)&&(this.markUnsaved(e),this.publishChats())}contextOf(t){if(!t)return null;let n=[],r=this.contextFile(t);r!==null&&n.push(e(`app.agent.contextFile`,{file:r}));let i=(t.elementIds??[]).filter(e=>typeof e==`string`&&e!==``&&e.length<=200).slice(0,50);return i.length>0&&n.push(e(`app.agent.contextElements`,{elements:i.join(`, `)})),n.length>0?n.join(`
|
|
3
|
+
`):null}touch(e){e.updated=Date.now(),this.markUnsaved(e)}markUnsaved(e){e.worth&&(this.unsaved.add(e),this.saveTimer||this.disposed||(this.saveTimer=setTimeout(()=>{this.saveTimer=null,this.saveAll()},this.timings.saveMs),this.saveTimer.unref()))}saveAll(){this.saveTimer&&clearTimeout(this.saveTimer),this.saveTimer=null;let e=[...this.unsaved];this.unsaved.clear();for(let t of e)this.chats.get(t.id)===t&&this.persist(t)}persist(t){try{let e=this.store.save(t.stored());t.turn===null&&e.entries.length!==t.transcript.list().length&&t.transcript.restore(e.entries)}catch(n){console.warn(e(`app.agent.log.notKept`,{id:t.id,reason:n instanceof Error?n.message:String(n)}))}}begin(e,t,n,r=!1){e.turns+=1;let i={id:e.turns,cancelled:!1,stopping:null,heard:performance.now(),repair:r};if(e.turn=i,e.failure=null,e.connecting=!0,e.grants=/* @__PURE__ */ new Map,r)e.transcript.closeMessage(),this.touch(e);else{let n=e.transcript.message(`user`,t,`user-${i.id}`);e.transcript.closeMessage(),e.title===null&&(e.title=E(t)),this.watchFiles(e,i),this.touch(e),this.saveAll(),this.publish(this.entryEvent(e,n))}this.publishChats(),this.run(e,i,t,n)}async run(t,n,r,i){let a=null,o=`end_turn`;try{let a=await this.processOf(t.agentId);if(n.cancelled||t.turn!==n)return;let s=await this.sessionOf(t,a);if(n.cancelled||t.turn!==n)return;t.connecting=!1,this.publishChats();let c=[i,t.briefed===s?null:e(`app.agent.contextLinks`)].filter(e=>e!==null).join(`
|
|
4
|
+
`);t.briefed=s;let l=[{type:`text`,text:r},...c?[{type:`text`,text:c}]:[]];o=await a.prompt(s,l),await new Promise(e=>setImmediate(e))}catch(e){if(n.cancelled||t.turn!==n)return;let r=t.process,i=!(e instanceof U)&&!(e instanceof N);if(i&&r&&await r.exited(this.timings.killMs),n.cancelled||t.turn!==n)return;if(r?.killedByUs){t.process=null,this.release(r),this.stoppedBy(t,n);return}a=bt(i&&r?.exitCause?r.exitCause:e,this.host.home,t.agentId,(r?.signInMethods.length??0)>0)}this.finish(t,n,a,o)}finish(e,t,n,r){if(e.turn===t){if(this.flush(),t.stopping&&clearTimeout(t.stopping),this.settleQuestions(e),e.turn=null,e.connecting=!1,e.failure=n,e.grants=/* @__PURE__ */ new Map,n)for(let t of e.transcript.failRunning())this.publish({type:`tool`,chatId:e.id,tool:t});else if(r===`cancelled`)for(let t of e.transcript.stopRunning())this.publish({type:`tool`,chatId:e.id,tool:t});this.touch(e),this.saveAll(),n&&this.publish({type:`error`,chatId:e.id,error:n}),this.publishChats(),!n&&r!==`cancelled`&&e.loop!==null?this.check(e):(e.loop=null,this.afterTurn(e))}}watchFiles(t,n){if(t.loop=null,this.host.receipts)try{t.loop={snapshot:me({folders:[this.host.folder]},this.host.folder),attempts:[],entryId:`receipt:${n.id}`}}catch(n){console.warn(e(`app.agent.log.notKept`,{id:t.id,reason:n instanceof Error?n.message:String(n)}))}}async canVerify(){let e={env:this.host.env};return this.host.licensed?await this.host.licensed():ce(await le(e),e)}async check(t){t.checking=!0,t.checkStopped=!1,this.publishChats();let n=null;try{n=await this.verify(t)}catch(n){t.loop=null,console.warn(e(`app.agent.log.notKept`,{id:t.id,reason:n instanceof Error?n.message:String(n)}))}t.checking=!1,this.disposed||this.chats.get(t.id)!==t||(n!==null&&!t.checkStopped&&t.turn===null&&this.on?this.begin(t,n,null,!0):(t.loop=null,this.publishChats(),this.afterTurn(t)))}async verify(t){let n=t.loop,r=this.host.receipts;if(n===null||!r)return null;let{changes:i,incomplete:a}=ge(n.snapshot);if(i.length===0&&n.attempts.length===0)return t.loop=null,null;let o=fe(_e(this.host.folder).values),s=await this.canVerify(),c=await ye(i,{root:this.host.folder,source:`chat`,agent:t.agentId,maxAttempts:o.attempts,attempts:n.attempts,incomplete:a},r());if(t.checkStopped||this.disposed)return t.loop=null,null;let l=he(c,n.attempts,{repair:s});n.attempts=l.receipt.attempts;let u=t.transcript.receipt(n.entryId,l.receipt);if(this.publish(this.entryEvent(t,u)),this.touch(t),l.handBack)return pe(l.receipt);if(s&&o.keepReceipts)try{be(this.host.folder,l.receipt)}catch(n){console.warn(e(`app.agent.log.notKept`,{id:t.id,reason:n instanceof Error?n.message:String(n)}))}return t.loop=null,null}afterTurn(e){e.wanted.size===0||!e.process?.alive?this.drainSoon(e):this.settle(e,!1).catch(()=>void 0).finally(()=>this.drainSoon(e))}drainSoon(e){e.queue.length!==0&&setImmediate(()=>{if(this.disposed||!this.on||e.turn||e.checking||this.chats.get(e.id)!==e)return;let t=e.queue.shift();t&&(this.publish({type:`queue`,chatId:e.id,queue:this.queueOf(e)}),this.begin(e,t.text,t.context))})}settleQuestions(e){if(e.questions.length!==0){for(let t of e.questions.splice(0))t.resolve(null);this.publish({type:`permission`,chatId:e.id,permission:null})}}halt(e){this.settleQuestions(e),e.checking&&(e.checkStopped=!0);let t=e.turn;if(!t)return;if(e.connecting){t.cancelled=!0,e.turn=null,e.connecting=!1,e.loop=null,this.touch(e),this.saveAll(),this.publishChats(),this.drainSoon(e);return}let n=e.process;n&&e.sessionId&&n.cancel(e.sessionId),t.stopping||(t.stopping=setTimeout(()=>{e.turn===t&&n&&(this.othersWorking(e)?this.stoppedBy(e,t,`app.agent.stopped`):(this.release(n),n.kill(!0)))},this.timings.stopMs),t.stopping.unref())}othersWorking(e){for(let t of this.chats.values())if(t!==e&&t.agentId===e.agentId&&t.turn!==null)return!0;return!1}abandon(e){this.settleQuestions(e),e.loop=null,e.checkStopped=!0;let t=e.turn;t&&(t.cancelled=!0,t.stopping&&clearTimeout(t.stopping),e.turn=null,e.process&&e.sessionId&&e.process.cancel(e.sessionId))}shutDown(){for(let t of this.chats.values()){this.settleQuestions(t),t.loop=null,t.checkStopped=!0;let n=t.turn;if(n){n.cancelled=!0,n.stopping&&clearTimeout(n.stopping),t.turn=null,t.connecting=!1;for(let e of t.transcript.stopRunning())this.publish({type:`tool`,chatId:t.id,tool:e});t.transcript.notice(e(`app.agent.stopped`)),this.touch(t)}t.queue=[]}for(let e of[...this.live])e.kill(!0);this.processes.clear(),this.started.clear()}processOf(e){let t=this.processes.get(e);if(t)return t;let n={update:e=>this.update(e),permission:(e,t)=>this.requestPermission(e,t),read:e=>this.readText(e),write:e=>this.writeText(e),gone:(e,t,n,r)=>this.gone(e,t,n,r)},r=(async()=>{let t=s(e,this.host.env,this.host.home,this.host.folder);if(!t)throw new M;let r=await we.launch(t,{folder:this.host.folder,env:this.host.env,version:this.host.version,connectMs:this.timings.connectMs,killMs:this.timings.killMs},n);if(this.disposed||!this.on)throw r.kill(!0),Error(`closed`);return this.live.add(r),this.started.set(e,r),this.owners.set(r,/* @__PURE__ */ new Map),r.pid!==void 0&&Ke(this.host.home,this.host.folder,{pid:r.pid,command:r.command}),r})();return this.processes.set(e,r),r.catch(()=>{this.processes.get(e)===r&&this.processes.delete(e)}),r}mcpServers(){let e=this.host.mcp;return e?[{name:`penstock`,command:e.command,args:[...e.args,`--project`,this.host.folder],env:Object.entries(e.env??{}).map(([e,t])=>({name:e,value:t}))}]:[]}async sessionOf(t,n){let r=this.owners.get(n);if(t.process=n,t.sessionId&&r?.get(t.sessionId)===t)return t.sessionId;let i=t.sessionId;if(i&&n.loadSession){t.fenced=!0,r?.set(i,t);try{let e=await n.loadSessionById(i,this.host.folder,this.mcpServers());return this.offer(t,e),await this.settle(t,!1),i}catch(e){if(r?.delete(i),k(e)||e instanceof N)throw e}finally{t.fenced=!1}}let a=await n.newSession(this.host.folder,this.mcpServers());if(t.sessionId=a.sessionId,r?.set(a.sessionId,t),this.offered.set(t.agentId,a.options),this.offer(t,a.options),await this.settle(t,!0),i!==null){let n=t.transcript.notice(e(`app.agent.newSession`));this.publish(this.entryEvent(t,n))}return o(this.host.home)!==t.agentId&&oe(this.host.home,t.agentId),this.markUnsaved(t),a.sessionId}offer(e,t){(t.length!==0||e.options.length!==0)&&(e.options=t,j(this.host.home,e.agentId,t),this.publishOptions(e))}publishOptions(e){this.publish({type:`options`,chatId:e.id,options:e.shownOptions()}),this.markUnsaved(e)}desired(e,t){let n=/* @__PURE__ */ new Map,i=t?d(this.host.home,e.agentId):{};for(let t of e.options){let a=e.wanted.get(t.id)??(O.includes(t.category)?i[t.category]:void 0);a!==void 0&&a!==t.current&&r(t,a)&&n.set(t.id,a)}return n}settle(e,t){let n=e.configured.then(async()=>{let n=e.process,r=e.sessionId;if(n&&n.alive&&r)for(let i of a(e.options)){let a=this.desired(e,t).get(i.id);if(a===void 0)continue;let o=e.options.find(e=>e.id===i.id);if(o)try{await this.change(e,n,r,o,a)}catch(t){if(k(t))throw t;e.wanted.delete(i.id)}}});return e.configured=n.catch(()=>void 0),n}async change(e,t,n,r,i){let a=await t.setOption(n,r,i);e.sessionId===n&&(e.options=a===null?e.options.map(e=>e.id===r.id?{...e,current:i}:e):a.length>0?a:e.options.map(e=>e.id===r.id?{...e,current:i}:e),e.wanted.get(r.id)===i&&e.wanted.delete(r.id),j(this.host.home,e.agentId,e.options),this.publishOptions(e))}shown(e){if(e.options.length===0){let t=this.offered.get(e.agentId)??A(this.host.home,e.agentId)?.options;if(!t)return;e.options=t.map(e=>({...e}))}if(e.sessionId===null)for(let[t,n]of this.desired(e,!0))e.wanted.set(t,n)}async setOption(e,t,i){this.requireOn();let a=this.chat(e);this.shown(a);let o=a.options.find(e=>e.id===t);if(!o)throw x(404,`app.agent.reason.noSuchOption`,{option:t.slice(0,80)});if(!r(o,i))throw x(400,`app.agent.reason.badOptionValue`,{value:i.slice(0,80)});a.wanted.set(o.id,i),O.includes(o.category)&&n(this.host.home,a.agentId,o.category,i),this.publishOptions(a);let s=a.process,c=a.sessionId;if(!a.turn&&s?.alive&&c&&this.owners.get(s)?.get(c)===a){let e=a.configured.then(()=>this.change(a,s,c,o,i));a.configured=e.catch(()=>void 0);try{await e}catch(e){throw a.wanted.delete(o.id),this.publishOptions(a),x(502,`app.agent.reason.optionRefused`,{reason:R(e instanceof Error?e.message:String(e))})}}return a.shownOptions()}gone(e,t,n,r){this.live.delete(e),e.pid!==void 0&&qe(this.host.home,this.host.folder,e.pid);let a=this.owners.get(e);if(this.owners.delete(e),this.release(e),a)for(let o of a.values()){if(o.process!==e)continue;o.process=null;let a=o.turn;a&&(r?this.stoppedBy(o,a):this.finish(o,a,{key:i(n),detail:n===``?t:`${t}: ${n}`},`end_turn`))}}release(e){this.started.get(e.agentId)===e&&(this.started.delete(e.agentId),this.processes.delete(e.agentId))}stoppedBy(t,n,r=`app.agent.killed`){if(t.turn!==n)return;this.flush(),n.stopping&&clearTimeout(n.stopping),this.settleQuestions(t),t.turn=null,t.connecting=!1,t.loop=null,t.failure=null;for(let e of t.transcript.stopRunning())this.publish({type:`tool`,chatId:t.id,tool:e});let i=t.transcript.notice(e(r));this.publish(this.entryEvent(t,i)),this.touch(t),this.saveAll(),this.publishChats(),this.drainSoon(t)}ownerOf(e){for(let t of this.owners.values()){let n=t.get(e);if(n)return n}return null}schedule(e,t){let n=this.dirty.get(e);n||(n=/* @__PURE__ */ new Set,this.dirty.set(e,n)),n.add(t.id),this.flushTimer||(this.flushTimer=setTimeout(()=>this.flush(),this.timings.flushMs),this.flushTimer.unref())}flush(){if(this.flushTimer&&clearTimeout(this.flushTimer),this.flushTimer=null,this.dirty.size===0)return;let e=[...this.dirty];this.dirty.clear();for(let[t,n]of e){for(let e of n){let n=t.transcript.find(e);n&&this.feed.publish(this.entryEvent(t,n))}this.markUnsaved(t)}}relative(e){if(!B.isAbsolute(e))return e;let t=this.host.files.relative(e);return t.startsWith(`..`)||t===``?e:t}update(e){let t=this.ownerOf(e.sessionId);if(!t||t.fenced)return;t.turn&&(t.turn.heard=performance.now());let n=e.update;switch(n.sessionUpdate){case`agent_message_chunk`:case`agent_thought_chunk`:{if(n.content.type!==`text`)return;let e=n.sessionUpdate===`agent_message_chunk`?`agent`:`thought`;this.schedule(t,t.transcript.message(e,n.content.text,n.messageId??null));return}case`tool_call`:{this.keepInput(t,n.toolCallId,n.rawInput);let e=t.transcript.upsertTool(h(n,void 0,e=>this.relative(e)));this.publish(this.entryEvent(t,e));return}case`tool_call_update`:{this.keepInput(t,n.toolCallId,n.rawInput),(n.status===`completed`||n.status===`failed`)&&t.grants.delete(n.toolCallId);let e=t.transcript.tool(n.toolCallId),r=t.transcript.upsertTool(h(n,e,e=>this.relative(e)));this.publish(this.entryEvent(t,r));return}case`config_option_update`:{let e=D(n.configOptions,null);if(e.length===0)return;for(let n of e)t.wanted.get(n.id)===n.current&&t.wanted.delete(n.id);this.offer(t,e);return}case`current_mode_update`:if(!t.options.some(e=>e.legacy))return;t.options=t.options.map(e=>e.legacy&&r(e,n.currentModeId)?{...e,current:n.currentModeId}:e),this.publishOptions(t);return;case`plan`:{let e=t.transcript.plan(n.entries);this.publish(this.entryEvent(t,e)),this.publishChats();return}default:return}}keepInput(e,t,n){n!=null&&(e.rawInputs.set(t,n),e.rawInputs.size>40&&e.rawInputs.delete(e.rawInputs.keys().next().value))}async announced(e,t,n){let r=Date.now()+200;for(;!e.rawInputs.has(t)&&!n.aborted&&Date.now()<r;)await new Promise(e=>setTimeout(e,5))}async requestPermission(e,t){let n=this.ownerOf(e.sessionId);if(!n||n.fenced||t.aborted||!n.turn)return Z;this.asked+=1;let r=`ask:${this.asked}`,i=e.toolCall.toolCallId;if(e.toolCall.rawInput==null&&!n.rawInputs.has(i)&&await this.announced(n,i,t),t.aborted||!n.turn)return Z;let a=ae(r,e.toolCall,e.options,n.transcript.tool(i),e=>this.relative(e)),o=e.toolCall.rawInput??n.rawInputs.get(i);if(lt(a.tool,o)||mt(a.tool,o)){let e=ft(a);if(e!==null)return{outcome:{outcome:`selected`,optionId:e}}}if(ut(a.tool)&&(a=dt(a),st(a.tool)&&a.tool.diffs.length===0)){let r=await this.previewOf(n,e.toolCall.toolCallId,e.toolCall.rawInput);if(r&&(a={...a,tool:{...a.tool,...r}}),t.aborted||!n.turn)return Z}let s=a;return new Promise(e=>{let r={permission:s,grants:!0,resolve:t=>e(t===null?Z:{outcome:{outcome:`selected`,optionId:t}})},i=()=>{let e=n.questions.indexOf(r);e<0||(n.questions.splice(e,1),this.publish({type:`permission`,chatId:n.id,permission:n.questions[0]?.permission??null}),this.publishChats())};t.addEventListener(`abort`,()=>{i(),e(Z)}),this.ask(n,r)})}ask(e,t){let n=e.transcript.upsertTool(t.permission.tool);this.publish(this.entryEvent(e,n)),e.questions.push(t),e.questions.length===1&&(this.publish({type:`permission`,chatId:e.id,permission:t.permission}),this.publishChats())}async previewOf(e,t,n){let r=ht(n??e.rawInputs.get(t));if(!r)return null;let i;try{i=this.host.files.resolve(r.file)}catch{return null}let a;try{a=await(this.host.preview??ve)(i,r.operations)}catch{return null}if(!a.ok)return null;let o=this.relative(i);return{diffs:[{path:o,oldText:a.before,newText:a.after}],paths:[o],locations:[{path:o,line:null}]}}grant(e,t){(t.kind===`edit`||t.kind===`delete`||t.kind===`move`||t.diffs.length>0)&&t.paths.length!==0&&e.grants.set(t.id,new Set(t.paths))}granted(e,t){for(let[n,r]of e.grants)if(r.delete(t))return r.size===0&&e.grants.delete(n),!0;return!1}target(e){try{return this.host.files.resolve(e)}catch(e){throw new U(Y,e instanceof Error?e.message:String(e))}}known(t){let n=this.ownerOf(t);if(!n||n.fenced)throw new U(Y,e(`app.agent.reason.notRunning`));return n}readText(t){let n=this.known(t.sessionId),r=this.target(t.path),i;try{let t=H(r);if(!t.isFile())throw new U(Y,e(`app.agent.reason.noSuchFile`));if(t.size>q)throw new U(X,e(`app.agent.reason.fileTooLarge`,{limit:q/1048576}));i=V(r,`utf8`)}catch(t){throw t instanceof U?t:new U(-32002,e(`app.agent.reason.noSuchFile`))}this.remember(n,this.relative(r));let a=Math.max(1,t.line??1);if(a===1&&(t.limit===void 0||t.limit===null))return{content:i};let o=i.split(`
|
|
5
|
+
`);return{content:(t.limit===void 0||t.limit===null?o.slice(a-1):o.slice(a-1,a-1+Math.max(0,t.limit))).join(`
|
|
6
|
+
`)}}async writeText(n){let r=this.known(n.sessionId),i=this.target(n.path),a=this.relative(i);if(Buffer.byteLength(n.content)>J)throw new U(X,e(`app.agent.reason.fileTooLarge`,{limit:J/1048576}));let o=null;try{let t=H(i);if(t.isDirectory())throw new U(Y,e(`app.agent.reason.isAFolder`));t.size<=q&&(o=V(i,`utf8`))}catch(e){if(e instanceof U)throw e}if(!this.granted(r,a)&&!await this.askToWrite(r,a,o,n.content))throw new U(X,e(`app.agent.writeRejected`,{path:a}));try{t(i,n.content)}catch(e){throw new U(X,e instanceof Error?e.message:String(e))}this.remember(r,a),this.host.changed([i]).catch(()=>void 0)}async askToWrite(t,n,r,i){this.asked+=1;let a={id:`write:${this.asked}`,title:e(`app.agent.write`,{path:n}),kind:`edit`,status:`pending`,diffs:[{path:n,oldText:r,newText:i}],paths:[n],locations:[{path:n,line:null}]},o={id:`ask:${this.asked}`,tool:a,options:[{id:`allow`,label:e(`app.agent.allow`),kind:`allow`},{id:`reject`,label:e(`app.agent.reject`),kind:`reject`}]},s=await new Promise(e=>this.ask(t,{permission:o,grants:!1,resolve:e}))===`allow`,c={...a,status:s?`done`:`failed`},l=t.transcript.upsertTool(c);return this.publish(this.entryEvent(t,l)),s}},Ct=class extends Error{};const wt=/^Bearer ([\w.~+/-]{1,512}=*)$/,Tt=/^[0-9a-f]{32,128}$/,Et=Oe(De);function Dt(e){let t=e.url??``,n=`${S.ping.path}?`;if(e.method!==S.ping.method||!t.startsWith(n))return null;let r=new URLSearchParams(t.slice(n.length));return r.has(`nonce`)?r:null}function Ot(e){if(e===void 0)return null;let t=wt.exec(e);return t?t[1]:null}async function kt(e){let t=e.env??process.env,n=e.home??ue(t),r=e.token??Me(),i=new Pe(e.folder),a=e.agent??{},o=new St({folder:i.root,files:i,env:t,home:n,version:z(),mcp:a.mcp===void 0?re():a.mcp,licensed:a.licensed,preview:a.preview,receipts:a.receipts===void 0?Le:a.receipts,changed:async()=>void 0},a.timings),s=/* @__PURE__ */ new Set,c=e.graceMs??S.graceMs,l=e.quietMs??S.quietMs,u=new Xe(c,performance.now()),d=(/* @__PURE__ */ new Date()).toISOString(),f=e.record??!0,p=m(n,i.root),h=null,g=!1,_=null,v=()=>void 0,y=new Promise(e=>{v=e}),b=e=>({pid:process.pid,apiVersion:S.apiVersion,cliVersion:z()??``,startedAt:d,compatible:e.get(`apiVersion`)===String(S.apiVersion),retiring:g,busy:o.busy()}),ne=async(e,t,n,r,i)=>{let a=new AbortController,s=n.held?u.hold(performance.now()):null;t.once(`close`,()=>{t.writableEnded||a.abort(),s?.(performance.now())});let c=null;try{let s;if(e.method!==`GET`){let t=await ke(e,n.limit??1048576);if(t.length>0){if(!/^application\/json\b/i.test(e.headers[`content-type`]??``))throw P(415,`app.cli.web.reason.notJson`);try{s=JSON.parse(t.toString(`utf8`))}catch{throw P(400,`app.cli.web.reason.notJson`)}}}else e.resume();let l=Promise.resolve().then(()=>n.run({body:s,query:i,params:r,signal:a.signal},o));l.catch(()=>void 0);let u=n.held?await l:await Promise.race([l,new Promise((e,t)=>{c=setTimeout(()=>{a.abort(),t(P(504,`app.cli.web.reason.tookTooLong`))},Ce),c.unref()})]);if(a.signal.aborted&&t.destroyed)return;L(t,200,u)}catch(e){if(e instanceof I||e instanceof I)return void t.destroy();if(t.destroyed)return;F(t,e instanceof Se?e:Ne(e))}finally{c&&clearTimeout(c)}},x=(e,t,n)=>n.pathname===S.ping.path?(e.method===S.ping.method?L(t,200,b(n.searchParams)):F(t,P(405,`app.cli.web.reason.methodNotAllowed`),{Allow:S.ping.method}),!0):n.pathname===S.retire.path?(e.method===S.retire.method?(g=!0,L(t,200,{retiring:g,busy:o.retire()})):F(t,P(405,`app.cli.web.reason.methodNotAllowed`),{Allow:S.retire.method}),!0):n.pathname===S.shutdown.path&&(e.method===S.shutdown.method?(L(t,200,{stopping:!0}),setImmediate(()=>void D())):F(t,P(405,`app.cli.web.reason.methodNotAllowed`),{Allow:S.shutdown.method}),!0),w=async(e,t)=>{if(Fe(t),!h||!h.allowsHost(e.headers.host))return F(t,P(403,`app.cli.web.reason.wrongHost`));if(e.headers.origin!==void 0||e.headers[`sec-fetch-site`]!==void 0)return F(t,P(403,`app.cli.web.reason.wrongOrigin`));let n=Dt(e);if(n!==null){let e=n.get(`nonce`)??``;return Tt.test(e)?L(t,200,{pid:process.pid,apiVersion:S.apiVersion,compatible:n.get(`apiVersion`)===String(S.apiVersion),proof:ie(r,e)}):F(t,P(400,`app.cli.web.reason.badPath`,{path:``}))}if(!je(Ot(e.headers.authorization),r))return F(t,P(401,`app.cli.web.reason.noToken`),{"WWW-Authenticate":`Bearer`});let i=e.url??``;if(i.length>8192)return F(t,P(414,`app.cli.web.reason.tooLong`));if(!i.startsWith(`/`)||i.startsWith(`//`))return F(t,P(400,`app.cli.web.reason.badPath`,{path:``}));let a;try{a=new URL(i,`http://${e.headers.host}`)}catch{return F(t,P(400,`app.cli.web.reason.badPath`,{path:``}))}if(x(e,t,a))return;let o=Et(e.method??``,a.pathname);if(o.kind===`none`)return F(t,P(404,`app.cli.web.reason.noSuchOperation`));if(o.kind===`method`)return F(t,P(405,`app.cli.web.reason.methodNotAllowed`),{Allow:o.allowed.join(`, `)});await ne(e,t,o.route,o.params,a.searchParams)},T=Ue({maxHeaderSize:16384,requestTimeout:6e4,headersTimeout:15e3,keepAliveTimeout:5e3},(e,t)=>{w(e,t).catch(e=>{t.headersSent?t.destroy():F(t,Ne(e))})});T.maxConnections=64,T.on(`connection`,e=>{s.add(e),e.once(`close`,()=>s.delete(e))}),T.on(`clientError`,(e,t)=>{t.writable?t.end(`HTTP/1.1 400 Bad Request\r
|
|
7
|
+
Connection: close\r
|
|
8
|
+
Content-Length: 0\r
|
|
9
|
+
\r
|
|
10
|
+
`):t.destroy()});try{await new Promise((e,t)=>{T.once(`error`,t),T.listen(0,`127.0.0.1`,()=>{T.off(`error`,t),e()})})}catch(e){throw o.dispose(),e}let E=T.address().port;if(h=Ee(`127.0.0.1`,E),f){if(await C(n,i.root))throw await new Promise(e=>T.close(()=>e())),o.dispose(),new Ct;await Ye(n,i.root),ee(p,{pid:process.pid,port:E,token:r,apiVersion:S.apiVersion,cliVersion:z()??``,startedAt:d})}let D=()=>(_??=(async()=>{f&&te(p,{pid:process.pid,token:r}),o.dispose();let e=new Promise(e=>T.close(()=>e()));T.closeIdleConnections(),setTimeout(()=>{for(let e of s)e.destroy();T.closeAllConnections()},500).unref(),await o.drained(),await e})().finally(()=>v()),_),O=setInterval(()=>{if(_)return;let e=u.tick(performance.now(),o.busy(),g);e.unattended&&(o.cancelUnanswered(),o.stopQuiet(l)),e.leave&&D()},e.checkMs??Math.min(1e3,Math.max(20,c/4)));return O.unref(),y.then(()=>clearInterval(O)),{server:T,manager:o,port:E,token:r,exited:y,close:D}}function Q(e,t){let n=Number(e[t]);return Number.isInteger(n)&&n>0?n:void 0}function $(e,t){return new Promise(n=>{let r=()=>{process.off(`SIGINT`,r),process.off(`SIGTERM`,r),e.stdin.off(`end`,r),e.stdin.off(`close`,r),e.stdin.off(`error`,r),n()};process.on(`SIGINT`,r),process.on(`SIGTERM`,r),t&&(e.stdin.on(`end`,r),e.stdin.on(`close`,r),e.stdin.on(`error`,r)),e.stdin.resume()})}function At(e){return new Promise(t=>setTimeout(t,e))}async function jt(t,n,r){let i=await C(n,t);if(i)return r.write(JSON.stringify({port:i.port,token:i.token})),{ok:!0,lines:[]};let a=w(`agent`,`serve`,`--project`,t);if(!a)return{ok:!1,lines:[e(`app.agent.notFound`)]};let o={error:null},s=Ve(a.command,a.args,{detached:!0,stdio:[`ignore`,`inherit`,`inherit`],env:{...process.env,...a.env,PENSTOCK_HOME:n},windowsHide:!0});s.on(`error`,e=>{o.error=e});let c=performance.now()+S.startMs;for(;;){let i=await C(n,t);if(i)return s.unref(),r.write(JSON.stringify({port:i.port,token:i.token})),{ok:!0,lines:[]};if(o.error)return{ok:!1,lines:[e(`app.agent.failed`,{detail:o.error.message})]};if(performance.now()>=c)return s.pid!==void 0&&T(s.pid,`SIGTERM`),{ok:!1,lines:[e(`app.agent.timeout`)]};await At(S.pollMs)}}async function Mt(t,n={stdin:process.stdin,write:e=>process.stdout.write(`${e}\n`)},r={}){if(t===void 0||t===``)return{ok:!1,lines:[e(`app.cli.agentServe.needsProject`)]};let i=B.resolve(t),a;try{a=H(i)}catch{return{ok:!1,lines:[Ie(i)]}}if(!a.isDirectory())return{ok:!1,lines:[e(`app.cli.web.notAFolder`,{folder:i})]};let o=ue(process.env);if(r.detach)return jt(i,o,n);let s=await C(o,i);if(s)return n.write(JSON.stringify({port:s.port,token:s.token})),await $(n,!0),{ok:!0,lines:[]};let c;try{c=await kt({folder:i,home:o,graceMs:Q(process.env,`PENSTOCK_AGENT_GRACE_MS`),quietMs:Q(process.env,`PENSTOCK_AGENT_QUIET_MS`)})}catch(t){if(t instanceof Ct){let e=await C(o,i);if(e)return n.write(JSON.stringify({port:e.port,token:e.token})),await $(n,!0),{ok:!0,lines:[]}}return{ok:!1,lines:[e(`app.cli.web.cannotListen`,{reason:t instanceof Error?t.message:String(t)})]}}return n.write(JSON.stringify({port:c.port,token:c.token})),await Promise.race([$(n,!1),c.exited]),await c.close(),{ok:!0,lines:[]}}export{Mt as agentServeCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,t}from"./chunk-context-rCJvBM9p.js";import{s as n,t as r}from"./chunk-features-C6o8of19.js";import{u as i}from"./chunk-license-BG88gpDZ.js";import{d as a,l as o,m as s,u as c}from"./chunk-commands-B8YVT41b.js";import{a as l}from"./chunk-moddle-D3Ym38EZ.js";import{t as u}from"./chunk-connections-D_wC6d0W.js";import{t as d}from"./chunk-diagrams-CtGMGTa8.js";import{a as f}from"./chunk-migrateApply-e8O9oZXP.js";import{r as p}from"./chunk-translator-DNm9zRpP.js";import{a as m,l as h,u as g}from"./chunk-file-1YhfNmPn.js";import{a as _,t as v}from"./chunk-safeWrite-RgLbdyzl.js";import{t as y}from"./chunk-plural-Dn-7ulHf.js";import b from"node:path";import{existsSync as x,mkdirSync as S,readFileSync as C,realpathSync as w,statSync as T}from"node:fs";const E=/agenticai|aiAgent|toolContainer|fromAi|AgentDefinition/;async function D(e,t){let n={agents:[],orphans:[],standalone:[],findings:[]},r=e=>e.remote||e.clientId===null||!t?null:t(e.clientId);for(let i of e){if(!E.test(i.text))continue;let e=await l(i.text);if(!e)continue;let s=o(e),c=a(s,t?{mcpStatus:t}:{});for(let e of s.agents)n.agents.push({file:i.path,agent:e,clients:e.mcpClients.map(e=>({elementId:e.elementId,status:r(e)})),findings:c.filter(t=>t.agentId===e.id)});for(let e of s.orphans)n.orphans.push({...e,file:i.path});for(let e of s.standaloneMcp)n.standalone.push({file:i.path,client:e,status:r(e)});for(let e of c)n.findings.push({file:i.path,finding:e})}return n}async function O(e){let n=t(e),r=w(n.root),i=[];for(let t of d(e,[`process`]).sort()){let e=f(t,r,[]);e!==null&&i.push({path:b.relative(n.root,t).split(b.sep).join(`/`),text:e})}let a;try{let e=new Map(u(n.root).rows.filter(e=>e.kind===`mcp-client`).map(e=>[e.name,e.status]));a=t=>e.get(t)??`unverifiable`}catch{a=void 0}return{root:r,report:await D(i,a)}}const k=`agent`;function A(e,t){if(e?.id===t)return e;for(let n of e?.flowElements??[]){let e=A(n,t);if(e)return e}return null}function j(e,t){for(let n of e?.rootElements??[]){let e=A(n,t);if(e)return e;for(let e of n.participants??[]){let n=e.processRef?A(e.processRef,t):null;if(n)return n}}return null}function M(e,t){return e?.extensionElements?.values?.find(e=>e.$type===t)}function N(e){let t=M(e,`zeebe:TaskDefinition`)?.type;return typeof t==`string`&&t!==``&&!t.startsWith(`=`)?t:null}function P(e){let t=(M(e,`zeebe:TaskHeaders`)?.values??[]).find(e=>e.key===`resultVariable`)?.value;return typeof t==`string`&&t.trim()!==``&&!t.startsWith(`=`)?t.trim():k}function F(e){return{processDefinitionId:e}}function I(e,t,n){let r=F(e.processId),i=[{type:`CREATE_PROCESS_INSTANCE`,processDefinitionSelector:F(e.processId),variables:{}},{type:`MOCK_JOB_WORKER_COMPLETE_JOB`,jobType:t,variables:{[n]:{context:{},toolCalls:[],responseText:p(`app.agents.scenario.stubAnswer`)}}},{type:`ASSERT_ELEMENT_INSTANCE`,processInstanceSelector:r,elementSelector:{elementId:e.id},state:`IS_COMPLETED`}];return e.tools.length>0&&i.push({type:`ASSERT_ELEMENT_INSTANCES`,processInstanceSelector:r,elementSelectors:e.tools.map(e=>({elementId:e.id})),state:`IS_NOT_ACTIVATED`}),{instructions:i,notes:[p(`app.agents.scenario.noteTaskStub`)]}}function L(e){let t=F(e.processId),n=e.tools[0],r=[{type:`CREATE_PROCESS_INSTANCE`,processDefinitionSelector:F(e.processId),variables:{}},{type:`COMPLETE_JOB_AD_HOC_SUB_PROCESS`,jobSelector:{elementId:e.id},...n?{activateElements:[{elementId:n.id}]}:{},variables:{agent:{responseText:p(`app.agents.scenario.stubAnswer`)}}}];return n&&r.push({type:`ASSERT_ELEMENT_INSTANCE`,processInstanceSelector:t,elementSelector:{elementId:n.id},state:`IS_COMPLETED`}),r.push({type:`ASSERT_ELEMENT_INSTANCE`,processInstanceSelector:t,elementSelector:{elementId:e.id},state:`IS_ACTIVE`}),{instructions:r,notes:[p(`app.agents.scenario.noteSubprocessRunner`)]}}async function R(e,t){let n=await l(e);if(!n)return{scenarios:[],missing:p(`app.agents.scenario.unreadable`)};let r=o(n),i=t===void 0?r.agents:r.agents.filter(e=>e.id===t);if(i.length===0)return{scenarios:[],missing:t===void 0?p(`app.agents.scenario.noAgents`):p(`app.agents.scenario.noSuchAgent`,{id:t})};let a=[];for(let e of i){let t=j(n,e.id),r=t?N(t):null,i=t?c(t):{id:null,version:null};if(!r){a.push({agentId:e.id,processId:e.processId,runnable:!1,notes:[p(`app.agents.scenario.noJobType`,{template:i.id??``})],testCase:null});continue}let o=e.kind===`task`?I(e,r,t?P(t):k):L(e);a.push({agentId:e.id,processId:e.processId,runnable:e.kind===`task`,notes:o.notes,testCase:{name:p(`app.agents.scenario.name`,{agent:e.id}),description:p(`app.agents.scenario.description`,{agent:e.name||e.id}),instructions:o.instructions}})}return{scenarios:a,missing:null}}async function z(e){let n=t(e.file).root,r=b.resolve(e.file),i=x(r)?f(r,w(n),[]):null;if(i===null)return{ok:!1,reason:p(`app.agents.scenario.unreadable`)};let a=await R(i,e.agent);if(a.missing!==null)return{ok:!1,reason:a.missing};let o=b.resolve(g(r));try{e.confine?.(r),e.confine?.(o)}catch(e){return{ok:!1,reason:e instanceof Error?e.message:String(e)}}let s=a.scenarios.flatMap(e=>e.testCase?[e.testCase]:[]),c=m(x(o)?C(o,`utf8`):null,s);if(`problem`in c)return{ok:!1,reason:c.problem};let l=!1;if(e.write&&c.added.length>0)try{S(b.dirname(o),{recursive:!0}),_([{path:o,content:h(c.file)}],n,{replace:!0}),l=!0}catch(e){if(e instanceof v)return{ok:!1,reason:e.message};throw e}return{ok:!0,file:r,casesFile:o,scenarios:a.scenarios,added:c.added,kept:c.kept,written:l}}function B(e){return{agents:e.agents.map(({file:e,agent:t,clients:n,findings:r})=>({file:e,...t,mcpClients:t.mcpClients.map(e=>({...e,status:n.find(t=>t.elementId===e.elementId)?.status??null})),findings:r.map(e=>({rule:`agents/${e.rule}`,severity:e.severity,element:e.elementId,message:s(e)}))})),orphans:e.orphans,standalone:e.standalone.map(({file:e,client:t,status:n})=>({file:e,...t,status:n})),findings:e.findings.map(({file:e,finding:t})=>({file:e,rule:`agents/${t.rule}`,severity:t.severity,element:t.elementId,message:s(t)}))}}function V(e){let t=e.parameters.map(e=>`${e.name}${e.type?`: ${e.type}`:``}`).join(`, `);return t===``?e.id:`${e.id} (${t})`}function H(e,t){let n=e.clientId??e.url??e.elementId;return t===null?n:`${n}: ${p(`app.cli.connections.status.${t}`)}`}function U(e){let{agent:t}=e,n=[t.provider,t.model].filter(e=>!!e).join(` / `),r=[`${e.file} ${t.id}${t.name?` "${t.name}"`:``} ${p(t.kind===`task`?`app.cli.agents.kindTask`:`app.cli.agents.kindSubprocess`)}${n?` ${n}`:``}`,` ${p(`app.cli.agents.limits`,{calls:t.maxModelCalls??p(`app.cli.agents.unset`)})}`,` ${p(`app.cli.agents.memory`,{storage:t.memory.storage??p(`app.cli.agents.unset`),window:t.memory.contextWindowSize??p(`app.cli.agents.unset`)})}`,` ${t.tools.length===0?p(`app.cli.agents.noTools`):p(`app.cli.agents.tools`,{count:t.tools.length})}`,...t.tools.map(e=>` ${V(e)}`)];if(e.clients.length>0){r.push(` ${p(`app.cli.agents.clients`)}`);for(let n of t.mcpClients)r.push(` ${H(n,e.clients.find(e=>e.elementId===n.elementId)?.status??null)}`)}for(let t of e.findings)r.push(` ${t.severity} agents/${t.rule}: ${s(t)}`);return r}function W(t,n){let r=[p(`app.cli.agents.title`,{folder:e(t)})];if(n.agents.length===0&&n.orphans.length===0&&n.standalone.length===0)return[...r,``,p(`app.cli.agents.none`)];for(let e of n.agents)r.push(``,...U(e));for(let e of n.orphans)r.push(``,p(`app.cli.agents.orphan`,{id:e.id,file:e.file}));for(let e of n.standalone)r.push(``,p(`app.cli.agents.standalone`,{client:H(e.client,e.status),file:e.file}));return r.push(``,y(n.agents.length,`app.cli.agents.count.agent`)),r}async function G(t,a,o){if(!t)return{ok:!1,lines:[p(`app.cli.agents.scenarioNeedsFile`)]};let s=o??await i();if(a.write&&!r(s))return{ok:!1,lines:n(s,`agent-tools`)};let c=await z({file:t,write:a.write,...a.agent===void 0?{}:{agent:a.agent}});if(!c.ok)return{ok:!1,lines:[c.reason]};let l=e(c.casesFile);if(a.format===`json`)return{ok:!0,refused:!1,lines:[JSON.stringify({file:e(c.file),casesFile:l,write:a.write,written:c.written,added:c.added,kept:c.kept,scenarios:c.scenarios.map(e=>({agent:e.agentId,runnable:e.runnable,notes:e.notes,testCase:e.testCase}))},null,2)]};let u=[];for(let e of c.scenarios)u.push(e.testCase?p(`app.cli.agents.scenario`,{name:e.testCase.name}):p(`app.cli.agents.scenarioSkipped`,{agent:e.agentId})),e.notes.forEach(e=>u.push(` - ${e}`));return u.push(``),c.added.length===0?u.push(p(`app.cli.agents.scenarioExists`,{file:l})):c.written?u.push(p(`app.cli.agents.scenarioWritten`,{file:l})):u.push(p(`app.cli.agents.scenarioDryRun`,{file:l})),{ok:!0,lines:u}}async function K(t,n,r){if(t[0]===`scenario`)return G(t[1],n,r);let i=b.resolve(t[0]??process.cwd());if(!x(i)||!T(i).isDirectory())return{ok:!1,lines:[p(`app.cli.web.notAFolder`,{folder:t[0]??i})]};let{root:a,report:o}=await O(i),s=!o.findings.some(e=>e.finding.severity===`error`);return n.format===`json`?{ok:s,refused:!1,lines:[JSON.stringify({root:e(a),...B(o)},null,2)]}:{ok:s,refused:!1,lines:W(a,o)}}export{K as agentsCommand};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{s as e,t}from"./chunk-features-C6o8of19.js";import{u as n}from"./chunk-license-BG88gpDZ.js";import{r}from"./chunk-translator-DNm9zRpP.js";import{a as i}from"./chunk-moddle-D3Ym38EZ.js";import{c as a,f as o,p as s,u as c}from"./chunk-commands-B8YVT41b.js";import{t as l}from"./chunk-context-rCJvBM9p.js";import{t as u}from"./chunk-diagrams-CtGMGTa8.js";import{a as d,o as f,r as p,t as m}from"./chunk-migrateApply-e8O9oZXP.js";import{n as h}from"./chunk-status-CmYxwOCn.js";import g from"node:path";import{realpathSync as _}from"node:fs";var v={id:`io.camunda.connectors.agenticai.ai-agent-subprocess.v2`,version:1,elementType:`bpmn:AdHocSubProcess`,taskDefinitionType:`io.camunda.agenticai:aiagent:subprocess:2`,agentType:`aiAgentSubProcess`,inputs:[{name:`provider.type`,type:`Dropdown`,value:`anthropic`,choices:[`anthropic`,`bedrock`,`openai`,`google-gemini`,`mistral`,`custom`]},{name:`provider.anthropic.backend.type`,type:`Dropdown`,value:`anthropic-api`,condition:{property:`provider.type`,equals:`anthropic`},choices:[`anthropic-api`,`aws-bedrock-mantle`,`foundry`,`custom`]},{name:`provider.anthropic.backend.anthropic.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.anthropic.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.region`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.awsBedrockMantle.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,type:`Dropdown`,value:`credentials`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},choices:[`credentials`,`apiKey`,`defaultCredentialsChain`]},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.accessKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,equals:`credentials`},{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.secretKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,equals:`credentials`},{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,equals:`apiKey`},{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.type`,type:`Dropdown`,value:`apiKey`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},choices:[`apiKey`,`clientCredentials`,`managedIdentity`]},{name:`provider.anthropic.backend.foundry.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`apiKey`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.tenantId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.authorityHost`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.clientId`,id:`provider.anthropic.backend.foundry.authentication.managedIdentity.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.entraIdScope`,id:`provider.anthropic.backend.foundry.authentication.managedIdentity.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.type`,type:`Dropdown`,value:`none`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},choices:[`none`,`apiKey`,`oauth-client-credentials-flow`]},{name:`provider.anthropic.backend.custom.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`apiKey`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.oauthTokenEndpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.audience`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.authentication.clientAuthentication`,type:`Dropdown`,value:`BASIC_AUTH_HEADER`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},choices:[`BASIC_AUTH_HEADER`,`CREDENTIALS_BODY`]},{name:`provider.anthropic.backend.custom.authentication.scopes`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.bedrock.region`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`}},{name:`provider.bedrock.endpoint`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.authentication.type`,type:`Dropdown`,value:`credentials`,condition:{property:`provider.type`,equals:`bedrock`},choices:[`credentials`,`apiKey`,`defaultCredentialsChain`]},{name:`provider.bedrock.authentication.accessKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.bedrock.authentication.type`,equals:`credentials`},{property:`provider.type`,equals:`bedrock`}]}},{name:`provider.bedrock.authentication.secretKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.bedrock.authentication.type`,equals:`credentials`},{property:`provider.type`,equals:`bedrock`}]}},{name:`provider.bedrock.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.bedrock.authentication.type`,equals:`apiKey`},{property:`provider.type`,equals:`bedrock`}]}},{name:`provider.bedrock.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.api.type`,type:`Dropdown`,value:`responses`,condition:{property:`provider.type`,equals:`openai`},choices:[`responses`,`completions`]},{name:`provider.openai.backend.type`,type:`Dropdown`,value:`openai-api`,condition:{property:`provider.type`,equals:`openai`},choices:[`openai-api`,`foundry`,`custom`]},{name:`provider.openai.backend.openai.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.openai.organizationId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.projectId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.type`,type:`Dropdown`,value:`apiKey`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},choices:[`apiKey`,`clientCredentials`,`managedIdentity`]},{name:`provider.openai.backend.foundry.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`apiKey`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.tenantId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.authorityHost`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.clientId`,id:`provider.openai.backend.foundry.authentication.managedIdentity.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.entraIdScope`,id:`provider.openai.backend.foundry.authentication.managedIdentity.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.type`,type:`Dropdown`,value:`none`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},choices:[`none`,`apiKey`,`oauth-client-credentials-flow`]},{name:`provider.openai.backend.custom.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`apiKey`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.oauthTokenEndpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.audience`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.authentication.clientAuthentication`,type:`Dropdown`,value:`BASIC_AUTH_HEADER`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},choices:[`BASIC_AUTH_HEADER`,`CREDENTIALS_BODY`]},{name:`provider.openai.backend.custom.authentication.scopes`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`openai`},optional:!0},{name:`provider.googleGemini.backend.type`,type:`Dropdown`,value:`google-gemini-api`,condition:{property:`provider.type`,equals:`google-gemini`},choices:[`google-gemini-api`,`google-vertex-ai`]},{name:`provider.googleGemini.backend.googleGeminiApi.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-gemini-api`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.backend.googleGeminiApi.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-gemini-api`},{property:`provider.type`,equals:`google-gemini`}]},optional:!0},{name:`provider.googleGemini.backend.googleVertexAi.projectId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.backend.googleVertexAi.region`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.backend.googleVertexAi.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]},optional:!0},{name:`provider.googleGemini.backend.googleVertexAi.authentication.type`,type:`Dropdown`,value:`serviceAccountCredentials`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]},choices:[`serviceAccountCredentials`,`applicationDefaultCredentials`]},{name:`provider.googleGemini.backend.googleVertexAi.authentication.jsonKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.googleVertexAi.authentication.type`,equals:`serviceAccountCredentials`},{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.mistral.backend.type`,type:`Dropdown`,value:`mistral-api`,condition:{property:`provider.type`,equals:`mistral`},choices:[`mistral-api`,`custom`]},{name:`provider.mistral.backend.mistral.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.mistral.endpoint`,type:`Hidden`,value:`https://api.mistral.ai/v1`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.type`,type:`Dropdown`,value:`none`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},choices:[`none`,`apiKey`,`oauth-client-credentials-flow`]},{name:`provider.mistral.backend.custom.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`apiKey`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.oauthTokenEndpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.audience`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.authentication.clientAuthentication`,type:`Dropdown`,value:`BASIC_AUTH_HEADER`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},choices:[`BASIC_AUTH_HEADER`,`CREDENTIALS_BODY`]},{name:`provider.mistral.backend.custom.authentication.scopes`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`provider.providerType`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`custom`}},{name:`provider.parameters`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`custom`},optional:!0},{name:`provider.anthropic.backend.anthropic.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.anthropic.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.anthropic.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.headers`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.queryParameters`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.bodyProperties`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.bedrock.headers`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.queryParameters`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.bodyProperties`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.backend.openai.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.apiVersion`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.headers`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.queryParameters`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.bodyProperties`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.mistral.backend.mistral.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.mistral.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.mistral.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.headers`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.queryParameters`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.bodyProperties`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.anthropic.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`anthropic`}},{name:`provider.anthropic.model.parameters.effort`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`anthropic`},choices:[`modelDefault`,`low`,`medium`,`high`,`xhigh`,`max`]},{name:`provider.anthropic.model.parameters.thinking.mode`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`anthropic`},choices:[`modelDefault`,`enabled`,`adaptive`,`disabled`]},{name:`provider.anthropic.model.parameters.thinking.budgetTokens`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.model.parameters.thinking.mode`,equals:`enabled`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.model.parameters.thinking.display`,type:`Dropdown`,value:`summarized`,condition:{allMatch:[{property:`provider.anthropic.model.parameters.thinking.mode`,equals:`adaptive`},{property:`provider.type`,equals:`anthropic`}]},choices:[`summarized`,`omitted`],optional:!0},{name:`provider.anthropic.model.parameters.promptCaching.enabled`,type:`Boolean`,value:!0,feel:`static`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.bedrock.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`}},{name:`provider.bedrock.model.parameters.promptCaching.enabled`,type:`Boolean`,value:!0,feel:`static`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`openai`}},{name:`provider.openai.api.responses.effort`,type:`Dropdown`,value:`modelDefault`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},choices:[`modelDefault`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]},{name:`provider.openai.api.completions.effort`,type:`Dropdown`,value:`modelDefault`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},choices:[`modelDefault`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]},{name:`provider.googleGemini.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`google-gemini`}},{name:`provider.googleGemini.model.parameters.thinking.thinkingBudget`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.googleGemini.model.parameters.thinking.thinkingLevel`,equals:`modelDefault`},{property:`provider.type`,equals:`google-gemini`}]},optional:!0},{name:`provider.googleGemini.model.parameters.thinking.thinkingLevel`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`google-gemini`},choices:[`modelDefault`,`minimal`,`low`,`medium`,`high`]},{name:`provider.mistral.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`mistral`}},{name:`provider.mistral.parameters.effort`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`mistral`},choices:[`modelDefault`,`none`,`high`]},{name:`provider.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`custom`}},{name:`provider.anthropic.model.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.anthropic.model.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.anthropic.model.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.anthropic.model.parameters.topK`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.bedrock.model.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.model.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.model.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.api.responses.maxOutputTokens`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.responses.temperature`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.responses.topP`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.completions.maxCompletionTokens`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.completions.temperature`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.completions.topP`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.googleGemini.model.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.googleGemini.model.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.googleGemini.model.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.googleGemini.model.parameters.topK`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.mistral.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`provider.mistral.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`provider.mistral.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`data.systemPrompt.prompt`,type:`Text`,value:`="You are **TaskAgent**, a helpful, capable agent that can handle a wide variety of customer requests using your own knowledge **and** any tools explicitly provided to you at runtime. Prefer a provided tool over guessing whenever it would give a more accurate or reliable answer, and only use tools that were explicitly configured for you (never assume a tool exists). You can call the same tool multiple times with different inputs if that helps complete the request. If no tool fits the request, answer from your own knowledge; if you can't produce a reliable answer, say so plainly and explain why, rather than guessing."`,feel:`required`},{name:`data.userPrompt.prompt`,type:`Text`,feel:`required`},{name:`data.userPrompt.documents`,type:`String`,feel:`required`,optional:!0},{name:`agentContext`,type:`Text`,feel:`required`},{name:`data.memory.storage.type`,type:`Dropdown`,value:`in-process`,choices:[`in-process`,`camunda-document`,`aws-agentcore`,`custom`]},{name:`data.memory.storage.timeToLive`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`camunda-document`},optional:!0},{name:`data.memory.storage.customProperties`,type:`String`,feel:`required`,condition:{property:`data.memory.storage.type`,equals:`camunda-document`},optional:!0},{name:`data.memory.storage.region`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`}},{name:`data.memory.storage.endpoint`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`},optional:!0},{name:`data.memory.storage.authentication.type`,type:`Dropdown`,value:`credentials`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`},choices:[`credentials`,`defaultCredentialsChain`]},{name:`data.memory.storage.authentication.accessKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`data.memory.storage.authentication.type`,equals:`credentials`},{property:`data.memory.storage.type`,equals:`aws-agentcore`}]}},{name:`data.memory.storage.authentication.secretKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`data.memory.storage.authentication.type`,equals:`credentials`},{property:`data.memory.storage.type`,equals:`aws-agentcore`}]}},{name:`data.memory.storage.memoryId`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`}},{name:`data.memory.storage.actorId`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`}},{name:`data.memory.storage.storeType`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`custom`}},{name:`data.memory.storage.parameters`,type:`String`,feel:`required`,condition:{property:`data.memory.storage.type`,equals:`custom`},optional:!0},{name:`data.memory.contextWindowSize`,type:`Number`,value:20,feel:`static`},{name:`data.limits.maxModelCalls`,type:`Number`,value:10,feel:`static`},{name:`data.events.behavior`,type:`Dropdown`,value:`WAIT_FOR_TOOL_CALL_RESULTS`,choices:[`WAIT_FOR_TOOL_CALL_RESULTS`,`INTERRUPT_TOOL_CALLS`]},{name:`data.response.format.type`,type:`Dropdown`,value:`text`,choices:[`text`,`json`]},{name:`data.response.format.parseJson`,type:`Boolean`,feel:`static`,condition:{property:`data.response.format.type`,equals:`text`},optional:!0},{name:`data.response.format.schema`,type:`String`,feel:`required`,condition:{property:`data.response.format.type`,equals:`json`},optional:!0},{name:`data.response.format.schemaName`,type:`String`,value:`Response`,feel:`optional`,condition:{property:`data.response.format.type`,equals:`json`},optional:!0},{name:`data.response.includeAssistantMessage`,type:`Boolean`,feel:`static`,optional:!0},{name:`data.response.includeAgentContext`,type:`Boolean`,feel:`static`,optional:!0},{name:`agent`,type:`Hidden`}],migratesFrom:{schemaVersion:1,sources:[{kind:`change`,sourceTemplateId:`io.camunda.connectors.agenticai.aiagent.jobworker.v1`,minSourceVersion:12,paths:[{from:`provider.type`,to:`provider.type`,valueMap:{rules:[{match:`anthropic`,value:`anthropic`},{match:`bedrock`,value:`bedrock`},{match:`openai`,value:`openai`},{match:`azureOpenAi`,value:`openai`},{match:`openaiCompatible`,value:`openai`},{match:`google-vertex-ai`,value:`google-gemini`}]}},{when:{path:`provider.type`,equals:`anthropic`},rules:[{to:`provider.anthropic.model.parameters.promptCaching.enabled`,set:!0,note:`Anthropic prompt caching is now enabled, and effort and thinking use the model default. v1 sent no caching or reasoning settings.`},{when:{path:`provider.anthropic.endpoint`,exists:!1},rules:[{to:`provider.anthropic.backend.type`,set:`anthropic-api`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.anthropic.apiKey`}]},{when:{path:`provider.anthropic.endpoint`,matches:`*.azure.com*`},rules:[{to:`provider.anthropic.backend.type`,set:`foundry`},{to:`provider.anthropic.backend.foundry.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.foundry.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.foundry.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the Microsoft Foundry backend. v2 adds /anthropic if missing and appends /v1/messages, so remove a trailing /anthropic/v1 or /v1.`}}]},{when:{path:`provider.anthropic.endpoint`,matches:`*.azure.us*`},rules:[{to:`provider.anthropic.backend.type`,set:`foundry`},{to:`provider.anthropic.backend.foundry.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.foundry.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.foundry.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the Microsoft Foundry backend. v2 adds /anthropic if missing and appends /v1/messages, so remove a trailing /anthropic/v1 or /v1.`}}]},{when:{path:`provider.anthropic.endpoint`,matches:`*.azure.cn*`},rules:[{to:`provider.anthropic.backend.type`,set:`foundry`},{to:`provider.anthropic.backend.foundry.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.foundry.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.foundry.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the Microsoft Foundry backend. v2 adds /anthropic if missing and appends /v1/messages, so remove a trailing /anthropic/v1 or /v1.`}}]},{when:[{path:`provider.anthropic.endpoint`,exists:!0},{path:`provider.anthropic.endpoint`,matches:`*.azure.com*`,not:!0},{path:`provider.anthropic.endpoint`,matches:`*.azure.us*`,not:!0},{path:`provider.anthropic.endpoint`,matches:`*.azure.cn*`,not:!0}],rules:[{to:`provider.anthropic.backend.type`,set:`custom`},{to:`provider.anthropic.backend.custom.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.custom.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.custom.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the custom backend. v2 appends /v1/messages, so remove a trailing /v1.`}}]}]},{when:{path:`provider.type`,equals:`bedrock`},rules:[{to:`provider.bedrock.model.parameters.promptCaching.enabled`,set:!0,note:`AWS Bedrock prompt caching is now enabled. v1 sent no caching settings.`}]},{when:{path:`provider.type`,equals:`openai`},rules:[{to:`provider.openai.api.type`,set:`completions`},{to:`provider.openai.backend.type`,set:`openai-api`},{from:`provider.openai.authentication.apiKey`,to:`provider.openai.backend.openai.apiKey`},{from:`provider.openai.authentication.organizationId`,to:`provider.openai.backend.openai.organizationId`},{from:`provider.openai.authentication.projectId`,to:`provider.openai.backend.openai.projectId`},{from:`provider.openai.model.parameters.maxCompletionTokens`,to:`provider.openai.api.completions.maxCompletionTokens`},{from:`provider.openai.model.parameters.temperature`,to:`provider.openai.api.completions.temperature`},{from:`provider.openai.model.parameters.topP`,to:`provider.openai.api.completions.topP`}]},{when:{path:`provider.type`,equals:`azureOpenAi`},rules:[{to:`provider.openai.api.type`,set:`completions`},{to:`provider.openai.backend.type`,set:`foundry`},{from:`provider.azureOpenAi.endpoint`,to:`provider.openai.backend.foundry.endpoint`},{from:`provider.azureOpenAi.authentication.type`,to:`provider.openai.backend.foundry.authentication.type`},{from:`provider.azureOpenAi.authentication.apiKey`,to:`provider.openai.backend.foundry.authentication.apiKey`},{from:`provider.azureOpenAi.authentication.clientId`,to:`provider.openai.backend.foundry.authentication.clientId`},{from:`provider.azureOpenAi.authentication.clientSecret`,to:`provider.openai.backend.foundry.authentication.clientSecret`},{from:`provider.azureOpenAi.authentication.tenantId`,to:`provider.openai.backend.foundry.authentication.tenantId`},{from:`provider.azureOpenAi.authentication.authorityHost`,to:`provider.openai.backend.foundry.authentication.authorityHost`},{from:`provider.azureOpenAi.timeouts.timeout`,to:`provider.openai.timeouts.timeout`},{from:`provider.azureOpenAi.model.deploymentName`,to:`provider.openai.model.model`},{from:`provider.azureOpenAi.model.parameters.maxTokens`,to:`provider.openai.api.completions.maxCompletionTokens`},{from:`provider.azureOpenAi.model.parameters.temperature`,to:`provider.openai.api.completions.temperature`},{from:`provider.azureOpenAi.model.parameters.topP`,to:`provider.openai.api.completions.topP`}]},{when:{path:`provider.type`,equals:`openaiCompatible`},rules:[{to:`provider.openai.api.type`,set:`completions`},{to:`provider.openai.backend.type`,set:`custom`},{from:`provider.openaiCompatible.endpoint`,to:`provider.openai.backend.custom.endpoint`},{from:`provider.openaiCompatible.headers`,to:`provider.openai.backend.custom.headers`},{from:`provider.openaiCompatible.queryParameters`,to:`provider.openai.backend.custom.queryParameters`},{from:`provider.openaiCompatible.timeouts.timeout`,to:`provider.openai.timeouts.timeout`},{from:`provider.openaiCompatible.model.model`,to:`provider.openai.model.model`},{from:`provider.openaiCompatible.model.parameters.maxCompletionTokens`,to:`provider.openai.api.completions.maxCompletionTokens`},{from:`provider.openaiCompatible.model.parameters.temperature`,to:`provider.openai.api.completions.temperature`},{from:`provider.openaiCompatible.model.parameters.topP`,to:`provider.openai.api.completions.topP`},{from:`provider.openaiCompatible.model.parameters.customParameters`,to:`provider.openai.backend.custom.bodyProperties`},{when:{path:`provider.openaiCompatible.authentication.apiKey`,exists:!0},rules:[{to:`provider.openai.backend.custom.authentication.type`,set:`apiKey`},{from:`provider.openaiCompatible.authentication.apiKey`,to:`provider.openai.backend.custom.authentication.apiKey`}]},{when:{path:`provider.openaiCompatible.authentication.apiKey`,exists:!1},rules:[{to:`provider.openai.backend.custom.authentication.type`,set:`none`}]}]},{when:{path:`provider.type`,equals:`google-vertex-ai`},rules:[{to:`provider.googleGemini.backend.type`,set:`google-vertex-ai`},{from:`provider.googleVertexAi.projectId`,to:`provider.googleGemini.backend.googleVertexAi.projectId`},{from:`provider.googleVertexAi.region`,to:`provider.googleGemini.backend.googleVertexAi.region`},{from:`provider.googleVertexAi.endpoint`,to:`provider.googleGemini.backend.googleVertexAi.endpoint`,note:{level:`warning`,message:`The custom Vertex AI endpoint was moved to a hidden v2 field. It applies at runtime, but Modeler no longer shows or edits it.`}},{from:`provider.googleVertexAi.authentication.type`,to:`provider.googleGemini.backend.googleVertexAi.authentication.type`},{from:`provider.googleVertexAi.authentication.jsonKey`,to:`provider.googleGemini.backend.googleVertexAi.authentication.jsonKey`},{from:`provider.googleVertexAi.timeouts.timeout`,to:`provider.googleGemini.timeouts.timeout`},{from:`provider.googleVertexAi.model.model`,to:`provider.googleGemini.model.model`},{from:`provider.googleVertexAi.model.parameters.maxOutputTokens`,to:`provider.googleGemini.model.parameters.maxTokens`},{from:`provider.googleVertexAi.model.parameters.temperature`,to:`provider.googleGemini.model.parameters.temperature`},{from:`provider.googleVertexAi.model.parameters.topP`,to:`provider.googleGemini.model.parameters.topP`},{from:`provider.googleVertexAi.model.parameters.topK`,to:`provider.googleGemini.model.parameters.topK`}]}]}]}},y={id:`io.camunda.connectors.agenticai.ai-agent-task.v2`,version:1,elementType:`bpmn:ServiceTask`,taskDefinitionType:`io.camunda.agenticai:aiagent:task:2`,agentType:`aiAgentTask`,inputs:[{name:`provider.type`,type:`Dropdown`,value:`anthropic`,choices:[`anthropic`,`bedrock`,`openai`,`google-gemini`,`mistral`,`custom`]},{name:`provider.anthropic.backend.type`,type:`Dropdown`,value:`anthropic-api`,condition:{property:`provider.type`,equals:`anthropic`},choices:[`anthropic-api`,`aws-bedrock-mantle`,`foundry`,`custom`]},{name:`provider.anthropic.backend.anthropic.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.anthropic.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.region`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.awsBedrockMantle.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,type:`Dropdown`,value:`credentials`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},choices:[`credentials`,`apiKey`,`defaultCredentialsChain`]},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.accessKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,equals:`credentials`},{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.secretKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,equals:`credentials`},{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.awsBedrockMantle.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.awsBedrockMantle.authentication.type`,equals:`apiKey`},{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.type`,type:`Dropdown`,value:`apiKey`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},choices:[`apiKey`,`clientCredentials`,`managedIdentity`]},{name:`provider.anthropic.backend.foundry.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`apiKey`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.tenantId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.foundry.authentication.authorityHost`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.clientId`,id:`provider.anthropic.backend.foundry.authentication.managedIdentity.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.authentication.entraIdScope`,id:`provider.anthropic.backend.foundry.authentication.managedIdentity.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.type`,type:`Dropdown`,value:`none`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},choices:[`none`,`apiKey`,`oauth-client-credentials-flow`]},{name:`provider.anthropic.backend.custom.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`apiKey`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.oauthTokenEndpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.backend.custom.authentication.audience`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.authentication.clientAuthentication`,type:`Dropdown`,value:`BASIC_AUTH_HEADER`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},choices:[`BASIC_AUTH_HEADER`,`CREDENTIALS_BODY`]},{name:`provider.anthropic.backend.custom.authentication.scopes`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.anthropic.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.bedrock.region`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`}},{name:`provider.bedrock.endpoint`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.authentication.type`,type:`Dropdown`,value:`credentials`,condition:{property:`provider.type`,equals:`bedrock`},choices:[`credentials`,`apiKey`,`defaultCredentialsChain`]},{name:`provider.bedrock.authentication.accessKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.bedrock.authentication.type`,equals:`credentials`},{property:`provider.type`,equals:`bedrock`}]}},{name:`provider.bedrock.authentication.secretKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.bedrock.authentication.type`,equals:`credentials`},{property:`provider.type`,equals:`bedrock`}]}},{name:`provider.bedrock.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.bedrock.authentication.type`,equals:`apiKey`},{property:`provider.type`,equals:`bedrock`}]}},{name:`provider.bedrock.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.api.type`,type:`Dropdown`,value:`responses`,condition:{property:`provider.type`,equals:`openai`},choices:[`responses`,`completions`]},{name:`provider.openai.backend.type`,type:`Dropdown`,value:`openai-api`,condition:{property:`provider.type`,equals:`openai`},choices:[`openai-api`,`foundry`,`custom`]},{name:`provider.openai.backend.openai.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.openai.organizationId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.projectId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.type`,type:`Dropdown`,value:`apiKey`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},choices:[`apiKey`,`clientCredentials`,`managedIdentity`]},{name:`provider.openai.backend.foundry.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`apiKey`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.tenantId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.foundry.authentication.authorityHost`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`clientCredentials`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.clientId`,id:`provider.openai.backend.foundry.authentication.managedIdentity.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.authentication.entraIdScope`,id:`provider.openai.backend.foundry.authentication.managedIdentity.entraIdScope`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.foundry.authentication.type`,equals:`managedIdentity`},{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.type`,type:`Dropdown`,value:`none`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},choices:[`none`,`apiKey`,`oauth-client-credentials-flow`]},{name:`provider.openai.backend.custom.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`apiKey`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.oauthTokenEndpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]}},{name:`provider.openai.backend.custom.authentication.audience`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.authentication.clientAuthentication`,type:`Dropdown`,value:`BASIC_AUTH_HEADER`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},choices:[`BASIC_AUTH_HEADER`,`CREDENTIALS_BODY`]},{name:`provider.openai.backend.custom.authentication.scopes`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.openai.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`openai`},optional:!0},{name:`provider.googleGemini.backend.type`,type:`Dropdown`,value:`google-gemini-api`,condition:{property:`provider.type`,equals:`google-gemini`},choices:[`google-gemini-api`,`google-vertex-ai`]},{name:`provider.googleGemini.backend.googleGeminiApi.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-gemini-api`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.backend.googleGeminiApi.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-gemini-api`},{property:`provider.type`,equals:`google-gemini`}]},optional:!0},{name:`provider.googleGemini.backend.googleVertexAi.projectId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.backend.googleVertexAi.region`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.backend.googleVertexAi.endpoint`,type:`Hidden`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]},optional:!0},{name:`provider.googleGemini.backend.googleVertexAi.authentication.type`,type:`Dropdown`,value:`serviceAccountCredentials`,condition:{allMatch:[{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]},choices:[`serviceAccountCredentials`,`applicationDefaultCredentials`]},{name:`provider.googleGemini.backend.googleVertexAi.authentication.jsonKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.googleGemini.backend.googleVertexAi.authentication.type`,equals:`serviceAccountCredentials`},{property:`provider.googleGemini.backend.type`,equals:`google-vertex-ai`},{property:`provider.type`,equals:`google-gemini`}]}},{name:`provider.googleGemini.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.mistral.backend.type`,type:`Dropdown`,value:`mistral-api`,condition:{property:`provider.type`,equals:`mistral`},choices:[`mistral-api`,`custom`]},{name:`provider.mistral.backend.mistral.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.mistral.endpoint`,type:`Hidden`,value:`https://api.mistral.ai/v1`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.endpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.type`,type:`Dropdown`,value:`none`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},choices:[`none`,`apiKey`,`oauth-client-credentials-flow`]},{name:`provider.mistral.backend.custom.authentication.apiKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`apiKey`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.oauthTokenEndpoint`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.clientId`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.clientSecret`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]}},{name:`provider.mistral.backend.custom.authentication.audience`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.authentication.clientAuthentication`,type:`Dropdown`,value:`BASIC_AUTH_HEADER`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},choices:[`BASIC_AUTH_HEADER`,`CREDENTIALS_BODY`]},{name:`provider.mistral.backend.custom.authentication.scopes`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`provider.mistral.backend.custom.authentication.type`,equals:`oauth-client-credentials-flow`},{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.timeouts.timeout`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`provider.providerType`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`custom`}},{name:`provider.parameters`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`custom`},optional:!0},{name:`provider.anthropic.backend.anthropic.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.anthropic.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.anthropic.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`anthropic-api`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.awsBedrockMantle.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`aws-bedrock-mantle`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.foundry.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.headers`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.queryParameters`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.anthropic.backend.custom.bodyProperties`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.backend.type`,equals:`custom`},{property:`provider.type`,equals:`anthropic`}]},optional:!0},{name:`provider.bedrock.headers`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.queryParameters`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.bodyProperties`,type:`String`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.backend.openai.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.openai.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`openai-api`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.apiVersion`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.foundry.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`foundry`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.headers`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.queryParameters`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.backend.custom.bodyProperties`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.openai.backend.type`,equals:`custom`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.mistral.backend.mistral.headers`,type:`Hidden`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.mistral.queryParameters`,type:`Hidden`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.mistral.bodyProperties`,type:`Hidden`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`mistral-api`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.headers`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.queryParameters`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.mistral.backend.custom.bodyProperties`,type:`String`,feel:`required`,condition:{allMatch:[{property:`provider.mistral.backend.type`,equals:`custom`},{property:`provider.type`,equals:`mistral`}]},optional:!0},{name:`provider.anthropic.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`anthropic`}},{name:`provider.anthropic.model.parameters.effort`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`anthropic`},choices:[`modelDefault`,`low`,`medium`,`high`,`xhigh`,`max`]},{name:`provider.anthropic.model.parameters.thinking.mode`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`anthropic`},choices:[`modelDefault`,`enabled`,`adaptive`,`disabled`]},{name:`provider.anthropic.model.parameters.thinking.budgetTokens`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.anthropic.model.parameters.thinking.mode`,equals:`enabled`},{property:`provider.type`,equals:`anthropic`}]}},{name:`provider.anthropic.model.parameters.thinking.display`,type:`Dropdown`,value:`summarized`,condition:{allMatch:[{property:`provider.anthropic.model.parameters.thinking.mode`,equals:`adaptive`},{property:`provider.type`,equals:`anthropic`}]},choices:[`summarized`,`omitted`],optional:!0},{name:`provider.anthropic.model.parameters.promptCaching.enabled`,type:`Boolean`,value:!0,feel:`static`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.bedrock.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`bedrock`}},{name:`provider.bedrock.model.parameters.promptCaching.enabled`,type:`Boolean`,value:!0,feel:`static`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`openai`}},{name:`provider.openai.api.responses.effort`,type:`Dropdown`,value:`modelDefault`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},choices:[`modelDefault`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]},{name:`provider.openai.api.completions.effort`,type:`Dropdown`,value:`modelDefault`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},choices:[`modelDefault`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]},{name:`provider.googleGemini.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`google-gemini`}},{name:`provider.googleGemini.model.parameters.thinking.thinkingBudget`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.googleGemini.model.parameters.thinking.thinkingLevel`,equals:`modelDefault`},{property:`provider.type`,equals:`google-gemini`}]},optional:!0},{name:`provider.googleGemini.model.parameters.thinking.thinkingLevel`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`google-gemini`},choices:[`modelDefault`,`minimal`,`low`,`medium`,`high`]},{name:`provider.mistral.model.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`mistral`}},{name:`provider.mistral.parameters.effort`,type:`Dropdown`,value:`modelDefault`,condition:{property:`provider.type`,equals:`mistral`},choices:[`modelDefault`,`none`,`high`]},{name:`provider.model`,type:`String`,feel:`optional`,condition:{property:`provider.type`,equals:`custom`}},{name:`provider.anthropic.model.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.anthropic.model.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.anthropic.model.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.anthropic.model.parameters.topK`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`anthropic`},optional:!0},{name:`provider.bedrock.model.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.model.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.bedrock.model.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`bedrock`},optional:!0},{name:`provider.openai.api.responses.maxOutputTokens`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.responses.temperature`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.responses.topP`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`responses`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.completions.maxCompletionTokens`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.completions.temperature`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.openai.api.completions.topP`,type:`Number`,feel:`required`,condition:{allMatch:[{property:`provider.openai.api.type`,equals:`completions`},{property:`provider.type`,equals:`openai`}]},optional:!0},{name:`provider.googleGemini.model.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.googleGemini.model.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.googleGemini.model.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.googleGemini.model.parameters.topK`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`google-gemini`},optional:!0},{name:`provider.mistral.parameters.maxTokens`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`provider.mistral.parameters.temperature`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`provider.mistral.parameters.topP`,type:`Number`,feel:`required`,condition:{property:`provider.type`,equals:`mistral`},optional:!0},{name:`data.systemPrompt.prompt`,type:`Text`,value:`="You are **TaskAgent**, a helpful, capable agent that can handle a wide variety of customer requests using your own knowledge **and** any tools explicitly provided to you at runtime. Prefer a provided tool over guessing whenever it would give a more accurate or reliable answer, and only use tools that were explicitly configured for you (never assume a tool exists). You can call the same tool multiple times with different inputs if that helps complete the request. If no tool fits the request, answer from your own knowledge; if you can't produce a reliable answer, say so plainly and explain why, rather than guessing."`,feel:`required`},{name:`data.userPrompt.prompt`,type:`Text`,feel:`required`},{name:`data.userPrompt.documents`,type:`String`,feel:`required`,optional:!0},{name:`data.tools.containerElementId`,type:`String`,feel:`optional`,optional:!0},{name:`data.tools.toolCallResults`,type:`Text`,feel:`required`,optional:!0},{name:`data.context`,id:`data.agentContext`,type:`Text`,value:`=agent.context`,feel:`required`},{name:`data.memory.storage.type`,type:`Dropdown`,value:`in-process`,choices:[`in-process`,`camunda-document`,`aws-agentcore`,`custom`]},{name:`data.memory.storage.timeToLive`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`camunda-document`},optional:!0},{name:`data.memory.storage.customProperties`,type:`String`,feel:`required`,condition:{property:`data.memory.storage.type`,equals:`camunda-document`},optional:!0},{name:`data.memory.storage.region`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`}},{name:`data.memory.storage.endpoint`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`},optional:!0},{name:`data.memory.storage.authentication.type`,type:`Dropdown`,value:`credentials`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`},choices:[`credentials`,`defaultCredentialsChain`]},{name:`data.memory.storage.authentication.accessKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`data.memory.storage.authentication.type`,equals:`credentials`},{property:`data.memory.storage.type`,equals:`aws-agentcore`}]}},{name:`data.memory.storage.authentication.secretKey`,type:`String`,feel:`optional`,condition:{allMatch:[{property:`data.memory.storage.authentication.type`,equals:`credentials`},{property:`data.memory.storage.type`,equals:`aws-agentcore`}]}},{name:`data.memory.storage.memoryId`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`}},{name:`data.memory.storage.actorId`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`aws-agentcore`}},{name:`data.memory.storage.storeType`,type:`String`,feel:`optional`,condition:{property:`data.memory.storage.type`,equals:`custom`}},{name:`data.memory.storage.parameters`,type:`String`,feel:`required`,condition:{property:`data.memory.storage.type`,equals:`custom`},optional:!0},{name:`data.memory.contextWindowSize`,type:`Number`,value:20,feel:`static`},{name:`data.limits.maxModelCalls`,type:`Number`,value:10,feel:`static`},{name:`data.response.format.type`,type:`Dropdown`,value:`text`,choices:[`text`,`json`]},{name:`data.response.format.parseJson`,type:`Boolean`,feel:`static`,condition:{property:`data.response.format.type`,equals:`text`},optional:!0},{name:`data.response.format.schema`,type:`String`,feel:`required`,condition:{property:`data.response.format.type`,equals:`json`},optional:!0},{name:`data.response.format.schemaName`,type:`String`,value:`Response`,feel:`optional`,condition:{property:`data.response.format.type`,equals:`json`},optional:!0},{name:`data.response.includeAssistantMessage`,type:`Boolean`,feel:`static`,optional:!0}],migratesFrom:{schemaVersion:1,sources:[{kind:`change`,sourceTemplateId:`io.camunda.connectors.agenticai.aiagent.v1`,minSourceVersion:12,paths:[{from:`provider.type`,to:`provider.type`,valueMap:{rules:[{match:`anthropic`,value:`anthropic`},{match:`bedrock`,value:`bedrock`},{match:`openai`,value:`openai`},{match:`azureOpenAi`,value:`openai`},{match:`openaiCompatible`,value:`openai`},{match:`google-vertex-ai`,value:`google-gemini`}]}},{when:{path:`provider.type`,equals:`anthropic`},rules:[{to:`provider.anthropic.model.parameters.promptCaching.enabled`,set:!0,note:`Anthropic prompt caching is now enabled, and effort and thinking use the model default. v1 sent no caching or reasoning settings.`},{when:{path:`provider.anthropic.endpoint`,exists:!1},rules:[{to:`provider.anthropic.backend.type`,set:`anthropic-api`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.anthropic.apiKey`}]},{when:{path:`provider.anthropic.endpoint`,matches:`*.azure.com*`},rules:[{to:`provider.anthropic.backend.type`,set:`foundry`},{to:`provider.anthropic.backend.foundry.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.foundry.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.foundry.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the Microsoft Foundry backend. v2 adds /anthropic if missing and appends /v1/messages, so remove a trailing /anthropic/v1 or /v1.`}}]},{when:{path:`provider.anthropic.endpoint`,matches:`*.azure.us*`},rules:[{to:`provider.anthropic.backend.type`,set:`foundry`},{to:`provider.anthropic.backend.foundry.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.foundry.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.foundry.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the Microsoft Foundry backend. v2 adds /anthropic if missing and appends /v1/messages, so remove a trailing /anthropic/v1 or /v1.`}}]},{when:{path:`provider.anthropic.endpoint`,matches:`*.azure.cn*`},rules:[{to:`provider.anthropic.backend.type`,set:`foundry`},{to:`provider.anthropic.backend.foundry.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.foundry.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.foundry.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the Microsoft Foundry backend. v2 adds /anthropic if missing and appends /v1/messages, so remove a trailing /anthropic/v1 or /v1.`}}]},{when:[{path:`provider.anthropic.endpoint`,exists:!0},{path:`provider.anthropic.endpoint`,matches:`*.azure.com*`,not:!0},{path:`provider.anthropic.endpoint`,matches:`*.azure.us*`,not:!0},{path:`provider.anthropic.endpoint`,matches:`*.azure.cn*`,not:!0}],rules:[{to:`provider.anthropic.backend.type`,set:`custom`},{to:`provider.anthropic.backend.custom.authentication.type`,set:`apiKey`},{from:`provider.anthropic.authentication.apiKey`,to:`provider.anthropic.backend.custom.authentication.apiKey`},{from:`provider.anthropic.endpoint`,to:`provider.anthropic.backend.custom.endpoint`,note:{level:`warning`,message:`The Anthropic endpoint was copied as-is to the custom backend. v2 appends /v1/messages, so remove a trailing /v1.`}}]}]},{when:{path:`provider.type`,equals:`bedrock`},rules:[{to:`provider.bedrock.model.parameters.promptCaching.enabled`,set:!0,note:`AWS Bedrock prompt caching is now enabled. v1 sent no caching settings.`}]},{when:{path:`provider.type`,equals:`openai`},rules:[{to:`provider.openai.api.type`,set:`completions`},{to:`provider.openai.backend.type`,set:`openai-api`},{from:`provider.openai.authentication.apiKey`,to:`provider.openai.backend.openai.apiKey`},{from:`provider.openai.authentication.organizationId`,to:`provider.openai.backend.openai.organizationId`},{from:`provider.openai.authentication.projectId`,to:`provider.openai.backend.openai.projectId`},{from:`provider.openai.model.parameters.maxCompletionTokens`,to:`provider.openai.api.completions.maxCompletionTokens`},{from:`provider.openai.model.parameters.temperature`,to:`provider.openai.api.completions.temperature`},{from:`provider.openai.model.parameters.topP`,to:`provider.openai.api.completions.topP`}]},{when:{path:`provider.type`,equals:`azureOpenAi`},rules:[{to:`provider.openai.api.type`,set:`completions`},{to:`provider.openai.backend.type`,set:`foundry`},{from:`provider.azureOpenAi.endpoint`,to:`provider.openai.backend.foundry.endpoint`},{from:`provider.azureOpenAi.authentication.type`,to:`provider.openai.backend.foundry.authentication.type`},{from:`provider.azureOpenAi.authentication.apiKey`,to:`provider.openai.backend.foundry.authentication.apiKey`},{from:`provider.azureOpenAi.authentication.clientId`,to:`provider.openai.backend.foundry.authentication.clientId`},{from:`provider.azureOpenAi.authentication.clientSecret`,to:`provider.openai.backend.foundry.authentication.clientSecret`},{from:`provider.azureOpenAi.authentication.tenantId`,to:`provider.openai.backend.foundry.authentication.tenantId`},{from:`provider.azureOpenAi.authentication.authorityHost`,to:`provider.openai.backend.foundry.authentication.authorityHost`},{from:`provider.azureOpenAi.timeouts.timeout`,to:`provider.openai.timeouts.timeout`},{from:`provider.azureOpenAi.model.deploymentName`,to:`provider.openai.model.model`},{from:`provider.azureOpenAi.model.parameters.maxTokens`,to:`provider.openai.api.completions.maxCompletionTokens`},{from:`provider.azureOpenAi.model.parameters.temperature`,to:`provider.openai.api.completions.temperature`},{from:`provider.azureOpenAi.model.parameters.topP`,to:`provider.openai.api.completions.topP`}]},{when:{path:`provider.type`,equals:`openaiCompatible`},rules:[{to:`provider.openai.api.type`,set:`completions`},{to:`provider.openai.backend.type`,set:`custom`},{from:`provider.openaiCompatible.endpoint`,to:`provider.openai.backend.custom.endpoint`},{from:`provider.openaiCompatible.headers`,to:`provider.openai.backend.custom.headers`},{from:`provider.openaiCompatible.queryParameters`,to:`provider.openai.backend.custom.queryParameters`},{from:`provider.openaiCompatible.timeouts.timeout`,to:`provider.openai.timeouts.timeout`},{from:`provider.openaiCompatible.model.model`,to:`provider.openai.model.model`},{from:`provider.openaiCompatible.model.parameters.maxCompletionTokens`,to:`provider.openai.api.completions.maxCompletionTokens`},{from:`provider.openaiCompatible.model.parameters.temperature`,to:`provider.openai.api.completions.temperature`},{from:`provider.openaiCompatible.model.parameters.topP`,to:`provider.openai.api.completions.topP`},{from:`provider.openaiCompatible.model.parameters.customParameters`,to:`provider.openai.backend.custom.bodyProperties`},{when:{path:`provider.openaiCompatible.authentication.apiKey`,exists:!0},rules:[{to:`provider.openai.backend.custom.authentication.type`,set:`apiKey`},{from:`provider.openaiCompatible.authentication.apiKey`,to:`provider.openai.backend.custom.authentication.apiKey`}]},{when:{path:`provider.openaiCompatible.authentication.apiKey`,exists:!1},rules:[{to:`provider.openai.backend.custom.authentication.type`,set:`none`}]}]},{when:{path:`provider.type`,equals:`google-vertex-ai`},rules:[{to:`provider.googleGemini.backend.type`,set:`google-vertex-ai`},{from:`provider.googleVertexAi.projectId`,to:`provider.googleGemini.backend.googleVertexAi.projectId`},{from:`provider.googleVertexAi.region`,to:`provider.googleGemini.backend.googleVertexAi.region`},{from:`provider.googleVertexAi.endpoint`,to:`provider.googleGemini.backend.googleVertexAi.endpoint`,note:{level:`warning`,message:`The custom Vertex AI endpoint was moved to a hidden v2 field. It applies at runtime, but Modeler no longer shows or edits it.`}},{from:`provider.googleVertexAi.authentication.type`,to:`provider.googleGemini.backend.googleVertexAi.authentication.type`},{from:`provider.googleVertexAi.authentication.jsonKey`,to:`provider.googleGemini.backend.googleVertexAi.authentication.jsonKey`},{from:`provider.googleVertexAi.timeouts.timeout`,to:`provider.googleGemini.timeouts.timeout`},{from:`provider.googleVertexAi.model.model`,to:`provider.googleGemini.model.model`},{from:`provider.googleVertexAi.model.parameters.maxOutputTokens`,to:`provider.googleGemini.model.parameters.maxTokens`},{from:`provider.googleVertexAi.model.parameters.temperature`,to:`provider.googleGemini.model.parameters.temperature`},{from:`provider.googleVertexAi.model.parameters.topP`,to:`provider.googleGemini.model.parameters.topP`},{from:`provider.googleVertexAi.model.parameters.topK`,to:`provider.googleGemini.model.parameters.topK`}]}]}]}};const b={[s]:y,[o]:v};var x=class extends Error{reason;detail;constructor(e,t,n={}){let i=r(`app.agents.migrate.refusal.${t}`,n);super(i),this.reason=e,this.detail=i}};function S(e,t){let n=e.split(`*`).map(e=>e.replace(/[.+?^${}()|[\]\\]/g,`\\$&`)).join(`.*`);return RegExp(`^${n}$`,`s`).test(t)}function C(e,t){let n=t.get(e.path),r;if(e.exists!==void 0)r=(n!==void 0&&n.trim()!==``)===e.exists;else if(e.equals!==void 0)r=n===e.equals;else if(e.matches!==void 0)r=n!==void 0&&S(e.matches,n);else throw new x(`unsupported-rule`,`unknownCondition`,{what:JSON.stringify(e)});return e.not===!0?!r:r}function w(e,t){return e===void 0||(Array.isArray(e)?e:[e]).every(e=>C(e,t))}function T(e){return e===void 0?null:typeof e==`string`?{level:`info`,message:e}:typeof e.message==`string`?{level:e.level===`warning`?`warning`:`info`,message:e.message}:null}function E(e,t){return typeof t==`boolean`?`=${t}`:typeof t==`number`?e?.feel===`static`||e?.type===`Number`?`=${t}`:String(t):t}function D(e,t,n,r){for(let i of e)if(i.rules!==void 0)w(i.when,t)&&D(i.rules,t,n,r);else{if(i.to===void 0)throw new x(`unsupported-rule`,`noTarget`);if(w(i.when,t)){if(i.from!==void 0){let e=t.get(i.from);if(e===void 0)continue;let r=e;if(i.valueMap){let t=i.valueMap.rules.find(t=>t.match===e);if(!t)throw new x(`unmapped-value`,e.startsWith(`=`)?`unmappedExpression`:`unmappedValue`,{path:i.from,value:e});r=t.value}n.moves.set(i.from,{to:i.to,source:r}),n.changes.push({kind:`moved`,target:i.to,from:i.from});let a=T(i.note);a&&n.notes.push(a)}else if(i.set!==void 0){n.sets.set(i.to,E(r.get(i.to),i.set)),n.changes.push({kind:`set`,target:i.to});let e=T(i.note);e&&n.notes.push(e)}else throw new x(`unsupported-rule`,`noAction`,{target:i.to})}}}function O(e,t){if(e===void 0)return!0;if(e.allMatch)return e.allMatch.every(e=>O(e,t));let n=t(e.property);if(n===null)throw new x(`dynamic-value`,`dynamicValue`,{property:e.property});if(e.equals!==void 0)return n===e.equals;if(e.oneOf!==void 0)return n!==void 0&&e.oneOf.includes(n);throw new x(`unsupported-rule`,`unknownCondition`,{what:JSON.stringify(e)})}function k(e,t){let n=b[t.id],r=n.migratesFrom.sources.find(e=>e.sourceTemplateId===t.id);if(!r)throw new x(`unsupported-rule`,`noMigration`);if(t.version===null)throw new x(`no-version`,`noVersion`);if(t.version<r.minSourceVersion)throw new x(`too-old`,`tooOld`,{version:t.version,min:r.minSourceVersion});if(t.version>13)throw new x(`too-new`,`tooNew`,{version:t.version,max:13});let i=a(e);if(((e.extensionElements?.values??[]).find(e=>e.$type===`zeebe:IoMapping`)?.inputParameters??[]).length!==i.size)throw new x(`duplicate-input`,`duplicateInput`);let o=new Map(n.inputs.map(e=>[e.name,e])),s=new Map(n.inputs.map(e=>[e.id??e.name,e])),c={moves:/* @__PURE__ */ new Map,sets:/* @__PURE__ */ new Map,notes:[],changes:[]};D(r.paths,i,c,o);let l=[],u=/* @__PURE__ */ new Map,d=e=>{let t=u.get(e.target);t===void 0?(u.set(e.target,l.length),l.push(e)):l[t]=e};for(let[e,t]of i){let n=c.moves.get(e);d(n?{target:n.to,source:n.source,raw:null,origin:`moved`,oldTarget:e}:{target:e,source:t,raw:t,origin:`old`,oldTarget:e})}for(let[e,t]of c.sets)d({target:e,source:t,raw:null,origin:`set`,oldTarget:e});let f=new Map(l.map(e=>[e.target,e.source??``])),p=e=>{let t=s.get(e),n=t?.name??e,r=f.get(n);return r===void 0?t?.value===void 0?void 0:E(t,t.value):r.startsWith(`=`)?null:r},m=/* @__PURE__ */ new Set;for(let e of n.inputs)O(e.condition,p)&&m.add(e.name);let h=[];for(let e of l){let t=o.get(e.target);if(!t)throw new x(`unknown-input`,`unknownInput`,{target:e.oldTarget});if(!m.has(e.target)){if((e.source??``).trim()===``)continue;throw new x(`inactive-input`,`inactiveInput`,{target:e.target})}if(t.choices&&e.source!==null&&!t.choices.includes(e.source)&&!(e.source.startsWith(`=`)&&t.feel!==void 0&&t.type!==`Dropdown`))throw new x(`bad-choice`,`badChoice`,{target:e.target,value:e.source});h.push(e)}let g=new Set(h.map(e=>e.target));for(let e of n.inputs)if(m.has(e.name)&&!g.has(e.name)){if(e.value!==void 0)h.push({target:e.name,source:E(e,e.value),raw:null,origin:`default`,oldTarget:e.name});else if(e.optional!==!0){if(e.type===`Dropdown`)throw new x(`unmapped-value`,`mustChoose`,{target:e.name});h.push({target:e.name,source:e.type===`Boolean`?`=false`:null,raw:null,origin:`default`,oldTarget:e.name})}}let _=[];for(let e of c.changes)h.some(t=>t.target===e.target)&&_.push(e);for(let e of h)e.origin==="default"&&_.push({kind:`added`,target:e.target});return{finals:h,changes:_,notes:c.notes,template:n}}const A=`(?:\\s+[^\\s=>/]+\\s*=\\s*(?:"[^"]*"|'[^']*'))*`;function j(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/\r?\n/g,` `).replace(/\t/g,`	`)}function M(e){return e.replace(/&#(\d+);/g,(e,t)=>String.fromCodePoint(Number(t))).replace(/&#x([0-9a-f]+);/gi,(e,t)=>String.fromCodePoint(parseInt(t,16))).replace(/"/g,`"`).replace(/'/g,`'`).replace(/</g,`<`).replace(/>/g,`>`).replace(/&/g,`&`)}function N(e){let t=/* @__PURE__ */ new Map;for(let n of e.matchAll(/([^\s=]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g))t.set(n[1],M(n[2]??n[3]??``));return t}function P(e){let t=/xmlns:([\w.-]+)\s*=\s*["']http:\/\/camunda\.org\/schema\/zeebe\/1\.0["']/.exec(e);return t?t[1]:null}function F(e,t){let n=[...e.matchAll(RegExp(`<([\\w.-]+:)?(?:serviceTask|adHocSubProcess)(${A})\\s*(/?)>`,`g`))].filter(e=>N(e[2]).get(`id`)===t);if(n.length!==1||n[0][3]===`/`)return null;let r=n[0],i=r.index,a=i+r[0].length,o=r[1]??``,s=e.slice(a),c=RegExp(`^(?:\\s|<${o}documentation(?:\\s[^>]*)?>[\\s\\S]*?</${o}documentation>)*<${o}extensionElements\\s*>`).exec(s);if(!c)return null;let l=a+c[0].length,u=e.indexOf(`</${o}extensionElements>`,l);return u<0?null:{tagStart:i,tagEnd:a,tag:r[0],blockStart:l,blockEnd:u,block:e.slice(l,u)}}function I(e,t){let n=RegExp(`<${t}ioMapping\\s*>([\\s\\S]*?)</${t}ioMapping>`).exec(e);if(!n)return null;let r=`<${t}ioMapping>`,i=n[1],a=n.index+n[0].indexOf(`>`)+1,o=[],s=RegExp(`<${t}(input|output)(${A})\\s*/>`,`g`);for(let e of i.matchAll(s)){if(e[1]===`output`)continue;let t=N(e[2]);o.push({start:a+e.index,end:a+e.index+e[0].length,text:e[0],target:t.get(`target`)??``,source:t.get(`source`)??``})}let c=/\n([ \t]*)<[^>]*\/>/.exec(i);return{start:n.index,end:n.index+n[0].length,open:r,inputs:o,indent:c?c[1]:``}}function L(e,t,n){return n===null?`<${e}input target="${j(t)}" />`:`<${e}input source="${j(n)}" target="${j(t)}" />`}function R(e,t,n){let r=RegExp(`(\\s${t.replace(/[.:]/g,`\\$&`)}\\s*=\\s*)(?:"[^"]*"|'[^']*')`);return r.test(e)?e.replace(r,`$1"${j(n)}"`):e.replace(/\s*(\/?)>$/,` ${t}="${j(n)}"$1>`)}function z(e,t,n){let r=P(e);if(r===null)throw new x(`not-locatable`,`noZeebe`);let i=F(e,t);if(!i)throw new x(`not-locatable`,`noElement`);let a=`${r}:`,o=I(i.block,a);if(!o)throw new x(`not-locatable`,`noInputs`);let s=new Map(o.inputs.map(e=>[e.target,e.text])),c=n.finals.map(e=>e.origin===`old`?s.get(e.oldTarget)??L(a,e.target,e.source):L(a,e.target,e.source)),l=i.block.slice(0,o.start),u=i.block.slice(o.end),d=`\n${o.indent}${c.join(`\n${o.indent}`)}\n${o.indent.slice(0,Math.max(0,o.indent.length-2))}`,f=`${l}${o.open}${d}</${a}ioMapping>${u}`,p=RegExp(`(<${a}taskDefinition${A}\\s*/>)`).exec(f);if(!p)throw new x(`not-locatable`,`noTaskDefinition`);f=f.replace(p[1],R(p[1],`type`,n.template.taskDefinitionType));for(let[e,t]of[[`elementTemplateVersion`,String(n.template.version)],[`elementTemplateId`,n.template.id]]){let n=RegExp(`<${a}header(?=\\s)[^>]*\\bkey\\s*=\\s*"${e}"[^>]*/>`).exec(f);n&&(f=f.replace(n[0],R(n[0],`value`,t)))}let m=i.tag;return m=R(m,`${a}modelerTemplate`,n.template.id),m=R(m,`${a}modelerTemplateVersion`,String(n.template.version)),`${e.slice(0,i.tagStart)}${m}${e.slice(i.tagEnd,i.blockStart)}${f}${e.slice(i.blockEnd)}`}function B(e){let t=[],n=e=>{for(let r of e.flowElements??[])t.push(r),r.flowElements&&n(r)};for(let t of e?.rootElements??[])if(t.$type===`bpmn:Process`&&n(t),t.$type===`bpmn:Collaboration`)for(let e of t.participants??[])e.processRef&&n(e.processRef);return t}function V(e){return typeof e.name==`string`&&e.name.trim()!==``?e.name:e.id}function H(e,t){let n=[];for(let r of B(e)){if(t.has(r.id))continue;let e=(r.extensionElements?.values??[]).find(e=>e.$type===`zeebe:TaskHeaders`)?.values??[];n.push(JSON.stringify([r.id,r.$type,c(r),[...a(r)],e.map(e=>[e.key,e.value])]))}return n.join(`
|
|
2
|
+
`)}async function U(e){let t=await i(e),n=[];if(!t)return{xml:e,items:n};let r=e;for(let e of B(t)){let t=c(e);if(t.id===null||!(t.id in b))continue;let o=t.id===`io.camunda.connectors.agenticai.aiagent.v1`?`task`:`subprocess`,s=b[t.id],l={id:s.id,version:s.version},u={elementId:e.id,name:V(e),kind:o,from:{id:t.id,version:t.version},to:l};try{if((o===`task`?`bpmn:ServiceTask`:`bpmn:AdHocSubProcess`)!==e.$type)throw new x(`unsupported-rule`,`wrongType`,{type:e.$type});let s=k(e,{id:t.id,version:t.version}),d=z(r,e.id,s),f=await i(d);if(!f)throw new x(`verification`,`unreadable`);let p=B(f).find(t=>t.id===e.id),m=new Map(s.finals.map(e=>[e.target,e.source??``])),h=p?a(p):/* @__PURE__ */ new Map,g=h.size===m.size&&[...m].every(([e,t])=>h.get(e)===t),_=p?c(p):{id:null,version:null};if(!p||!g||_.id!==l.id||_.version!==l.version)throw new x(`verification`,`readBack`);if(H(f,/* @__PURE__ */ new Set([e.id]))!==H(await i(r),/* @__PURE__ */ new Set([e.id])))throw new x(`verification`,`otherChanged`);r=d,n.push({...u,status:`migrated`,reason:null,detail:null,changes:s.changes,notes:s.notes})}catch(e){if(!(e instanceof x))throw e;n.push({...u,status:`untouched`,reason:e.reason,detail:e.detail,changes:[],notes:[]})}}return{xml:r,items:n}}async function W(e){let t=l(e[0]),n=_(t.root),r=[],i=[...new Set(e.flatMap(e=>u(e,[`process`])))].sort(),a=[],o=[];for(let e of i){let i=d(e,n,r);if(i===null)continue;let s=g.join(n,g.relative(t.root,e)),c=await U(i);c.items.length!==0&&(a.push({path:s,before:i,after:c.xml,items:c.items}),o.push({path:s,hash:p(i)}))}return{files:a,skipped:r,snapshots:o,root:n,plan:{edits:a.filter(e=>e.before!==e.after).map(e=>({path:e.path,before:e.before,after:e.after})),creates:[]}}}const G={symlink:`app.migration.apply.reason.symlink`,outside:`app.migration.apply.reason.outside`};function K(e){return e.kind===`moved`&&e.from===e.target?r(`app.cli.agents.migrate.change.remapped`,{target:e.target}):r(`app.cli.agents.migrate.change.${e.kind}`,{target:e.target,from:e.from??``})}function q(e,t){return[r(`app.cli.agents.migrate.element`,{file:e,id:t.elementId,from:t.from.version??`?`,to:t.to.version}),...t.changes.map(e=>` ${K(e)}`),...t.notes.map(e=>` ${e.level}: ${e.message}`)]}async function J(i,a,o){let s=o??await n(),c=t(s);if(a.write&&!c)return{ok:!1,lines:e(s,`agent-tools`)};let l=await W(i),u=e=>g.relative(l.root,e).split(g.sep).join(`/`),d=l.files.flatMap(e=>e.items.map(t=>({file:u(e.path),item:t}))),p=d.filter(e=>e.item.status===`migrated`),_=d.filter(e=>e.item.status===`untouched`),v=a.write||c?0:Math.max(0,p.length-3),y=v>0?p.slice(0,3):p,b=[];if(a.write&&l.plan.edits.length>0)try{b=f(l).rewritten}catch(e){if(e instanceof m){let t=e.files.map(e=>`${u(e.path)}: ${r(`app.migration.apply.reason.${e.reason}`)}`);return{ok:!1,lines:[r(`app.cli.migrate.apply.refused`),...t.map(e=>` ${e}`)]}}throw e}if(a.format===`json`)return{ok:!0,refused:!1,lines:[JSON.stringify({write:a.write,written:b.map(u),migrated:y.map(({file:e,item:t})=>({file:e,...t})),migratedTotal:p.length,truncated:v>0||void 0,untouched:_.map(({file:e,item:t})=>({file:e,element:t.elementId,name:t.name,reason:t.reason,detail:t.detail})),skipped:l.skipped.map(e=>({file:u(e.path),reason:e.reason}))},null,2)]};if(d.length===0&&l.skipped.length===0)return{ok:!0,lines:[r(`app.cli.agents.migrate.nothing`)]};let x=[];a.write||x.push(r(`app.cli.agents.migrate.dryRun`),``),a.write&&b.forEach(e=>x.push(`${h(`wrote`)}\t${u(e)}`));for(let{file:e,item:t}of y)x.push(...q(e,t));if(v>0&&x.push(``,r(`app.cli.agents.migrate.freePreview`,{shown:y.length,total:p.length}),...e(s,`agent-tools`)),_.length>0){x.push(``,r(`app.cli.agents.migrate.untouched`));for(let{file:e,item:t}of _)x.push(` ${e}: ${t.elementId}: ${t.detail??t.reason??``}`)}return l.skipped.forEach(e=>x.push(r(`app.cli.migrate.apply.skipped`,{file:u(e.path),reason:r(G[e.reason])}))),x.push(``,r(a.write?`app.cli.agents.migrate.summaryWritten`:`app.cli.agents.migrate.summaryDry`,{migrated:p.length,untouched:_.length})),!a.write&&p.length>0&&x.push(r(`app.cli.agents.migrate.runWrite`)),{ok:!0,lines:x}}export{J as migrateAgentsCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{i as flowFindings,o as pathsCommand,c as unreadableDmn}from"./chunk-analyze-
|
|
1
|
+
export{i as flowFindings,o as pathsCommand,c as unreadableDmn}from"./chunk-analyze-DgQqzEgb.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./chunk-moddle-D3Ym38EZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{r as n,t as r}from"./chunk-say-CtmOlXtN.js";import{t as i}from"./chunk-sections-Co5ovFf4.js";import{t as a}from"./chunk-list-XuNpvC6j.js";import{r as o,t as s}from"./chunk-analyzeFlow-F2ZFmJhv.js";import{r as c}from"./chunk-context-rCJvBM9p.js";import{t as l}from"./chunk-report-w7YZwhyg.js";import{d as u,u as d}from"./chunk-model-BulEKnY1.js";import{r as f}from"./chunk-docs-BVmrekiH.js";import{t as p}from"./chunk-plural-Dn-7ulHf.js";import{s as m}from"./chunk-failure-BRyRvObj.js";import{t as h}from"./chunk-buffers-B8jONhEB.js";const g=e=>n(`table`,e),_=`\0other`;function v(e){let t=[],n=0,r=!1,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];r&&o===`\\`?a+=1:(o===`"`&&(r=!r),r||((o===`(`||o===`[`)&&(n+=1),(o===`)`||o===`]`)&&--n,o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)))}return t.push(e.slice(i)),t.map(e=>e.trim()).filter(Boolean)}function y(e){return/^-?\d+(\.\d+)?$/.test(e.trim())?Number(e.trim()):null}const b=864e5,x=/^\d{4}-\d{2}-\d{2}(?:T[\d:.]+(?:Z|[+-]\d{2}:?\d{2})?)?$/,S=/^(?:date\s*\(\s*"([^"]+)"\s*\)|date\s+and\s+time\s*\(\s*"([^"]+)"\s*\)|time\s*\(\s*"([^"]+)"\s*\)|@"([^"]+)"|@([\d:.+\-TZ]+))$/;function C(e){let t=e.slice(0,10),n=/* @__PURE__ */ new Date(`${t}T00:00:00Z`);return!Number.isNaN(n.getTime())&&n.toISOString().slice(0,10)===t}function w(e){let t=S.exec(e.trim());if(!t)return null;let n=t[1]??t[2]??t[3]??t[4]??t[5]??``;return x.test(n)&&C(n)?n:null}function T(e){return typeof e==`string`&&x.test(e)}function E(e){return(/* @__PURE__ */ new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)-b)).toISOString().slice(0,10)}function D(e){return new Date(Date.parse(`${e.slice(0,10)}T00:00:00Z`)+b).toISOString().slice(0,10)}function O(e,t){let n=Date.parse(`${e.slice(0,10)}T00:00:00Z`)+(Date.parse(`${t.slice(0,10)}T00:00:00Z`)-Date.parse(`${e.slice(0,10)}T00:00:00Z`))/2;return new Date(n).toISOString().slice(0,10)}function k(e){return{kind:`date`,test:t=>T(t)&&t===e,numbers:[],strings:[],moments:[e]}}function A(e){let t=e.trim(),n=/^not\s*\(([\s\S]*)\)$/.exec(t);if(n){if(n[1].trim()===``)return null;let e=j(n[1]);return e?{...e,test:t=>!e.test(t)}:null}if(t===`true`||t===`false`){let e=t===`true`;return{kind:`boolean`,test:t=>t===e,numbers:[],strings:[],moments:[]}}if(t===`null`)return{kind:`null`,test:e=>e===`null`,numbers:[],strings:[],moments:[]};let r=/^"((?:[^"\\]|\\.)*)"$/.exec(t);if(r)return{kind:`string`,test:e=>e===r[1],numbers:[],strings:[r[1]],moments:[]};let i=y(t);if(i!==null)return{kind:`number`,test:e=>e===i,numbers:[i],strings:[],moments:[]};let a=w(t);if(a)return k(a);let o=/^(<=|>=|<|>|=)\s*(-?\d+(?:\.\d+)?)$/.exec(t);if(o){let e=Number(o[2]);return{kind:`number`,test:{"<":t=>typeof t==`number`&&t<e,"<=":t=>typeof t==`number`&&t<=e,">":t=>typeof t==`number`&&t>e,">=":t=>typeof t==`number`&&t>=e,"=":t=>t===e}[o[1]],numbers:[e],strings:[],moments:[]}}let s=/^(<=|>=|<|>|=)\s*((?:date\s*\(\s*"[^"]+"\s*\)|date\s+and\s+time\s*\(\s*"[^"]+"\s*\)|time\s*\(\s*"[^"]+"\s*\)|@"[^"]+"))$/.exec(t);if(s){let e=w(s[2]);return e===null?null:{kind:`date`,test:{"<":t=>T(t)&&t<e,"<=":t=>T(t)&&t<=e,">":t=>T(t)&&t>e,">=":t=>T(t)&&t>=e,"=":t=>T(t)&&t===e}[s[1]],numbers:[],strings:[],moments:[e]}}let c=/^([[\](])\s*(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)\s*([[\])])$/.exec(t);if(c){let[e,t]=[Number(c[2]),Number(c[3])],n=c[1]!==`[`,r=c[4]!==`]`;return{kind:`number`,test:i=>typeof i==`number`&&(n?i>e:i>=e)&&(r?i<t:i<=t),numbers:[e,t],strings:[],moments:[]}}let l=/^([[\]()])\s*((?:date\s*\(\s*"[^"]+"\s*\)|date\s+and\s+time\s*\(\s*"[^"]+"\s*\)|time\s*\(\s*"[^"]+"\s*\)|@"[^"]+"))\s*\.\.\s*((?:date\s*\(\s*"[^"]+"\s*\)|date\s+and\s+time\s*\(\s*"[^"]+"\s*\)|time\s*\(\s*"[^"]+"\s*\)|@"[^"]+"))\s*([[\])])$/.exec(t);if(l){let[e,t]=[w(l[2]),w(l[3])];if(e===null||t===null)return null;let n=l[1]!==`[`,r=l[4]!==`]`;return{kind:`date`,test:i=>T(i)&&(n?i>e:i>=e)&&(r?i<t:i<=t),numbers:[],strings:[],moments:[e,t]}}return null}function j(e){let t=(e??``).trim();if(t===``||t===`-`)return{kind:`any`,test:()=>!0,numbers:[],strings:[],moments:[]};let n=v(t);if(n.length>1){let e=n.map(A);if(e.some(e=>!e))return null;let t=e;return{kind:t.find(e=>e.kind!==`any`)?.kind??`any`,test:e=>t.some(t=>t.test(e)),numbers:t.flatMap(e=>e.numbers),strings:t.flatMap(e=>e.strings),moments:t.flatMap(e=>e.moments)}}return A(t)}function M(e,t){let n=new Set(e.map(e=>e.kind).filter(e=>e!==`any`)),r=(t??``).toLowerCase();if(n.size>1)return null;let i=n.size===1?[...n][0]:r===`boolean`?`boolean`:r===`string`?`string`:/int|long|double|number|decimal/.test(r)?`number`:`any`;if(i===`any`)return[_];if(i===`boolean`)return[!0,!1];if(i===`string`)return[...new Set(e.flatMap(e=>e.strings)),_];if(i===`date`){let t=[...new Set(e.flatMap(e=>e.moments))].sort();if(t.length===0)return[_];let n=t.slice(1).map((e,n)=>O(t[n],e));return[.../* @__PURE__ */ new Set([E(t[0]),...t.flatMap((e,r)=>[e,...r+1<t.length?[n[r]]:[]]),D(t[t.length-1])])]}let a=/int|long/.test(r),o=[...new Set(e.flatMap(e=>e.numbers))].sort((e,t)=>e-t);if(o.length===0)return[0];let s=[o[0]-1];return o.forEach((e,t)=>{s.push(e);let n=o[t+1];n!==void 0&&(a?n-e>1&&s.push(e+1):s.push((e+n)/2))}),s.push(o[o.length-1]+1),s}function N(e){return e===_?t(`app.rules.table.someOtherValue`):typeof e==`string`?`"${e}"`:String(e)}function P(e,n){let r=e.name?.trim()||e.id||t(`app.rules.table.aDecision`),i=n.input??[],a=n.rule??[];if(a.length===0||i.length===0)return[];let o=a.map(e=>i.map((t,n)=>j(e.inputEntry?.[n]?.text)));if(o.some(e=>e.some(e=>!e)))return[{kind:`TABLE-UNREAD`,decision:r,title:g(`TABLE-UNREAD`),detail:t(`app.rules.table.unread`,{decision:r}),rules:[]}];let s=o,c=i.map((e,t)=>M(s.map(e=>e[t]),e.inputExpression?.typeRef));if(c.some(e=>!e))return[];let l=c,u=i.map((e,n)=>e.label?.trim()||e.inputExpression?.text?.trim()||t(`app.rules.table.input`,{number:n+1})),d=[],f=(n.hitPolicy??`UNIQUE`).toUpperCase(),p=e=>(a[e].outputEntry??[]).map(e=>(e.text??``).trim()).join(`|`);if(f===`UNIQUE`||f===`ANY`)for(let e=0;e<a.length;e+=1)for(let n=e+1;n<a.length;n+=1){if(f===`ANY`&&p(e)===p(n))continue;let i=l.map((t,r)=>t.find(t=>s[e][r].test(t)&&s[n][r].test(t)));if(i.some(e=>e===void 0))continue;let a=i.map((e,n)=>t(`app.rules.table.whenIs`,{label:u[n],value:N(e)})).join(t(`app.rules.table.and`));d.push({kind:`RULE-OVERLAP`,decision:r,title:g(`RULE-OVERLAP`),detail:t(`app.rules.table.ruleOverlap`,{decision:r,first:e+1,second:n+1,when:a,different:f===`ANY`?t(`app.rules.table.differentResults`):``,policy:f===`ANY`?`Any`:`Unique`}),rules:[e+1,n+1]})}let m=[],h=0,_=(e,t,n)=>{if(!(m.length>=3||h>2e5)){if(h+=1,n.length===0)m.push(t);else if(e!==l.length){for(let r of l[e])if(_(e+1,[...t,r],n.filter(t=>s[t][e].test(r))),m.length>=3)return}}};if(_(0,[],a.map((e,t)=>t)),m.length>0){let e=m.map(e=>e.map((e,n)=>t(`app.rules.table.whenIs`,{label:u[n],value:N(e)})).join(t(`app.rules.table.and`))).join(t(`app.rules.table.orWhen`));d.push({kind:`RULE-GAP`,decision:r,title:g(`RULE-GAP`),detail:t(`app.rules.table.ruleGap`,{decision:r,cases:e}),rules:[]})}return d}function F(e){let t=e,n=[];for(let e of t.drgElement??[])e.$type===`dmn:Decision`&&e.decisionLogic?.$type===`dmn:DecisionTable`&&n.push(...P(e,e.decisionLogic));return n}const I=/* @__PURE__ */ new Set([`expression`]),L=e=>typeof e==`object`&&!!e&&!Array.isArray(e),R=e=>typeof e==`string`?e.trim():``,z=e=>Array.isArray(e.components)?e.components.filter(L):null,B=e=>n(`form`,e);function V(e){let n=R(e.label);if(n)return`"${n}"`;let r=R(e.key),i=R(e.id);return t(`app.rules.form.unnamedField`,{type:typeof e.type==`string`?e.type:`field`,key:r?` ${r}`:``,id:r||!i?``:` ${i}`})}function H(e){let n=L(e)?e:{},r=e=>typeof e.id==`string`?e.id:``,o=[],s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=(e,n,a,u)=>{if(!(u>200))for(let d of e){let e=typeof d.type==`string`?d.type:``,f=z(d);if(f){let t=R(d.path),r=t?t.split(`.`):[],i=[...n,...r];r.length>0&&c.set(`${a}|${i.join(`.`)}`,d),l(f,e===`dynamiclist`?[]:i,e===`dynamiclist`?`${a}/${i.join(`.`)}`:a,u+1);continue}if(!i.has(e))continue;let p=R(d.key);if(!p){o.push({kind:`NO-KEY`,title:B(`NO-KEY`),detail:t(`app.rules.form.noKey`,{field:V(d)}),ids:r(d)?[r(d)]:[]});continue}let m=[...n,...p.split(`.`)].join(`.`),h=`${a}|${m}`;s.set(h,[...s.get(h)??[],{component:d}]),!I.has(e)&&!R(d.label)&&o.push({kind:`NO-LABEL`,title:B(`NO-LABEL`),detail:t(`app.rules.form.noLabel`,{type:e,variable:m}),ids:r(d)?[r(d)]:[]});let g=Array.isArray(d.values)?d.values.filter(e=>typeof e==`object`&&!!e):[],_=/* @__PURE__ */ new Map;g.forEach(e=>{let t=JSON.stringify(e.value)??`undefined`;_.set(t,(_.get(t)??0)+1)});let v=[..._.entries()].filter(([,e])=>e>1).map(([e])=>e);v.length>0&&o.push({kind:`REPEATED-OPTION`,title:B(`REPEATED-OPTION`),detail:t(`app.rules.form.repeatedOption`,{field:V(d),values:v.join(`, `)}),ids:r(d)?[r(d)]:[]})}};l(z(n)??[],[],``,0);for(let[e,n]of s){let i=e.split(`|`)[1];n.length>1&&o.push({kind:`KEY-CLASH`,title:B(`KEY-CLASH`),detail:t(`app.rules.form.keyClash`,{fields:a(n.map(({component:e})=>V(e))),all:n.length===2?`both`:`all`,variable:i}),ids:n.map(({component:e})=>r(e)).filter(Boolean)})}for(let[e,n]of c){let[i,a]=e.split(`|`),c=a.split(`.`);for(let e=1;e<=c.length;e+=1){let a=c.slice(0,e).join(`.`),l=s.get(`${i}|${a}`)?.[0];l&&o.push({kind:`KEY-CLASH`,title:B(`KEY-CLASH`),detail:t(`app.rules.form.keyClashGroup`,{field:V(l.component),variable:a,group:V(n)}),ids:[r(l.component),r(n)].filter(Boolean)})}}return o}function U(e,t){let n=e[t];return n?.name?.replace(/\s+/g,` `).trim()||(n?.$type?r(n.$type):t)}async function W(t){return await e(`plain`).fromXML(h(t))}async function G(e){return o((await W(e)).rootElement)}async function K(e,n){let r=[],i=[],a=0;for(let o of e){let e;try{e=await G(o)}catch(e){a+=1,i.push({file:c(o),scenarios:[]}),r.push(m(c(o),e));continue}i.push({file:c(o),scenarios:e}),n===`md`?(r.push(`## ${c(o)}`,``),e.forEach((e,n)=>{r.push(`### ${n+1}. ${e.start} → ${e.ends.join(`, `)||t(`app.output.end`)}`,``),e.decisions.forEach(e=>r.push(`- [ ] ${e.boundary?t(`app.output.boundaryFires`,{decision:e.decision,boundary:e.boundary}):t(`app.output.decisionWay`,{decision:e.decision,way:e.way})}${e.condition?` (\`${e.condition}\`)`:``}`)),r.push(t(`app.output.runsSteps`,{steps:e.steps.join(` → `)||t(`app.output.noSteps`)}),``)})):(r.push(`${c(o)} ${p(e.length,`app.output.count.scenario`)}`),e.forEach((e,n)=>{r.push(` ${String(n+1).padStart(2)}. ${[e.start,...e.steps,...e.ends].join(` → `)}`);for(let n of e.decisions){let e=n.boundary?t(`app.output.firesOn`,{boundary:n.boundary,decision:n.decision}):t(`app.output.decisionWay`,{decision:n.decision,way:n.way});r.push(` ${e}${n.condition?t(`app.output.when`,{condition:n.condition}):``}`)}}))}return n===`json`?{ok:a===0,lines:[JSON.stringify(i,null,2)]}:{ok:a===0,lines:r}}async function q(e){let{rootElement:t,elementsById:n}=await W(e);return{problems:s(t).problems,names:e=>U(n,e)}}async function J(e){let{rootElement:t}=await u(h(e));return F(t)}async function Y(e){try{return await u(h(e)),null}catch(t){if(!(t instanceof d))throw t;return{file:e,rule:`dmn`,message:t.message,severity:`error`}}}function X(e){try{let t=h(e).slice(0,4096);return t.trimStart().startsWith(`{`)&&t.includes(`"components"`)}catch{return!1}}function Z(e){return H(JSON.parse(h(e)))}async function Q(e){let n=(t,n,r,i)=>{let a=f(t,n)?.severity===`warning`;return l(t,{file:e,rule:n,message:r,severity:a?`warning`:`error`,at:i})};if(/\.dmn$/i.test(e))return(await J(e)).map(e=>n(`table`,e.kind,e.detail,{ids:[e.decision],decision:e.decision,rules:e.rules}));if(/\.form$/i.test(e))return Z(e).map(e=>n(`form`,e.kind,e.detail,{ids:e.ids}));let{problems:r,names:i}=await q(e);return r.map(e=>n(`flow`,e.kind,e.trace.length>0?t(`app.rules.web.detailWithPath`,{detail:e.detail,path:e.trace.map(i).join(` → `)}):e.detail,{ids:e.elements}))}export{X as a,Y as c,j as d,Q as i,H as l,Z as n,K as o,J as r,G as s,q as t,F as u};
|