@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.
Files changed (302) hide show
  1. package/THIRD-PARTY-NOTICES.md +16 -16
  2. package/dist/chunk-account-BaYNvO18.js +1 -0
  3. package/dist/{chunk-agentLaunch-D21uPuMr.js → chunk-agentLaunch-BnrpVME4.js} +1 -1
  4. package/dist/chunk-agentServe-BeOh1rjE.js +10 -0
  5. package/dist/chunk-agents-CZJoU2u2.js +1 -0
  6. package/dist/chunk-agentsMigrate-DnrqoXNz.js +2 -0
  7. package/dist/{chunk-analyze-BG-rlggA.js → chunk-analyze-ClE2LBCj.js} +1 -1
  8. package/dist/chunk-analyze-DgQqzEgb.js +1 -0
  9. package/dist/{chunk-analyzeFlow-2cYPgjh-.js → chunk-analyzeFlow-F2ZFmJhv.js} +1 -1
  10. package/dist/chunk-apiTemplates-Cl_z63FA.js +1 -0
  11. package/dist/{chunk-bot-DlhStBoG.js → chunk-bot-C2k8yaXA.js} +5 -5
  12. package/dist/chunk-cmmnFindings-DKpYqUZN.js +1 -0
  13. package/dist/{chunk-codeFactSet-LxSnQy8K.js → chunk-codeFactSet-DiAYqvbb.js} +1 -1
  14. package/dist/{chunk-codeIndex-N1gnP_sW.js → chunk-codeIndex-vStNh6Bm.js} +1 -1
  15. package/dist/chunk-codeLinks-BVpn4_Sr.js +1 -0
  16. package/dist/chunk-codeLinks-BrGduhsm.js +1 -0
  17. package/dist/chunk-command-8s6m3ZUw.js +5 -0
  18. package/dist/chunk-command-aMxPQdiV.js +1 -0
  19. package/dist/chunk-command-vH1_y5F0.js +1 -0
  20. package/dist/chunk-commands-B8YVT41b.js +5 -0
  21. package/dist/{chunk-commands-DcjlDt7B.js → chunk-commands-CJCSznbv.js} +1 -1
  22. package/dist/chunk-compose-BUJTvoFX.js +4 -0
  23. package/dist/chunk-connections-Drr67X9U.js +1 -0
  24. package/dist/chunk-connectors-DcMqy0u8.js +1 -0
  25. package/dist/chunk-convert-Ce1MZmsE.js +3 -0
  26. package/dist/chunk-convert-FkMnlxyi.js +1 -0
  27. package/dist/chunk-deploy-BHg8pB9x.js +1 -0
  28. package/dist/chunk-deploy-DZgCTgaY.js +6 -0
  29. package/dist/{chunk-diagrams-BukAOL0g.js → chunk-diagrams-CtGMGTa8.js} +1 -1
  30. package/dist/chunk-diff-9hjavV6V.js +1 -0
  31. package/dist/chunk-diff-Dp3fUALc.js +1 -0
  32. package/dist/chunk-dispatch-o-eqJb9Y.js +7 -0
  33. package/dist/chunk-dmnTests-BOxutoRs.js +1 -0
  34. package/dist/{chunk-dmnTests-ChwX1YVo.js → chunk-dmnTests-BzNA-u2k.js} +1 -1
  35. package/dist/{chunk-docs-D7yEDpa4.js → chunk-docs-B3C3pZpY.js} +17 -17
  36. package/dist/chunk-doctor-CRxbsAm7.js +1 -0
  37. package/dist/{chunk-editPreview-CC2vwhIW.js → chunk-editPreview-DCUnMkTU.js} +1 -1
  38. package/dist/chunk-evidence-ny_2ltVe.js +23 -0
  39. package/dist/{chunk-examples-0HkF-frb.js → chunk-examples-BG0lGXcZ.js} +9 -9
  40. package/dist/chunk-export-Blwjf23H.js +1 -0
  41. package/dist/chunk-export-kt3sBTZu.js +20 -0
  42. package/dist/{chunk-facts-DSVaURw5.js → chunk-facts-Dl5lLriU.js} +1 -1
  43. package/dist/chunk-failure-BRyRvObj.js +1 -0
  44. package/dist/{chunk-file-BswMa3FN.js → chunk-file-1YhfNmPn.js} +1 -1
  45. package/dist/chunk-import-Dh3az4BC.js +6 -0
  46. package/dist/chunk-importCommand-Dhikkmo0.js +1 -0
  47. package/dist/chunk-incident-LJe2-ohi.js +1 -0
  48. package/dist/chunk-init-D34Q4YA8.js +227 -0
  49. package/dist/chunk-lint-CnEhoYRB.js +1 -0
  50. package/dist/{chunk-lsp-7vA_mIt1.js → chunk-lsp-BzeJkpmf.js} +1 -1
  51. package/dist/chunk-main-BZF-ErAx.js +1 -0
  52. package/dist/chunk-mcp-B_B9bet5.js +95 -0
  53. package/dist/{chunk-mcpLaunch-LyfmIF_Z.js → chunk-mcpLaunch-BS709697.js} +1 -1
  54. package/dist/chunk-migrate-DVfXC-iJ.js +1 -0
  55. package/dist/chunk-migrate-DwWg0k5_.js +16 -0
  56. package/dist/{chunk-migrateApply-CzOkgKhB.js → chunk-migrateApply-e8O9oZXP.js} +3 -3
  57. package/dist/chunk-migrateVerify-oIBf-PM3.js +1 -0
  58. package/dist/{chunk-model-f8AzYUK7.js → chunk-model-BulEKnY1.js} +2 -2
  59. package/dist/{chunk-parse-B-uKGDy-.js → chunk-parse-DiOcpdOU.js} +1 -1
  60. package/dist/{chunk-penstockCli-CKMvaZ0O.js → chunk-penstockCli-C41P_G7i.js} +1 -1
  61. package/dist/chunk-policy-BVb7c7G_.js +1 -0
  62. package/dist/chunk-policyGate-BOgKsqLq.js +2 -0
  63. package/dist/chunk-pr-1jKcTNnP.js +1 -0
  64. package/dist/{chunk-project-DBYOlYRi.js → chunk-project-COaBZhMt.js} +1 -1
  65. package/dist/chunk-project-lO_6DX8G.js +1 -0
  66. package/dist/chunk-promotion-CTMPjXjZ.js +2 -0
  67. package/dist/chunk-promotion-DDLrgBqZ.js +1 -0
  68. package/dist/{chunk-promotion-DchO6xoC.js → chunk-promotion-NeRj4uTP.js} +1 -1
  69. package/dist/chunk-receipt-C4NqnSkH.js +1 -0
  70. package/dist/chunk-receiptDeps-B7MehyHT.js +1 -0
  71. package/dist/chunk-receiptGate-BZCKCMTV.js +1 -0
  72. package/dist/chunk-receiptGate-DRcw327y.js +1 -0
  73. package/dist/{chunk-receiptSnapshot-B6ruXw8z.js → chunk-receiptSnapshot-CHSk3_4N.js} +1 -1
  74. package/dist/{chunk-receiptStore-Cy-L0H1u.js → chunk-receiptStore-DhROtI2h.js} +1 -1
  75. package/dist/chunk-refactor-CO3qyIEv.js +17 -0
  76. package/dist/chunk-refactor-CWeCOl7w.js +1 -0
  77. package/dist/{chunk-render-Ci5d6mg4.js → chunk-render-DZd5hScS.js} +1 -1
  78. package/dist/chunk-report-w7YZwhyg.js +1 -0
  79. package/dist/chunk-review-DYMgFDSy.js +1 -0
  80. package/dist/chunk-say-CP1IyOSv.js +1 -0
  81. package/dist/{chunk-security-VgKwtohm.js → chunk-security-pgip-kdY.js} +2 -2
  82. package/dist/chunk-serve-CKt2rO05.js +10 -0
  83. package/dist/{chunk-share-CBV2FuKq.js → chunk-share-rsL0itIM.js} +18 -18
  84. package/dist/chunk-stages-B2sBBxUc.js +3 -0
  85. package/dist/chunk-systemError-O3vQ8hLb.js +1 -0
  86. package/dist/chunk-systemError-n2E6isvg.js +1 -0
  87. package/dist/chunk-taskTest-DWoME1mY.js +2 -0
  88. package/dist/chunk-taskTest-JErgWO6t.js +1 -0
  89. package/dist/{chunk-templateDiagnostics-BwH7RNkz.js → chunk-templateDiagnostics-6txfKwas.js} +2 -2
  90. package/dist/chunk-templates-Y3xfCO_3.js +1 -0
  91. package/dist/chunk-testCases-BwimUfDC.js +4 -0
  92. package/dist/chunk-testCases-DO2Rkyvd.js +1 -0
  93. package/dist/chunk-tests-Cy325OGw.js +1 -0
  94. package/dist/chunk-tests-DNkORsqB.js +23 -0
  95. package/dist/{chunk-trust-DXcsUJaK.js → chunk-trust-DSX-k3by.js} +1 -1
  96. package/dist/{chunk-trust-DubjEjlN.js → chunk-trust-Di4EYPah.js} +1 -1
  97. package/dist/{chunk-variableChecks-KnECGMR3.js → chunk-variableChecks-CBDpmI4d.js} +1 -1
  98. package/dist/{chunk-workerVariables-CajAcbwl.js → chunk-workerVariables-CNnCRijJ.js} +1 -1
  99. package/dist/{chunk-workerVariables-DIDoUpHF.js → chunk-workerVariables-CulLc3YH.js} +1 -1
  100. package/dist/chunk-wrapper-CGYED7G2.js +1 -0
  101. package/dist/chunk-wrapper-CK7Xtes6.js +3 -0
  102. package/dist/grammars/web-tree-sitter.wasm +0 -0
  103. package/dist/penstock.js +1 -1
  104. package/dist/web/assets/{AgentSettings-Cn5Vcph3.js → AgentSettings-D24jOuht.js} +1 -1
  105. package/dist/web/assets/{AgentsDialog-C6WqzlxZ.js → AgentsDialog-BMWv3Gyk.js} +1 -1
  106. package/dist/web/assets/{AgentsDialog-dpbwVSxk.js → AgentsDialog-DbY2O6O5.js} +1 -1
  107. package/dist/web/assets/{AgentsTab-C34OhVkw.js → AgentsTab-D6LbK6sG.js} +2 -2
  108. package/dist/web/assets/{BpmnCanvas-yur9daZa.js → BpmnCanvas-BcQRQ2Br.js} +27 -27
  109. package/dist/web/assets/BpmnDocument-Ce5F4K1e.js +27 -0
  110. package/dist/web/assets/CmmnDocument-C_UlPowC.js +17 -0
  111. package/dist/web/assets/{ConflictDialog-Bb5kduaR.js → ConflictDialog-DfFp8F7n.js} +1 -1
  112. package/dist/web/assets/{ConnectionsDialog-qtF7yDFw.js → ConnectionsDialog-BaYtHD5h.js} +1 -1
  113. package/dist/web/assets/{DiffDocument-LHOif5Ac.js → DiffDocument-BOPdBEN3.js} +1 -1
  114. package/dist/web/assets/{DmnDocument-0f5uS67x.css → DmnDocument-DZ9u2uk2.css} +1 -1
  115. package/dist/web/assets/DmnDocument-vtnARy7Q.js +41 -0
  116. package/dist/web/assets/{DriftDialog-Chl6BX6k.js → DriftDialog-dIbCbSK2.js} +1 -1
  117. package/dist/web/assets/FormDocument-B0q8DF9v.css +1 -0
  118. package/dist/web/assets/FormDocument-DHBUBUzO.js +32 -0
  119. package/dist/web/assets/FormStepView-CbHb32_8.js +1 -0
  120. package/dist/web/assets/{GraphAwareLayoutService-wsos3yPD.js → GraphAwareLayoutService-C5N8K9dm.js} +1 -1
  121. package/dist/web/assets/{MigrationDialog-CBJU7Oe3.js → MigrationDialog-DA3Vrzgw.js} +1 -1
  122. package/dist/web/assets/{NewFileDialog-B7075LWG.js → NewFileDialog-Dev41oA1.js} +1 -1
  123. package/dist/web/assets/PolicyDialog-qR19Csji.js +1 -0
  124. package/dist/web/assets/{QuickOpen-DJQrI7Od.js → QuickOpen-ps-rMjiS.js} +1 -1
  125. package/dist/web/assets/ScriptPane-BQLMNYzc.js +2 -0
  126. package/dist/web/assets/{ScriptRunDialog-BwE4cXnp.js → ScriptRunDialog-YivjHB6j.js} +1 -1
  127. package/dist/web/assets/{SettingsDialog-c307wPsg.js → SettingsDialog-DI0vZ6Ay.js} +1 -1
  128. package/dist/web/assets/ShortcutsDialog-DLXnv4Vm.js +1 -0
  129. package/dist/web/assets/SourceDocument-Cj8cGsoS.js +1 -0
  130. package/dist/web/assets/TemplateDocument-BRyFsofH.js +7 -0
  131. package/dist/web/assets/TextDocument-DB2hEuMA.js +1 -0
  132. package/dist/web/assets/{UnreadableFileLayer-CUP_30X8.js → UnreadableFileLayer-CRW3MM7w.js} +1 -1
  133. package/dist/web/assets/{UploadDialog-CaVBOxUL.js → UploadDialog-D-X6GG98.js} +1 -1
  134. package/dist/web/assets/Viewer-BcpDlvg_.js +4 -0
  135. package/dist/web/assets/apply-Nsj6ek02.js +1 -0
  136. package/dist/web/assets/{bpmnTheme-CZ7xp4R5.js → bpmnTheme-pKgl9Mrn.js} +2 -2
  137. package/dist/web/assets/{data-ZauKnQ2Z.js → data-CdiToGOq.js} +2 -2
  138. package/dist/web/assets/{data-Da5Nxzev.js → data-wU6sw6RY.js} +1 -1
  139. package/dist/web/assets/{dialog-DSLu1Bbo.js → dialog-BDJ5dDiU.js} +1 -1
  140. package/dist/web/assets/{diff-C4hitkRR.js → diff-BhYqTg4l.js} +1 -1
  141. package/dist/web/assets/dist-27z6Phtg.js +23 -0
  142. package/dist/web/assets/{dist-CofBTWz1.js → dist-B7TL-7R3.js} +4 -4
  143. package/dist/web/assets/dist-BEpeEbIu.js +1 -0
  144. package/dist/web/assets/{dist-CYCbBoYQ.js → dist-BTf7NfeQ.js} +1 -1
  145. package/dist/web/assets/{dist-CJKVV2_S.js → dist-BqGv7f4M.js} +10 -10
  146. package/dist/web/assets/dist-C-q1IWjr.js +6 -0
  147. package/dist/web/assets/{dist-Blylfrak.js → dist-CJx_2eBF.js} +2 -2
  148. package/dist/web/assets/dist-COUY_jv5.js +1 -0
  149. package/dist/web/assets/{dist-DpDu6Wz_.js → dist-CWjAtsKe.js} +1 -1
  150. package/dist/web/assets/{dist-gb3IfUZi.js → dist-Cv8_A_95.js} +2 -2
  151. package/dist/web/assets/dist-DDE6BjgI.js +5 -0
  152. package/dist/web/assets/{dist-7VC_hKpw.js → dist-DDNYYQtV.js} +1 -1
  153. package/dist/web/assets/dist-DW-S9iZN.js +1 -0
  154. package/dist/web/assets/dist-OnU5n5o1.js +1 -0
  155. package/dist/web/assets/dmn-Cgoh6wXm.js +3 -0
  156. package/dist/web/assets/{documentBridge-1Eg7H9yI.js → documentBridge-CHw4XsZH.js} +3 -3
  157. package/dist/web/assets/{documents-LG-7CTrn.js → documents-CEtohzAC.js} +1 -1
  158. package/dist/web/assets/duplicate-D_ic-m62.js +342 -0
  159. package/dist/web/assets/{engines-DhO6OW1S.js → engines-lyEvb0pH.js} +1 -1
  160. package/dist/web/assets/{executable-BTarDLry.js → executable--4381_Lf.js} +1 -1
  161. package/dist/web/assets/{file-CIeVSOHy.js → file-BbVBUuIH.js} +1 -1
  162. package/dist/web/assets/formChecks-CSClH9sH.js +1 -0
  163. package/dist/web/assets/frontend-uXAWaalt.js +1 -0
  164. package/dist/web/assets/{httpHost-DBSjdVth.js → httpHost-C973OTRe.js} +1 -1
  165. package/dist/web/assets/{index.es-pigASDxC.js → index.es-CMvq8Bhe.js} +3 -3
  166. package/dist/web/assets/index.es-GbdJvMnO.js +78 -0
  167. package/dist/web/assets/{index.esm-CTLpq4ik.js → index.esm-Ba6q0zSu.js} +1 -1
  168. package/dist/web/assets/{intelligence-_1C71hkQ.js → intelligence-DNqJNmdB.js} +3 -3
  169. package/dist/web/assets/{jspdf.es.min-PgZzOmkT.js → jspdf.es.min-C0L4zezU.js} +6 -6
  170. package/dist/web/assets/{kind-X3_nabTt.js → kind-DDHnk6dW.js} +1 -1
  171. package/dist/web/assets/{lib-BmLAen_d.js → lib-DrkEMJ65.js} +1 -1
  172. package/dist/web/assets/{list-DovB9lWV.js → list-TmXvCwja.js} +1 -1
  173. package/dist/web/assets/{migrationHost-BcguK4K5.js → migrationHost-DCWBb3L6.js} +1 -1
  174. package/dist/web/assets/moddle-f0Q4Guwd.js +1 -0
  175. package/dist/web/assets/{model--Bj28IOj.js → model-afHgSxJs.js} +1 -1
  176. package/dist/web/assets/{nudges-UF9_cBuO.js → nudges-DPG3WpyV.js} +1 -1
  177. package/dist/web/assets/{open-C9Kt9JLw.js → open-Vkx72dYx.js} +1 -1
  178. package/dist/web/assets/platform-G53Cenyw.js +2 -0
  179. package/dist/web/assets/{preload-helper-VRuDKI9K.js → preload-helper-DExCAR_V.js} +1 -1
  180. package/dist/web/assets/{run-BZgz1U9U.js → run-BMfRBe5O.js} +1 -1
  181. package/dist/web/assets/samples-BL3jA_Vd.js +1 -0
  182. package/dist/web/assets/{say-WvEHqIbO.js → say-BkdZMivA.js} +1 -1
  183. package/dist/web/assets/{say-ChFGKK2E.js → say-C7KqKcFr.js} +1 -1
  184. package/dist/web/assets/{sections-N6WYk7b8.js → sections-LJKSRDTS.js} +1 -1
  185. package/dist/web/assets/sharedReader-BsXfiBT8.js +1 -0
  186. package/dist/web/assets/{source-frame-DcptKpVq.js → source-frame-DC4W0A5-.js} +2 -2
  187. package/dist/web/assets/{syntax-DW10Wzg4.js → syntax-00Hk6Xv7.js} +4 -4
  188. package/dist/web/assets/{template-CMl68jPp.js → template-BQP7ZXdK.js} +1 -1
  189. package/dist/web/assets/testCaseRuns-liAhWMg7.js +1 -0
  190. package/dist/web/assets/{trace-DLziNpe2.js → trace-DXQU2N_l.js} +1 -1
  191. package/dist/web/assets/{translator-DLDFsUlE.js → translator-BLCeE6UY.js} +1 -1
  192. package/dist/web/assets/ui-BLtm3Y1J.js +1 -0
  193. package/dist/web/assets/{useTrace-UYBskc2k.js → useTrace-dZdQ805W.js} +1 -1
  194. package/dist/web/assets/web-C4k0NLZ9.js +982 -0
  195. package/dist/web/assets/web-CnDpD6qy.css +1 -0
  196. package/dist/web/assets/{workerVariables-DURgyUbG.js → workerVariables-O6VqwDzr.js} +1 -1
  197. package/dist/web/assets/xml-DIWt4von.js +1 -0
  198. package/dist/web/index.html +39 -40
  199. package/package.json +5 -5
  200. package/dist/chunk-account-CpZu-RTg.js +0 -1
  201. package/dist/chunk-agentServe-BYRtgGGD.js +0 -10
  202. package/dist/chunk-agents-B9oxdPTA.js +0 -1
  203. package/dist/chunk-agentsMigrate-BV8TeRXq.js +0 -2
  204. package/dist/chunk-analyze-pgzR-Cx-.js +0 -1
  205. package/dist/chunk-apiTemplates-cU7C8vap.js +0 -1
  206. package/dist/chunk-cmmnFindings-S2TGSnEp.js +0 -1
  207. package/dist/chunk-codeLinks-C8N6e8k3.js +0 -1
  208. package/dist/chunk-codeLinks-o0a8tBGk.js +0 -1
  209. package/dist/chunk-command-Bqlbgo-2.js +0 -1
  210. package/dist/chunk-command-DT84ioJb.js +0 -5
  211. package/dist/chunk-command-DrGP2kg8.js +0 -1
  212. package/dist/chunk-commands-B4PoZbpX.js +0 -5
  213. package/dist/chunk-compose-CWKKVtN5.js +0 -4
  214. package/dist/chunk-connections-DQpKbIGD.js +0 -1
  215. package/dist/chunk-connectors-PtAvE91B.js +0 -1
  216. package/dist/chunk-convert-CpgtOlZk.js +0 -1
  217. package/dist/chunk-convert-HbFpg8ab.js +0 -3
  218. package/dist/chunk-deploy-l4MdFfn8.js +0 -6
  219. package/dist/chunk-deploy-qRaaKGZb.js +0 -1
  220. package/dist/chunk-diff-BhTFlCE3.js +0 -1
  221. package/dist/chunk-diff-kBF83vzM.js +0 -1
  222. package/dist/chunk-dispatch-BnO-QhMh.js +0 -7
  223. package/dist/chunk-dmnTests-0x_yUH6S.js +0 -1
  224. package/dist/chunk-doctor-BuHK1dTm.js +0 -1
  225. package/dist/chunk-evidence-oLw_C6j8.js +0 -23
  226. package/dist/chunk-export-cIFHDXug.js +0 -1
  227. package/dist/chunk-export-jBVxtmCH.js +0 -20
  228. package/dist/chunk-failure-D5brrYW2.js +0 -1
  229. package/dist/chunk-import-BBOe-5RZ.js +0 -6
  230. package/dist/chunk-importCommand-DRjYoljA.js +0 -1
  231. package/dist/chunk-incident-BK1h37CD.js +0 -1
  232. package/dist/chunk-init-_OALJuKm.js +0 -227
  233. package/dist/chunk-lint-7KJFxyCN.js +0 -1
  234. package/dist/chunk-main-Cw2JXCil.js +0 -1
  235. package/dist/chunk-mcp-K63bhqnF.js +0 -95
  236. package/dist/chunk-migrate-BMwBV5sc.js +0 -16
  237. package/dist/chunk-migrate-CxfVmKt0.js +0 -1
  238. package/dist/chunk-migrateVerify-DSEXSpfR.js +0 -1
  239. package/dist/chunk-policy-BX0Ftdws.js +0 -1
  240. package/dist/chunk-policyGate-dmcufnwB.js +0 -2
  241. package/dist/chunk-pr-ByrGcfam.js +0 -1
  242. package/dist/chunk-project-DA3KnAZH.js +0 -1
  243. package/dist/chunk-promotion-Boedyq43.js +0 -1
  244. package/dist/chunk-promotion-D8Ti-vxp.js +0 -2
  245. package/dist/chunk-receipt-CusJaqNn.js +0 -1
  246. package/dist/chunk-receiptDeps-oVbX156d.js +0 -1
  247. package/dist/chunk-receiptGate-DrGChj7i.js +0 -1
  248. package/dist/chunk-receiptGate-xldHKMyJ.js +0 -1
  249. package/dist/chunk-refactor-B1W_MGTp.js +0 -1
  250. package/dist/chunk-refactor-BJXxEtVs.js +0 -17
  251. package/dist/chunk-report-D9pM09Nu.js +0 -1
  252. package/dist/chunk-review-UcqS5AAi.js +0 -1
  253. package/dist/chunk-say-CYb4HeJD.js +0 -1
  254. package/dist/chunk-serve-Dmqen1yd.js +0 -10
  255. package/dist/chunk-stages-BTQJrAMF.js +0 -3
  256. package/dist/chunk-systemError-BYrMzp2o.js +0 -1
  257. package/dist/chunk-systemError-CXvnhNPK.js +0 -1
  258. package/dist/chunk-taskTest-9gMsx0zu.js +0 -2
  259. package/dist/chunk-taskTest-BjXYpG5p.js +0 -1
  260. package/dist/chunk-templates-D3ouIwHD.js +0 -1
  261. package/dist/chunk-testCases-9jwT_Y7z.js +0 -4
  262. package/dist/chunk-testCases-BcpBPg9L.js +0 -1
  263. package/dist/chunk-tests-CEEXnWOp.js +0 -23
  264. package/dist/chunk-tests-CRVosdWp.js +0 -1
  265. package/dist/chunk-wrapper-B2WnOIoB.js +0 -3
  266. package/dist/chunk-wrapper-DiKCKZti.js +0 -1
  267. package/dist/web/assets/BpmnDocument-C247Rqim.js +0 -27
  268. package/dist/web/assets/CmmnDocument-Dj48bsUd.js +0 -17
  269. package/dist/web/assets/DmnDocument-Cb9Zi9fS.js +0 -41
  270. package/dist/web/assets/FormDocument-DoZaxWd-.js +0 -32
  271. package/dist/web/assets/FormDocument-URLcKn84.css +0 -1
  272. package/dist/web/assets/FormStepView-D8MFcpeI.js +0 -1
  273. package/dist/web/assets/PolicyDialog-CGdglmDn.js +0 -1
  274. package/dist/web/assets/ScriptPane-T6M5f6fc.js +0 -2
  275. package/dist/web/assets/ShortcutsDialog-BAoL9EHu.js +0 -1
  276. package/dist/web/assets/SourceDocument-C9KIzBA5.js +0 -1
  277. package/dist/web/assets/TemplateDocument-CNt2turg.js +0 -7
  278. package/dist/web/assets/TextDocument-CtkHoEqN.js +0 -1
  279. package/dist/web/assets/Viewer-DZske1C5.js +0 -4
  280. package/dist/web/assets/apply-nnKP9HIM.js +0 -1
  281. package/dist/web/assets/dist--PmHUHDp.js +0 -1
  282. package/dist/web/assets/dist-BoPrKCf2.js +0 -5
  283. package/dist/web/assets/dist-C1m02xAO.js +0 -1
  284. package/dist/web/assets/dist-CLqJMzT-.js +0 -1
  285. package/dist/web/assets/dist-D3jqq0XS.js +0 -1
  286. package/dist/web/assets/dist-DA-9F0U9.js +0 -1
  287. package/dist/web/assets/dist-DojzF5q2.js +0 -6
  288. package/dist/web/assets/dist-yvjzrXXf.js +0 -23
  289. package/dist/web/assets/dmn-DwdcYXGr.js +0 -3
  290. package/dist/web/assets/duplicate-D-ilQqKz.js +0 -342
  291. package/dist/web/assets/formChecks-CGox1z7R.js +0 -1
  292. package/dist/web/assets/frontend-Qq5hBH0U.js +0 -1
  293. package/dist/web/assets/index.es-CcNNw3VB.js +0 -78
  294. package/dist/web/assets/moddle-DJxj0oEU.js +0 -1
  295. package/dist/web/assets/platform-BLPhsye9.js +0 -2
  296. package/dist/web/assets/samples-oeXBsJ9Y.js +0 -1
  297. package/dist/web/assets/sharedReader-Bopy7Uk9.js +0 -1
  298. package/dist/web/assets/testCaseRuns-B_XdqGFh.js +0 -1
  299. package/dist/web/assets/ui-BTKMbWYG.js +0 -1
  300. package/dist/web/assets/web-FzNBw1kZ.css +0 -1
  301. package/dist/web/assets/web-jPMZVwbQ.js +0 -982
  302. package/dist/web/assets/xml-DTgZ-B-l.js +0 -1
@@ -1,95 +0,0 @@
1
- import{n as e}from"./chunk-version-CdS8_QQd.js";import{t}from"./chunk-atomicWrite-C6J1gDtO.js";import{u as n}from"./chunk-license-BG88gpDZ.js";import{r}from"./chunk-translator-DNm9zRpP.js";import{a as i,r as a,t as o}from"./chunk-features-C6o8of19.js";import{c as s}from"./chunk-moddle-D3Ym38EZ.js";import{c}from"./chunk-engine-CxgdJ2wO.js";import{d as l,r as u}from"./chunk-model-f8AzYUK7.js";import{r as d}from"./chunk-types-mxHL9XQt.js";import{a as f,c as p,d as m,f as h,l as ee,m as te,r as ne,s as re,u as ie}from"./chunk-penstockCli-CKMvaZ0O.js";import{n as ae}from"./chunk-template-Bh7oqbPl.js";import{u as oe}from"./chunk-codeFactSet-LxSnQy8K.js";import{t as g}from"./chunk-list-XuNpvC6j.js";import{c as se}from"./chunk-variableChecks-KnECGMR3.js";import{l as ce}from"./chunk-testCases-9jwT_Y7z.js";import{r as _}from"./chunk-xml-rMelkRIV.js";import{n as le}from"./chunk-taskTest-9gMsx0zu.js";import{a as ue,o as de,r as fe,t as pe}from"./chunk-import-BBOe-5RZ.js";import{t as me}from"./chunk-sections-Co5ovFf4.js";import{r as v}from"./chunk-migrate-BMwBV5sc.js";import{a as he,i as ge,n as _e,o as ve,r as ye,s as be,t as xe}from"./chunk-dmnTests-ChwX1YVo.js";import{s as Se,t as Ce}from"./chunk-analyze-pgzR-Cx-.js";import{_ as y,v as b}from"./chunk-load-rfn3E0t5.js";import{s as we}from"./chunk-failure-D5brrYW2.js";import{n as Te}from"./chunk-aiVerify-DPNBNhx4.js";import{a as Ee}from"./chunk-build-BsqW8Yp8.js";import{i as De,n as Oe,r as ke,t as Ae}from"./chunk-receiptSnapshot-B6ruXw8z.js";import{a as je,r as x,t as S}from"./chunk-context-rCJvBM9p.js";import{r as Me,s as Ne,u as Pe}from"./chunk-editPreview-CC2vwhIW.js";import{r as C}from"./chunk-commands-B4PoZbpX.js";import{n as w,t as T}from"./chunk-diagrams-BukAOL0g.js";import{n as Fe}from"./chunk-codeLinks-C8N6e8k3.js";import{a as Ie,o as Le,r as Re}from"./chunk-receiptStore-Cy-L0H1u.js";import{n as ze,t as Be}from"./chunk-project-DA3KnAZH.js";import{d as Ve,i as He,r as Ue,s as We,u as Ge,y as E}from"./chunk-refactor-BJXxEtVs.js";import{t as Ke}from"./chunk-receiptDeps-oVbX156d.js";import{t as qe}from"./chunk-diff-BhTFlCE3.js";import{n as Je}from"./chunk-apiTemplates-BOGIiYej.js";import{a as Ye,f as Xe,p as Ze}from"./chunk-git-57LoLvY3.js";import{t as Qe}from"./chunk-drawing-MbILUK8j.js";import{t as $e}from"./chunk-apiTemplatesPath-vIrQ4ODR.js";import{n as et}from"./chunk-say-CYb4HeJD.js";import{t as tt}from"./chunk-report-BxZNhZ_G.js";import{n as nt,r as rt}from"./chunk-command-Bqlbgo-2.js";import{t as it}from"./chunk-systemError-BYrMzp2o.js";import{n as at}from"./chunk-export-jBVxtmCH.js";import{t as ot}from"./chunk-project-DBYOlYRi.js";import D from"node:path";import{tmpdir as O}from"node:os";import{closeSync as st,existsSync as ct,fsyncSync as lt,linkSync as ut,lstatSync as dt,mkdirSync as ft,mkdtempSync as k,openSync as pt,readFileSync as A,readdirSync as mt,realpathSync as j,renameSync as ht,rmSync as M,statSync as N,unlinkSync as gt,writeFileSync as P}from"node:fs";import{randomBytes as _t}from"node:crypto";import{createInterface as vt}from"node:readline";import{fileURLToPath as yt,pathToFileURL as bt}from"node:url";function F(e,t){return[e.slice(0,t),Math.max(0,e.length-t)]}function xt(e){return{name:e.name,where:e.where,...e.sample?{sample:e.sample}:{}}}function St(e,t){let n=/* @__PURE__ */ new Map;for(let t of e)for(let e of t.model.workers){let t=`${e.kind}:${e.value}`,r=n.get(t);n.set(t,{kind:e.kind,value:e.value,elements:(r?.elements??0)+1})}let r=[...new Set(e.flatMap(e=>e.model.processes.map(e=>e.id)))].sort(),i=e.flatMap(e=>e.model.decisions.map(e=>({id:e.id,outputs:[...e.outputs]}))).sort((e,t)=>e.id<t.id?-1:1),[a,o]=F([...n.values()].sort((e,t)=>e.value<t.value?-1:1),t),[s,c]=F(r,t),[l,u]=F(i,t);return{jobTypes:a,processes:s,decisions:l,omitted:{jobTypes:o,processes:c,decisions:u}}}async function Ct(e,t,n,i={}){let a=i.limit??50,o=[.../* @__PURE__ */ new Set([...T(e,[`process`,`decision`]),t])],s=await new ot().build(o.map(e=>({path:e,text:A(e,`utf8`)})),null,{focus:t}),c=s.diagrams.find(e=>e.path===t),l=c?.model.elements.find(e=>e.id===n);if(!c||!l){let e=(c?.model.elements??[]).map(e=>e.id);throw Error(r(`app.cli.mcp.noElement`,{file:t,id:n,ids:e.length>0?g(e.slice(0,a)):r(`app.cli.mcp.nothing`)}))}let u=se({model:{variables:[...c.variables]},order:c.order,types:[]},n,{wholeProcess:!0}),d=c.elementNames,f=c.variables.filter(e=>e.elementId===n);return{element:{id:l.id,type:l.type,...l.name?{name:l.name}:{}},process:l.processId??c.model.processes[0]?.id??null,inScope:u.variables.map(e=>({name:e.name,type:e.type,certainty:e.certainty,local:e.writers.every(e=>e.elementId===n),writtenBy:e.writers.map(e=>({element:e.elementId,...d.get(e.elementId)?{name:d.get(e.elementId)}:{},where:e.where}))})),startVariablesUnknown:u.startVariablesUnknown,reads:f.filter(e=>!e.writes).map(xt),writes:f.filter(e=>e.writes).map(xt),jobTypes:c.model.workers.filter(e=>e.elementId===n).map(e=>({kind:e.kind,value:e.value})),project:St(s.diagrams,a)}}const I=[`element`,`variable`,`message`,`decision`,`process`,`form-field`];function L(e,t){let n=null;for(let r of t){if(!r)continue;let t=r.toLowerCase(),i=t===e?0:t.startsWith(e)?1:t.includes(e)?2:null;i!==null&&(n===null||i<n)&&(n=i)}return n}async function wt(e,t,n={}){let r=t.trim().toLowerCase(),i=new Set(n.kinds??I),a=Math.max(1,n.limit??50),o=[],s=[],c=(e,t)=>{e!==null&&i.has(t.kind)&&o.push({rank:e,hit:t})};for(let t of T(e,[`process`,`decision`,`form`])){let e;try{e=await u(t,A(t,`utf8`))}catch{s.push(t);continue}for(let n of e.processes)c(L(r,[n.id,n.name]),{kind:`process`,id:n.id,...n.name?{name:n.name}:{},file:t});for(let n of e.elements)c(L(r,[n.id,n.name]),{kind:`element`,id:n.id,...n.name?{name:n.name}:{},type:n.type,file:t,...n.processId?{process:n.processId}:{}});for(let n of e.messages)c(L(r,[n.id,n.name]),{kind:`message`,id:n.id,...n.name?{name:n.name}:{},file:t});for(let n of e.decisions)c(L(r,[n.id,n.name,...n.outputs]),{kind:`decision`,id:n.id,...n.name?{name:n.name}:{},file:t,outputs:n.outputs});let n=/* @__PURE__ */ new Map;for(let t of e.variables){let e=n.get(t.name)??{writtenBy:/* @__PURE__ */ new Set,readBy:/* @__PURE__ */ new Set};(t.writes?e.writtenBy:e.readBy).add(t.elementId),n.set(t.name,e)}for(let[e,i]of n)c(L(r,[e]),{kind:`variable`,id:e,file:t,writtenBy:[...i.writtenBy].sort(),readBy:[...i.readBy].sort()});for(let n of e.formKeys)c(L(r,[n]),{kind:`form-field`,id:n,file:t})}o.sort((e,t)=>e.rank-t.rank||(e.hit.file<t.hit.file?-1:+(e.hit.file>t.hit.file))||(e.hit.id<t.hit.id?-1:+(e.hit.id>t.hit.id)));let l=o.slice(0,a).map(e=>e.hit);return{query:t,total:o.length,shown:l.length,hits:l,unreadable:s}}const Tt=e=>(e??``).replace(/^#/,``),R=e=>e&&e.trim()?e.trim():null;function Et(e){let t=(e,t)=>(e??[]).map(e=>Tt(t(e)?.href)).filter(e=>e!==``);return{decisions:t(e.informationRequirement,e=>e.requiredDecision),inputData:t(e.informationRequirement,e=>e.requiredInput),knowledge:t(e.knowledgeRequirement,e=>e.requiredKnowledge),sources:t(e.authorityRequirement,e=>e.requiredAuthority??e.requiredDecision??e.requiredInput)}}async function Dt(e){let t=await l(e),n=t.rootElement,r=new Map((await be(t.xml)).map(e=>[e.decisionId,e])),i=n.drgElement??[],a=i.filter(e=>e.$type===`dmn:Decision`&&e.id).map(e=>{let t=r.get(e.id),n=e.decisionLogic,i=n?.$type===`dmn:DecisionTable`?`decisionTable`:n?.$type===`dmn:LiteralExpression`?`literalExpression`:`other`;return{id:e.id,name:R(e.name)??e.id,logic:i,...t?{hitPolicy:t.hitPolicy,...t.aggregation?{aggregation:t.aggregation}:{}}:{},inputs:t?.inputs??[],outputs:t?.outputs??[],rules:t?.rules??[],...i===`literalExpression`&&R(n?.text)?{expression:R(n?.text)}:{},requires:Et(e)}}),o=e=>i.filter(t=>t.$type===e&&t.id).map(e=>({id:e.id,name:R(e.name)??e.id}));return{kind:`decision`,id:R(n.id),name:R(n.name),decisions:a,inputData:o(`dmn:InputData`),knowledge:o(`dmn:BusinessKnowledgeModel`)}}function Ot(e){let t=JSON.parse(e),n=[],r=(e,t,i)=>{if(!(i>200))for(let a of e){if(typeof a!=`object`||!a||Array.isArray(a))continue;let e=typeof a.type==`string`?a.type:`unknown`,o=R(a.label)??R(a.text),s=Array.isArray(a.values)?a.values.filter(e=>typeof e==`object`&&!!e):[];if(n.push({id:R(a.id),type:e,key:R(a.key),label:o,group:t,required:a.validate?.required===!0,options:s.map(e=>typeof e.value==`string`?e.value:JSON.stringify(e.value)),isInput:me.has(e)}),Array.isArray(a.components)){let n=R(a.path)??R(a.key)??o??e;r(a.components,[...t,n],i+1)}}};return r(Array.isArray(t?.components)?t.components:[],[],0),{kind:`form`,id:typeof t?.id==`string`?t.id:null,type:typeof t?.type==`string`?t.type:null,components:n}}async function kt(e){let t=A(e,`utf8`);return/\.dmn$/i.test(e)?Dt(t):Ot(t)}async function At(e,t){let n=[];for(let r of T(e,[`process`]))try{let e=await u(r,A(r,`utf8`));for(let i of t(e))n.push({file:r,element:i})}catch{continue}return n}async function jt(e,t,n){let r=await kt(t);if(r.kind===`decision`){let i=r.decisions.find(e=>e.id===n);if(!i)throw Error(Mt(t,n,r.decisions.map(e=>e.id)));return{element:{id:i.id,type:`decision`,name:i.name},decision:i,requiredBy:r.decisions.filter(e=>e.requires.decisions.includes(i.id)).map(e=>e.id),usedBy:await At(e,e=>e.decisionUses.filter(e=>e.decisionId===i.id).map(e=>e.elementId))}}let i=r.components.find(e=>e.id===n||e.key===n);if(!i)throw Error(Mt(t,n,r.components.map(e=>e.key??e.id??``).filter(e=>e!==``)));let a=r.id;return{element:{id:i.key??i.id??n,type:i.type,...i.label?{name:i.label}:{}},component:i,requiredBy:[],usedBy:a===null?[]:await At(e,e=>e.formUses.filter(e=>e.formId===a).map(e=>e.elementId))}}function Mt(e,t,n){return r(`app.cli.mcp.noElement`,{file:e,id:t,ids:n.length>0?g(n.slice(0,50)):r(`app.cli.mcp.nothing`)})}function Nt(e){let t=c(e);return t===`camunda-7`||t===`operaton`||t===`cib-seven`?t:Lt(e)?`camunda-7`:`camunda-8`}function z(e,t){let n=e.replace(/\.[^.]+$/,``).replace(/[^A-Za-z0-9_.-]+/g,`_`).replace(/^[^A-Za-z_]+/,``);return n?`${t}_${n}`:`${t}_1`}function B(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}function Pt(e,t){let n=m(e),r=z(t,`Process`);return`<?xml version="1.0" encoding="UTF-8"?>
2
- <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" ${n.namespaces} xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" modeler:executionPlatform="${n.name}" modeler:executionPlatformVersion="${n.version}">
3
- <bpmn:process id="${r}" name="${B(t.replace(/\.[^.]+$/,``))}" isExecutable="true"${re(e).process}>
4
- <bpmn:startEvent id="StartEvent_1" />
5
- </bpmn:process>
6
- <bpmndi:BPMNDiagram id="BPMNDiagram_1">
7
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="${r}">
8
- <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
9
- <dc:Bounds x="182" y="102" width="36" height="36" />
10
- </bpmndi:BPMNShape>
11
- </bpmndi:BPMNPlane>
12
- </bpmndi:BPMNDiagram>
13
- </bpmn:definitions>
14
- `}function Ft(e,t){let n=m(e),r=z(t,`Decision`),i=B(t.replace(/\.[^.]+$/,``)),a=te(e);return`<?xml version="1.0" encoding="UTF-8"?>
15
- <definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/" xmlns:dmndi="https://www.omg.org/spec/DMN/20191111/DMNDI/" xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/"${a.namespace} xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1" name="${i}" namespace="${ee(e)}" modeler:executionPlatform="${n.name}" modeler:executionPlatformVersion="${n.version}">
16
- <decision id="${r}" name="${i}"${a.attribute}>
17
- <decisionTable id="DecisionTable_1">
18
- <input id="Input_1">
19
- <inputExpression id="InputExpression_1" typeRef="string">
20
- <text></text>
21
- </inputExpression>
22
- </input>
23
- <output id="Output_1" typeRef="string" />
24
- </decisionTable>
25
- </decision>
26
- <dmndi:DMNDI>
27
- <dmndi:DMNDiagram id="DMNDiagram_1">
28
- <dmndi:DMNShape id="DMNShape_1" dmnElementRef="${r}">
29
- <dc:Bounds height="80" width="180" x="160" y="100" />
30
- </dmndi:DMNShape>
31
- </dmndi:DMNDiagram>
32
- </dmndi:DMNDI>
33
- </definitions>
34
- `}function It(e,t){let n=m(e);return`${JSON.stringify({components:[],type:`default`,id:z(t,`Form`),executionPlatform:n.name,executionPlatformVersion:n.version,schemaVersion:18},null,2)}\n`}function Lt(e){let t=c(e);return t===`flowable`||t===`activiti`?t:null}function Rt(e,t){let n=z(t,`Process`);return`<?xml version="1.0" encoding="UTF-8"?>
35
- <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:${e}="${s[e]}" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn">
36
- <bpmn:process id="${n}" name="${B(t.replace(/\.[^.]+$/,``))}" isExecutable="true">
37
- <bpmn:startEvent id="StartEvent_1" />
38
- </bpmn:process>
39
- <bpmndi:BPMNDiagram id="BPMNDiagram_1">
40
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="${n}">
41
- <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
42
- <dc:Bounds x="182" y="102" width="36" height="36" />
43
- </bpmndi:BPMNShape>
44
- </bpmndi:BPMNPlane>
45
- </bpmndi:BPMNDiagram>
46
- </bpmn:definitions>
47
- `}function V(e,t,n,r){let i=Lt(n);if(i&&e===`bpmn`)return t===`example`?f(i):Rt(i,r);let a=Nt(n);return t===`example`?e===`bpmn`?h(a):e===`dmn`?p(a):ie(a):e===`bpmn`?Pt(a,r):e===`dmn`?Ft(a,r):It(a,r)}var H=class extends Error{};const zt=[`UNIQUE`,`FIRST`,`PRIORITY`,`ANY`,`COLLECT`,`RULE ORDER`,`OUTPUT ORDER`],Bt=[`string`,`number`,`boolean`,`integer`,`long`,`double`,`date`,`time`,`dateTime`],Vt=[`textfield`,`textarea`,`number`,`checkbox`,`checklist`,`radio`,`select`,`taglist`,`datetime`],Ht=[`checklist`,`radio`,`select`,`taglist`],Ut=/^[A-Za-z_][\w.-]*$/;function U(e,t){throw new H(r(`app.cli.create.shouldBe`,{where:e,what:t}))}function W(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e))return U(t,r(`app.cli.create.anObject`));for(let i of Object.keys(e))if(!n.includes(i))throw new H(r(`app.cli.create.unknownKey`,{where:t,key:i,allowed:n.join(`, `)}));return e}function G(e,t,n){return e===void 0&&!n?[]:!Array.isArray(e)||n&&e.length===0?U(t,r(`app.cli.create.aList`)):e}function K(e,t,n=!0){if(e!==void 0||n)return typeof e!=`string`||n&&e.trim()===``?U(t,r(`app.cli.create.someText`)):e}function q(e,t,n,i=!1){if(e!==void 0||i)return typeof e!=`string`||!n.includes(e)?U(t,r(`app.cli.create.oneOf`,{list:n.join(`, `)})):e}function Wt(e,t,n){let i=G(e,t,!0);return i.length===n?i.map((e,n)=>K(e,`${t}[${n}]`,!1)??``):U(t,r(`app.cli.create.entries`,{count:n}))}function Gt(e,t,n,r){let i=W(n,`spec`,[`hitPolicy`,`inputs`,`outputs`,`rules`]),a=q(i.hitPolicy,`spec.hitPolicy`,zt),o=G(i.inputs,`spec.inputs`,!0).map((e,t)=>{let n=`spec.inputs[${t}]`,r=W(e,n,[`label`,`expression`,`typeRef`]);return{label:K(r.label,`${n}.label`,!1),expression:K(r.expression,`${n}.expression`),typeRef:q(r.typeRef,`${n}.typeRef`,Bt)??`string`}}),s=G(i.outputs,`spec.outputs`,!0).map((e,t)=>{let n=`spec.outputs[${t}]`,r=W(e,n,[`name`,`label`,`typeRef`]);return{name:K(r.name,`${n}.name`),label:K(r.label,`${n}.label`,!1),typeRef:q(r.typeRef,`${n}.typeRef`,Bt)??`string`}}),c=G(i.rules,`spec.rules`,!1).map((e,t)=>{let n=`spec.rules[${t}]`,r=W(e,n,[`when`,`then`,`description`]);return{when:Wt(r.when,`${n}.when`,o.length),then:Wt(r.then,`${n}.then`,s.length),description:K(r.description,`${n}.description`,!1)}}),l=(e,t)=>t?` ${e}="${B(t)}"`:``,u=` <decisionTable id="DecisionTable_1"${a&&a!==`UNIQUE`?` hitPolicy="${a}"`:``}>
48
- ${o.map((e,t)=>` <input id="Input_${t+1}"${l(`label`,e.label)}>
49
- <inputExpression id="InputExpression_${t+1}" typeRef="${e.typeRef}">
50
- <text>${_(e.expression)}</text>
51
- </inputExpression>
52
- </input>`).join(`
53
- `)}
54
- ${s.map((e,t)=>` <output id="Output_${t+1}"${l(`label`,e.label)} name="${B(e.name)}" typeRef="${e.typeRef}" />`).join(`
55
- `)}
56
- ${c.map((e,t)=>` <rule id="Rule_${t+1}">${e.description?`\n <description>${_(e.description)}</description>`:``}
57
- ${e.when.map((e,n)=>` <inputEntry id="InputEntry_${t+1}_${n+1}">\n <text>${_(e)}</text>\n </inputEntry>`).join(`
58
- `)}
59
- ${e.then.map((e,n)=>` <outputEntry id="OutputEntry_${t+1}_${n+1}">\n <text>${_(e)}</text>\n </outputEntry>`).join(`
60
- `)}
61
- </rule>`).join(`
62
- `)}
63
- </decisionTable>`.replace(/\n\n+/g,`
64
- `),d=Ft(e,t),f=d.indexOf(` <decisionTable`),p=d.indexOf(`</decisionTable>`)+16,m=r?.trim()?`\n <description>${_(r.trim())}</description>`:``,h=d.slice(0,f)+u+d.slice(p);return m?h.replace(/(<decision [^>]*>)/,`$1${m}`):h}function Kt(e,t,n){let i=W(n,`spec`,[`fields`]),a=/* @__PURE__ */ new Set,o=G(i.fields,`spec.fields`,!0).map((e,t)=>{let n=`spec.fields[${t}]`,i=W(e,n,[`type`,`key`,`label`,`text`,`options`,`required`]),o=q(i.type,`${n}.type`,[...Vt,`text`,`button`],!0),s=`Field_${t+1}`;if(o===`text`)return{type:o,id:s,text:K(i.text,`${n}.text`)};if(o===`button`)return{type:o,id:s,label:K(i.label,`${n}.label`),action:`submit`};let c=K(i.key,`${n}.key`);if(!Ut.test(c))return U(`${n}.key`,r(`app.cli.create.aName`));if(a.has(c))return U(`${n}.key`,r(`app.cli.create.unique`,{key:c}));a.add(c);let l={type:o,id:s,key:c,label:K(i.label,`${n}.label`,!1)??c};if(Ht.includes(o))l.values=G(i.options,`${n}.options`,!0).map((e,t)=>{let r=W(e,`${n}.options[${t}]`,[`label`,`value`]);return{label:K(r.label,`${n}.options[${t}].label`),value:K(r.value,`${n}.options[${t}].value`)}});else if(i.options!==void 0)return U(`${n}.options`,r(`app.cli.create.onlyChoices`));if(i.required!==void 0){if(typeof i.required!=`boolean`)return U(`${n}.required`,r(`app.cli.create.trueOrFalse`));i.required&&(l.validate={required:!0})}return l}),s=JSON.parse(It(e,t));return`${JSON.stringify({...s,components:o},null,2)}\n`}async function qt(e,t,n){let i,a,o;if(t===null){if(!Ze(n))throw Error(r(`app.cli.mcp.badRevision`,{ref:n}));let t=Ye(D.dirname(e),n,`./${D.basename(e)}`);if(t===null)throw Error(r(`app.cli.mcp.noCommittedVersion`,{file:e,ref:n}));i=t,a=e,o={before:`${n}:${x(e)}`,after:x(e)}}else i=e,a=t,o={before:x(e),after:x(t)};try{let e=await qe(i,a,!0);if(!e.ok||!e.summary)throw Error(e.lines.join(`
65
- `));let t=t=>e.summary.entries.filter(e=>e.change===t).map(({id:e,type:t,name:n})=>({id:e,type:t,...n?{name:n}:{}})),n=t(`added`),r=t(`removed`),s=t(`changed`),c=e.summary.movedIds;return{...o,identical:n.length+r.length+s.length+c.length===0,added:n,removed:r,changed:s,moved:c}}finally{Xe()}}async function Jt(e,n){let{measureDiagram:i}=await import(`./chunk-diagram-jfVu0sT3.js`),a=k(D.join(O(),`penstock-layout-`));try{let o=D.join(a,`laid-out.bpmn`),s=A(e,`utf8`),c=await i(e,{outPath:o}),l=A(o,`utf8`),u=l!==s,d=u?await qe(e,o,!0):null,f=d?.summary?.movedIds??[],p=(d?.summary?.entries??[]).map(({change:e,id:t,type:n})=>({change:e,id:t,type:n})),m=!1;if(u&&!n){if(A(e,`utf8`)!==s)throw Error(`${r(`app.cli.edit.changedWhileEditing`)} ${r(`app.cli.nothingWritten`)}`);t(e,l),m=!0}return{file:e,dryRun:n,wrote:m,summary:r(u?m?`app.output.reflowedLayout`:`app.cli.mcp.wouldReflow`:`app.output.noChange`),moved:f,structuralChanges:p,defectsAfter:c.defects.map(e=>`${e.kind}: ${e.detail}`)}}finally{M(a,{recursive:!0,force:!0})}}async function Yt(e,t){let n=[],r=await ce(e,{teamcity:!1,generate:!1,junit:!1,write:e=>n.push(e),confirm:void 0,stepTimeoutMs:t===void 0?void 0:t*1e3}),i=[...n,...r.lines].join(`
66
- `).trim();if(!r.ok)throw Error(i);return i}async function Xt(e,t){let n=[],r=t.hold?{kind:`hold`}:t.error===void 0?{kind:`complete`,variables:t.complete}:{kind:`error`,errorCode:t.error},i=await le(e,{element:t.element,variables:t.variables,mode:r,process:t.process,write:e=>n.push(e),confirm:void 0,stepTimeoutMs:t.timeoutSeconds===void 0?void 0:t.timeoutSeconds*1e3}),a=[...n,...i.lines].join(`
67
- `).trim();if(!i.ok)throw Error(a);return a}async function Zt(e,t,n,i){if(t!==`svg`&&t!==`png`)throw Error(r(`app.cli.export.unknownFormat`,{format:String(t)}));if(n!==null){let r=k(D.join(O(),`penstock-export-`));try{let i=await at([e],t,r);if(!i.ok)throw Error(i.lines.join(`
68
- `));ft(n,{recursive:!0});for(let e of mt(r)){let t=D.join(n,`.${e}.${_t(6).toString(`hex`)}.tmp`);P(t,A(D.join(r,e)),{flag:`wx`}),ht(t,D.join(n,e))}return{text:i.lines.map(e=>e.replaceAll(r,n)).join(`
69
- `)}}finally{M(r,{recursive:!0,force:!0})}}if(t===`svg`){let{svg:t,skipped:n}=await Qe(A(e,`utf8`));if(t.length>i)throw Error(r(`app.cli.mcp.imageTooLarge`,{size:t.length}));return{text:[t,...n.map(e=>r(`app.cli.export.notDrawn`,{element:e}))].join(`
70
- `)}}let a=k(D.join(O(),`penstock-image-`));try{let t=await at([e],`png`,a);if(!t.ok)throw Error(t.lines.join(`
71
- `));let n=A(D.join(a,`${ze(e)}.png`)).toString(`base64`);return{text:r(`app.cli.mcp.pngReturned`,{file:x(e)}),image:{data:n,mimeType:`image/png`}}}finally{M(a,{recursive:!0,force:!0})}}async function Qt(e,t,n){let r=await v(`analyze`,e,{format:`json`,failOn:`error`,baseline:!1,updateBaseline:!1,dryRun:!1,verbose:n,target:t}),i=r.lines.join(`
72
- `);if(r.refused===!0||!i.startsWith(`{`)){if(r.ok)return i;throw Error(i)}return i}async function $t(e,t){let n=await v(`apply`,e,{format:`json`,failOn:`error`,baseline:!1,updateBaseline:!1,dryRun:!t.write,verbose:!1,target:t.target,workers:t.workers,write:t.write,...t.only?{only:t.only}:{},...t.exclude?{exclude:t.exclude}:{}}),r=n.lines.join(`
73
- `);if(r.startsWith(`{`)||n.ok)return r;throw Error(r)}async function en(e,t){let n=(await(await import(`./chunk-connections-DQpKbIGD.js`)).connectionsCommand(e,{environment:t.environment,against:t.against,format:`json`})).lines.join(`
74
- `);if(n.startsWith(`{`))return n;throw Error(n)}async function tn(e,t){let n=(await(await import(`./chunk-promotion-D8Ti-vxp.js`)).driftCommand(e,{environment:t.environment,against:t.against,format:`json`})).lines.join(`
75
- `),r=JSON.parse(n);if(r.report===null)throw Error(r.refused.join(`
76
- `));return n}async function nn(e){let t=(await(await import(`./chunk-agents-B9oxdPTA.js`)).agentsCommand([e],{write:!1,format:`json`})).lines.join(`
77
- `);if(t.startsWith(`{`))return t;throw Error(t)}async function rn(e,t){let n=await v(`agents`,e,{format:`json`,failOn:`error`,baseline:!1,updateBaseline:!1,dryRun:!t,verbose:!1,write:t}),r=n.lines.join(`
78
- `);if(r.startsWith(`{`)||n.ok)return r;throw Error(r)}async function an(e,t){let n=(await(await import(`./chunk-incident-BK1h37CD.js`)).incidentCommand([`scenario`,t.key,e],{write:t.write,run:t.run,format:`json`,inject:{confine:t.confine}})).lines.join(`
79
- `);if(n.startsWith(`{`))return n;throw Error(n)}async function on(e,t){let n=await(await import(`./chunk-apiTemplates-cU7C8vap.js`)).apiTemplatesCommand(e,{out:t.out,write:t.write,format:`json`,secretPrefix:t.secretPrefix}),r=n.lines.join(`
80
- `);if(n.ok)return r;throw Error(r)}const sn=/\.(bpmn|dmn|form)$/i;function cn(e){if(typeof e!=`object`||!e||Array.isArray(e))throw new H(r(`app.cli.create.shouldBe`,{where:`spec`,what:r(`app.cli.create.anObject`)}));let t=e;for(let e of Object.keys(t))if(e!==`steps`&&e!==`operations`)throw new H(r(`app.cli.create.unknownKey`,{where:`spec`,key:e,allowed:`steps, operations`}));if(t.steps===void 0==(t.operations===void 0))throw new H(r(`app.cli.create.oneOfStepsOperations`));if(t.operations!==void 0)return Array.isArray(t.operations)?t.operations:[t.operations];if(!Array.isArray(t.steps)||t.steps.length===0)throw new H(r(`app.cli.create.shouldBe`,{where:`spec.steps`,what:r(`app.cli.create.aList`)}));let n=`StartEvent_1`;return t.steps.map((e,t)=>{let i=`spec.steps[${t}]`;if(typeof e!=`object`||!e||Array.isArray(e))throw new H(r(`app.cli.create.shouldBe`,{where:i,what:r(`app.cli.create.anObject`)}));let a=e;for(let e of Object.keys(a))if(![`element`,`name`,`event`,`id`,`properties`].includes(e))throw new H(r(`app.cli.create.unknownKey`,{where:i,key:e,allowed:`element, name, event, id, properties`}));if(typeof a.element!=`string`||!Object.hasOwn(Ne,a.element))throw new H(r(`app.cli.create.shouldBe`,{where:`${i}.element`,what:r(`app.cli.create.oneOf`,{list:Object.keys(Ne).join(`, `)})}));let o=typeof a.id==`string`&&a.id!==``?a.id:`Step_${t+1}`,s={op:`add`,element:a.element,after:n,id:o,...a.name===void 0?{}:{name:a.name},...a.event===void 0?{}:{event:a.event},...a.properties===void 0?{}:{properties:a.properties}};return n=o,s})}function ln(e){return D.join(D.dirname(e),`.${D.basename(e)}.${_t(6).toString(`hex`)}.pending${D.extname(e)}`)}async function un(e,t,n){if(!sn.test(e))throw Error(r(`app.cli.create.badExtension`,{file:e}));let i=w(e);if(i===null)throw Error(r(`app.cli.create.badExtension`,{file:e}));if(dn(e))throw Error(r(`app.cli.create.exists`,{file:e}));ft(D.dirname(e),{recursive:!0});let a=j(D.dirname(e));n(a);let o=D.join(a,D.basename(e));if(dn(o))throw Error(r(`app.cli.create.exists`,{file:o}));let s=t.name?.trim()||D.basename(o).replace(/\.[^.]+$/,``),c=je(S(o).values.engine)??null,l=ln(o),u;try{if(i===`process`){let e=V(`bpmn`,`empty`,c,s);if(t.spec===void 0&&!t.description)u=e;else{let n=t.spec===void 0?[]:cn(t.spec),r=/<bpmn:process id="([^"]+)"/.exec(e)?.[1];t.description?.trim()&&r&&n.push({op:`set`,id:r,properties:{documentation:t.description.trim()}}),P(l,e,{flag:`wx`});let i=await Me(l,n);if(M(l,{force:!0}),!i.ok)throw Error(i.message);u=i.after}}else if(i===`decision`)u=t.spec===void 0&&!t.description?V(`dmn`,`empty`,c,s):Gt(Nt(c),s,t.spec??{inputs:[{expression:`input`}],outputs:[{name:`output`}]},t.description);else{if(t.description)throw Error(r(`app.cli.create.noDescriptionForForms`));u=t.spec===void 0?V(`form`,`empty`,c,s):Kt(Nt(c),s,t.spec)}}catch(e){throw M(l,{force:!0}),e instanceof H?Error(`${e.message} ${r(`app.cli.nothingWritten`)}`):e}try{let e=pt(l,`wx`,420);try{P(e,u),lt(e)}finally{st(e)}let t=(await C([l],{format:`json`,baseline:!1,updateBaseline:!1,sections:[`drawing`,`flow`]})).reported.filter(e=>e.severity===`error`);if(t.length>0)throw Error(`${t.map(e=>`${e.rule}: ${e.message}`).join(`
81
- `)}\n${r(`app.cli.nothingWritten`)}`);let a=(await C([l],{format:`json`,baseline:!1,updateBaseline:!1})).reported.map(({rule:e,severity:t,message:n})=>({rule:e,severity:t,message:n}));n(j(D.dirname(o)));try{ut(l,o)}catch(e){throw e.code===`EEXIST`?Error(r(`app.cli.create.exists`,{file:o})):e}return{file:o,kind:i,wrote:!0,findings:a}}finally{try{gt(l)}catch{M(l,{force:!0})}}}function dn(e){try{return dt(e),!0}catch{return!1}}async function fn(e,t){let n=await v(`verify`,e,{format:`json`,failOn:`error`,baseline:!1,updateBaseline:!1,dryRun:!1,verbose:!1,target:t.target,scenarios:t.scenarios,originalProfile:t.originalProfile,convertedProfile:t.convertedProfile,runUnreviewed:!1}),r=n.lines.join(`
82
- `);if(n.refused===!0)throw Error(r);return r}function pn(e){if(typeof e!=`object`||!e||Array.isArray(e))return{problem:r(`app.cli.mcp.mustBeObject`,{tool:`test_dmn`,name:`case`})};let t=ge(JSON.stringify({schema:he,cases:[e]}));return`problems`in t?{problem:et(t.problems)}:{testCase:t.file.cases[0]}}async function mn(e,t){let n=null;if(t.testCase!==void 0){let r=ye(e[0],t.testCase);if(`problem`in r)throw Error(r.problem);n=r.path}let r=[];for(let n of e)r.push(await _e(n,{licensed:t.licensed}));return JSON.stringify({...tt(r,e=>e),...n===null?{}:{saved:n}},null,2)}function hn(e){return xe(e)}var gn=class{loops=/* @__PURE__ */ new Map;begin(e,t){let n=Oe({files:t.files,folders:t.folders},t.root),r=[...n.files,...n.folders].sort().join(`\0`),i=this.loops.get(r);if(i!==void 0)for(let[e,t]of i.baseline)n.texts.set(e,t);return{snapshot:n,tool:e,layout:t.layout===!0,scenarios:t.scenarios===!0,key:r}}async finish(e){let{changes:t,incomplete:r}=Ae(e.snapshot);if(t.length===0&&!this.loops.has(e.key))return null;let i=e.snapshot.root,a=Te(S(i).values),s=o(await n()),c=this.loops.get(e.key),l=c?.attempts??[],u;try{u=await Le(t,{root:i,source:`mcp`,tool:e.tool,maxAttempts:a.attempts,attempts:l,layoutApplied:e.layout,incomplete:r,scenarios:e.scenarios},Ke())}catch(e){if(e instanceof Ie)return null;throw e}let d=ke(u,l,{repair:s});d.receipt.attempts[d.receipt.attempts.length-1].newErrors>0?this.loops.set(e.key,{attempts:d.receipt.attempts,baseline:c?.baseline??new Map(e.snapshot.texts)}):this.loops.delete(e.key);let f=d.receipt,p=s&&a.keepReceipts&&!d.handBack?Re(i,f):null;return{receipt:s?f:Ee(f),repair:d.handBack?De(f):null,stored:p}}};const _n=[`2025-06-18`,`2025-03-26`,`2024-11-05`],vn=5e3,yn=1e5,J=[`process`,`decision`,`form`];function bn(e){return e.feature?r(`app.cli.mcp.partOf`,{description:r(e.description),gives:a(e.feature)}):r(e.description)}var Y=class extends Error{};function X(e,t=yn){return e.length<=t?e:`${e.slice(0,t)}\n${r(`app.cli.mcp.truncated`,{shown:t,total:e.length})}`}function xn(e,t){let n=e.inputSchema.properties??{},i=Object.keys(n),a=Object.keys(t).filter(e=>!i.includes(e));if(a.length===0)return null;let o=i.length>0?g(i):r(`app.cli.mcp.nothing`);return r(`app.cli.mcp.takesNot`,{tool:e.name,list:o,extra:g(a)})}function Sn(e,t){let n=(e.inputSchema.required??[]).filter(e=>t[e]===void 0);return n.length===0?[]:[r(`app.cli.mcp.needs`,{tool:e.name,list:g(n)})]}function Cn(e,t){let n,r=new Promise(e=>{n=setTimeout(e,t)});return Promise.race([e,r]).finally(()=>clearTimeout(n))}function wn(e){let t=e.startsWith(`file://`)?yt(e):e;return b(t)}function Tn(e){if(Be(e)||ct(D.join(e,`.git`)))return!0;try{return T(e).length>0}catch{return!1}}function En(e){let t;try{t=j(e)}catch{throw new Y(r(`app.cli.mcp.noDirectory`,{target:e}))}if(!N(t).isDirectory())throw new Y(r(`app.cli.mcp.notADirectory`,{target:e}));return t}function Z(e,t){if(e!==void 0){if(typeof e!=`string`||!D.isAbsolute(e.trim()))throw new Y(r(`app.cli.mcp.projectMustBeAbsolute`));let n=En(e.trim());if(t!==null&&!y(n,t))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:e}));if(!Tn(n))throw new Y(r(`app.cli.mcp.notAPenstockProject`,{target:e}));return[n]}if(t===null)throw new Y(r(`app.cli.mcp.projectNotGiven`));return t}function Q(e,t,n=[`process`]){if(typeof e!=`string`||!D.isAbsolute(e.trim()))throw new Y(r(`app.cli.mcp.fileMustBeAbsolute`));let i;try{i=j(e.trim())}catch{throw new Y(r(`app.cli.mcp.noFile`,{file:e}))}let a=w(i);if(!N(i).isFile()||a===null||!n.includes(a))throw new Y(r(n.length===1?`app.cli.mcp.notABpmnDiagram`:`app.cli.mcp.notADiagram`,{file:e}));if(t!==null&&!y(i,t))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:e}));return i}function Dn(e,t){let n=t===null?null:t.map(b).find(t=>e.startsWith(t+D.sep))??null,r=D.dirname(e);for(;;){if(Be(r)||ct(D.join(r,`.git`)))return r;let t=D.dirname(r);if(t===r||r===n)return D.dirname(e);r=t}}function On(e){if(e!==void 0){if(!Array.isArray(e)||e.length===0||e.some(e=>!I.includes(e)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`search_elements`,name:`kinds`,list:I.join(`, `)}));return e}}function kn(e,t,n){if(e!==void 0){if(typeof e!=`number`||!Number.isInteger(e)||e<1)throw new Y(r(`app.cli.mcp.mustBePositive`,{tool:t,name:n}));return e}}function $(e,t){let n=[];for(let i of Z(e,t)){let e=S(i).root;if(t!==null&&!y(e,t))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:e}));n.push({folders:[e],root:e})}return n}function An(e){if(!e.scope)return e;let t=e.inputSchema;return{...e,inputSchema:{...e.inputSchema,properties:{...t.properties,scenarios:{type:`boolean`,description:r(`app.cli.mcp.param.scenarios`)}}}}}async function jn(e,t,n,i){for(let n of[`apply`,`acknowledge`,`force`])if(t[n]!==void 0&&typeof t[n]!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:e,name:n}));if(t.planId!==void 0&&typeof t.planId!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:e,name:`planId`}));if(t.apply===!0&&(typeof t.planId!=`string`||t.planId===``))throw new Y(r(`app.refactor.mcp.needsPlanId`,{tool:e}));let[a]=Z(t.project,n()),o=n(),s=S(a).root;if(o!==null&&!y(s,o))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:s}));let c;try{c=await i(s,{apply:t.apply===!0,force:t.force===!0,acknowledge:t.acknowledge===!0,planId:typeof t.planId==`string`?t.planId:void 0})}catch(e){throw new Y(e instanceof Error?e.message:String(e))}if(t.apply===!0&&!c.applied)throw new Y((c.mode===`rename`?Ge(c):Ue(c)).join(`
83
- `));return JSON.stringify(c,null,2)}function Mn(e){let t={type:`string`,description:r(`app.cli.mcp.param.file`)},a={type:`string`,description:r(`app.cli.mcp.param.anyFile`)},s={type:`string`,description:r(`app.cli.mcp.param.project`)};return[{name:`list_diagrams`,description:`${r(`app.cli.mcp.tool.listDiagrams`)} ${r(`app.cli.mcp.tool.listDiagramsMore`)}`,inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s}},feature:null,call:async t=>{let n=e(),r=Z(t.project,n).flatMap(e=>T(e,J)),i=Array.from(new Set(r)).sort().map(e=>({file:e,kind:w(e)}));return JSON.stringify(i,null,2)}},{name:`show_diagram`,description:`${r(`app.cli.mcp.tool.showDiagram`)} ${r(`app.cli.mcp.tool.showDiagramMore`)}`,inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:a}},feature:null,call:async t=>{let n=Q(t.file,e(),J);try{return w(n)===`process`?JSON.stringify({kind:`process`,...await rt(n)},null,2):JSON.stringify(await kt(n),null,2)}catch(e){throw new Y(we(n,e))}}},{name:`element_context`,description:`${r(`app.cli.mcp.tool.elementContext`)} ${r(`app.cli.mcp.tool.elementContextMore`)}`,inputSchema:{type:`object`,additionalProperties:!1,required:[`file`,`element`],properties:{file:a,element:{type:`string`,description:r(`app.cli.mcp.param.element`)}}},feature:null,call:async t=>{let n=Q(t.file,e(),J);if(typeof t.element!=`string`||t.element.trim()===``)throw new Y(r(`app.cli.mcp.needs`,{tool:`element_context`,list:`element`}));try{let r=Dn(n,e());return w(n)===`process`?JSON.stringify(await Ct(r,n,t.element.trim()),null,2):JSON.stringify(await jt(r,n,t.element.trim()),null,2)}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`check_diagram`,description:`${r(`app.cli.mcp.tool.checkDiagram`)} ${r(`app.cli.mcp.tool.checkDiagramMore`)}`,inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:a}},feature:null,call:async t=>{let n=Q(t.file,e(),J),i=await C([n],{format:`json`,baseline:!1,updateBaseline:!1}),a=i.reported;return w(n)===`decision`&&i.flowSkipped?JSON.stringify({findings:a,notice:r(`app.output.flowAnalysisLeftOut`)},null,2):a.length===0?`[]`:JSON.stringify(a,null,2)}},{name:`analyze_flow`,description:r(`app.cli.mcp.tool.analyzeFlow`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:t}},feature:`flow-analysis`,call:async t=>JSON.stringify((await Ce(Q(t.file,e()))).problems,null,2)},{name:`list_scenarios`,description:r(`app.cli.mcp.tool.listScenarios`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:t}},feature:`paths`,call:async t=>JSON.stringify(await Se(Q(t.file,e())),null,2)},{name:`check_code_links`,description:r(`app.cli.mcp.tool.checkCodeLinks`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s}},feature:`code-links`,call:async t=>{let n=e(),r=Z(t.project,n),i=[];for(let e of r){let t=T(e),n=await Fe(e,t,`json`);if(n.lines[0]){let e=JSON.parse(n.lines[0]);Array.isArray(e)&&i.push(...e)}}return JSON.stringify(i,null,2)}},{name:`edit_diagram`,description:r(`app.cli.mcp.tool.editDiagram`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`,`operations`],properties:{file:t,operations:Pe(),dryRun:{type:`boolean`,description:r(`app.cli.mcp.param.dryRun`)}}},feature:`edit`,scope:t=>{if(t.dryRun===!0)return null;let n=Q(t.file,e());return[{files:[n],root:S(n).root}]},call:async t=>{if(t.dryRun!==void 0&&typeof t.dryRun!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`edit_diagram`,name:`dryRun`}));let n=Q(t.file,e()),i=await nt(n,t.operations,{dryRun:t.dryRun===!0});if(!i.ok)throw new Y(i.lines.join(`
84
- `));return i.lines.join(`
85
- `)}},{name:`search_elements`,description:r(`app.cli.mcp.tool.searchElements`),inputSchema:{type:`object`,additionalProperties:!1,required:[`query`],properties:{query:{type:`string`,description:r(`app.cli.mcp.param.query`)},project:s,kinds:{type:`array`,items:{type:`string`,enum:[...I]},description:r(`app.cli.mcp.param.kinds`)},limit:{type:`integer`,minimum:1,description:r(`app.cli.mcp.param.limit`)}}},feature:null,call:async t=>{if(typeof t.query!=`string`||t.query.trim()===``)throw new Y(r(`app.cli.mcp.needs`,{tool:`search_elements`,list:`query`}));let n=On(t.kinds),i=kn(t.limit,`search_elements`,`limit`),a=Z(t.project,e()),o=await Promise.all(a.map(e=>wt(e,t.query,{kinds:n,limit:i}))),s=/* @__PURE__ */ new Set,c=o.flatMap(e=>e.hits).filter(e=>{let t=`${e.kind}|${e.file}|${e.id}`;return!s.has(t)&&(s.add(t),!0)}),l=o.reduce((e,t)=>e+t.total,0),u=c.slice(0,i??c.length);return JSON.stringify({query:t.query,total:l,shown:u.length,hits:u,unreadable:o.flatMap(e=>e.unreadable)},null,2)}},{name:`diff_diagrams`,description:r(`app.cli.mcp.tool.diffDiagrams`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:a,other:{type:`string`,description:r(`app.cli.mcp.param.other`)},ref:{type:`string`,description:r(`app.cli.mcp.param.ref`)}}},feature:null,call:async t=>{if(t.other!==void 0&&t.ref!==void 0)throw new Y(r(`app.cli.mcp.onlyOneOf`,{tool:`diff_diagrams`,first:`other`,second:`ref`}));if(t.ref!==void 0&&typeof t.ref!=`string`)throw new Y(r(`app.cli.mcp.needs`,{tool:`diff_diagrams`,list:`ref`}));let n=Q(t.file,e(),J),i=t.other===void 0?null:Q(t.other,e(),J);return JSON.stringify(await qt(n,i,typeof t.ref==`string`?t.ref:`HEAD`),null,2)}},{name:`export_image`,description:r(`app.cli.mcp.tool.exportImage`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:t,format:{type:`string`,enum:[`svg`,`png`],description:r(`app.cli.mcp.param.format`)},out:{type:`string`,description:r(`app.cli.mcp.param.out`)}}},feature:null,call:async t=>{let n=Q(t.file,e()),i=t.format===void 0?`svg`:t.format;if(i!==`svg`&&i!==`png`)throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`export_image`,name:`format`,list:`svg, png`}));let a=null;if(t.out!==void 0){if(typeof t.out!=`string`||!D.isAbsolute(t.out.trim()))throw new Y(r(`app.cli.mcp.outMustBeAbsolute`));a=b(t.out.trim());let n=e();if(n!==null&&!y(a,n))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:t.out}))}let o=await Zt(n,i,a,yn),s=[{type:`text`,text:X(o.text)}];return o.image&&s.push({type:`image`,...o.image}),{content:s}}},{name:`layout_diagram`,description:r(`app.cli.mcp.tool.layoutDiagram`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:t,dryRun:{type:`boolean`,description:r(`app.cli.mcp.param.dryRun`)}}},feature:`auto-layout`,scope:t=>{if(t.dryRun===!0)return null;let n=Q(t.file,e());return[{files:[n],root:S(n).root,layout:!0}]},call:async t=>{if(t.dryRun!==void 0&&typeof t.dryRun!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`layout_diagram`,name:`dryRun`}));let n=Q(t.file,e());try{return JSON.stringify(await Jt(n,t.dryRun===!0),null,2)}catch(e){throw new Y(we(n,e))}}},{name:`run_scenarios`,description:r(`app.cli.mcp.tool.runScenarios`),inputSchema:{type:`object`,additionalProperties:!1,properties:{file:t,project:s,timeout:{type:`integer`,minimum:1,description:r(`app.cli.mcp.param.timeout`)}}},feature:`test-runs`,call:async t=>{if(t.file!==void 0&&t.project!==void 0)throw new Y(r(`app.cli.mcp.onlyOneOf`,{tool:`run_scenarios`,first:`file`,second:`project`}));let n=kn(t.timeout,`run_scenarios`,`timeout`);return Yt(t.file===void 0?Z(t.project,e()):[Q(t.file,e())],n)}},{name:`test_task`,description:r(`app.cli.mcp.tool.testTask`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`,`element`],properties:{file:t,element:{type:`string`,description:r(`app.cli.mcp.param.element`)},variables:{type:`object`,description:r(`app.cli.mcp.param.variables`)},complete:{type:`object`,description:r(`app.cli.mcp.param.complete`)},error:{type:`string`,description:r(`app.cli.mcp.param.error`)},hold:{type:`boolean`,description:r(`app.cli.mcp.param.hold`)},process:{type:`string`,description:r(`app.cli.mcp.param.process`)},timeout:{type:`integer`,minimum:1,description:r(`app.cli.mcp.param.timeout`)}}},feature:`test-runs`,call:async t=>{if(typeof t.element!=`string`||t.element.trim()===``)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`test_task`,name:`element`}));for(let e of[`variables`,`complete`]){let n=t[e];if(n!==void 0&&(typeof n!=`object`||!n||Array.isArray(n)))throw new Y(r(`app.cli.mcp.mustBeObject`,{tool:`test_task`,name:e}))}if(t.error!==void 0&&typeof t.error!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`test_task`,name:`error`}));if(t.process!==void 0&&typeof t.process!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`test_task`,name:`process`}));if(t.hold!==void 0&&typeof t.hold!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`test_task`,name:`hold`}));if([t.complete!==void 0,t.error!==void 0,t.hold===!0].filter(Boolean).length>1)throw new Y(r(`app.output.taskTest.oneMode`));let n=kn(t.timeout,`test_task`,`timeout`);return Xt(Q(t.file,e()),{element:t.element.trim(),variables:t.variables,complete:t.complete,error:t.error,hold:t.hold===!0,process:t.process,timeoutSeconds:n})}},{name:`migrate_analyze`,description:r(`app.cli.mcp.tool.migrateAnalyze`),inputSchema:{type:`object`,additionalProperties:!1,properties:{file:a,project:s,target:{type:`string`,enum:[...d],description:r(`app.cli.mcp.param.target`)},verbose:{type:`boolean`,description:r(`app.cli.mcp.param.verbose`)}}},feature:null,call:async t=>{if(t.file!==void 0&&t.project!==void 0)throw new Y(r(`app.cli.mcp.onlyOneOf`,{tool:`migrate_analyze`,first:`file`,second:`project`}));if(t.verbose!==void 0&&typeof t.verbose!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`migrate_analyze`,name:`verbose`}));if(t.target!==void 0&&(typeof t.target!=`string`||!d.includes(t.target)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`migrate_analyze`,name:`target`,list:d.join(`, `)}));let n=t.file===void 0?Z(t.project,e()):[Q(t.file,e(),J)],i=e(),a=S(n[0]).root;if(i!==null&&!y(a,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:a}));try{return await Qt(n,t.target,t.verbose===!0)}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`migrate_apply`,description:r(`app.cli.mcp.tool.migrateApply`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,target:{type:`string`,enum:[...d],description:r(`app.cli.mcp.param.target`)},workers:{type:`string`,enum:[...oe],description:r(`app.cli.mcp.param.workers`)},write:{type:`boolean`,description:r(`app.cli.mcp.param.write`)},only:{type:`array`,items:{type:`string`},description:r(`app.cli.mcp.param.migrateOnly`)},exclude:{type:`array`,items:{type:`string`},description:r(`app.cli.mcp.param.migrateExclude`)}}},feature:`migration`,scope:t=>t.write===!0?$(t.project,e()):null,call:async t=>{if(t.write!==void 0&&typeof t.write!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`migrate_apply`,name:`write`}));if(t.target!==void 0&&(typeof t.target!=`string`||!d.includes(t.target)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`migrate_apply`,name:`target`,list:d.join(`, `)}));if(t.workers!==void 0&&(typeof t.workers!=`string`||!oe.includes(t.workers)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`migrate_apply`,name:`workers`,list:oe.join(`, `)}));for(let e of[`only`,`exclude`]){let n=t[e];if(n!==void 0&&(!Array.isArray(n)||n.length>2e4||!n.every(e=>typeof e==`string`&&e.length>0&&e.length<=1024)))throw new Y(r(`app.cli.mcp.mustBeTextList`,{tool:`migrate_apply`,name:e}))}let n=Z(t.project,e()),i=e(),a=S(n[0]).root;if(i!==null&&!y(a,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:a}));try{return await $t(n,{target:t.target,workers:t.workers,write:t.write===!0,...t.only===void 0?{}:{only:t.only},...t.exclude===void 0?{}:{exclude:t.exclude}})}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`migrate_verify`,description:r(`app.cli.mcp.tool.migrateVerify`),inputSchema:{type:`object`,additionalProperties:!1,required:[`convertedProfile`],properties:{project:s,target:{type:`string`,enum:[...d],description:r(`app.cli.mcp.param.target`)},scenarios:{type:`string`,description:r(`app.cli.mcp.param.verifyScenarios`)},originalProfile:{type:`string`,description:r(`app.cli.mcp.param.verifyOriginalProfile`)},convertedProfile:{type:`string`,description:r(`app.cli.mcp.param.verifyConvertedProfile`)}}},feature:`migration-proof`,scope:()=>null,call:async t=>{if(t.target!==void 0&&(typeof t.target!=`string`||!d.includes(t.target)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`migrate_verify`,name:`target`,list:d.join(`, `)}));for(let e of[`scenarios`,`originalProfile`,`convertedProfile`])if(t[e]!==void 0&&(typeof t[e]!=`string`||t[e].trim()===``||t[e].length>512))throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`migrate_verify`,name:e}));if(typeof t.convertedProfile!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`migrate_verify`,name:`convertedProfile`}));let n=Z(t.project,e()),i=e(),a=S(n[0]).root;if(i!==null&&!y(a,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:a}));try{return await fn(n,{target:t.target,scenarios:t.scenarios,originalProfile:t.originalProfile,convertedProfile:t.convertedProfile})}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`test_dmn`,description:r(`app.cli.mcp.tool.testDmn`),inputSchema:{type:`object`,additionalProperties:!1,properties:{file:a,project:s,case:{type:`object`,description:r(`app.cli.mcp.param.dmnCase`)}}},feature:null,scope:t=>{if(t.case===void 0||t.file===void 0)return null;let n=Q(t.file,e(),[`decision`]);return[{files:[ve(n)],root:S(n).root}]},call:async t=>{if(t.file!==void 0&&t.project!==void 0)throw new Y(r(`app.cli.mcp.onlyOneOf`,{tool:`test_dmn`,first:`file`,second:`project`}));let a;if(t.case!==void 0){if(t.file===void 0)throw new Y(r(`app.cli.mcp.needs`,{tool:`test_dmn`,list:`file`}));let e=await i(`dmn-tests`);if(e)throw new Y(e.lines.join(`
86
- `));let n=pn(t.case);if(`problem`in n)throw new Y(`test_dmn: case ${n.problem}`);a=n.testCase}let s=e(),c;if(t.file!==void 0)c=[Q(t.file,s,[`decision`])];else if(c=hn(Z(t.project,s)),c.length===0)throw new Y(r(`app.cli.dmnTests.noFiles`,{targets:String(t.project??s?.join(`, `)??``)}));try{return await mn(c,{licensed:o(await n()),testCase:a})}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`connections`,description:r(`app.cli.mcp.tool.connections`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,environment:{type:`string`,description:r(`app.cli.mcp.param.environment`)},against:{type:`string`,description:r(`app.cli.mcp.param.against`)}}},feature:null,call:async t=>{for(let e of[`environment`,`against`])if(t[e]!==void 0&&(typeof t[e]!=`string`||t[e].trim()===``))throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`connections`,name:e}));if(t.against!==void 0){let e=await i(`connections-environments`);if(e)throw new Y(e.lines.join(`
87
- `))}let n=Z(t.project,e()),a=e(),o=[];for(let e of n){let n=S(e).root;if(a!==null&&!y(n,a))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:n}));try{o.push(JSON.parse(await en(n,{environment:t.environment,against:t.against})))}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}return JSON.stringify(o.length===1?o[0]:o,null,2)}},{name:`drift`,description:r(`app.cli.mcp.tool.drift`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,environment:{type:`string`,description:r(`app.cli.mcp.param.driftEnvironment`)},against:{type:`string`,description:r(`app.cli.mcp.param.driftAgainst`)}}},feature:null,call:async t=>{for(let e of[`environment`,`against`])if(t[e]!==void 0&&(typeof t[e]!=`string`||t[e].trim()===``))throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`drift`,name:e}));if(t.against!==void 0){let e=await i(`promotion`);if(e)throw new Y(e.lines.join(`
88
- `))}let n=Z(t.project,e()),a=e(),o=[];for(let e of n){let n=S(e).root;if(a!==null&&!y(n,a))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:n}));try{o.push(JSON.parse(await tn(n,{environment:t.environment,against:t.against})))}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}return JSON.stringify(o.length===1?o[0]:o,null,2)}},{name:`evidence_build`,description:r(`app.cli.mcp.tool.evidenceBuild`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,out:{type:`string`,description:r(`app.cli.mcp.param.evidenceOut`)},since:{type:`string`,description:r(`app.cli.mcp.param.evidenceSince`)},format:{type:`string`,enum:[`zip`,`dir`],description:r(`app.cli.mcp.param.evidenceFormat`)},force:{type:`boolean`,description:r(`app.cli.mcp.param.evidenceForce`)}}},feature:`audit-evidence`,call:async t=>{for(let e of[`out`,`since`])if(t[e]!==void 0&&(typeof t[e]!=`string`||t[e].trim()===``))throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`evidence_build`,name:e}));if(t.format!==void 0&&t.format!==`zip`&&t.format!==`dir`)throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`evidence_build`,name:`format`,list:`zip, dir`}));if(t.force!==void 0&&typeof t.force!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`evidence_build`,name:`force`}));let[n]=Z(t.project,e()),i=e(),a=S(n).root;if(i!==null&&!y(a,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:a}));let o=typeof t.out==`string`?D.resolve(a,t.out.trim()):void 0;if(o!==void 0&&!y(o,[a]))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:o}));let{evidenceBuild:s}=await import(`./chunk-evidence-oLw_C6j8.js`),c=await s({root:a,out:o,format:t.format===`dir`?`dir`:`zip`,since:t.since,force:t.force===!0,json:!0,confined:!0});if(!c.ok)throw new Y(c.lines.join(`
89
- `));return c.lines.join(`
90
- `)}},{name:`refactor_rename`,description:r(`app.cli.mcp.tool.refactorRename`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,kind:{type:`string`,enum:[...E],description:r(`app.cli.mcp.param.refactorKind`)},from:{type:`string`,description:r(`app.cli.mcp.param.refactorFrom`)},to:{type:`string`,description:r(`app.cli.mcp.param.refactorTo`)},apply:{type:`boolean`,description:r(`app.cli.mcp.param.refactorApply`)},planId:{type:`string`,description:r(`app.cli.mcp.param.refactorPlanId`)},acknowledge:{type:`boolean`,description:r(`app.cli.mcp.param.refactorAcknowledge`)},force:{type:`boolean`,description:r(`app.cli.mcp.param.refactorForce`)}},required:[`kind`,`from`,`to`]},feature:null,scope:t=>t.apply===!0?$(t.project,e()):null,call:async t=>jn(`refactor_rename`,t,e,async(e,n)=>{for(let e of[`kind`,`from`,`to`])if(typeof t[e]!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`refactor_rename`,name:e}));if(!E.includes(t.kind))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`refactor_rename`,name:`kind`,list:E.join(`, `)}));return Ve(e,[{kind:t.kind,from:t.from,to:t.to}],n)})},{name:`refactor_bulk`,description:r(`app.cli.mcp.tool.refactorBulk`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,mapping:{type:`string`,description:r(`app.cli.mcp.param.refactorMapping`)},apply:{type:`boolean`,description:r(`app.cli.mcp.param.refactorApply`)},planId:{type:`string`,description:r(`app.cli.mcp.param.refactorPlanId`)},acknowledge:{type:`boolean`,description:r(`app.cli.mcp.param.refactorAcknowledge`)},force:{type:`boolean`,description:r(`app.cli.mcp.param.refactorForce`)}},required:[`mapping`]},feature:`refactor-bulk`,scope:t=>t.apply===!0?$(t.project,e()):null,call:async t=>jn(`refactor_bulk`,t,e,async(e,n)=>{if(typeof t.mapping!=`string`||t.mapping.trim()===``)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`refactor_bulk`,name:`mapping`}));return Ve(e,We(D.resolve(e,t.mapping.trim()),e),n)})},{name:`refactor_extract`,description:r(`app.cli.mcp.tool.refactorExtract`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,file:{type:`string`,description:r(`app.cli.mcp.param.refactorFile`)},elements:{type:`array`,items:{type:`string`},description:r(`app.cli.mcp.param.refactorElements`)},processId:{type:`string`,description:r(`app.cli.mcp.param.refactorProcessId`)},name:{type:`string`,description:r(`app.cli.mcp.param.refactorName`)},apply:{type:`boolean`,description:r(`app.cli.mcp.param.refactorApply`)},planId:{type:`string`,description:r(`app.cli.mcp.param.refactorPlanId`)},force:{type:`boolean`,description:r(`app.cli.mcp.param.refactorForce`)}},required:[`file`,`elements`,`processId`]},feature:`refactor-bulk`,scope:t=>t.apply===!0?$(t.project,e()):null,call:async t=>jn(`refactor_extract`,t,e,async(e,n)=>{for(let e of[`file`,`processId`])if(typeof t[e]!=`string`||t[e].trim()===``)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`refactor_extract`,name:e}));if(!Array.isArray(t.elements)||t.elements.length===0||t.elements.some(e=>typeof e!=`string`||e.trim()===``))throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`refactor_extract`,name:`elements`}));if(t.name!==void 0&&typeof t.name!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`refactor_extract`,name:`name`}));let i=D.resolve(e,t.file.trim());if(!y(i,[e]))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:i}));let a=D.relative(e,i).split(D.sep).join(`/`);return He(e,a,{elements:t.elements.map(e=>e.trim()),processId:t.processId.trim(),...typeof t.name==`string`?{name:t.name}:{}},n)})},{name:`agents`,description:r(`app.cli.mcp.tool.agents`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s}},feature:null,call:async t=>{let n=Z(t.project,e()),i=e(),a=[];for(let e of n){let t=S(e).root;if(i!==null&&!y(t,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:t}));try{a.push(JSON.parse(await nn(t)))}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}return JSON.stringify(a.length===1?a[0]:a,null,2)}},{name:`migrate_agents`,description:r(`app.cli.mcp.tool.migrateAgents`),inputSchema:{type:`object`,additionalProperties:!1,properties:{project:s,write:{type:`boolean`,description:r(`app.cli.mcp.param.write`)}}},feature:null,scope:t=>t.write===!0?$(t.project,e()):null,call:async t=>{if(t.write!==void 0&&typeof t.write!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`migrate_agents`,name:`write`}));if(t.write===!0){let e=await i(`agent-tools`);if(e)throw new Y(e.lines.join(`
91
- `))}let n=Z(t.project,e()),a=e(),o=S(n[0]).root;if(a!==null&&!y(o,a))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:o}));try{return await rn(n,t.write===!0)}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`incident_to_scenario`,description:r(`app.cli.mcp.tool.incidentToScenario`),inputSchema:{type:`object`,additionalProperties:!1,required:[`key`],properties:{project:s,key:{type:`string`,description:r(`app.cli.mcp.param.incidentKey`)},write:{type:`boolean`,description:r(`app.cli.mcp.param.incidentWrite`)},run:{type:`boolean`,description:r(`app.cli.mcp.param.incidentRun`)}}},feature:null,scope:t=>t.write===!0?$(t.project,e()):null,call:async t=>{if(typeof t.key!=`string`||t.key.trim()===``)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`incident_to_scenario`,name:`key`}));for(let e of[`write`,`run`])if(t[e]!==void 0&&typeof t[e]!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`incident_to_scenario`,name:e}));if(t.write===!0||t.run===!0){let e=await i(`incident-scenario`);if(e)throw new Y(e.lines.join(`
92
- `))}let n=e(),a=Z(t.project,n);if(a.length!==1)throw new Y(r(`app.cli.mcp.oneProject`,{tool:`incident_to_scenario`}));let o=S(a[0]).root,s=e=>{if(n!==null&&!y(e,n))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:e}))};s(o);try{return await an(o,{key:t.key.trim(),write:t.write===!0,run:t.run===!0,confine:s})}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`generate_templates`,description:r(`app.cli.mcp.tool.generateTemplates`),inputSchema:{type:`object`,additionalProperties:!1,required:[`spec`],properties:{spec:{type:`string`,description:r(`app.cli.mcp.param.apiSpec`)},out:{type:`string`,description:r(`app.cli.mcp.param.templatesOut`)},write:{type:`boolean`,description:r(`app.cli.mcp.param.write`)},secretPrefix:{type:`string`,description:r(`app.cli.mcp.param.secretPrefix`)}}},feature:`api-templates`,scope:t=>{if(t.write!==!0||typeof t.spec!=`string`||!D.isAbsolute(t.spec.trim()))return null;let n=e(),r;try{r=j(t.spec.trim())}catch{return null}if(n!==null&&!y(r,n))return null;let i=S(r).root,a=typeof t.out==`string`&&D.isAbsolute(t.out.trim())?b(t.out.trim()):D.join(i,ae);return n!==null&&!y(a,n)?null:[{folders:[a],root:i}]},call:async t=>{if(typeof t.spec!=`string`||!D.isAbsolute(t.spec.trim()))throw new Y(r(`app.cli.mcp.fileMustBeAbsolute`));if(t.write!==void 0&&typeof t.write!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`generate_templates`,name:`write`}));if(t.out!==void 0&&(typeof t.out!=`string`||!D.isAbsolute(t.out.trim())))throw new Y(r(`app.cli.mcp.fileMustBeAbsolute`));if(t.secretPrefix!==void 0&&(typeof t.secretPrefix!=`string`||!Je(t.secretPrefix)))throw new Y(r(`app.cli.templates.api.badSecretPrefix`,{value:String(t.secretPrefix)}));let n=e(),i;try{i=j(t.spec.trim())}catch{throw new Y(r(`app.cli.mcp.noFile`,{file:t.spec}))}if(!$e(i)||!N(i).isFile())throw new Y(r(`app.cli.templates.api.notAFile`,{path:t.spec}));if(n!==null&&!y(i,n))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:t.spec}));let a=t.out===void 0?void 0:b(t.out.trim()),o=a??D.join(S(i).root,`.camunda/element-templates`);if(n!==null&&!y(o,n))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:o}));try{return await on(i,{out:a??o,write:t.write===!0,secretPrefix:t.secretPrefix})}catch(e){throw new Y(e instanceof Error?e.message:String(e))}}},{name:`create_diagram`,description:r(`app.cli.mcp.tool.createDiagram`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:{type:`string`,description:r(`app.cli.mcp.param.newFile`)},name:{type:`string`,description:r(`app.cli.mcp.param.diagramName`)},description:{type:`string`,description:r(`app.cli.mcp.param.diagramDescription`)},spec:{type:`object`,description:r(`app.cli.mcp.param.spec`)}}},feature:`edit`,scope:t=>{if(typeof t.file!=`string`||!D.isAbsolute(t.file.trim()))return null;let n=b(t.file.trim()),r=e();return r!==null&&!y(n,r)?null:[{files:[n],root:S(D.dirname(n)).root}]},call:async t=>{if(typeof t.file!=`string`||!D.isAbsolute(t.file.trim()))throw new Y(r(`app.cli.mcp.fileMustBeAbsolute`));for(let e of[`name`,`description`])if(t[e]!==void 0&&typeof t[e]!=`string`)throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`create_diagram`,name:e}));if(t.spec!==void 0&&(typeof t.spec!=`object`||t.spec===null||Array.isArray(t.spec)))throw new Y(r(`app.cli.mcp.mustBeObject`,{tool:`create_diagram`,name:`spec`}));let n=e(),i=e=>{if(n!==null&&!y(e,n))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:String(t.file)}))},a=b(t.file.trim());i(a);try{return JSON.stringify(await un(a,{name:t.name,description:t.description,spec:t.spec},i),null,2)}catch(e){throw e instanceof Y?e:new Y(e instanceof Error?e.message:String(e))}}},{name:`import_diagram`,description:r(`app.cli.mcp.tool.importDiagram`),inputSchema:{type:`object`,additionalProperties:!1,required:[`file`],properties:{file:{type:`string`,description:r(`app.cli.mcp.param.importFile`)},from:{type:`string`,enum:[`modeler`,`signavio`,`bizagi`,`flowable`],description:r(`app.cli.mcp.param.importFrom`)},to:{type:`string`,enum:[`camunda7`,`camunda8`],description:r(`app.cli.mcp.param.importTo`)},write:{type:`boolean`,description:r(`app.cli.mcp.param.importWrite`)},out:{type:`string`,description:r(`app.cli.mcp.param.importOut`)},force:{type:`boolean`,description:r(`app.cli.mcp.param.importForce`)}}},feature:null,call:async t=>{if(typeof t.file!=`string`||!D.isAbsolute(t.file.trim()))throw new Y(r(`app.cli.mcp.fileMustBeAbsolute`));if(t.from!==void 0&&(typeof t.from!=`string`||!fe(t.from)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`import_diagram`,name:`from`,list:pe.join(`, `)}));if(t.to!==void 0&&(typeof t.to!=`string`||!de(t.to)))throw new Y(r(`app.cli.mcp.mustBeOneOf`,{tool:`import_diagram`,name:`to`,list:ue.join(`, `)}));for(let e of[`write`,`force`])if(t[e]!==void 0&&typeof t[e]!=`boolean`)throw new Y(r(`app.cli.mcp.mustBeTrueOrFalse`,{tool:`import_diagram`,name:e}));if(t.out!==void 0&&(typeof t.out!=`string`||t.out.trim()===``))throw new Y(r(`app.cli.mcp.mustBeText`,{tool:`import_diagram`,name:`out`}));let n;try{n=j(t.file.trim())}catch{throw new Y(r(`app.cli.mcp.noFile`,{file:t.file}))}let i=e();if(i!==null&&!y(n,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:t.file}));let a=N(n).isDirectory(),o=a?S(n).root:Dn(n,i);if(i!==null&&!y(o,i))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:o}));let s=t.write===!0,c=typeof t.out==`string`?D.resolve(o,t.out.trim()):void 0;if(s&&c!==void 0&&!y(c,[o]))throw new Y(r(`app.cli.mcp.outsideRoots`,{target:c}));let{importCommand:l}=await import(`./chunk-importCommand-DRjYoljA.js`),u=await l(n,s?c:void 0,{force:t.force===!0,json:!0,from:t.from,to:t.to,report:!s&&!a,confinedTo:o,modelerData:null});if(!u.ok)throw new Y(u.lines.map(e=>{try{return JSON.parse(e).message??e}catch{return e}}).join(`
93
- `));return u.lines.join(`
94
- `)}}].map(An)}const Nn={process:`application/xml`,decision:`application/xml`,form:`application/json`},Pn=[{name:`review_diagram`,description:`app.cli.mcp.prompt.reviewDiagram.description`,text:`app.cli.mcp.prompt.reviewDiagram.text`},{name:`explain_process`,description:`app.cli.mcp.prompt.explainProcess.description`,text:`app.cli.mcp.prompt.explainProcess.text`}];function Fn(e){return e===null?[]:Array.from(new Set(e.flatMap(e=>Tn(e)?T(e,J):[]))).sort().map(t=>{let n=w(t),r=e.map(b).find(e=>t.startsWith(e+D.sep));return{uri:bt(t).href,name:r?D.relative(r,t):D.basename(t),mimeType:Nn[n],description:n}})}function In(e,t){if(typeof e!=`string`||!e.startsWith(`file://`))throw new Y(r(`app.cli.mcp.fileMustBeAbsolute`));let n=Q(yt(e),t,J);return{contents:[{uri:e,mimeType:Nn[w(n)],text:X(A(n,`utf8`))}]}}function Ln(e,t,n){let i=Pn.find(t=>t.name===e);if(!i)throw new Y(r(`app.cli.mcp.unknownPrompt`,{name:String(e)}));let a=Q(t?.file,n,J);return{description:r(i.description),messages:[{role:`user`,content:{type:`text`,text:r(i.text,{file:a})}}]}}var Rn=class{hasRootsCapability=!1;clientRoots=null;rootsPromise=null;nextRequestId=1;pendingRequests=/* @__PURE__ */ new Map;writeOutput;toolList;project;receipts=new gn;constructor(e,t=null){this.writeOutput=e,this.project=t===null?null:[t],this.toolList=Mn(()=>this.project??(this.hasRootsCapability?this.clientRoots??[]:null))}requestRoots(){let e=`roots-${this.nextRequestId++}`,t=new Promise(t=>{this.pendingRequests.set(e,t)}).then(e=>{let t=e.result?.roots;this.clientRoots=Array.isArray(t)?t.map(e=>typeof e?.uri==`string`?wn(e.uri):null).filter(e=>e!==null):[]});return this.writeOutput({jsonrpc:`2.0`,id:e,method:`roots/list`,params:{}}),t}onResponse(e){if(e.id!==void 0&&e.id!==null){let t=this.pendingRequests.get(e.id);t&&(this.pendingRequests.delete(e.id),t(e))}}async onMessage(e){let t=await this.handle(e);t&&e.id!==void 0&&e.id!==null&&this.writeOutput(t)}async handle(t){let n=e=>({jsonrpc:`2.0`,id:t.id,result:e}),a=(e,n)=>({jsonrpc:`2.0`,id:t.id,error:{code:e,message:n}}),o=t.id===void 0||t.id===null;switch(t.method){case`initialize`:{let i=String(t.params?.protocolVersion??``);return(t.params?.capabilities??{}).roots&&(this.hasRootsCapability=!0,this.rootsPromise=this.requestRoots()),n({protocolVersion:_n.includes(i)?i:_n[0],capabilities:{tools:{listChanged:!1},resources:{listChanged:!1,subscribe:!1},prompts:{listChanged:!1}},serverInfo:{name:`penstock`,version:e()??`development`},instructions:r(`app.cli.mcp.instructions`)})}case`notifications/initialized`:return null;case`notifications/roots/list_changed`:return this.rootsPromise=this.requestRoots(),null;case`ping`:return n({});case`tools/list`:return n({tools:this.toolList.map(e=>({name:e.name,description:bn(e),inputSchema:e.inputSchema}))});case`resources/list`:case`resources/read`:case`prompts/list`:case`prompts/get`:{this.hasRootsCapability&&this.rootsPromise&&await Cn(this.rootsPromise,vn);let e=this.project??(this.hasRootsCapability?this.clientRoots??[]:null);try{return t.method===`prompts/list`?n({prompts:Pn.map(e=>({name:e.name,description:r(e.description),arguments:[{name:`file`,description:r(`app.cli.mcp.param.anyFile`),required:!0}]}))}):t.method===`prompts/get`?n(Ln(t.params?.name,t.params?.arguments,e)):t.method===`resources/list`?n({resources:Fn(e)}):n(In(t.params?.uri,e))}catch(e){return a(-32602,e instanceof Error?e.message:String(e))}}case`tools/call`:{this.hasRootsCapability&&this.rootsPromise&&await Cn(this.rootsPromise,vn);let e=String(t.params?.name??``),o=this.toolList.find(t=>t.name===e);if(!o)return a(-32602,r(`app.cli.mcp.unknownTool`,{name:e}));let s=t.params?.arguments??{},c=xn(o,s)??Sn(o,s)[0];if(c)return n({content:[{type:`text`,text:c}],isError:!0});if(this.hasRootsCapability&&this.clientRoots===null&&this.project===null)return n({content:[{type:`text`,text:r(`app.cli.mcp.rootsNotSaid`)}],isError:!0});if(o.feature){let e=await i(o.feature);if(e)return n({content:[{type:`text`,text:e.lines.join(`
95
- `)}],isError:!0})}try{let e=o.scope?o.scope(s):null,t=e==null?[]:e.map(e=>this.receipts.begin(o.name,{...e,scenarios:s.scenarios===!0})),r=await o.call(s),i=typeof r==`string`?[{type:`text`,text:X(r)}]:[...r.content],a=[];for(let e of t){let t=await this.receipts.finish(e);t!==null&&a.push(t)}if(a.length===0)return n({content:i,isError:!1});let c=a.map(e=>e.receipt),l={receipt:c.length===1?c[0]:c};i.push({type:`text`,text:X(JSON.stringify(l,null,2))});for(let e of a)e.repair!==null&&i.push({type:`text`,text:e.repair});return n({content:i,isError:!1,structuredContent:l})}catch(e){return n({content:[{type:`text`,text:it(e)??(e instanceof Error?e.message:String(e))}],isError:!0})}}default:return o?null:a(-32601,r(`app.cli.mcp.methodNotFound`,{method:String(t.method)}))}}};function zn(e,t,n,r){return e.then(()=>t(n)).catch(e=>{n.id!==void 0&&n.id!==null&&r({jsonrpc:`2.0`,id:n.id??null,error:{code:-32603,message:e instanceof Error?e.message:String(e)}})})}async function Bn(e=null){let t=vt({input:process.stdin}),n=e=>process.stdout.write(`${JSON.stringify(e)}\n`),i=new Rn(n,e===null?null:b(D.resolve(e))),a=Promise.resolve();return t.on(`line`,e=>{if(!e.trim())return;let t;try{t=JSON.parse(e)}catch{n({jsonrpc:`2.0`,id:null,error:{code:-32700,message:r(`app.cli.mcp.parseError`)}});return}!t||typeof t!=`object`||Array.isArray(t)?n({jsonrpc:`2.0`,id:null,error:{code:-32600,message:r(`app.cli.mcp.notARequest`)}}):t.method===void 0&&t.id!==void 0&&t.id!==null?i.onResponse(t):a=zn(a,e=>i.onMessage(e),t,n)}),await new Promise(e=>t.on(`close`,()=>e())),await a,0}function Vn(t=e()){let n=ne(t);return JSON.stringify({mcpServers:{penstock:n===null?{command:`penstock`,args:[`mcp`]}:{command:`npx`,args:[`--yes`,n,`mcp`]}}},null,2)}export{Bn as mcpCommand,Vn as mcpConfig};
@@ -1,16 +0,0 @@
1
- import{u as e}from"./chunk-license-BG88gpDZ.js";import{r as t,t as n}from"./chunk-translator-DNm9zRpP.js";import{s as r,t as i}from"./chunk-features-C6o8of19.js";import{n as a}from"./chunk-status-CmYxwOCn.js";import{t as o}from"./chunk-table-BOiaGWwY.js";import{h as s}from"./chunk-codeScan-C09My9xv.js";import{r as c}from"./chunk-types-mxHL9XQt.js";import{c as l,r as u,u as d}from"./chunk-codeFactSet-LxSnQy8K.js";import{i as f}from"./chunk-xml-rMelkRIV.js";import{a as p,n as m,r as h,t as g}from"./chunk-convert-HbFpg8ab.js";import{c as _,i as v,n as y,o as b,s as ee,t as x}from"./chunk-migrateApply-CzOkgKhB.js";import{a as S,c as C,i as w,l as T,r as E}from"./chunk-selection-DG43DJ2G.js";import{_ as D,o as O,t as k}from"./chunk-load-rfn3E0t5.js";import{a as A,i as j,r as M,t as N}from"./chunk-context-rCJvBM9p.js";import{_ as te,g as ne,v as re}from"./chunk-commands-B4PoZbpX.js";import{n as ie,r as ae}from"./chunk-report-D9pM09Nu.js";import{t as P}from"./chunk-plural-Dn-7ulHf.js";import{t as oe}from"./chunk-diagrams-BukAOL0g.js";import{c as se}from"./chunk-codeLinks-C8N6e8k3.js";import{a as ce}from"./chunk-safeWrite-RgLbdyzl.js";import F from"node:path";import{existsSync as le,lstatSync as ue,mkdirSync as I,readFileSync as L,realpathSync as de,statSync as fe,writeFileSync as R}from"node:fs";const z=[`ready`,`converts`,`needs-work`,`blocked`],B={ready:`ready`,converts:`converts`,"needs-work":`needsWork`,blocked:`blocked`};function V(e){return t(`app.migration.report.status.${B[e]}`)}function H(e){return t(`app.migration.report.meaning.${B[e]}`)}const U=[`workers`,`expressions`,`scripts`,`listeners`,`forms`,`calledProcesses`,`decisions`];function W(e){return t(`app.migration.report.effort.${e}`)}const pe={error:0,warning:1,info:2};function me(e){return e.name??e.root.split(/[\\/]/).filter(Boolean).pop()??t(`app.migration.report.theProject`)}function G(e){return t(`app.migration.report.heading`,{name:me(e)})}function he(e,n){return t(n?`app.migration.report.targetDated`:`app.migration.report.target`,{target:e,on:n?t(`app.migration.report.onDate`,{date:n}):``})}function ge(e){return t(`app.migration.report.fileCount`,{count:e})}function _e(e){return t(`app.migration.report.automatic`,{count:e})}function ve(e){let n=[...e.findings].sort((e,t)=>pe[e.severity]-pe[t.severity]);return{sections:[{title:t(`app.migration.report.needsWork`),findings:n.filter(e=>e.conversion===`manual`)},{title:t(`app.migration.report.reviewAfter`),findings:n.filter(e=>e.conversion===`review`)}].filter(e=>e.findings.length>0),automatic:e.findings.filter(e=>e.conversion===`automatic`).length}}function ye(e,n){return e.source?`${s(n,e.source.path)}:${e.source.line}`:t(`app.migration.report.notInProject`)}function K(e){return e.replace(/\|/g,`\\|`).replace(/[\r\n]+/g,` `)}function be(e){let t=K(e);return t.includes("`")?`\`\` ${t} \`\``:`\`${t}\``}function xe(e,n){let r=[`# ${G(n)}`,``];return r.push(`${he(e.target,n.date)}`,``),e.source?(r.push(`## ${t(`app.migration.report.scope`)}`,``,`| ${t(`app.migration.report.columnStatus`)} | ${t(`app.migration.report.columnFiles`)} | ${t(`app.migration.report.columnMeaning`)} |`,`|---|---|---|`),z.forEach(t=>r.push(`| ${V(t)} | ${e.totals[t]} | ${H(t)} |`)),r.push(``,`## ${t(`app.migration.report.costs`)}`,``),U.forEach(t=>r.push(`- ${W(t)}: ${e.effort[t]}`)),r.push(``),e.blockers.length>0&&(r.push(`## ${t(`app.migration.report.blockers`)}`,``,t(`app.migration.report.blockersHint`),``),e.blockers.forEach(({path:e,finding:i})=>r.push(`- **${i.title}** ${t(`app.migration.report.blockerWhere`,{where:i.where,path:s(n.root,e),action:i.action})}`)),r.push(``)),r.push(`## ${t(`app.migration.report.files`)}`,``,`| ${t(`app.migration.report.columnFile`)} | ${t(`app.migration.report.columnStatus`)} | ${t(`app.migration.report.columnNeedsWork`)} | ${t(`app.migration.report.columnReview`)} | ${t(`app.migration.report.columnConverts`)} |`,`|---|---|---|---|---|`),e.files.forEach(e=>r.push(`| ${K(s(n.root,e.path))} | ${V(e.status)} | ${e.counts.manual} | ${e.counts.review} | ${e.counts.automatic} |`)),r.push(``),e.files.filter(e=>e.status!==`ready`).forEach(e=>{let{sections:i,automatic:a}=ve(e);r.push(`### ${K(s(n.root,e.path))}`,``),i.forEach(e=>{r.push(`**${e.title}**`,``),e.findings.forEach(e=>r.push(`- ${t(`app.migration.report.finding`,{where:e.where,title:e.title,action:e.action})}`)),r.push(``)}),a>0&&r.push(_e(a),``)}),e.code.length>0&&(r.push(`## ${t(`app.migration.report.code`)}`,``,t(`app.migration.report.codeHint`),``),r.push(`| ${t(`app.migration.report.columnValue`)} | ${t(`app.migration.report.columnWhere`)} | ${t(`app.migration.report.columnBecomes`)} | ${t(`app.migration.report.columnNotes`)} |`,`|---|---|---|---|`),e.code.forEach(e=>r.push(`| ${be(e.value)} | ${K(ye(e,n.root))} | ${K(e.becomes)} | ${K(e.notes.join(` `))} |`)),r.push(``)),e.apis.length>0&&(r.push(`## ${t(`app.migration.report.apis`)}`,``,t(`app.migration.report.apisHint`),``),e.apis.forEach(e=>r.push(`- ${t(`app.migration.report.apiImports`,{api:e.api,imports:e.imports,files:ge(e.files)})}`)),r.push(``)),e.dataMigration&&(r.push(`## ${t(`app.migration.report.dataMigration`)}`,``,`${e.dataMigration.detail} ${e.dataMigration.action}`,``),e.dataMigration.link&&r.push(t(`app.migration.report.dataMigrator`,{link:e.dataMigration.link}),``)),`${r.join(`
2
- `)}`):(r.push(t(`app.migration.report.nothingToMigrate`),``),`${r.join(`
3
- `)}\n`)}function Se(e,r){let i=f,a=[`<!doctype html>`,`<html lang="${n()}">`,`<head>`,`<meta charset="utf-8">`,`<title>${i(G(r))}</title>`,`<style>
4
- :root { color-scheme: light dark; --bg: #f7f8fa; --surface: #fff; --fg: #1e1f22; --muted: #6c707e; --border: #ebecf0; --accent: #3574f0; --error: #db5860; --warn: #c77d0a; --ok: #368746; }
5
- @media (prefers-color-scheme: dark) { :root { --bg: #1e1f22; --surface: #2b2d30; --fg: #dfe1e5; --muted: #9da0a8; --border: #393b40; --accent: #548af7; --error: #f75464; --warn: #e5a13b; --ok: #57965c; } }
6
- body { margin: 0; padding: 24px; background: var(--bg); color: var(--fg); font: 13px/1.5 ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace; }
7
- main { max-width: 960px; margin: 0 auto; }
8
- h1 { font-size: 20px; margin: 0 0 4px; } h2 { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); margin: 24px 0 8px; } h3 { font-size: 13px; margin: 16px 0 4px; }
9
- p, li { margin: 4px 0; } .muted { color: var(--muted); }
10
- table { width: 100%; border-collapse: collapse; background: var(--surface); border-radius: 8px; } th { text-align: left; font-size: 11px; color: var(--muted); border-bottom: 1px solid var(--border); } th, td { padding: 8px 12px; vertical-align: top; }
11
- .ready { color: var(--ok); } .converts { color: var(--accent); } .needs-work { color: var(--warn); } .blocked { color: var(--error); font-weight: bold; }
12
- code { background: var(--surface); padding: 0 4px; border-radius: 4px; }
13
- </style>`,`</head>`,`<body>`,`<main>`,`<h1>${i(G(r))}</h1>`,`<p class="muted">${i(he(e.target,r.date))}</p>`];return e.source?(a.push(`<h2>${i(t(`app.migration.report.scope`))}</h2>`,`<table>`,`<tr><th>${i(t(`app.migration.report.columnStatus`))}</th><th>${i(t(`app.migration.report.columnFiles`))}</th><th>${i(t(`app.migration.report.columnMeaning`))}</th></tr>`),z.forEach(t=>a.push(`<tr><td class="${t}">${i(V(t))}</td><td>${e.totals[t]}</td><td class="muted">${i(H(t))}</td></tr>`)),a.push(`</table>`,`<h2>${i(t(`app.migration.report.costs`))}</h2>`,`<ul>`),U.forEach(t=>a.push(`<li>${i(W(t))}: <strong>${e.effort[t]}</strong></li>`)),a.push(`</ul>`),e.blockers.length>0&&(a.push(`<h2>${i(t(`app.migration.report.blockers`))}</h2>`,`<p>${i(t(`app.migration.report.blockersHint`))}</p>`,`<ul>`),e.blockers.forEach(({path:e,finding:n})=>a.push(`<li class="blocked">${i(n.title)} <span class="muted">${i(t(`app.migration.report.blockerWhere`,{where:n.where,path:s(r.root,e),action:n.action}))}</span></li>`)),a.push(`</ul>`)),a.push(`<h2>${i(t(`app.migration.report.files`))}</h2>`,`<table>`,`<tr><th>${i(t(`app.migration.report.columnFile`))}</th><th>${i(t(`app.migration.report.columnStatus`))}</th><th>${i(t(`app.migration.report.columnNeedsWork`))}</th><th>${i(t(`app.migration.report.columnReview`))}</th><th>${i(t(`app.migration.report.columnConverts`))}</th></tr>`),e.files.forEach(e=>a.push(`<tr><td>${i(s(r.root,e.path))}</td><td class="${e.status}">${i(V(e.status))}</td><td>${e.counts.manual}</td><td>${e.counts.review}</td><td>${e.counts.automatic}</td></tr>`)),a.push(`</table>`),e.files.filter(e=>e.status!==`ready`).forEach(e=>{let{sections:n,automatic:o}=ve(e);a.push(`<h3>${i(s(r.root,e.path))}</h3>`),n.forEach(e=>{a.push(`<p><strong>${e.title}</strong></p>`,`<ul>`),e.findings.forEach(e=>a.push(`<li>${i(t(`app.migration.report.findingWhere`,{where:e.where,title:e.title}))} <span class="muted">${i(e.action)}</span></li>`)),a.push(`</ul>`)}),o>0&&a.push(`<p class="muted">${i(_e(o))}</p>`)}),e.code.length>0&&(a.push(`<h2>${i(t(`app.migration.report.code`))}</h2>`,`<p>${i(t(`app.migration.report.codeHint`))}</p>`),a.push(`<table>`,`<tr><th>${i(t(`app.migration.report.columnValue`))}</th><th>${i(t(`app.migration.report.columnWhere`))}</th><th>${i(t(`app.migration.report.columnBecomes`))}</th><th>${i(t(`app.migration.report.columnNotes`))}</th></tr>`),e.code.forEach(e=>a.push(`<tr><td><code>${i(e.value)}</code></td><td>${i(ye(e,r.root))}</td><td>${i(e.becomes)}</td><td class="muted">${i(e.notes.join(` `))}</td></tr>`)),a.push(`</table>`)),e.apis.length>0&&(a.push(`<h2>${i(t(`app.migration.report.apis`))}</h2>`,`<p>${i(t(`app.migration.report.apisHint`))}</p>`,`<ul>`),e.apis.forEach(e=>a.push(`<li>${i(t(`app.migration.report.apiImports`,{api:e.api,imports:e.imports,files:ge(e.files)}))}</li>`)),a.push(`</ul>`)),e.dataMigration&&(a.push(`<h2>${i(t(`app.migration.report.dataMigration`))}</h2>`,`<p>${i(e.dataMigration.detail)} ${i(e.dataMigration.action)}</p>`),e.dataMigration.link&&a.push(`<p class="muted">${i(t(`app.migration.report.dataMigrator`,{link:e.dataMigration.link}))}</p>`)),a.push(`</main>`,`</body>`,`</html>`),`${a.join(`
14
- `)}\n`):(a.push(`<p>${i(t(`app.migration.report.nothingToMigrate`))}</p>`,`</main>`,`</body>`,`</html>`),`${a.join(`
15
- `)}\n`)}function q(e){return e.replace(/[\\/]+$/,``)}function Ce(e,t){let n=q(e);return`${t?n:m(n)}/camunda-8`}function J(e,t,n){let r=q(e),i=n.startsWith(`${r}/`)||n.startsWith(`${r}\\`)?n.slice(r.length+1):n.split(/[\\/]/).pop()??n;return`${q(t)}/${i.replace(/\\/g,`/`)}`}function we(e){return/^[A-Za-z0-9_][A-Za-z0-9_.-]*$/.test(e)&&!/^(null|true|false|yes|no|on|off|y|n|~)$/i.test(e)&&!/^[0-9.eE+-]+$/.test(e)?e:JSON.stringify(e)}function Te(e,t){return[[`name`,e?.name?JSON.stringify(e.name):void 0],[`source`,e?.source?JSON.stringify(e.source):void 0],[`tenantId`,e?.tenantId?JSON.stringify(e.tenantId):void 0],[`changedOnly`,e?.changedOnly]].filter(([,e])=>e!==void 0).map(([e,n])=>`${t}${e}: ${n}`)}function Ee(e){let t=Te(e.deployment,` `),n=[`# yaml-language-server: $schema=https://raw.githubusercontent.com/kern0x1b/penstock-release/main/docs/schema/penstock.schema.json`,`# The Camunda 8 version of a Camunda 7 folder, written by penstock migrate. Commit it.`,`# Files here open and are checked as Camunda 8; the folder they came from is untouched.`,``,`engine: camunda-8`,``];t.length>0?n.push(`deployment:`,...t):n.push(`# deployment:`,`# url: http://localhost:8080/v2`),t.length>0&&n.push(` # url: http://localhost:8080/v2`);let r=e.profiles??[];if(r.length>0){n.push(``,`profiles:`);for(let e of r){let t=Te(e.deployment,` `);t.length===0?n.push(` ${we(e.name)}: {}`):n.push(` ${we(e.name)}:`,` deployment:`,...t)}}return`${n.join(`
16
- `)}\n`}function De(e){return F.join(e,...E.split(`/`))}function Oe(e){let n=De(e),r;try{r=ue(n)}catch{return{selection:null}}if(r.isSymbolicLink()||!r.isFile()||!D(n,[e]))return{problem:t(`app.migration.selection.unsafeFile`)};if(r.size>1048576)return{problem:t(`app.migration.selection.tooBig`)};let i=C(L(n,`utf8`));return i===null?{problem:t(`app.migration.selection.unreadable`)}:{selection:i}}function ke(e,n){let r=[...n.only,...n.exclude];if(r.length>2e4||r.some(e=>e.length===0||e.length>1024))throw Error(t(`app.migration.selection.tooBig`));let i=De(e);return ce([{path:i,content:T(n)}],e,{replace:!0}),i}const Ae=[`analyze`,`convert`,`report`,`apply`,`agents`,`plan`,`verify`],je={ready:`app.cli.migrate.ready`,converts:`app.cli.migrate.converts`,"needs-work":`app.cli.migrate.needsWork`,blocked:`app.cli.migrate.blocked`};function Y(e){return t(je[e])}const X={rule:`migration/file-unreadable`,severity:`error`};function Me(e,t){return t.findings.map(t=>({file:e,rule:t.rule,message:`${t.where}: ${t.title}. ${t.action}`,severity:t.severity===`info`?`note`:t.severity,...t.link?{docs:t.link}:{}}))}function Z(e){let t={manual:0,review:1,automatic:2},n={error:0,warning:1,info:2};return[...e].sort((e,r)=>t[e.conversion]-t[r.conversion]||n[e.severity]-n[r.severity])}async function Q(e,t){let n=[...new Set(e.flatMap(e=>oe(e,[`process`,`decision`,`form`])))].sort(),r=n.map(e=>({path:e,text:L(e,`utf8`)}));return{files:n,texts:r,forms:h(r),root:N(e[0]).root,target:t}}function Ne(e){return e.target&&!c.includes(e.target)?{ok:!1,lines:[t(`app.cli.migrate.unknownTarget`,{target:e.target,versions:c.join(`, `)})]}:null}async function Pe(e,n){let r=n.target??`8.8`,{texts:i,forms:a,root:s}=await Q(e,r),c=[],d=[];for(let e of i){let n=await p(e.path,e.text,{target:r,forms:a});n?.ok&&n.source&&c.push({file:e.path,result:n}),n&&!n.ok&&d.push({file:e.path,failure:n.failure??t(`app.cli.migrate.unreadable`)})}let f=se(s).map(e=>({path:e,text:L(e,`utf8`)})),m=await l({files:i,...Re(await u(i,f)),target:r}),h=[...c.flatMap(({file:e,result:t})=>Me(e,t)),...d.map(({file:e,failure:t})=>({file:e,...X,message:t}))],g=n.verbose?h:h.filter(e=>e.severity!==`note`);if(n.updateBaseline){let e=re(s,g,ne);return{ok:!0,lines:[t(`app.cli.migrate.baselineWritten`,{file:M(e),findings:P(g.length,`app.cli.migrate.count.finding`)})]}}let _=n.baseline?te(s,g,ne):null,v=_?_.fresh:g,y=v.some(e=>e.severity===`error`||n.failOn===`warning`&&e.severity===`warning`);if(n.format===`sarif`)return{ok:!y,refused:!1,lines:[ae(v,`migrate`)]};if(n.format===`github`)return{ok:!y,refused:!1,lines:ie(v)};if(n.format===`json`){let e=new Map(m.files.map(e=>[e.path,e]));return{ok:!y,refused:!1,lines:[JSON.stringify({target:r,files:[...c.map(({file:t,result:n})=>({file:M(t),status:e.get(t)?.status,findings:n.findings})),...d.map(({file:e,failure:t})=>({file:M(e),status:`blocked`,findings:[{...X,message:t}]}))],effort:m.effort,blockers:m.blockers.map(e=>({file:M(e.path),rule:e.finding.rule,title:e.finding.title}))},null,2)]}}if(c.length===0&&d.length===0)return{ok:!0,lines:[t(`app.cli.migrate.nothingToMigrate`)]};let b=[],ee=new Set(v),x=m.files.map(e=>{let n=e.counts;return{status:Y(e.status),file:M(e.path),todo:n.manual>0?t(`app.cli.migrate.toDo`,{count:n.manual}):``,check:n.review>0?t(`app.cli.migrate.toCheck`,{count:n.review}):``,convert:n.automatic>0?t(`app.cli.migrate.convert`,{count:n.automatic}):``}});x.push(...d.map(({file:e})=>({status:Y(`blocked`),file:M(e),todo:``,check:``,convert:``})));let S=o(x,{columns:[{name:`status`,header:t(`app.cli.header.status`),minWidth:10},{name:`file`,header:t(`app.cli.header.file`),minWidth:24},{name:`todo`,header:t(`app.cli.migrate.headerTodo`),minWidth:10},{name:`check`,header:t(`app.cli.migrate.headerToCheck`),minWidth:12},{name:`convert`,header:t(`app.cli.migrate.headerConvert`),minWidth:10}]});b.push(...S,``);for(let e of m.files){let r=Z(e.findings).filter(e=>n.verbose||e.severity!==`info`).filter(t=>_===null||[...ee].some(n=>n.file===e.path&&n.rule===t.rule&&n.message.startsWith(`${t.where}: `)));if(r.length>0){b.push(`${Y(e.status).padEnd(11)} ${M(e.path)}`);for(let e of r.slice(0,40))b.push(` ${e.severity.padEnd(7)} ${e.rule}: ${e.where}: ${e.title}. ${e.action}`);r.length>40&&b.push(` ${t(`app.cli.migrate.andMore`,{count:r.length-40})}`)}}for(let{file:e,failure:t}of d)b.push(`${Y(`blocked`).padEnd(11)} ${M(e)}`,` ${X.severity.padEnd(7)} ${X.rule}: ${t}`);let C=m.totals;return b.push(``,t(`app.cli.migrate.totals`,{files:P(m.files.length+d.length,`app.cli.migrate.count.file`),target:r,ready:C.ready,converts:C.converts,needsWork:C[`needs-work`],blocked:C.blocked+d.length})),U.filter(e=>m.effort[e]>0).forEach(e=>b.push(`${W(e)}: ${m.effort[e]}`)),_&&b.push(_.fresh.length>0?t(`app.cli.migrate.newAndAccepted`,{fresh:_.fresh.length,known:_.known.length}):t(`app.cli.migrate.nothingNew`,{known:_.known.length})),b.push(``,t(`app.cli.migrate.instancesStay`)),{ok:!y,refused:!1,lines:b}}function $(e){return{name:A(e.name),source:A(e.source),tenantId:A(e.tenantId),changedOnly:typeof e.changedOnly==`boolean`?e.changedOnly:void 0}}function Fe(e){let{merged:t}=N(e);return{deployment:$(j(t.deployment)),profiles:Object.entries(j(t.profiles)).map(([e,t])=>({name:e,deployment:$(j(j(t).deployment))}))}}function Ie(e){let t=F.resolve(e);return fe(t).isDirectory()?t:F.dirname(t)}async function Le(e,n){let r=n.target??`8.8`,{texts:i,forms:s}=await Q(e,r),c=Ie(e[0]),l=F.resolve(n.out??Ce(c,O(c)===c)),u=[],d=!1,f=0,p=0;for(let e of i){let i=await g(e.path,e.text,{target:r,forms:s});if(!i)continue;if(!i.ok){d=!0,u.push(...o([{action:a(`fail`),target:`${M(e.path)}: ${i.failure??t(`app.cli.migrate.unreadable`)}`,details:``}],{columns:[{name:`action`,header:t(`app.cli.header.action`),minWidth:13},{name:`target`,header:t(`app.cli.header.target`)},{name:`details`,header:t(`app.cli.header.details`)}],headers:!1}));continue}if(!i.changed){i.source||(p+=1);continue}f+=1;let m=J(c,l,e.path);if(n.dryRun){let n=[{action:t(`app.cli.migrate.wouldConvert`),target:`${M(e.path)} -> ${M(m)}`,details:t(`app.cli.migrate.leftOpen`,{changes:P(i.changes.length,`app.cli.migrate.count.change`),open:i.open.length})}];u.push(...o(n,{columns:[{name:`action`,header:t(`app.cli.header.action`),minWidth:13},{name:`target`,header:t(`app.cli.header.target`)},{name:`details`,header:t(`app.cli.header.details`)}],headers:!1})),i.changes.forEach(e=>u.push(` ${e.where}: ${e.before} -> ${e.after}`)),i.files.forEach(e=>u.push(` ${t(`app.cli.migrate.wouldWrite`,{file:M(J(c,l,e.path)),reason:e.reason})}`)),i.open.length>0&&(u.push(` ${t(`app.cli.migrate.staysOpen`)}`),Z(i.open).forEach(e=>u.push(` ${e.where}: ${e.title}. ${e.action}`)));continue}I(F.dirname(m),{recursive:!0}),R(m,i.text);let h=[{action:t(`app.cli.migrate.converted`),target:`${M(e.path)} -> ${M(m)}`,details:t(`app.cli.migrate.leftOpen`,{changes:P(i.changes.length,`app.cli.migrate.count.change`),open:i.open.length})}];u.push(...o(h,{columns:[{name:`action`,header:t(`app.cli.header.action`),minWidth:13},{name:`target`,header:t(`app.cli.header.target`)},{name:`details`,header:t(`app.cli.header.details`)}],headers:!1}));for(let e of i.files){let n=J(c,l,e.path);I(F.dirname(n),{recursive:!0});try{R(n,e.content,{flag:`wx`}),u.push(...o([{action:a(`wrote`),target:M(n),details:e.reason}],{columns:[{name:`action`,header:t(`app.cli.header.action`),minWidth:13},{name:`target`,header:t(`app.cli.header.target`)},{name:`details`,header:t(`app.cli.header.details`)}],headers:!1}))}catch{u.push(...o([{action:a(`kept`),target:t(`app.cli.migrate.alreadyThere`,{file:M(n)}),details:``}],{columns:[{name:`action`,header:t(`app.cli.header.action`),minWidth:13},{name:`target`,header:t(`app.cli.header.target`)},{name:`details`,header:t(`app.cli.header.details`)}],headers:!1}))}}Z(i.open).slice(0,40).forEach(e=>u.push(` ${t(`app.cli.migrate.left`,{where:e.where,title:e.title,action:e.action})}`))}if(f===0&&!d){let e=p>0?t(`app.cli.migrate.notCamunda7`,{files:P(p,`app.cli.migrate.count.file`),count:p}):t(`app.cli.migrate.noneFound`);return{ok:!0,lines:[t(`app.cli.migrate.nothingToConvert`,{reason:e})]}}if(n.dryRun&&u.push(``,t(`app.cli.migrate.dryRunFolder`,{folder:M(l)})),!n.dryRun&&f>0){let n=F.join(l,k[0]);k.some(e=>le(F.join(l,e)))?u.push(``,t(`app.cli.migrate.configKept`,{file:M(n)})):(R(n,Ee(Fe(e[0]))),u.push(``,t(`app.cli.migrate.configWritten`,{file:M(n)}))),u.push(``,t(`app.cli.migrate.camunda7Untouched`))}return{ok:!d,refused:!1,lines:u}}const Re=({index:e,facts:t})=>({index:e,classes:t.classes,camunda7Imports:t.camunda7Imports});async function ze(e,n){let r=n.target??`8.8`,{texts:i,root:a}=await Q(e,r),o=se(a).map(e=>({path:e,text:L(e,`utf8`)})),s=await l({files:i,...Re(await u(i,o)),target:r}),c=n.out??process.cwd();I(c,{recursive:!0});let d={root:a,name:F.basename(a),date:(/* @__PURE__ */ new Date()).toISOString().slice(0,10)},f=F.join(c,`migration-report.md`),p=F.join(c,`migration-report.html`);return R(f,xe(s,d)),R(p,Se(s,d)),{ok:!0,lines:[t(`app.cli.wrote`,{file:M(f)}),t(`app.cli.wrote`,{file:M(p)})]}}function Be(e){return e.workers===void 0?`spring`:d.includes(e.workers)?e.workers:{ok:!1,lines:[t(`app.cli.migrate.apply.unknownWorkers`,{value:e.workers,values:d.join(`, `)})]}}const Ve={symlink:`app.migration.apply.reason.symlink`,outside:`app.migration.apply.reason.outside`};function He(e,n){let r={...n.only===void 0?{}:{only:n.only},...n.exclude===void 0?{}:{exclude:n.exclude}};if(!n.saved)return r;let i=Oe(de(N(e[0]).root));if(`problem`in i)return{ok:!1,lines:[i.problem]};if(i.selection===null)return{ok:!1,lines:[t(`app.cli.migrate.plan.noSavedSelection`)]};let a=S(i.selection);return{...a?.only?{only:[...a.only]}:{},...a?.exclude?{exclude:[...a.exclude]}:{},...r}}async function Ue(e,n){let r=He(e,n);if(`lines`in r)return r;let i;try{i=await v(e,{target:n.target??`8.8`,workers:`spring`,verify:!1,...r})}catch(e){if(e instanceof y)return{ok:!1,lines:[e.message]};throw e}let{plan:a}=i,s=S({version:1,only:r.only??[],exclude:r.exclude??[]}),c=e=>!a.rejected.includes(e.id),l=w(a.items,c);n.saveSelection&&ke(i.root,{only:r.only??[],exclude:r.exclude??[]});let u=a.items.map(e=>({id:e.id,kind:e.kind,path:e.path,element:e.elementId,where:e.where,risk:e.risk,reasons:e.reasons,changes:e.changes,accepted:c(e)}));if(n.format===`json`)return{ok:!0,lines:[JSON.stringify({target:n.target??`8.8`,items:u,accepted:l.accepted,rejected:l.rejected,effortMinutes:l.minutes,byRisk:l.byRisk,...s?{selection:{only:r.only??[],exclude:r.exclude??[]}}:{},saved:n.saveSelection===!0},null,2)]};if(u.length===0)return{ok:!0,lines:[t(`app.cli.migrate.apply.nothing`)]};let d=o(u.map(e=>({mark:e.accepted?`[x]`:`[ ]`,id:e.id,risk:t(`app.migration.risk.${e.risk}`),reason:e.reasons[0]??``})),{columns:[{name:`mark`,header:``,minWidth:3},{name:`id`,header:t(`app.cli.migrate.plan.columnId`),minWidth:24},{name:`risk`,header:t(`app.cli.migrate.plan.columnRisk`),minWidth:12},{name:`reason`,header:t(`app.cli.migrate.plan.columnReason`)}]});return d.push(``,t(`app.cli.migrate.plan.summary`,{accepted:l.accepted,total:a.items.length,hours:(l.minutes/60).toFixed(1)})),n.saveSelection&&d.push(t(`app.cli.migrate.plan.saved`)),{ok:!0,lines:d}}async function We(n,o,s){let c=o.target??`8.8`,l=Be(o);if(typeof l!=`string`)return l;let u=s??await e(),d=i(u);if(o.write&&!d)return{ok:!1,lines:r(u,`migration`)};let f=He(n,o);if(`lines`in f)return f;let p;try{p=await v(n,{target:c,workers:l,previewLimit:d?null:3,...f})}catch(e){if(e instanceof y)return{ok:!1,lines:[e.message]};throw e}let{plan:m,verification:h}=p,g=p.root,S=m.edits.filter(e=>e.before!==e.after),C=_(m),w=C.filter(e=>e.finding.conversion===`manual`).length,T=C.filter(e=>e.finding.conversion===`review`).length,E=m.unreadable.length>0||(h?.errors??0)>0||o.failOn===`warning`&&(h?.warnings??0)>0,D=e=>F.relative(g,e),O={target:c,write:o.write===!0,rewritten:S.map(e=>D(e.path)),created:m.creates.map(e=>D(e.path)),kept:m.kept.map(e=>D(e.path)),skipped:p.skipped.map(e=>({file:D(e.path),reason:e.reason})),unreadable:m.unreadable.map(e=>({file:D(e.path),failure:e.failure})),elementsConverted:ee(m),changes:m.items.length,rejected:m.rejected,needsPerson:w,toCheck:T,workers:m.workerRows.map(e=>({jobType:e.jobType,file:e.file?D(e.file):null,reads:e.reads,writes:e.writes})),verification:h&&{errors:h.errors,warnings:h.warnings,findings:h.findings.map(e=>({...e,file:D(e.file)}))}},k=S.length===0&&m.creates.length===0,A=null;if(o.write&&!k)try{A=b(p)}catch(e){if(e instanceof x){let n=e.files.map(e=>`${D(e.path)}: ${t(`app.migration.apply.reason.${e.reason}`)}`);return{ok:!1,lines:[t(`app.cli.migrate.apply.refused`),...n.map(e=>` ${e}`)]}}throw e}if(o.format===`json`)return{ok:!E,lines:[JSON.stringify({...O,diff:o.write?void 0:p.preview.diff,truncated:p.preview.truncated||void 0},null,2)]};if(k&&m.unreadable.length===0)return{ok:!0,lines:[t(`app.cli.migrate.apply.nothing`)]};let j=[];return o.write?A&&(A.rewritten.forEach(e=>j.push(`${a(`wrote`)}\t${D(e)}`)),A.created.forEach(e=>j.push(`${a(`wrote`)}\t${D(e)}`))):(j.push(t(`app.cli.migrate.apply.dryRun`),``),p.preview.diff&&j.push(p.preview.diff,``),p.preview.truncated?j.push(t(`app.cli.migrate.apply.freePreview`,{shown:p.preview.elementsShown,total:p.preview.elementsTotal}),...r(u,`migration`),``):m.creates.forEach(e=>j.push(`${t(`app.cli.migrate.apply.wouldCreate`,{file:D(e.path)})}: ${e.reason}`))),p.skipped.forEach(e=>j.push(t(`app.cli.migrate.apply.skipped`,{file:D(e.path),reason:t(Ve[e.reason])}))),m.unreadable.forEach(e=>j.push(`${a(`fail`)}\t${D(e.path)}: ${e.failure}`)),j.push(``,t(o.write?`app.cli.migrate.apply.summaryWritten`:`app.cli.migrate.apply.summaryDry`,{rewritten:S.length,created:m.creates.length,converted:O.elementsConverted,manual:w,review:T})),h&&(j.push(h.findings.length===0?t(`app.cli.migrate.apply.verifyClean`):t(`app.cli.migrate.apply.verifyFound`,{errors:h.errors,warnings:h.warnings})),h.findings.slice(0,40).forEach(e=>j.push(` ${e.severity.padEnd(7)} ${D(e.file)}: ${e.rule}: ${e.message}`))),j.push(o.write?t(`app.cli.migrate.apply.reportWritten`):t(`app.cli.migrate.apply.runWrite`)),{ok:!E,lines:j}}async function Ge(e,t,n){let r=Ne(n);if(r)return r;switch(e){case`convert`:return Le(t,n);case`report`:return ze(t,n);case`apply`:return We(t,n);case`plan`:return Ue(t,n);case`verify`:return(await import(`./chunk-migrateVerify-DSEXSpfR.js`)).verifyCommand(t,n);case`agents`:return(await import(`./chunk-agentsMigrate-BV8TeRXq.js`)).migrateAgentsCommand(t,{write:n.write===!0,format:n.format});default:return Pe(t,n)}}export{Ue as i,We as n,Ge as r,Ae as t};
@@ -1 +0,0 @@
1
- export{r as migrateCommand}from"./chunk-migrate-BMwBV5sc.js";
@@ -1 +0,0 @@
1
- import{u as e}from"./chunk-license-BG88gpDZ.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{s as n,t as r}from"./chunk-features-C6o8of19.js";import{r as i,t as a}from"./chunk-redact-Bz1nB1gq.js";import{a as o}from"./chunk-moddle-D3Ym38EZ.js";import{h as s,m as c}from"./chunk-engine-CxgdJ2wO.js";import{h as l}from"./chunk-codeScan-C09My9xv.js";import{o as u,u as d}from"./chunk-file-BswMa3FN.js";import{h as f,l as p,p as m,r as h}from"./chunk-deploy-l4MdFfn8.js";import{_ as g,a as _,d as v,f as y,h as b}from"./chunk-testCases-9jwT_Y7z.js";import{a as x,i as S,r as C}from"./chunk-convert-HbFpg8ab.js";import{s as ee}from"./chunk-selection-DG43DJ2G.js";import{t as te}from"./chunk-executable-q_b3dHgQ.js";import{_ as w,s as T}from"./chunk-load-rfn3E0t5.js";import{t as E}from"./chunk-context-rCJvBM9p.js";import{t as D}from"./chunk-diagrams-BukAOL0g.js";import O from"node:path";import{lstatSync as k,readFileSync as A,realpathSync as j}from"node:fs";function M(e,t,n=[]){return{verdict:`not-comparable`,reason:t,orderNote:!1,touches:n,original:e.original.observation,converted:e.converted.observation,mapped:n}}function N(e,t){if(e.length!==t.length)return!1;let n=/* @__PURE__ */ new Map;for(let t of e)n.set(t,(n.get(t)??0)+1);for(let e of t){let t=n.get(e);if(t===void 0||t===0)return!1;n.set(e,t-1)}return!0}function ne(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r+=1)if(e[r]!==t[r])return r;return e.length===t.length?-1:n}function re(e){let{original:t,converted:n}=e;if(t.observation===null||n.observation===null)return M(e,{code:`unreadable-trace`,detail:(t.observation===null?t:n).message});let r=[];for(let n of t.observation.elements){let t=e.idMap.has(n)?e.idMap.get(n):n;if(t==null)return M(e,{code:`element-removed`,element:n},r);r.push(t)}let i=[...new Set(r)];for(let n of new Set(t.observation.elements)){let t=e.items.get(n);if(t?.risk===`left`)return M(e,{code:`left-as-is`,element:n,detail:t.reasons[0]},i);if(t?.risk===`person`)return M(e,{code:`needs-person`,element:n,detail:t.reasons[0]},i);if(e.delegates.has(n)&&!e.answered.has(n))return M(e,{code:`delegate-unavailable`,element:n},i)}let a=t.observation,o=n.observation,s=(e,t,n)=>({verdict:e,...t?{divergence:t}:{},orderNote:n,touches:i,original:a,converted:o,mapped:r}),c=!1,l=ne(r,o.elements);if(l>=0){if(e.parallel&&N(r,o.elements))c=!0;else return s(`differs`,{kind:`element`,index:l,original:r[l]??null,converted:o.elements[l]??null},!1)}if(t.outcome!==n.outcome)return s(`differs`,{kind:`outcome`,original:t.outcome,converted:n.outcome,message:n.outcome===`failed`?n.message:t.message},c);if(a.state!==o.state)return s(`differs`,{kind:`state`,original:a.state,converted:o.state},c);let u=a.incidents.map(t=>e.idMap.has(t)?e.idMap.get(t)??t:t).sort();if(u.join(`\0`)!==o.incidents.join(`\0`))return s(`differs`,{kind:`incident`,original:u,converted:o.incidents},c);let d=/* @__PURE__ */ new Set([...a.hidden,...o.hidden]),f=[.../* @__PURE__ */ new Set([...Object.keys(a.variables),...Object.keys(o.variables)])].filter(e=>!d.has(e)).sort();for(let e of f){let t=e in a.variables,n=e in o.variables;if(!t||!n||!b(a.variables[e],o.variables[e]))return s(`differs`,{kind:`variable`,name:e,original:a.variables[e],converted:o.variables[e],missing:t?n?null:`converted`:`original`},c)}return s(`equivalent`,void 0,c)}const ie=/* @__PURE__ */ new Set([`nrOfInstances`,`nrOfCompletedInstances`,`nrOfActiveInstances`,`loopCounter`,`numberOfInstances`,`numberOfCompletedInstances`,`numberOfActiveInstances`]),P=/multi.?instance.?body/i;function F(e){let t=Date.parse(e.replace(/([+-]\d\d)(\d\d)$/,`$1:$2`));return Number.isNaN(t)?0:t}function I(e){if(e.steps.length>5e3)return null;let t=e.steps.map((e,t)=>({step:e,index:t})).filter(({step:e})=>!P.test(e.elementType)&&!e.elementId.endsWith(`#multiInstanceBody`)).sort((e,t)=>F(e.step.startedAt)-F(t.step.startedAt)||e.index-t.index).map(({step:e})=>e),n=/* @__PURE__ */ new Map;for(let e of t)for(let t of[...e.in,...e.out,...e.changed])if(!ie.has(t.name)){if(!n.has(t.name)&&n.size>=500)return null;n.set(t.name,t.value)}let r=i(Object.fromEntries(n)),a=Object.create(null),o=new Set(r.names);for(let e of Object.keys(r.values).sort())o.has(e)||(a[e]=r.values[e]);return{elements:t.map(e=>e.elementId),state:e.state,variables:a,hidden:[...o].sort(),incidents:[...new Set(e.incidents.map(e=>e.elementId))].sort()}}function L(e){return e.totals.differs>0?1:e.totals.notComparable>0||e.scenarios.length===0?2:0}function R(e){return{equivalent:e.filter(e=>e.verdict===`equivalent`).length,differs:e.filter(e=>e.verdict===`differs`).length,notComparable:e.filter(e=>e.verdict===`not-comparable`).length}}function z(e){return{file:e.file,diagram:e.diagram,name:e.testCase.name}}function B(e,t){return{...z(e),verdict:`not-comparable`,reason:t,orderNote:!1,touches:[],original:null,converted:null}}async function V(e,t,n,r,i,o){try{let s=await y(e.testCase,{engine:t.engine,resources:n,runId:r,builds:t.builds,key:t.key,session:i,signal:o.signal,stepTimeoutMs:o.stepTimeoutMs,pollMs:o.pollMs,settleReads:o.settleReads});if(o.signal?.aborted)return{code:`cancelled`};let c=s.result.trace;return{observation:c===null?null:I(c),outcome:s.result.outcome,...s.result.message?{message:a(s.result.message)}:{}}}catch(e){return{code:`run-failed`,detail:a(e instanceof Error?e.message:String(e))}}}async function H(e,t){let n=t.limit??null,r=n===null?e:e.slice(0,n),i=v(),a=v(),o=[];for(let e of r){let n;if(t.signal?.aborted)n=B(e,{code:`cancelled`});else if(e.problem)n=B(e,e.problem);else{let r=await V(e,t.original,e.originalResources,`${t.runId}-a`,i,t),o=`code`in r?r:await V(e,t.converted,e.convertedResources,`${t.runId}-b`,a,t);if(`code`in r)n=B(e,r);else if(`code`in o)n=B(e,o);else{let t=re({original:r,converted:o,idMap:e.idMap,items:e.items,delegates:e.delegates,answered:e.answered,parallel:e.parallel});n={...z(e),verdict:t.verdict,...t.reason?{reason:t.reason}:{},...t.divergence?{divergence:t.divergence}:{},orderNote:t.orderNote,touches:t.touches,original:t.original,converted:t.converted}}}o.push(n),t.progress?.(n)}return{scenarios:o,totals:R(o),total:e.length,limited:r.length<e.length}}function U(e){return t(`app.migration.proof.verdict.${e===`not-comparable`?`notComparable`:e}`)}function W(e){return t(`app.migration.proof.reason.${e.code}`,{element:e.element??``,detail:e.detail??``})}function G(e){if(e===void 0)return t(`app.migration.proof.noValue`);let n;try{n=JSON.stringify(e)??String(e)}catch{n=String(e)}return n.length>200?`${n.slice(0,200)}...`:n}function K(e){if(e===null)return t(`app.migration.proof.noTrace`);let n=e.elements.slice(0,60).join(` > `);return e.elements.length>60?`${n} > ...`:n}function q(e){switch(e.kind){case`element`:return t(`app.migration.proof.divergence.element`,{index:e.index+1,original:e.original??t(`app.migration.proof.theEnd`),converted:e.converted??t(`app.migration.proof.theEnd`)});case`outcome`:return t(`app.migration.proof.divergence.outcome`,{original:e.original,converted:e.converted,message:e.message??``});case`state`:return t(`app.migration.proof.divergence.state`,{original:e.original,converted:e.converted});case`incident`:return t(`app.migration.proof.divergence.incident`,{original:e.original.join(`, `)||t(`app.migration.proof.none`),converted:e.converted.join(`, `)||t(`app.migration.proof.none`)});case`variable`:return t(`app.migration.proof.divergence.variable`,{name:e.name,original:G(e.original),converted:G(e.converted)})}}function J(e){return t(`app.migration.proof.totals`,{equivalent:e.equivalent,differs:e.differs,notComparable:e.notComparable})}function ae(e,n){let r=[`${U(e.verdict).padEnd(14)} ${e.file} › ${e.name}`];return e.reason&&r.push(` ${W(e.reason)}`),e.divergence&&r.push(` ${q(e.divergence)}`),e.orderNote&&r.push(` ${t(`app.migration.proof.orderNote`)}`),n&&e.verdict===`differs`&&(r.push(` ${t(`app.migration.proof.originalTrace`)}: ${K(e.original)}`),r.push(` ${t(`app.migration.proof.convertedTrace`)}: ${K(e.converted)}`)),r}function oe(e){return{file:e.file,diagram:e.diagram,name:e.name,verdict:e.verdict,...e.reason?{reason:{code:e.reason.code,...e.reason.element?{element:e.reason.element}:{},text:W(e.reason)}}:{},...e.divergence?{divergence:e.divergence,divergenceText:q(e.divergence)}:{},orderNote:e.orderNote,touches:e.touches,original:e.original,converted:e.converted}}function Y(e){let t=/* @__PURE__ */ new Set,n=!1,r=e=>{for(let i of e??[]){if(n)return;typeof i.id==`string`&&t.add(i.id),t.size>2e4&&(n=!0),r(i.flowElements)}};for(let n of e?.rootElements??[])n.$type===`bpmn:Process`&&(typeof n.id==`string`&&t.add(n.id),r(n.flowElements));return n?null:t}async function se(e,t){let[n,r]=await Promise.all([o(e),o(t)]);if(!n||!r)return null;let i=Y(n),a=Y(r);return i===null||a===null?null:new Map([...i].sort().map(e=>[e,a.has(e)?e:null]))}function ce(e){try{return e?new URL(e).host:``}catch{return``}}function X(e,n,r){let i=t(`app.migration.proof.side.${e}`);return n===null?[t(`app.migration.proof.refusal.noEngine`,{side:i,profile:r??t(`app.migration.proof.defaultProfile`)})]:(e===`original`?c(n.name):s(n.name))?n.forTests?[]:[t(`app.migration.proof.refusal.notForTests`,{side:i,where:ce(n.url)||n.name})]:[t(`app.migration.proof.refusal.wrongFamily.${e}`,{engine:n.name})]}function le(e,t){let n=0,r=0,i=-1,a=0;for(;r<t.length;)if(n<e.length&&(e[n]===`?`||e[n]===t[r]))n+=1,r+=1;else if(n<e.length&&e[n]===`*`)i=n,a=r,n+=1;else if(i>=0)n=i+1,a+=1,r=a;else return!1;for(;n<e.length&&e[n]===`*`;)n+=1;return n===e.length}function ue(e,t){if(e.length===0||e.length>256||t.length>4096)return!1;let n=e.replace(/\\/g,`/`).split(`/`).filter(e=>e!==``&&e!==`.`),r=t.replace(/\\/g,`/`).split(`/`).filter(e=>e!==``&&e!==`.`),i=Array.from({length:n.length+1},()=>Array(r.length+1).fill(!1));i[0][0]=!0;for(let e=0;e<=n.length;e+=1)for(let t=0;t<=r.length;t+=1)i[e][t]&&e!==n.length&&(n[e]===`**`?(i[e+1][t]=!0,t<r.length&&(i[e][t+1]=!0)):t<r.length&&le(n[e],r[t])&&(i[e+1][t+1]=!0));return i[n.length][r.length]}const de=/\.bpmn(\.xml|20\.xml)?$/i,fe=/<(?:[\w-]+:)?(?:parallelGateway|inclusiveGateway|eventBasedGateway|complexGateway)\b|multiInstanceLoopCharacteristics|triggeredByEvent="true"/;function pe(e){let t=new Set(Object.keys(e[`x-penstock`]?.behaviours??{}));for(let n of e.instructions){if(n.type!==`COMPLETE_JOB`&&n.type!==`THROW_BPMN_ERROR_FROM_JOB`)continue;let e=n.jobSelector?.elementId;typeof e==`string`&&t.add(e)}return t}function Z(e){return e.map(e=>({path:e.path,read:async()=>e.text}))}function me(e){return`${e.slice(0,20).map(e=>e.element===``?t(`app.migration.proof.unreadableFile`):`${e.element} (${e.kind})`).join(`, `)}${e.length>20?`, +${e.length-20}`:``}`}function Q(e,t){return l(e,t).split(`\\`).join(`/`)}async function he(e){let n=e.target??`8.8`,r=e.root,i=e.files,o=C(i),s=[],c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map,p=[],m=[],h=0;for(let e of i){let t=await x(e.path,e.text,{target:n,forms:o});if(!t||!t.ok){t&&m.push({kind:`other`,element:``}),s.push(e);continue}if(!t.source){s.push(e);continue}h+=1,s.push({path:e.path,text:t.text});for(let n of t.extraFiles)s.push({path:S(e.path,n.name),text:n.content});let i=Q(r,e.path),a=ee(i,t,e.text);p.push(...a),c.set(e.path,new Map(a.flatMap(e=>e.elementId?[[e.elementId,e]]:[]))),l.set(e.path,{all:new Set(t.delegates.filter(e=>e.kind!==`topic`).map(e=>e.elementId)),task:new Set(t.delegates.filter(e=>e.kind!==`topic`&&e.role===`task`).map(e=>e.elementId))}),t.kind===`bpmn`?m.push(...await te(e.text,t.text)):t.text!==e.text&&m.push({kind:`other`,element:i})}if(h===0)return{refused:[t(`app.migration.proof.refusal.nothing`)]};if(m.length>0&&e.runUnreviewed!==!0)return{refused:[t(`app.migration.proof.refusal.executable`,{count:m.length,list:me(m)}),t(`app.migration.proof.refusal.executableHint`)],added:m};let g=[];for(let t of i.filter(e=>de.test(e.path))){let n=d(t.path);if(g.some(e=>e.cases===n))continue;let r=e.caseFile(n);r!==null&&g.push({cases:n,diagram:t.path,text:r})}let _=g.filter(t=>e.scenarios===void 0||ue(e.scenarios,Q(r,t.cases))).slice(0,500),v=[];for(let e of _){let n=Q(r,e.cases),o=Q(r,e.diagram),d=e=>({file:n,diagram:o,testCase:{name:n,instructions:[]},originalResources:[],convertedResources:[],idMap:/* @__PURE__ */ new Map,items:/* @__PURE__ */ new Map,delegates:/* @__PURE__ */ new Set,answered:/* @__PURE__ */ new Set,parallel:!1,problem:e});if(e.text===null||e.text.length>2097152){v.push(d({code:`unreadable-case`,detail:t(`app.migration.proof.caseFileUnreadable`)}));continue}let p=u(e.text);if(p.file===null){v.push(d({code:`unreadable-case`,detail:a(p.problems.join(`; `))}));continue}let m=i.find(t=>t.path===e.diagram),h=s.find(t=>t.path===e.diagram);if(!m||!h||!l.has(e.diagram)){v.push(d({code:`no-converted`}));continue}let g=await se(m.text,h.text);if(g===null){v.push(d({code:`unreadable-trace`,detail:t(`app.migration.proof.idMapUnreadable`)}));continue}let _=await f({path:m.path,content:m.text},Z(i)),y=await f({path:h.path,content:h.text},Z(s)),b=l.get(e.diagram)??{all:/* @__PURE__ */ new Set,task:/* @__PURE__ */ new Set};for(let t of p.file.testCases){if(v.length>=2e3)break;let r=new Set([...pe(t)].filter(e=>b.task.has(e)));v.push({file:n,diagram:o,testCase:t,originalResources:_,convertedResources:y,idMap:g,items:c.get(e.diagram)??/* @__PURE__ */ new Map,delegates:b.all,answered:r,parallel:fe.test(m.text)})}}return{cases:v,added:m,items:p}}function ge(e,t,n){let r={...process.env,...t?{PENSTOCK_PROFILE:t}:{}},i=T(n,r),a=m(i.values);return a?{engine:g(p(a),h(a),a.tenantId??null),name:a.engine,url:a.url,forTests:a.forTests,profile:t??null}:null}function $(e,t,n){try{let r=k(e);return r.isSymbolicLink()||!r.isFile()||r.size>8388608||!w(e,[t])?(n.push(O.relative(t,e)),null):A(e,`utf8`)}catch{return null}}async function _e(e,n={}){let r=e.target??`8.8`,i=E(e.targets[0]),a=j(i.root),o=n.resolve??ge,s=o(`original`,e.originalProfile,a),c=e.convertedProfile===void 0?null:o(`converted`,e.convertedProfile,a),l=[...X(`original`,s,e.originalProfile),...e.convertedProfile===void 0?[t(`app.migration.proof.refusal.needConverted`)]:X(`converted`,c,e.convertedProfile)];if(s&&c&&s.url!==null&&s.url===c.url&&l.push(t(`app.migration.proof.refusal.sameEngine`)),l.length>0||s===null||c===null)return{refused:l};let u=[],d=[...new Set(e.targets.flatMap(e=>D(e,[`process`,`decision`,`form`])))].sort(),f=[];for(let e of d){let t=$(e,a,u);t!==null&&f.push({path:O.resolve(e),text:t})}let p=await he({root:a,files:f,target:r,scenarios:e.scenarios,runUnreviewed:e.runUnreviewed,caseFile:e=>$(O.resolve(e),a,u)});if(`refused`in p)return p;let{cases:m,added:h,items:g}=p,v=e=>{let t=e.url??e.name;return{engine:e.engine,key:t,builds:(n.builds??_)(t)}};return{report:await H(m,{runId:e.runId??`proof-${Date.now().toString(36)}`,original:v(s),converted:v(c),limit:e.limit,signal:e.signal,stepTimeoutMs:e.stepTimeoutMs,pollMs:e.pollMs,settleReads:e.settleReads,...n.timing}),root:a,original:{name:s.name,profile:s.profile},converted:{name:c.name,profile:c.profile},added:h,unreviewedRun:h.length>0,skipped:u,items:g}}function ve(e){return{original:e.original,converted:e.converted,totals:e.report.totals,total:e.report.total,limited:e.report.limited,unreviewedRun:e.unreviewedRun,added:e.added,skipped:e.skipped,exit:L(e.report),scenarios:e.report.scenarios.map(oe)}}async function ye(i,a,o,s){let c=o??await e(),l=r(c),u=await _e({targets:i,scenarios:a.scenarios,target:a.target??`8.8`,runUnreviewed:a.runUnreviewed===!0,originalProfile:a.originalProfile,convertedProfile:a.convertedProfile,limit:l?null:3},s);if(`refused`in u)return a.format===`json`?{ok:!1,refused:!0,code:2,lines:[JSON.stringify({refused:u.refused,exit:2},null,2)]}:{ok:!1,refused:!0,code:2,lines:[t(`app.migration.proof.refused`),...u.refused.map(e=>` ${e}`)]};let d=L(u.report);if(a.format===`json`)return{ok:d===0,refused:!1,code:d,lines:[JSON.stringify({...ve(u),preview:!l&&u.report.limited},null,2)]};let f=[];u.unreviewedRun&&f.push(t(`app.migration.proof.ranUnreviewed`,{count:u.added.length}),``),u.report.scenarios.length===0&&f.push(t(`app.migration.proof.noScenarios`));for(let e of u.report.scenarios)f.push(...ae(e,!0));return f.push(``,J(u.report.totals)),u.report.limited&&!l&&f.push(``,t(`app.migration.proof.freePreview`,{shown:u.report.scenarios.length,total:u.report.total}),...n(c,`migration-proof`)),u.skipped.forEach(e=>f.push(t(`app.migration.proof.skippedFile`,{file:e}))),{ok:d===0,refused:!1,code:d,lines:f}}export{ye as verifyCommand};
@@ -1 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{p as t}from"./chunk-license-BG88gpDZ.js";import{r as n}from"./chunk-translator-DNm9zRpP.js";import{a as r}from"./chunk-features-C6o8of19.js";import{C as i,E as a,O as o,S as s,_ as c,b as l,g as u,h as d,m as f,p,t as m,w as h,x as g}from"./chunk-load-rfn3E0t5.js";import{t as _}from"./chunk-context-rCJvBM9p.js";import{a as v,i as y,n as b}from"./chunk-policyGate-dmcufnwB.js";import{n as x}from"./chunk-receiptGate-DrGChj7i.js";import S from"node:path";import{existsSync as C,lstatSync as w,mkdirSync as T,mkdtempSync as E,readFileSync as D,renameSync as O,rmSync as k}from"node:fs";import{execFile as A}from"node:child_process";import{parseDocument as j}from"yaml";function M(e){return e.split(S.sep).join(`/`)}function N(e){let t=S.basename(e).toLowerCase(),n=``;for(let e of t)n+=e>=`a`&&e<=`z`||e>=`0`&&e<=`9`||e===`-`||e===`.`?e:`-`;return n=n.slice(0,40).replace(/^-+|-+$/g,``),n?`${n}-bpmn-standards`:`team-bpmn-standards`}function P(t,r,i={}){let s=p(t,r);if(!c(s.dir,[t]))return{ok:!1,lines:[n(`app.policy.refuse.outside`,{path:s.relative})]};let l=S.join(s.dir,g);if(C(l))return{ok:!1,lines:[n(`app.policy.init.exists`,{file:M(S.relative(t,l))})]};let u={name:i.name??N(t),version:1,rules:Object.create(null),conventions:null,palette:null,templates:[],baselines:[],requiredChecks:{check:!0,scenarios:!1,dmnTests:!1,receipt:!1}},d=a(o(u));return`refused`in d?{ok:!1,lines:d.refused}:(e(l,o(u)),{ok:!0,lines:[n(`app.policy.init.wrote`,{file:M(S.relative(t,l))}),n(`app.policy.init.next`)]})}function F(t,r,s){let c=p(t,r);if(!h(s.rule))return{ok:!1,lines:[n(`app.policy.refuse.rule`,{rule:s.rule.slice(0,60)})]};if(!i.includes(s.severity))return{ok:!1,lines:[n(`app.policy.addRule.severity`,{given:s.severity.slice(0,20),allowed:i.join(`, `)})]};if(s.severity===`off`&&s.forced)return{ok:!1,lines:[n(`app.policy.refuse.forcedOff`,{rule:s.rule})]};let l=d(c.dir,t);if(l.manifest===null)return{ok:!1,lines:l.refused.length>0?l.refused:[n(`app.policy.refuse.manifestMissing`,{file:g})]};let u=l.manifest,f=Object.create(null);for(let e of Object.keys(u.rules))f[e]=u.rules[e];f[s.rule]={severity:s.severity,forced:s.forced};let m={...u,rules:f},_=o(m),v=a(_);return`refused`in v?{ok:!1,lines:v.refused}:(e(S.join(c.dir,g),_),{ok:!0,lines:[n(`app.policy.addRule.wrote`,{rule:s.rule,severity:s.severity,forced:s.forced?n(`app.policy.addRule.forced`):``}).trim(),n(`app.policy.pin.again`)]})}function I(t,r){let i=p(t,r),a=d(i.dir,t);if(a.hash===null)return{ok:!1,lines:a.refused.length>0?a.refused:[n(`app.policy.refuse.manifestMissing`,{file:g})]};let o=m.map(e=>S.join(t,e)).find(e=>C(e));if(o!==void 0&&/\.json$/i.test(o))return{ok:!1,lines:[n(`app.policy.pin.jsonConfig`,{file:S.basename(o)})]};if(o===void 0)return e(S.join(t,l),`${JSON.stringify({pin:a.hash},null,2)}\n`),{ok:!0,lines:[n(`app.policy.pin.wroteLock`,{file:l,pin:a.hash})]};let s=j(D(o,`utf8`));return s.errors.length>0?{ok:!1,lines:[n(`app.policy.pin.configBroken`,{file:S.basename(o)})]}:(s.setIn([`policy`,`pin`],a.hash),e(o,s.toString()),{ok:!0,lines:[n(`app.policy.pin.wrote`,{file:S.basename(o),pin:a.hash})]})}function L(e,t){let r=f(e,t);return r.present?r.refused.length>0?{ok:!1,lines:[n(`app.policy.verify.refused`),...r.refused.map(e=>` ${e}`)]}:r.pin===`unpinned`?{ok:!1,lines:[n(`app.policy.verify.unpinned`,{hash:r.hash??``})]}:r.pin===`mismatch`?{ok:!1,lines:[n(`app.policy.verify.mismatch`,{expected:r.expected??``,actual:r.hash??``})]}:{ok:!0,lines:[n(`app.policy.verify.ok`,{name:r.name??``,version:r.version??0,files:r.files})]}:{ok:!1,lines:[n(`app.policy.verify.none`)]}}function R(e,t=process.platform){return e.startsWith(`//`)||e.startsWith(`\\\\`)||/^[\\/]{2}[?.][\\/]/.test(e)?!1:t===`win32`?/^[A-Za-z]:[\\/]/.test(e):e.startsWith(`/`)&&!e.includes(`://`)}function z(e){let t=e.includes(`://`)?e.slice(e.indexOf(`://`)+3):e.slice(e.indexOf(`@`)+1);return!t.slice(t.lastIndexOf(`@`)+1).startsWith(`-`)&&!t.startsWith(`-`)}function B(e,t={}){if(e.length===0||e.length>500||e.startsWith(`-`))return!1;for(let t of e){let e=t.codePointAt(0)??0;if(e<=32||e===127)return!1}return e.includes(`::`)?!1:e.startsWith(`https://`)||e.startsWith(`ssh://`)||e.startsWith(`git@`)&&e.includes(`:`)&&!e.includes(`://`)?z(e):t.allowLocal===!0&&R(e,t.platform)}function V(e){if(e.length===0||e.length>100||e.startsWith(`-`)||e.includes(`..`)||e.endsWith(`/`)||e.endsWith(`.lock`))return!1;for(let t of e)if(!(t>=`a`&&t<=`z`||t>=`A`&&t<=`Z`||t>=`0`&&t<=`9`||t===`.`||t===`_`||t===`-`||t===`/`))return!1;return!0}const H=(e,t,n)=>new Promise(r=>{A(`git`,e,{cwd:t,env:n,timeout:12e4,maxBuffer:1048576,windowsHide:!0},(e,t,n)=>{r({code:e?typeof e.code==`number`?e.code:1:0,stderr:String(n??``)})})});function U(e,t=process.env){let n={};for(let e of[`PATH`,`HOME`,`USERPROFILE`,`SystemRoot`,`SSH_AUTH_SOCK`,`TMPDIR`,`TEMP`,`TMP`,`LANG`])t[e]!==void 0&&(n[e]=t[e]);return{...n,GIT_ALLOW_PROTOCOL:e?`https:ssh:file`:`https:ssh`,GIT_TERMINAL_PROMPT:`0`,GIT_CONFIG_NOSYSTEM:`1`}}async function W(e,t,r=H,i={}){let a=p(e,t),o=i.source??a.source;if(o===null)return{ok:!1,lines:[n(`app.policy.sync.noSource`)]};let l=i.source!==void 0||i.allowLocal===!0;if(!B(o,{allowLocal:l,platform:i.platform}))return{ok:!1,lines:[n(`app.policy.sync.badUrl`)]};if(a.ref!==null&&!V(a.ref))return{ok:!1,lines:[n(`app.policy.sync.badRef`)]};let u=S.join(e,s),m=S.dirname(u);if(!c(u,[e]))return{ok:!1,lines:[n(`app.policy.refuse.outside`,{path:s})]};if(C(u)&&w(u).isSymbolicLink())return{ok:!1,lines:[n(`app.policy.refuse.symlink`,{file:s})]};T(m,{recursive:!0});let h=E(S.join(m,`policy-sync-`)),g=S.join(h,`pack`);try{if((await r([`-c`,`protocol.ext.allow=never`,`-c`,`protocol.file.allow=${l?`always`:`never`}`,`-c`,`core.hooksPath=/dev/null`,`-c`,`core.fsmonitor=false`,`-c`,`core.symlinks=false`,`clone`,`--depth`,`1`,`--no-tags`,`--single-branch`,`--no-recurse-submodules`,...a.ref===null?[]:[`--branch`,a.ref],`--`,o,g],h,U(l))).code!==0)return{ok:!1,lines:[n(`app.policy.sync.failed`)]};k(S.join(g,`.git`),{recursive:!0,force:!0});let i=d(g,h);if(i.hash===null)return{ok:!1,lines:[n(`app.policy.sync.refused`),...i.refused.map(e=>` ${e}`)]};if(a.pin!==null&&i.hash!==a.pin)return{ok:!1,lines:[n(`app.policy.sync.pinRefused`,{expected:a.pin,actual:i.hash})]};k(u,{recursive:!0,force:!0}),O(g,u);let c=f(e,t),p=[n(`app.policy.sync.done`,{name:i.manifest?.name??``,version:i.manifest?.version??0,dir:s})];return c.pin===`pinned`?p.push(n(`app.policy.sync.pinned`)):c.pin===`mismatch`?p.push(n(`app.policy.sync.mismatch`,{expected:c.expected??``,actual:c.hash??``})):p.push(n(`app.policy.sync.unpinned`)),{ok:!0,lines:p}}finally{k(h,{recursive:!0,force:!0})}}const G=[`show`,`init`,`add-rule`,`pin`,`verify`,`sync`];function K(e){return _(S.resolve(e??process.cwd())).root}function q(e){return e.length>0?e.join(`, `):n(`app.policy.show.nothing`)}function J(e){let t=_(e),r=t.policy??f(e,t.own),i=u(r);if(!i.present)return{ok:!0,lines:[n(`app.policy.show.none`)]};let a=[i.header??``];if(a.push(n(`app.policy.show.folder`,{dir:i.dir})),i.hash&&a.push(n(`app.policy.show.hash`,{hash:i.hash})),i.refused.length>0)return{ok:!1,lines:[...a,...i.refused.map(e=>` ${e}`)]};a.push(n(`app.policy.show.forced`,{rules:q(i.rules.filter(e=>e.forced).map(e=>`${e.rule} (${e.severity})`))})),a.push(n(`app.policy.show.defaults`,{rules:q(i.rules.filter(e=>!e.forced).map(e=>`${e.rule} (${e.severity})`))})),i.palette&&a.push(n(`app.policy.show.palette`,{names:i.palette.join(`, `)}));let o=i.requiredChecks;return a.push(n(`app.policy.show.required`,{names:q(o?[`check`,`scenarios`,`dmnTests`,`receipt`].filter(e=>o[e]):[])})),{ok:!0,lines:a}}async function Y(e,t){let r=e[0]??`show`;if(!G.includes(r))return{ok:!1,lines:[n(`app.cli.policy.unknownAction`,{action:e[0].slice(0,40),actions:G.join(`, `)})]};let i=K(t.project),a=_(i).own;if(r===`show`){if(t.format===`json`){let e=_(i);return{ok:!0,lines:[JSON.stringify(u(e.policy??f(i,e.own)),null,2)]}}return J(i)}if(r===`init`)return P(i,a,{name:t.name});if(r===`add-rule`){let r=e[1];return r?t.severity===void 0?{ok:!1,lines:[n(`app.cli.policy.needsSeverity`)]}:F(i,a,{rule:r,severity:t.severity,forced:t.forced}):{ok:!1,lines:[n(`app.cli.policy.needsRule`)]}}return r===`pin`?I(i,a):r===`sync`?W(i,a,void 0,{source:t.source,allowLocal:t.allowLocal}):L(i,a)}function X(e,n=process.env){return t(n)||e}async function Z(e){let t=_(e.target),n=t.policy;if(!n||!n.present)return null;let i=await r(`policy-pack`);if(i)return{refused:i};let a=n.manifest?.requiredChecks.receipt===!0,o=b({root:t.root,status:n,own:t.own,rules:y(t.root,t.own),checkOk:e.checkOk,receipt:a?()=>x(t.root,e.base,{...e.settings,requireReceipt:!0}):void 0});return{lines:o.lines,ok:o.ok}}function Q(e,t,n){if(n.refused===!0)return;let r=_(e);r.policy?.present&&C(r.root)&&v(r.root,t,{ok:n.ok,count:+!!n.ok})}export{Z as enforcePolicy,X as enforcing,Y as policyCommand,Q as recordRun};
@@ -1,2 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{r as t}from"./chunk-translator-DNm9zRpP.js";import{_ as n,k as r,y as i}from"./chunk-load-rfn3E0t5.js";import{t as a}from"./chunk-diagrams-BukAOL0g.js";import o from"node:path";import{existsSync as s,lstatSync as c,readFileSync as l}from"node:fs";import{createHash as u}from"node:crypto";function d(e){let t=a(e,[`process`,`decision`,`form`,`case`]).filter(t=>n(t,[e]));if(t.length>5e3)return null;let r=u(`sha256`),i=0;for(let n of t.sort()){let t;try{let e=c(n);if(e.isSymbolicLink()||!e.isFile())continue;t=e.size}catch{continue}if(i+=t,i>67108864)return null;r.update(`${o.relative(e,n).split(o.sep).join(`/`)}\0`),r.update(u(`sha256`).update(l(n)).digest(`hex`)),r.update(`
2
- `)}return r.digest(`hex`)}function f(e){let t=o.join(e,i);try{let e=c(t);if(e.isSymbolicLink()||!e.isFile()||e.size>8192)return null;let n=JSON.parse(l(t,`utf8`));return typeof n!=`object`||!n||Array.isArray(n)?null:n}catch{return null}}function p(t,r,a,l=()=>/* @__PURE__ */ new Date){let u=d(t);if(u===null)return!1;let p=o.join(t,i);if(!n(p,[t])||s(p)&&c(p).isSymbolicLink())return!1;let m=f(t)??{version:1},h={version:1,...m.scenarios?{scenarios:m.scenarios}:{},...m.dmnTests?{dmnTests:m.dmnTests}:{}};return h[r]={ok:a.ok,count:a.count,at:l().toISOString(),digest:u},e(p,`${JSON.stringify(h,null,2)}\n`),!0}function m(e,t){let n=f(e)?.[t];if(!n||typeof n.ok!=`boolean`||typeof n.digest!=`string`||typeof n.count!=`number`)return`missing`;let r=d(e);return r===null||n.digest!==r?`stale`:!n.ok||n.count<1?`failed`:`ok`}function h(e,t){let r=t.lint&&typeof t.lint==`object`&&!Array.isArray(t.lint)?t.lint:{},i=typeof r.configPath==`string`&&r.configPath.trim()?r.configPath.trim():`.bpmnlintrc`,a=o.resolve(e,i);try{let t=c(a);return t.isSymbolicLink()||!t.isFile()||t.size>1048576||!n(a,[e])?null:JSON.parse(l(a,`utf8`))}catch{return null}}function g(e){return e.kind===`ruleOff`?t(`app.policy.gate.ruleOff`,{rule:e.subject}):e.kind===`severity`?t(`app.policy.gate.severity`,{rule:e.subject,change:e.detail??``}):e.kind===`unreadable`?t(`app.policy.gate.ruleUnreadable`,{rule:e.subject}):t(`app.policy.gate.palette`,{name:e.subject})}function _(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`):null}function v(e){let{status:n}=e,i=[];if(!n.present)return{ok:!0,lines:[],problems:i};if(n.refused.length>0)return i.push(t(`app.policy.gate.refused`),...n.refused.map(e=>` ${e}`)),y(n,i);n.pin===`unpinned`&&i.push(t(`app.policy.gate.unpinned`)),n.pin===`mismatch`&&i.push(t(`app.policy.gate.mismatch`,{expected:n.expected??``,actual:n.hash??``}));let a=n.manifest;if(a===null)return y(n,i);for(let t of r({rules:e.rules,palette:_(e.own.palette),manifest:a}))i.push(g(t));let o=a.requiredChecks;o.check&&!e.checkOk&&i.push(t(`app.policy.gate.checkFailed`));let s=[[`scenarios`,o.scenarios,`scenarios`],[`dmnTests`,o.dmnTests,`dmnTests`]];for(let[n,r,a]of s){if(!r)continue;let o=m(e.root,n);o!==`ok`&&i.push(t(`app.policy.gate.required.${o}`,{check:t(`app.policy.check.${a}`)}))}if(o.receipt){let n=e.receipt?.();n?n.ok||i.push(t(`app.policy.gate.required.failed`,{check:t(`app.policy.check.receipt`)})):i.push(t(`app.policy.gate.required.missing`,{check:t(`app.policy.check.receipt`)}))}return y(n,i)}function y(e,n){return n.length===0?{ok:!0,lines:[t(`app.policy.gate.ok`,{name:e.name??``,version:e.version??0})],problems:n}:{ok:!1,lines:[t(`app.policy.gate.failed`,{name:e.name??``,version:e.version??0}),...n.map(e=>e.startsWith(` `)?e:` ${e}`)],problems:n}}export{p as a,h as i,v as n,d as r,m as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{t}from"./chunk-context-rCJvBM9p.js";import{n}from"./chunk-project-DA3KnAZH.js";import{d as r,i,l as a}from"./chunk-git-57LoLvY3.js";import{n as o}from"./chunk-compose-CWKKVtN5.js";import{t as s}from"./chunk-export-jBVxtmCH.js";import c from"node:path";import{mkdirSync as l,writeFileSync as u}from"node:fs";async function d(d,f){let{root:p}=t(d);if(!a(p))return{ok:!1,lines:[e(`app.cli.notAGitRepository`)]};if(!r(p,f.base))return{ok:!1,lines:[e(`app.cli.report.baseNotFound`,{base:f.base})]};let{changed:m,removed:h}=i(p,f.base);l(f.imagesDir,{recursive:!0});let g=await o({changed:m,removed:h,picturesLink:f.imagesLink,picture:async(e,t)=>{let r=n(e.relative,`.svg`);try{await s(e.after,c.join(f.imagesDir,r),t)}catch{return null}return f.imageBase?`${f.imageBase.replace(/\/$/,``)}/${r}`:f.imagesLink?null:c.join(f.imagesDir,r)}});return u(f.out,g.markdown),{ok:g.clean,refused:!1,lines:[e(`app.cli.wrote`,{file:f.out})]}}export{d as reportCommand};
@@ -1 +0,0 @@
1
- import{t as e}from"./chunk-load-rfn3E0t5.js";import{i as t,r as n}from"./chunk-folders-C7ae1oPV.js";import r from"node:path";import{existsSync as i,readdirSync as a,statSync as o}from"node:fs";const s=/\.bpmn(20\.xml)?$/,c=/\.(cmmn11\.xml|cmmn)$/i;function l(t){for(let n of e){let e=r.join(t,n);try{if(i(e)&&o(e).isFile())return e}catch{continue}}return null}const u=e=>e.startsWith(`.`)||e===`node_modules`;function d(e,t=``){return`${r.basename(e).replace(s,``).replace(c,``)}${t}`}function f(e,o,s=u){let c=[],l=i(e)?t(e):()=>{},d=e=>{for(let t of a(e,{withFileTypes:!0})){if(l(),s(t.name))continue;let i=r.join(e,t.name);t.isDirectory()?n(i)&&d(i):o(t.name)&&c.push(i)}};return i(e)&&d(e),c.sort()}export{d as n,f as r,l as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./chunk-atomicWrite-C6J1gDtO.js";import{p as t}from"./chunk-license-BG88gpDZ.js";import{r as n}from"./chunk-translator-DNm9zRpP.js";import{b as r,g as i}from"./chunk-engine-CxgdJ2wO.js";import{g as a,i as o,l as s,p as c,r as l}from"./chunk-deploy-l4MdFfn8.js";import{a as u,o as d}from"./chunk-xml-rMelkRIV.js";import{M as f,P as p,_ as m,m as h,s as g}from"./chunk-load-rfn3E0t5.js";import{a as _,i as v,t as y}from"./chunk-context-rCJvBM9p.js";import{t as b}from"./chunk-diagrams-BukAOL0g.js";import{t as x}from"./chunk-connections-D_wC6d0W.js";import{n as ee,r as S}from"./chunk-templateDiagnostics-BwH7RNkz.js";import{i as C}from"./chunk-normalise-C2VYP6jn.js";import{i as te,n as ne}from"./chunk-policyGate-dmcufnwB.js";import w from"node:path";import{existsSync as T,lstatSync as E,readFileSync as D}from"node:fs";const O=2e3,k=/* @__PURE__ */ new Set([`version`,`environment`,`files`,`approvedBy`,`approvedAt`,`validUntil`,`note`]);function A(e,t){return typeof e==`string`&&e.trim()!==``&&e.length<=t?e.trim():null}function j(e){let t=A(e,40);if(t===null||!/^\d{4}-\d{2}-\d{2}T/.test(t))return null;let n=Date.parse(t);return Number.isFinite(n)?n:null}function M(e){if(e.length>262144)return{reasons:[n(`app.promotion.approval.tooLarge`)]};let t;try{t=JSON.parse(e)}catch{return{reasons:[n(`app.promotion.approval.notJson`)]}}if(typeof t!=`object`||!t||Array.isArray(t))return{reasons:[n(`app.promotion.approval.notObject`)]};let r=t,i=[];for(let e of Object.keys(r))k.has(e)||i.push(n(`app.promotion.approval.unknownKey`,{key:e.slice(0,40)}));r.version!==1&&i.push(n(`app.promotion.approval.version`));let a=A(r.environment,200),o=A(r.approvedBy,200),s=j(r.approvedAt)===null?null:A(r.approvedAt,40),c=j(r.validUntil)===null?null:A(r.validUntil,40);a===null&&i.push(n(`app.promotion.approval.missing`,{field:`environment`})),o===null&&i.push(n(`app.promotion.approval.missing`,{field:`approvedBy`})),s===null&&i.push(n(`app.promotion.approval.missing`,{field:`approvedAt`})),c===null&&i.push(n(`app.promotion.approval.missing`,{field:`validUntil`}));let l=/* @__PURE__ */ new Map,u=r.files;if(typeof u!=`object`||!u||Array.isArray(u))i.push(n(`app.promotion.approval.missing`,{field:`files`}));else{let e=Object.keys(u);e.length>2e3&&i.push(n(`app.promotion.approval.tooManyFiles`,{limit:O}));for(let t of e.slice(0,O)){let e=u[t];typeof e!=`string`||!/^[0-9a-f]{64}$/.test(e)?i.push(n(`app.promotion.approval.badHash`,{file:t.slice(0,120)})):l.set(t,e)}}return i.length>0||a===null||o===null||s===null||c===null?{reasons:i}:{environment:a,files:l,approvedBy:o,approvedAt:s,validUntil:c}}function N(e,t){let r=M(e);if(`reasons`in r)return{ok:!1,reasons:r.reasons,approvedBy:null,approvedAt:null,validUntil:null};let i=[];r.environment!==t.environment&&i.push(n(`app.promotion.approval.otherEnvironment`,{approved:r.environment.slice(0,80),target:t.environment}));let a=Date.parse(r.approvedAt),o=Date.parse(r.validUntil),s=t.now.getTime();o<=a?i.push(n(`app.promotion.approval.windowBackwards`)):o-a>2592e6&&i.push(n(`app.promotion.approval.windowTooLong`,{days:30})),a>s+3e5&&i.push(n(`app.promotion.approval.inTheFuture`)),s>o&&i.push(n(`app.promotion.approval.expired`,{until:r.validUntil}));for(let e of t.files){let t=r.files.get(e.name);t===void 0?i.push(n(`app.promotion.approval.fileNotApproved`,{file:e.name})):t!==e.hash&&i.push(n(`app.promotion.approval.fileChanged`,{file:e.name}))}return t.files.length===0&&i.push(n(`app.promotion.approval.nothingToApprove`)),{ok:i.length===0,reasons:i,approvedBy:r.approvedBy,approvedAt:r.approvedAt,validUntil:r.validUntil}}const P={"Camunda Cloud":`camunda-8`,"Camunda Platform":`camunda-7`};function F(e){let t=/^\s*v?(\d+)\.(\d+)/.exec(e);return t?Number(t[1])*1e3+Number(t[2]):null}function I(e){try{let t=d(e.replace(/^/,``)),n=e=>{let n=Object.keys(t.attrs).find(t=>t.endsWith(`:${e}`));return n!==void 0&&t.attrs[n].trim()!==``?t.attrs[n].trim():null},r=/* @__PURE__ */ new Set,i=[t];for(let e=i.pop();e;e=i.pop()){for(let[t,n]of Object.entries(e.attrs))t.endsWith(`:modelerTemplate`)&&n!==``&&r.add(n);i.push(...e.children)}return{platform:n(`executionPlatform`),version:n(`executionPlatformVersion`),templates:[...r].sort()}}catch{return{platform:null,version:null,templates:[]}}}function re(e){try{let t=[d(e.replace(/^/,``))],n=!1,r=!1;for(let e=t.pop();e;e=t.pop()){let i=[e.ns,...Object.keys(e.attrs).filter(e=>e.includes(`:`)&&!e.startsWith(`xmlns:`)).map(t=>e.scope.get(t.slice(0,t.indexOf(`:`)))??``)];i.includes(`http://camunda.org/schema/zeebe/1.0`)&&(n=!0),i.includes(`http://camunda.org/schema/1.0/bpmn`)&&(r=!0),t.push(...e.children)}return n===r?null:n?`camunda-8`:`camunda-7`}catch{return null}}function ie(e,t,n){let r=[],i=n.version===null?null:F(n.version),a=/* @__PURE__ */ new Map;for(let e of t)a.has(e.id)||a.set(e.id,e.range);for(let t of e){if(!/\.bpmn$/i.test(t.file)&&!/\.bpmn20\.xml$/i.test(t.file))continue;let e=I(t.text),o=(e.platform===null?null:P[e.platform]??null)??(e.platform===null?re(t.text):null);if(o!==null&&n.family!==null&&o!==n.family)r.push({severity:`error`,code:`family`,file:t.file,subject:e.platform??(o===`camunda-8`?`Camunda Cloud`:`Camunda Platform`),found:o,wanted:n.family});else if(e.version!==null&&n.version!==null&&n.family===o){let a=F(e.version);a===null||i===null?r.push({severity:`warning`,code:`unknown-version`,file:t.file,subject:`executionPlatformVersion`,found:e.version,wanted:n.version}):a>i&&r.push({severity:`error`,code:`newer`,file:t.file,subject:`executionPlatformVersion`,found:e.version,wanted:n.version})}if(n.version!==null)for(let i of e.templates){let e=a.get(i);e!==void 0&&S(n.version,e)===!1&&r.push({severity:`error`,code:`template`,file:t.file,subject:i,found:e,wanted:n.version})}}return r}const ae=[`in-sync`,`local-ahead`,`engine-ahead`,`differs`,`only-local`,`only-engine`];function L(e,t){return`${e}:${t}`}function oe(e,t,n,r){return r.local&&!r.engine?`only-local`:r.local?e!==null&&t!==null&&e===t?`in-sync`:n===null||t===null||e===null?`differs`:e===n&&t!==n?`engine-ahead`:t===n&&e!==n?`local-ahead`:`differs`:`only-engine`}function se(e){return new Set(e.resources.map(e=>L(e.kind,e.key)))}function ce(e,t,n=null){let r=/* @__PURE__ */ new Map;for(let t of e.resources)r.set(L(t.kind,t.key),{kind:t.kind,key:t.key,file:t.file,localHash:t.hash,readable:t.readable,cells:{}});for(let e of t)if(e.snapshot!==null)for(let t of e.snapshot.definitions){let e=L(t.kind,t.key);r.has(e)||r.set(e,{kind:t.kind,key:t.key,file:null,localHash:null,readable:!0,cells:{}})}let i=Object.fromEntries(ae.map(e=>[e,0]));for(let[e,n]of r)for(let r of t){let t=r.column.name;if(r.snapshot===null){n.cells[t]=null;continue}let a=r.snapshot.definitions.find(t=>L(t.kind,t.key)===e),o={local:n.file!==null,engine:a!==void 0},s={state:oe(n.localHash,a?.hash??null,r.records[e]?.hash??null,o),version:a?.version??null,engineHash:a?.hash??null};n.cells[t]=s,i[s.state]+=1}let a=[...r.values()].sort((e,t)=>e.kind===t.kind?e.key<t.key?-1:+(e.key>t.key):e.kind<t.kind?-1:1);return{environments:t.map(e=>e.column),rows:a,duplicates:e.duplicates,forms:e.files.filter(e=>e.kind===`form`).map(e=>e.file),unreadable:e.files.filter(e=>!e.readable).map(e=>e.file),comparison:n===null?null:le(a,n.a,n.b),counts:i}}function le(e,t,n){let r=[];for(let i of e){let e=i.cells[t],a=i.cells[n];if(e===void 0||a===void 0)continue;let o=e!==null&&e.state!==`only-local`,s=a!==null&&a.state!==`only-local`;if(!o&&!s)continue;let c;c=o&&!s?`only-a`:!o&&s?`only-b`:e?.engineHash!==null&&e?.engineHash===a?.engineHash?`same`:`different`,!(o&&s&&i.file===null)&&r.push({kind:i.kind,key:i.key,state:c})}return{a:t,b:n,rows:r}}function ue(e){return e.duplicates.length>0||e.unreadable.length>0||e.environments.some(e=>e.status!==`read`)||e.comparison?.rows.some(e=>e.state!==`same`)?!1:e.rows.every(e=>Object.values(e.cells).every(e=>e===null||e.state===`in-sync`))}var R=class extends Error{unreachable;constructor(e,t=!1){super(e),this.name=`EngineReadRefused`,this.unreachable=t}};function z(e,t){return e===0?new R(n(`app.promotion.read.unreachable`,{reason:t.slice(0,200)}),!0):e===401||e===403?new R(n(`app.promotion.read.credentials`,{status:e})):new R(n(`app.promotion.read.status`,{status:e}))}async function B(e,t){let r=await e(t);if(r.status<200||r.status>=300)throw z(r.status,r.body);try{return JSON.parse(r.body)}catch{throw new R(n(`app.promotion.read.notJson`))}}function V(e){return typeof e==`string`&&e!==``?e:null}function H(e){let t=Number(e??0);return Number.isFinite(t)?t:0}async function de(e,t){try{return V(e===`CAMUNDA_8`?(await B(t,{method:`GET`,path:`/topology`}))?.gatewayVersion:(await B(t,{method:`GET`,path:`/version`}))?.version)}catch(e){if(e instanceof R&&e.unreachable)throw e;return null}}async function fe(e,t,r,i){let a=e===`process`?`/process-definition`:`/decision-definition`,o=r.tenantId?`&tenantIdIn=${encodeURIComponent(r.tenantId)}`:`&withoutTenantId=true`,s=[];for(let r=0;;r+=100){let c=await B(t,{method:`GET`,path:`${a}?latestVersion=true&sortBy=key&sortOrder=asc&firstResult=${r}&maxResults=100${o}`});if(!Array.isArray(c))throw new R(n(`app.promotion.read.notJson`));for(let t of c){let n=V(t?.key),r=V(t?.id);n!==null&&r!==null&&s.push({kind:e,key:n,id:r,version:H(t?.version),resource:V(t?.resource)})}if(s.length>i)throw new R(n(`app.promotion.read.tooMany`,{limit:i}));if(c.length<100)return s}}async function pe(e,t,r,i){let a=e===`process`?`/process-definitions`:`/decision-definitions`,o=[],s=null;for(;;){let c=e===`process`?{isLatestVersion:!0}:{};r.tenantId&&(c.tenantId=r.tenantId);let l=s===null?{limit:100}:{limit:100,after:s},u=await B(t,{method:`POST`,path:`${a}/search`,body:JSON.stringify({filter:c,page:l})}),d=Array.isArray(u?.items)?u.items:[];for(let t of d){let n=V(e===`process`?t.processDefinitionId:t.decisionDefinitionId),r=V(e===`process`?t.processDefinitionKey:t.decisionDefinitionKey);n!==null&&r!==null&&o.push({kind:e,key:n,id:String(r),version:H(t.version),resource:V(t.resourceName)})}if(o.length>i)throw new R(n(`app.promotion.read.tooMany`,{limit:i}));let f=u?.page?.endCursor;if(d.length<100)return e===`process`?o:me(o);if(typeof f!=`string`||f===``||f===s)throw new R(n(`app.promotion.read.notJson`));s=f}}function me(e){let t=/* @__PURE__ */ new Map;for(let n of e){let e=t.get(n.key);(!e||n.version>e.version)&&t.set(n.key,n)}return[...t.values()]}async function he(e,t,r){let i=encodeURIComponent(t.id);if(e===`CAMUNDA_8`){let e=await r({method:`GET`,path:`/${t.kind}-definitions/${i}/xml`});if(e.status<200||e.status>=300)throw z(e.status,e.body);let n=e.body.trim();if(n.startsWith(`{`))try{let e=JSON.parse(n);if(typeof e.xml==`string`)return e.xml}catch{return e.body}return e.body}let a=await B(r,{method:`GET`,path:`/${t.kind}-definition/${i}/xml`}),o=t.kind===`process`?a?.bpmn20Xml:a?.dmnXml;if(typeof o!=`string`)throw new R(n(`app.promotion.read.noResource`,{key:t.key}));return o}async function ge(e,t){let n=Array(e.length),r=0;return await Promise.all(Array.from({length:Math.min(4,e.length)},async()=>{for(;;){let i=r;if(r+=1,i>=e.length)return;n[i]=await t(e[i])}})),n}async function _e(e,t,r={}){let i=r.maxDefinitions??2e3,a=e===`CAMUNDA_8`?pe:fe,o=await de(e,t),s=[...await a(`process`,t,r,i),...await a(`decision`,t,r,i)],c=r.wanted??null,l=s.filter(e=>c===null||c.has(`${e.kind}:${e.key}`));if(l.length>(r.maxFetched??400))throw new R(n(`app.promotion.read.tooManyToRead`,{limit:r.maxFetched??400}));let u=/* @__PURE__ */ new Map;return await ge(l,async r=>{let i=await he(e,r,t);if(i.length>20971520)throw new R(n(`app.promotion.read.tooLarge`,{key:r.key}));u.set(`${r.kind}:${r.key}`,C(r.kind,i))}),{version:o,definitions:s.map(e=>{let t=u.get(`${e.kind}:${e.key}`);return{...e,hash:t?.hash??null,readable:t?.readable??!1}})}}function ve(e){return/\.bpmn$/i.test(e)||/\.bpmn20\.xml$/i.test(e)?`process`:/\.dmn$/i.test(e)||/\.dmn11\.xml$/i.test(e)?`decision`:/\.form$/i.test(e)?`form`:null}function ye(e,t){if(e===`form`)return[];try{let n=d(t.replace(/^/,``)),r=e===`process`?`process`:`decision`;return[n,...u(n,r)].filter(e=>e.local===r).filter(t=>e!==`process`||t.attrs.isExecutable!==`false`).map(e=>e.attrs.id).filter(e=>typeof e==`string`&&e!==``)}catch{return null}}function U(e){let t=[],n=[],r=/* @__PURE__ */ new Map;for(let t of[...e].sort((e,t)=>e.path<t.path?-1:1)){let e=ve(t.path);if(e===null)continue;let{hash:i,readable:a}=C(e,t.text),o=ye(e,t.text);if(n.push({file:t.path,kind:e,hash:i,readable:a&&o!==null,keys:o??[]}),e!==`form`&&o!==null)for(let n of o){let o={kind:e,key:n,file:t.path,hash:i,readable:a},s=`${o.kind}:${n}`;r.set(s,[...r.get(s)??[],o])}}let i=[];for(let e of r.values())t.push(e[0]),e.length>1&&i.push({kind:e[0].kind,key:e[0].key,files:e.map(e=>e.file)});return{resources:t,files:n,duplicates:i}}function be(e,t,r,i){let a=[],o=[];for(let s of i){let i=e.files.find(e=>e.file===s);if(i===void 0||!i.readable){o.push(s);continue}let c;if(i.kind===`form`)c=r[`form:${i.file}`]?.hash===i.hash;else{let n=e.resources.filter(e=>e.file===i.file);c=n.length>0&&n.length===i.keys.length&&n.every(e=>t.definitions.some(t=>t.kind===e.kind&&t.key===e.key&&t.hash===e.hash))}c?a.push({file:s,reason:n(`app.promotion.onlyChanged.unchanged`)}):o.push(s)}return{send:o,skipped:a,note:null}}const W=`.penstock/deployments.json`,xe=5e3;function Se(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.hash==`string`&&/^[0-9a-f]{64}$/.test(t.hash)&&typeof t.at==`string`&&t.at.length<=40&&(t.version===null||typeof t.version==`number`)}function Ce(e){let t={version:1,environments:Object.create(null)},n=w.join(e,W);try{let r=E(n);if(r.isSymbolicLink()||!r.isFile()||r.size>4194304||!m(n,[e]))return t;let i=JSON.parse(D(n,`utf8`));if(i.version!==1||i.environments===null||typeof i.environments!=`object`||Array.isArray(i.environments))return t;let a={version:1,environments:Object.create(null)};for(let e of Object.keys(i.environments).slice(0,100)){let t=i.environments[e];if(typeof t!=`object`||!t||Array.isArray(t))continue;let n=Object.create(null);for(let e of Object.keys(t).slice(0,xe)){let r=t[e];Se(r)&&(n[e]={hash:r.hash,version:r.version,at:r.at})}a.environments[e]=n}return a}catch{return t}}function G(e,t){return Ce(e).environments[t]??Object.create(null)}function we(t,n,r,i=/* @__PURE__ */ new Date){if(r.length===0)return!0;let a=w.join(t,W);if(!m(a,[t])||T(a)&&E(a).isSymbolicLink())return!1;let o=Ce(t),s=Object.create(null);for(let e of Object.keys(o.environments[n]??{}))s[e]=o.environments[n][e];let c=!1;for(let e of r){let t=s[e.key];(t===void 0||t.hash!==e.hash||e.version!==null&&t.version!==e.version)&&(s[e.key]={hash:e.hash,version:e.version,at:i.toISOString()},c=!0)}if(!c)return!0;if(Object.keys(s).length>xe)return!1;let l=Object.create(null);for(let e of Object.keys(o.environments))l[e]=e===n?s:o.environments[e];if(n in l||(l[n]=s),Object.keys(l).length>100)return!1;let u=Object.create(null);for(let e of Object.keys(l).sort()){u[e]=Object.create(null);for(let t of Object.keys(l[e]).sort())u[e][t]=l[e][t]}return e(a,`${JSON.stringify({version:1,environments:u},null,2)}\n`),!0}const Te=`default`,Ee=5e3,De=[`PENSTOCK_DEPLOYMENT_URL`,`PENSTOCK_DEPLOYMENT_TENANTID`,`PENSTOCK_DEPLOYMENT_FORTESTS`];var K=class extends Error{};function q(e){try{let t=new URL(e);return`${t.protocol}//${t.host}${t.pathname.replace(/\/+$/,``)}`}catch{let t=e.includes(`://`)?e.slice(e.indexOf(`://`)+3):e;return t.split(`/`)[0].slice(t.split(`/`)[0].lastIndexOf(`@`)+1)}}function Oe(e,t){let n={};for(let[t,r]of Object.entries(e))De.includes(t.toUpperCase())||(n[t]=r);return t===null?delete n.PENSTOCK_PROFILE:n.PENSTOCK_PROFILE=t,n}function J(e,t,n,r){return{name:e,place:t===null?null:q(t.url),engine:t?.engine??null,engineVersion:null,status:n,reason:r,protected:t?.protected??!1,forTests:t?.forTests??!1}}function Y(e,t=process.env){let a=y(e).merged,o=v(a.profiles),s=[],l=(a,o,l)=>{let u=g(e,Oe(t,o)),d=c(u.values),f=`read`,p=null;d===null||!l?(f=`not-configured`,p=n(d===null?`app.promotion.environment.noUrl`:`app.promotion.environment.inheritedUrl`)):(i(d.engine)||r(d.engine)===null)&&(f=`refused`,p=n(`app.promotion.environment.noEngineApi`)),s.push({name:a,target:l?d:null,column:J(a,l?d:null,f,p)})};for(let e of p(a))l(e,e,_(v(v(o[e]).deployment).url)!==void 0);return f(a,Oe(t,null))===null&&_(v(a.deployment).url)!==void 0&&l(Te,null,!0),s}function ke(e,t=process.env){return f(y(e).merged,t)??`default`}function X(e){let t=b(e,[`process`,`decision`,`form`]);if(t.length>5e3)throw new K(n(`app.promotion.project.tooMany`,{limit:Ee}));let r=[],i=[];for(let n of t){let t=w.relative(e,n).split(w.sep).join(`/`);try{let a=E(n);if(a.isSymbolicLink()||!a.isFile()||a.size>20971520||!m(n,[e])){i.push(t);continue}r.push({path:t,text:D(n,`utf8`)})}catch{i.push(t)}}return{files:r,refused:i}}async function Z(e,t,n,r){let i=e.column,a=e.target;if(a===null||i.status===`not-configured`||i.status===`refused`)return{column:i,snapshot:null,records:n};let c=r.askFor?{problem:null}:o(a.auth,r.env??process.env);if(c.problem)return{column:{...i,status:`refused`,reason:c.problem},snapshot:null,records:n};let u=(r.askFor??(e=>l(e)))(a,e.name);try{let e=await _e(s(a),u,{tenantId:a.tenantId??null,wanted:se(t)});return{column:{...i,engineVersion:e.version},snapshot:e,records:n}}catch(e){if(e instanceof R)return{column:{...i,status:e.unreachable?`unreachable`:`refused`,reason:e.message},snapshot:null,records:n};throw e}}async function Ae(e,t={}){let r=Y(e.root,t.env??process.env),i=[...e.environments,...e.against===void 0?[]:[e.against]],a=i.filter(e=>!r.some(t=>t.name===e));if(a.length>0||i.length===0)return{report:null,refused:[i.length===0?n(`app.promotion.drift.needsEnvironment`,{known:r.map(e=>e.name).join(`, `)||`-`}):n(`app.promotion.environment.unknown`,{name:a[0].slice(0,60),known:r.map(e=>e.name).join(`, `)||`-`})]};let o;try{o=U(X(e.root).files)}catch(e){if(e instanceof K)return{report:null,refused:[e.message]};throw e}let s=[];for(let n of[...new Set(i)]){let i=r.find(e=>e.name===n);s.push(await Z(i,o,G(e.root,n),t))}let c=e.against===void 0?null:{a:e.environments[0],b:e.against};return{report:ce(o,s,c),refused:[]}}function je(e,t){let n=Y(e,t),r=f(y(e).merged,t);return n.length===1?n[0].name:r!==null&&n.some(e=>e.name===r)?r:n.find(e=>e.name==="default")?.name??null}async function Me(e,t,r={}){let i=r.env??process.env,a=Y(e,i).map(e=>e.name),o=t.environment??je(e,i);if(o===null)return{declared:a,selected:o,report:null,refused:[n(`app.promotion.drift.needsEnvironment`,{known:a.join(`, `)||`-`})]};let s=await Ae({root:e,environments:[o],against:t.against},r);return{declared:a,selected:o,report:s.report,refused:s.refused}}function Ne(e,t){let r=w.resolve(e,t);try{let t=E(r);return t.isSymbolicLink()||!t.isFile()||!m(r,[e])?{reason:n(`app.promotion.approval.outside`)}:t.size>262144?{reason:n(`app.promotion.approval.tooLarge`)}:{text:D(r,`utf8`)}}catch{return{reason:n(`app.promotion.approval.unreadable`)}}}function Pe(e,r={}){let i=t(r.env??process.env),a={protected:e.isProtected,confirmed:!1,inPipeline:i,approval:null},o=[];if(!e.isProtected||(a.confirmed=e.confirm===e.name,a.confirmed||o.push(n(`app.promotion.promote.needsConfirm`,{name:e.name})),!i))return{protection:a,blockers:o};if(e.approveFile===void 0)return o.push(n(`app.promotion.promote.needsApproval`,{name:e.name})),{protection:a,blockers:o};let s=Ne(e.root,e.approveFile),c=`reason`in s?{ok:!1,reasons:[s.reason],approvedBy:null,approvedAt:null,validUntil:null}:N(s.text,{environment:e.name,files:e.files,now:(r.now??(()=>/* @__PURE__ */ new Date))()});return a.approval={...c,file:e.approveFile},c.ok||o.push(n(`app.promotion.promote.approvalRefused`,{file:e.approveFile}),...c.reasons.map(e=>` ${e}`)),{protection:a,blockers:o}}function Fe(e){return e.slice(e.lastIndexOf(`/`)+1)}async function Ie(e,t,n){let r=x(e,{environment:t}),i=new Set(n),a=r.rows.filter(e=>e.uses.some(e=>i.has(e.file))),o=e=>a.filter(t=>t.status===e).map(e=>({kind:e.kind,name:e.name}));return{checked:!0,missing:o(`undefined`),unverifiable:o(`unverifiable`)}}async function Q(e,i={}){let a=i.env??process.env,o=/* @__PURE__ */ new Map,s=Y(e.root,a),c=s.find(t=>t.name===e.from),l=s.find(t=>t.name===e.to),u=s.map(e=>e.name).join(`, `)||`-`,d=(...e)=>({plan:null,refused:e,code:2,contents:o});if(!c)return d(n(`app.promotion.environment.unknown`,{name:e.from.slice(0,60),known:u}));if(!l)return d(n(`app.promotion.environment.unknown`,{name:e.to.slice(0,60),known:u}));if(c.name===l.name)return d(n(`app.promotion.promote.sameEnvironment`));if(c.target&&l.target&&c.target.url===l.target.url&&(c.target.tenantId??``)===(l.target.tenantId??``))return d(n(`app.promotion.promote.sameEngine`,{place:q(l.target.url)}));for(let e of[c,l])if(e.column.status!==`read`)return d(n(`app.promotion.promote.notReady`,{name:e.name,reason:e.column.reason??``}));let f;try{f=X(e.root)}catch(e){if(e instanceof K)return d(e.message);throw e}let p=U(f.files);for(let e of f.files)o.set(e.path,e.text);let m=G(e.root,c.name),[g,_]=[await Z(c,p,m,i),await Z(l,p,G(e.root,l.name),i)];for(let e of[g,_])if(e.snapshot===null)return d(n(`app.promotion.promote.notRead`,{name:e.column.name,reason:e.column.reason??``}));let v=ce(p,[g,_]),b=[];for(let e of v.rows){if(e.file===null)continue;let t=e.cells[c.name],r=e.cells[l.name],i={kind:e.kind,key:e.key,file:e.file,fromVersion:t?.version??null,toVersion:r?.version??null};t==null||t.state!==`in-sync`?b.push({...i,action:`skipped`,reason:n(`app.promotion.promote.notVerified`,{from:c.name,state:n(`app.promotion.state.${t?.state??`only-local`}`)})}):r?.state===`in-sync`?b.push({...i,action:`unchanged`,reason:null}):b.push({...i,action:r?.state===`only-local`||r==null?`create`:`update`,reason:null})}let x=p.files.filter(e=>e.kind===`form`).map(e=>{let t=m[`form:${e.file}`];return t!==void 0&&t.hash===e.hash&&e.readable?{file:e.file,action:`send`,reason:null}:{file:e.file,action:`skipped`,reason:n(`app.promotion.promote.formNotRecorded`,{from:c.name})}}),S=[.../* @__PURE__ */ new Set([...b.filter(e=>e.action===`create`||e.action===`update`).map(e=>e.file),...x.filter(e=>e.action===`send`).map(e=>e.file)])].sort(),T=[],E=/* @__PURE__ */ new Map;for(let e of S){let t=Fe(e),r=E.get(t);r!==void 0&&r!==e&&T.push(n(`app.promotion.promote.sameFileName`,{name:t,first:r,second:e})),E.set(t,e)}for(let e of v.duplicates)T.push(n(`app.promotion.promote.duplicate`,{key:e.key,files:e.files.join(`, `)}));for(let e of v.unreadable)S.includes(e)&&T.push(n(`app.promotion.promote.unreadable`,{file:e}));let D=r(l.target?.engine)?.family??null,O=ee(e.root).flatMap(e=>{try{let t=JSON.parse(e.text);return(Array.isArray(t)?t:[t]).flatMap(e=>{let t=e;return t&&typeof t.id==`string`&&typeof t.engines?.camunda==`string`?[{id:t.id,range:t.engines.camunda}]:[]})}catch{return[]}}),k=ie(S.map(e=>({file:e,text:o.get(e)??``})),O,{family:D===`camunda-7`||D===`camunda-8`?D:null,version:_.column.engineVersion});for(let e of k)e.severity===`error`&&T.push(n(`app.promotion.compat.${e.code}`,{file:e.file,subject:e.subject,found:e.found,wanted:e.wanted,target:l.name}));let A=await Ie(e.root,l.name,S);for(let e of A.missing)T.push(n(`app.promotion.promote.secretMissing`,{name:e.name,target:l.name}));let j=t(a),M=y(e.root).policy??h(e.root,y(e.root).own),N={present:M.present,name:M.name,version:M.version,pin:M.present?M.pin:null,enforced:j&&M.present,ok:null,problems:[]};if(M.present){let t=await(i.checkOk??Le)(S.map(t=>w.join(e.root,t)).filter(e=>/\.(bpmn|dmn|form)$/i.test(e))),r=ne({root:e.root,status:M,own:y(e.root).own,rules:te(e.root,y(e.root).own),checkOk:t});N.ok=r.ok,N.problems=r.problems,j&&!r.ok&&T.push(n(`app.promotion.promote.policyFailed`,{name:M.name??``,version:M.version??0}))}let P=S.map(e=>({name:e,hash:C(/\.form$/i.test(e)?`form`:/\.dmn$/i.test(e)?`decision`:`process`,o.get(e)??``).hash})),F=Pe({root:e.root,name:l.name,isProtected:l.column.protected,files:P,confirm:e.confirm,approveFile:e.approveFile},i),I=F.protection;return T.push(...F.blockers),{plan:{from:g.column,to:_.column,items:b,forms:x,files:S,secrets:A,compatibility:k,policy:N,protection:I,blockers:T,deployable:T.length===0&&S.length>0},refused:[],code:+(T.length>0),contents:o}}async function Le(e){if(e.length===0)return!0;let{checkCommand:t,sectionsOf:n}=await import(`./chunk-commands-DcjlDt7B.js`);try{return(await t(e,{format:`json`,baseline:!1,updateBaseline:!1,sections:n(void 0).sections})).ok}catch{return!1}}function $(e,t,n){let r=[];for(let i of e.resources){if(!t.includes(i.file)||!i.readable)continue;let e=n?.definitions.find(e=>e.kind===i.kind&&e.key===i.key);r.push({key:L(i.kind,i.key),hash:i.hash,version:e?.version??null})}for(let n of e.files)n.kind===`form`&&n.readable&&t.includes(n.file)&&r.push({key:`form:${n.file}`,hash:n.hash,version:null});return r}async function Re(e,t={}){let r=await Q(e,t);if(r.plan===null)return{ok:!1,code:r.code,refused:r.refused,plan:null,outcome:null,wrote:!1};let i=r.plan;if(!e.write)return{ok:i.blockers.length===0,code:r.code,refused:[],plan:i,outcome:null,wrote:!1};if(i.blockers.length>0)return{ok:!1,code:1,refused:[],plan:i,outcome:null,wrote:!1};if(i.files.length===0)return{ok:!0,code:0,refused:[],plan:i,outcome:null,wrote:!1};let o=Y(e.root,t.env??process.env),c=o.find(t=>t.name===e.to);if(!c||c.target===null)return{ok:!1,code:2,refused:[n(`app.promotion.environment.unknown`,{name:e.to.slice(0,60),known:o.map(e=>e.name).join(`, `)})],plan:i,outcome:null,wrote:!1};let u=c.target,d=i.files.map(e=>({name:Fe(e),content:r.contents.get(e)??``})),f=(t.askFor??(e=>l(e)))(u,e.to),p=await(t.deployer??a)({engine:s(u),name:u.name,source:u.source,tenantId:u.tenantId??null,changedOnly:!0},d,{ask:f,wait:!0});if(p.ok){let n=U([...r.contents].map(([e,t])=>({path:e,text:t})));we(e.root,e.to,$(n,i.files,p),(t.now??(()=>/* @__PURE__ */ new Date))())}return{ok:p.ok,code:+!p.ok,refused:[],plan:i,outcome:p,wrote:!0}}async function ze(e,t,r,i,a={}){let o=i.map(e=>w.resolve(e)),s=[];for(let t of o)try{let n=E(t);if(n.isSymbolicLink()||!n.isFile()||n.size>20971520)continue;s.push({path:w.relative(e,t).split(w.sep).join(`/`),text:D(t,`utf8`)})}catch{continue}let c=U(s),l=G(e,t),u=await Z({name:t,target:r,column:J(t,r,`read`,null)},c,l,a),d=u.snapshot,f=e=>({send:i,skipped:[],note:e});if(d===null&&c.resources.length>0)return f(n(`app.promotion.onlyChanged.notCompared`,{reason:u.column.reason??``}));if(d===null)return{send:i,skipped:[],note:null};let p=i.map(t=>w.relative(e,w.resolve(t)).split(w.sep).join(`/`)),m=be(c,d,l,p),h=new Set(m.send);return{send:i.filter((e,t)=>h.has(p[t])),skipped:i.flatMap((e,t)=>h.has(p[t])?[]:[{file:e,reason:n(`app.promotion.onlyChanged.unchanged`)}]),note:null}}function Be(e,t,n,r){let i=[];for(let t of n)try{let n=E(t);if(n.isSymbolicLink()||!n.isFile()||n.size>20971520)continue;i.push({path:w.relative(e,w.resolve(t)).split(w.sep).join(`/`),text:D(t,`utf8`)})}catch{continue}we(e,t,$(U(i),i.map(e=>e.path),r))}export{$ as _,Me as a,Y as c,Q as d,Re as f,Be as g,X as h,je as i,ze as l,Z as m,Ee as n,Ae as o,Pe as p,K as r,ke as s,Te as t,q as u,ue as v,ae as y};
@@ -1,2 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{n as t}from"./chunk-status-CmYxwOCn.js";import{t as n}from"./chunk-table-BOiaGWwY.js";import{t as r}from"./chunk-list-XuNpvC6j.js";import{t as i}from"./chunk-context-rCJvBM9p.js";import{t as a}from"./chunk-plural-Dn-7ulHf.js";import{a as o,f as s,v as c,y as l}from"./chunk-promotion-Boedyq43.js";import{existsSync as u,statSync as d}from"node:fs";function f(t){let i=[e(`app.promotion.text.driftTitle`,{names:r(t.environments.map(e=>e.name))})];for(let n of t.environments){let t=n.place??e(`app.promotion.text.noAddress`),r=n.engineVersion?` ${n.engineVersion}`:``,a=[n.protected?e(`app.promotion.text.protected`):``,n.forTests?e(`app.promotion.text.forTests`):``].filter(Boolean).join(`, `);i.push(` ${n.name} ${t}${r}${a?` (${a})`:``}`),n.status!==`read`&&i.push(` ${e(`app.promotion.status.${n.status}`)}${n.reason?`: ${n.reason}`:``}`)}let a=t.environments.filter(e=>e.status===`read`);if(t.rows.length>0&&a.length>0){i.push(``),i.push(...n(t.rows,{columns:[{name:`resource`,header:e(`app.promotion.text.header.resource`),value:e=>`${e.kind} ${e.key}`},{name:`file`,header:e(`app.promotion.text.header.file`),value:e=>e.file??`-`},...a.map(t=>({name:`env-${t.name}`,header:t.name,value:n=>{let r=n.cells[t.name];return r?`${e(`app.promotion.state.${r.state}`)}${r.version===null?``:` v${r.version}`}`:`-`}}))]}));let r=l.filter(e=>t.counts[e]>0).map(n=>`${t.counts[n]} ${e(`app.promotion.state.${n}`)}`);i.push(``,r.join(`, `))}else a.length>0&&i.push(``,e(`app.promotion.text.nothingFound`));if(t.comparison){let{a:n,b:r,rows:a}=t.comparison;i.push(``,e(`app.promotion.text.comparison`,{a:n,b:r}));let o=a.filter(e=>e.state!==`same`);o.length===0&&i.push(` ${e(`app.promotion.text.sameEverywhere`,{a:n,b:r})}`);for(let t of o)i.push(` ${t.kind} ${t.key}: ${e(`app.promotion.compare.${t.state}`,{a:n,b:r})}`)}for(let n of t.duplicates)i.push(``,e(`app.promotion.promote.duplicate`,{key:n.key,files:n.files.join(`, `)}));return t.unreadable.length>0&&i.push(``,e(`app.promotion.text.unreadable`,{files:r(t.unreadable)})),t.forms.length>0&&i.push(``,e(`app.promotion.text.formsNotCompared`,{count:t.forms.length})),i}function p(r){let i=r.plan,o=[e(r.wrote?`app.promotion.text.promotingNow`:`app.promotion.text.dryRun`,{from:i.from.name,to:i.to.name})];o.push(` ${i.from.name} ${i.from.place??``}${i.from.engineVersion?` ${i.from.engineVersion}`:``}`),o.push(` ${i.to.name} ${i.to.place??``}${i.to.engineVersion?` ${i.to.engineVersion}`:``}${i.to.protected?` (${e(`app.promotion.text.protected`)})`:``}`);let s=[...i.items.map(t=>({what:`${t.kind} ${t.key}`,file:t.file,action:t.action,detail:t.reason??(t.action===`unchanged`?e(`app.promotion.text.sameOnTarget`,{to:i.to.name}):t.toVersion===null?``:`v${t.toVersion} -> v${t.toVersion+1}`)})),...i.forms.map(e=>({what:`form`,file:e.file,action:e.action===`send`?`create`:`skipped`,detail:e.reason??``}))];s.length>0&&o.push(``,...n(s,{columns:[{name:`action`,header:e(`app.promotion.text.header.action`),value:t=>e(`app.promotion.action.${t.action}`)},{name:`what`,header:e(`app.promotion.text.header.resource`),value:e=>e.what},{name:`file`,header:e(`app.promotion.text.header.file`),value:e=>e.file},{name:`detail`,header:e(`app.promotion.text.header.details`),value:e=>e.detail}]})),o.push(``,a(i.files.length,`app.promotion.count.file`)),o.push(``,e(`app.promotion.text.secretsTitle`,{to:i.to.name})),i.secrets.missing.length===0&&o.push(` ${e(`app.promotion.text.noSecretsMissing`)}`);for(let e of i.secrets.missing)o.push(` ${t(`fail`)} ${e.kind} ${e.name}`);for(let n of i.secrets.unverifiable)o.push(` ${t(`note`)} ${n.kind} ${n.name} ${e(`app.promotion.text.cannotVerify`)}`);o.push(``,e(`app.promotion.text.compatTitle`,{to:i.to.name,version:i.to.engineVersion??e(`app.promotion.text.unknownVersion`)})),i.compatibility.length===0&&o.push(` ${e(`app.promotion.text.compatOk`)}`);for(let n of i.compatibility)o.push(` ${t(n.severity)} ${e(`app.promotion.compat.${n.code}`,{file:n.file,subject:n.subject,found:n.found,wanted:n.wanted,target:i.to.name})}`);if(o.push(``,e(`app.promotion.text.policyTitle`)),!i.policy.present)o.push(` ${e(`app.promotion.text.noPolicy`)}`);else{o.push(` ${e(`app.promotion.text.policyLine`,{name:i.policy.name??``,version:i.policy.version??0,pin:e(`app.promotion.text.pin.${i.policy.pin}`)})}`),o.push(` ${i.policy.enforced?i.policy.ok?e(`app.promotion.text.policyEnforcedOk`):e(`app.promotion.text.policyEnforcedFailed`):e(`app.promotion.text.policyNotEnforced`)}`);for(let e of i.policy.problems)o.push(` ${e}`)}if(i.protection.protected&&(o.push(``,e(`app.promotion.text.protectionTitle`,{to:i.to.name})),o.push(` ${i.protection.confirmed?e(`app.promotion.text.confirmed`):e(`app.promotion.text.notConfirmed`,{name:i.to.name})}`),i.protection.inPipeline)){let t=i.protection.approval;o.push(` ${t===null?e(`app.promotion.text.noApproval`):t.ok?e(`app.promotion.text.approvalOk`,{by:t.approvedBy??``,at:t.approvedAt??``,until:t.validUntil??``}):e(`app.promotion.text.approvalNotOk`)}`),o.push(` ${e(`app.promotion.text.approvalIsARecord`)}`)}return i.blockers.length>0&&o.push(``,e(`app.promotion.text.blocked`),...i.blockers.map(e=>e.startsWith(` `)?e:` ${e}`)),r.outcome?o.push(``,r.outcome.ok?e(`app.promotion.text.deployed`,{message:r.outcome.message}):e(`app.promotion.text.deployFailed`,{message:r.outcome.message.split(`
2
- `)[0]}),...r.outcome.lines):!r.wrote&&i.blockers.length===0?o.push(``,i.files.length===0?e(`app.promotion.text.nothingToPromote`):e(`app.promotion.text.runWrite`,{from:i.from.name,to:i.to.name})):r.wrote&&i.files.length===0&&i.blockers.length===0&&o.push(``,e(`app.promotion.text.nothingToPromote`)),o}async function m(t,n,r={}){if(!u(t)||!d(t).isDirectory())return{ok:!1,lines:[e(`app.cli.web.notAFolder`,{folder:t})],code:2};let a=i(t).root,s=await o(a,{environment:n.environment,against:n.against},r),l=n.format===`json`;if(s.report===null)return{ok:!1,lines:l?[JSON.stringify(s,null,2)]:s.refused,code:2,refused:!0};let p=s.report.environments.some(e=>e.status!==`read`),m=c(s.report);return{ok:m,refused:!1,code:p?2:+!m,lines:l?[JSON.stringify(s,null,2)]:f(s.report)}}async function h(t,n,r={}){if(!u(t)||!d(t).isDirectory())return{ok:!1,lines:[e(`app.cli.web.notAFolder`,{folder:t})],code:2};if(n.from===void 0||n.to===void 0)return{ok:!1,lines:[e(`app.promotion.promote.needsBoth`)],code:2};let a=i(t).root,o=n.write&&!n.dryRun,c=await s({root:a,from:n.from,to:n.to,write:o,confirm:n.confirm,approveFile:n.approveFile},r);return c.plan===null?{ok:!1,lines:n.format===`json`?[JSON.stringify({refused:c.refused},null,2)]:c.refused,code:c.code,refused:!0}:n.format===`json`?{ok:c.ok,refused:!1,code:c.code,lines:[JSON.stringify({plan:c.plan,wrote:c.wrote,deployed:c.outcome?{ok:c.outcome.ok,message:c.outcome.message,definitions:c.outcome.definitions}:null},null,2)]}:{ok:c.ok,refused:!1,code:c.code,lines:p(c)}}export{m as driftCommand,h as promoteCommand};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{_ as t,o as n,v as r}from"./chunk-load-rfn3E0t5.js";import{r as i}from"./chunk-failure-D5brrYW2.js";import{n as a}from"./chunk-aiVerify-DPNBNhx4.js";import{a as o}from"./chunk-build-BsqW8Yp8.js";import{r as s,t as c}from"./chunk-context-rCJvBM9p.js";import{a as l,n as u,o as d,r as f,t as p}from"./chunk-receiptStore-Cy-L0H1u.js";import{t as m}from"./chunk-receiptDeps-oVbX156d.js";import{l as h,m as g,p as _,r as v}from"./chunk-git-57LoLvY3.js";import{i as y,n as b,r as x,t as S}from"./chunk-say-CYb4HeJD.js";import C from"node:path";import{existsSync as w,statSync as T}from"node:fs";function E(){return{ok:!1,lines:[e(`app.cli.receipt.usage`)]}}async function D(u,p){if(u.length===0)return{ok:!1,lines:[e(`app.cli.receipt.needsFiles`)]};let y=p.against??`HEAD`;if(!_(y))return{ok:!1,lines:[e(`app.cli.receipt.badRef`,{ref:y.slice(0,80)})]};let b=u.map(e=>C.resolve(e)),E=r(n(b[0])),D=h(E);if(p.against!==void 0&&(!D||v(E,y)===null))return{ok:!1,lines:[e(`app.cli.receipt.unknownRef`,{ref:y})]};let O=[];for(let n of b){if(!t(n,[E]))return{ok:!1,lines:[e(`app.cli.receipt.differentProject`,{file:s(n),root:s(E)})]};let a=w(n);if(a&&!T(n).isFile())return{ok:!1,lines:[e(`app.cli.receipt.notAFile`,{file:s(n)})]};let o=C.relative(E,r(n)).split(C.sep).join(`/`),c=D?g(E,y,o):null;if(!a&&c===null)return{ok:!1,lines:[i(s(n))]};O.push({path:n,before:c})}let k=a(c(E).values),A;try{A=await d(O,{root:E,source:`cli`,maxAttempts:k.attempts,scenarios:p.scenarios,approveExecutable:p.runScenarios===!0},m({scenarios:p.scenarios}))}catch(t){if(t instanceof l)return{ok:!1,lines:[e(`app.cli.receipt.differentProject`,{file:s(t.file),root:s(E)})]};throw t}let j=A.verdict.status===`verified`,M=[];if(p.format===`json`?M.push(JSON.stringify(p.licensed?A:o(A),null,2)):M.push(...p.licensed?x(A):S(o(A))),p.licensed&&(p.write||k.keepReceipts)){let t=f(E,A);p.format===`json`?process.stderr.write(`${e(`app.cli.receipt.written`,{file:s(t)})}\n`):M.push(e(`app.cli.receipt.written`,{file:s(t)}))}return{ok:j,refused:!1,lines:M}}function O(t,a){if(t===void 0)return{ok:!1,lines:[e(`app.cli.receipt.needsReceipt`)]};if(!w(t))return{ok:!1,lines:[i(t)]};let o=r(n(C.dirname(C.resolve(t)))),c=u(o,t);if(`outside`in c)return{ok:!1,lines:[e(`app.cli.receipt.receiptOutside`,{file:s(t)})]};if(`unreadable`in c)return{ok:!1,lines:[e(`app.cli.receipt.receiptUnreadable`,{file:s(t)})]};if(`problems`in c)return{ok:!1,lines:[e(`app.cli.receipt.receiptInvalid`,{file:s(t),problems:b(c.problems)})]};let l=p(c.receipt,o),d=l.length===0;if(a.format===`json`)return{ok:d,refused:!1,lines:[JSON.stringify({ok:d,verdict:c.receipt.verdict.status,files:c.receipt.files.length,mismatches:l},null,2)]};let f=[e(d?`app.cli.receipt.matches`:`app.cli.receipt.differs`,{file:s(t),count:c.receipt.files.length}),y(c.receipt.verdict.status)];for(let t of l)f.push(` ${t.path}: ${e(`app.cli.receipt.mismatch.${t.reason}`)}`);return{ok:d,refused:!1,lines:f}}async function k(e,t){let[n,...r]=e;return n===`verify`?D(r,t):n===`check`?O(r[0],t):E()}export{k as receiptCommand};
@@ -1 +0,0 @@
1
- import{u as e}from"./chunk-license-BG88gpDZ.js";import{t}from"./chunk-features-C6o8of19.js";import{o as n}from"./chunk-model-C5VKsEOw.js";import{u as r}from"./chunk-file-BswMa3FN.js";import{c as i,n as a}from"./chunk-testCases-9jwT_Y7z.js";import{r as o}from"./chunk-context-rCJvBM9p.js";import{s}from"./chunk-receiptStore-Cy-L0H1u.js";import{c,s as l}from"./chunk-trust-DubjEjlN.js";import{n as u}from"./chunk-diff-BhTFlCE3.js";import d from"node:path";import{existsSync as f,lstatSync as p,readFileSync as m,readdirSync as h}from"node:fs";function g(e){return d.resolve(r(d.resolve(e)))}function _(e){try{let t=p(e);if(!t.isFile()||t.size>2097152)return[];let r=JSON.parse(m(e,`utf8`));return Array.isArray(r.results)?r.results.flatMap(e=>{let t=e;return typeof t.file==`string`&&typeof t.testCase==`string`&&n.includes(t.outcome)?[{file:t.file,testCase:t.testCase,outcome:t.outcome}]:[]}):[]}catch{return[]}}function v(e){let t=d.join(e,`.penstock`,`runs`);try{return h(t,{withFileTypes:!0}).filter(e=>e.isDirectory()&&f(d.join(t,e.name,`run.json`))).map(e=>e.name).sort().slice(-200)}catch{return[]}}function y(e,t,n){let r=/* @__PURE__ */ new Map;for(let i of[...t].reverse())for(let t of _(d.join(e,`.penstock`,`runs`,i,`run.json`))){let e=`${t.file}\u0000${t.testCase}`;n.has(t.file)&&!r.has(e)&&r.set(e,t.outcome)}return r}function b(e){return{status:`skipped`,reason:e,results:[]}}async function x(n,r,s={}){if(n.length===0)return b(`no-processes`);if(!await(s.licensed??(async()=>t(await e())))())return b(`not-licensed`);let c=n.filter(e=>f(g(e)));if(c.length===0)return b(`no-cases`);let l=s.engineFor??a,u=c.map(e=>l(e));if(u.some(e=>e===null))return b(`no-engine`);if(u.some(e=>!e?.forTests))return b(`not-for-tests`);let p=new Map(c.map(e=>[g(e),e])),m=v(r),h=e=>o(e),x=y(r,m,new Set([...p.keys()].flatMap(e=>[e,h(e)]))),S=s.run??i,C=new AbortController,w=setTimeout(()=>C.abort(),s.runMs??12e4);try{await S(c,{teamcity:!1,write:()=>void 0,confirm:void 0,ci:!1,signal:C.signal})}catch{return b(`failed`)}finally{clearTimeout(w)}let T=v(r).filter(e=>!m.includes(e)),E=T[T.length-1];if(E===void 0)return b(C.signal.aborted?`stopped`:`failed`);let D=/* @__PURE__ */ new Map;for(let[e,t]of p)D.set(e,t),D.set(h(e),t);let O=_(d.join(r,`.penstock`,`runs`,E,`run.json`)).filter(e=>D.has(e.file)).slice(0,100).map(e=>({diagram:d.relative(r,D.get(e.file)).split(d.sep).join(`/`),name:e.testCase.slice(0,400),outcome:e.outcome,previous:x.get(`${e.file}\u0000${e.testCase}`)??null}));return O.length===0?b(C.signal.aborted?`stopped`:`failed`):{status:`ran`,reason:C.signal.aborted?`stopped`:null,results:O}}async function S(e,t,n){let r=await u(e,t,n);return r===null?{unreadable:!0}:{diff:s(r.entries,r.moved)}}function C(e={}){return{projectRulesTrusted:e=>l()||c(e),diffOf:(e,t,n)=>e===`process`||e===`decision`||e===`form`?S(e,t,n):Promise.resolve({unreadable:!0}),...e.scenarios===!1?{}:{scenarios:(e,t)=>x(e,t)}}}export{C as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import"./chunk-model-C5VKsEOw.js";import{_ as t,v as n}from"./chunk-load-rfn3E0t5.js";import{c as r,i,l as a,n as o}from"./chunk-receiptStore-Cy-L0H1u.js";import{p as s,s as c,u as l}from"./chunk-git-57LoLvY3.js";import u from"node:path";import{lstatSync as d,readFileSync as f}from"node:fs";const p=/^(co-authored-by|assisted-by):[ \t]*(.*)$/i;function m(e,t){for(let n of e.slice(0,2e4).split(/\r?\n/)){let e=p.exec(n);if(e===null)continue;let r=e[2].toLowerCase();if(t.some(e=>e!==``&&r.includes(e)))return!0}return!1}function h(e,t){let n=e.replace(/\\/g,`/`);return t.some(e=>n===e||n.startsWith(`${e}/`))}function g(e){return a(e)!==`other`}function _(e,i){if(i===``||u.isAbsolute(i)||i.split(/[\\/]/).includes(`..`)||i.includes(`\0`))return;let a=u.join(e,...i.split(`/`));if(t(a,[e]))try{let e=n(a),t=d(e);return!t.isFile()||t.size>8388608?void 0:r(f(e,`utf8`))}catch{return null}}function v(e,t){let r=n(e),a=Object.create(null),s=0;for(let e of i(r)){let t=o(r,e);if(!(`receipt`in t))s+=1;else for(let e of t.receipt.files)(a[e.path]??=/* @__PURE__ */ new Set).add(e.after)}let c=[],l=[];for(let e of t){let t=_(r,e),n=a[e];t!==void 0&&n!==void 0&&n.has(t)?c.push(e):l.push(e)}return{covered:c,missing:l,invalidReceipts:s}}function y(e){return(e??``).split(`\0`).filter(e=>e!==``).slice(0,5e3)}function b(e,t,n){if(!s(t))return{reason:`badBase`};let r=l(e,t);if(r===null)return{reason:`noHistory`};let i=new Set(y(c(e,[`diff`,`--name-only`,`-z`,r,`HEAD`,`--`]))),a=/* @__PURE__ */ new Set,o=c(e,[`log`,`--max-count=2000`,`--no-merges`,`--format=%H%x1f%B%x1e`,`${r}..HEAD`]);if(o===null)return{reason:`noHistory`};for(let t of o.split(``)){let[r,i]=t.split(``),o=(r??``).trim();if(/^[0-9a-f]{40,64}$/.test(o)&&m(i??``,n.agents))for(let t of y(c(e,[`diff-tree`,`--no-commit-id`,`--name-only`,`-r`,`-z`,`--root`,o])))a.add(t)}for(let e of i)h(e,n.agentPaths)&&a.add(e);return{files:[...a].filter(e=>i.has(e)&&g(e)).sort()}}function x(t,r,i){let a=b(n(t),r,i);if(`reason`in a)return{ok:!1,lines:[e(a.reason===`badBase`?`app.cli.receipt.gateBadBase`:`app.cli.receipt.gateNoHistory`,{base:r.slice(0,80)})]};if(a.files.length===0)return{ok:!0,lines:[e(`app.cli.receipt.gateNone`,{base:r})]};let o=v(t,a.files);if(o.missing.length===0)return{ok:!0,lines:[e(`app.cli.receipt.gateOk`,{count:a.files.length})]};let s=[e(`app.cli.receipt.gateMissing`,{count:o.missing.length})];for(let e of o.missing.slice(0,20))s.push(` ${e}`);return o.missing.length>20&&s.push(` ${e(`app.cli.receipt.gateMore`,{count:o.missing.length-20})}`),o.invalidReceipts>0&&s.push(e(`app.cli.receipt.gateInvalid`,{count:o.invalidReceipts})),s.push(e(`app.cli.receipt.gateHow`)),{ok:!1,lines:s}}export{x as n,b as t};
@@ -1 +0,0 @@
1
- export{n as requireReceiptGate}from"./chunk-receiptGate-DrGChj7i.js";
@@ -1 +0,0 @@
1
- export{c as refactorCommand}from"./chunk-refactor-BJXxEtVs.js";