@kern0x1b/penstock-cli 26.11.1 → 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 +1 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{c as t,l as n,t as r}from"./chunk-variables-CXAMjZIR.js";import{o as i,s as a}from"./chunk-model-f8AzYUK7.js";const o=/* @__PURE__ */ new Set(/* @__PURE__ */ `String.string.str.CharSequence.char.Char.Character.Integer.int.Int.int32.int64.Long.long.Short.short.Byte.byte.Double.double.Float.float.float32.float64.decimal.Decimal.BigDecimal.BigInteger.Number.number.Boolean.boolean.bool.Date.LocalDate.LocalDateTime.LocalTime.OffsetDateTime.ZonedDateTime.Instant.Duration.UUID.Guid.DateTime.DateTimeOffset.TimeSpan.date.datetime.Time`.split(`.`)),s=/* @__PURE__ */ new Set([`List`,`ArrayList`,`LinkedList`,`Set`,`HashSet`,`LinkedHashSet`,`TreeSet`,`Collection`,`Iterable`,`Array`,`array`,`Optional`,`IList`,`IEnumerable`,`ICollection`,`IReadOnlyList`,`IReadOnlyCollection`,`Sequence`]),c=/* @__PURE__ */ new Set([`null`,`undefined`,`None`,`nil`,``]);function l(e,t){let n=[],r=0,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];o===`<`||o===`[`||o===`(`?r+=1:o===`>`||o===`]`||o===`)`?--r:o===t&&r===0&&(n.push(e.slice(i,a)),i=a+1)}return n.push(e.slice(i)),n}function u(e){let t=e.trim().replace(/^readonly\s+/,``).replace(/^[*&]+/,``).replace(/^["']|["']$/g,``).replace(/\?$/,``).trim(),n=t.split(`|`).map(e=>e.trim()).filter(e=>!c.has(e));return n.length===1?n[0]:n.length===0?``:t}function d(e){if(e.endsWith(`[]`))return{base:`array`,args:[e.slice(0,-2)]};if(e.startsWith(`[]`))return{base:`array`,args:[e.slice(2)]};let t=/^([A-Za-z_][\w.]*)\s*[<[]([\s\S]*)[>\]]$/.exec(e);return t?{base:t[1],args:l(t[2],`,`)}:{base:e,args:null}}function f(e){return{kind:`open`,name:e}}function p(e,t,n,r){let i=t.get(e);if(!i||n>3||r.includes(e))return f(e);if(i.kind===`enum`)return{kind:`enum`,name:e,constants:i.constants};if(i.open)return f(e);let a=i.extends===null?void 0:t.get(i.extends);if(i.extends!==null&&(!a||a.kind!==`class`||a.open||a.extends!==null))return f(e);let o=i.fields,s=new Set(o.map(e=>e.name)),c=(a?.fields??[]).filter(e=>!s.has(e.name));return{kind:`object`,name:e,fields:[...o,...c].map(i=>({name:i.name,serialised:i.serialised,type:m(i.type,t,n+1,[...r,e])}))}}function m(e,t,n=1,r=[]){let i=u(e??``);if(i===``)return f(``);let{base:a,args:c}=d(i),l=a.slice(a.lastIndexOf(`.`)+1);return c!==null&&c.length===1&&s.has(l)?{kind:`collection`,name:l,element:m(c[0],t,n,r)}:c===null&&o.has(l)?{kind:`scalar`,name:l}:p(l,t,n,r)}function h(e,t){return e.find(e=>e.name===t)??e.find(e=>/^[A-Z]/.test(e.name)&&e.name.charAt(0).toLowerCase()+e.name.slice(1)===t)}const g=/* @__PURE__ */ new Set([`input`,`loop element`]);function _(e,t,n,r){return r.wholeProcess?t.elementId===n?g.has(t.where)||r.includeOwnCode===!0&&t.path!==void 0:!g.has(t.where)&&i(e,t.elementId,n):t.elementId===n&&t.path!==void 0}function v(e,t,n){let r=t.map(e=>({elementId:e.elementId,where:e.where,type:e.type??null,sample:e.sample??null,path:e.path??null,line:e.line??null,offset:e.offset??null})),i=[...new Set(r.map(e=>e.type))],a=i.filter(e=>e!==null);if(a.length>1)return{name:e,certainty:`ambiguous`,type:null,shape:m(null,n),writers:r};if(a.length===1&&i.length===1){let t=m(a[0],n);return{name:e,certainty:t.kind===`open`?`open`:`exact`,type:a[0],shape:t,writers:r}}return{name:e,certainty:`open`,type:null,shape:m(null,n),writers:r}}function y(e,t,n){let r=new Map(e.types.map(e=>[e.name,e])),i=e.inputs??[],a=e.model.variables.filter(r=>r.writes&&_(e.order,r,t,n));return{variables:[.../* @__PURE__ */ new Set([...a.map(e=>e.name),...n.wholeProcess?i:[]])].sort().map(e=>v(e,a.filter(t=>t.name===e),r)),startVariablesUnknown:i.length===0}}const b=/^(serviceTask|sendTask|receiveTask|scriptTask)$/;function x(e,t,n){let r=t,i=e;for(let e of n){if(e.kind===`index`){if(r.kind!==`collection`)return null;r=r.element,i+=`[]`;continue}if(r.kind!==`object`)return null;let t=h(r.fields,e.name);if(!t)return{variable:i,field:e.name,type:r.name,fields:r.fields.filter(e=>e.serialised).map(e=>e.name)};if(!t.serialised)return null;r=t.type,i+=`.${e.name}`}return null}function S(e){let t=e.writers.find(e=>e.path!==null);return t&&t.path!==null?`${t.path}:${t.line??0}`:null}function C(e){let o={fields:[],names:[]};if(!e.entitled||e.mode===`off`)return o;let{model:s,definitions:c,order:l,types:u,inputs:d,linked:f}=e,p=a(c),m=e=>p.flows.get(e)?.target??e,h=/* @__PURE__ */ new Map,g=e=>{let t=h.get(e);if(t)return t;let n=new Map(y({model:s,order:l,types:u,inputs:d},e,{wholeProcess:!0}).variables.map(e=>[e.name,e]));return h.set(e,n),n},_=[],v=/* @__PURE__ */ new Set;for(let e of r(c))for(let r of n(e.expression)){let n=t(r),i=g(m(e.elementId)).get(n.root);if(!i||i.certainty!==`exact`)continue;let a=x(n.root,i.shape,n.steps);if(!a)continue;let o=[e.elementId,a.variable,a.field].join(`\0`);v.has(o)||(v.add(o),_.push({elementId:e.elementId,...a,from:S(i)}))}let C=[];if(e.mode===`names`&&f.size>0){let e=new Set(s.variables.filter(e=>e.writes).map(e=>e.name)),t=new Set(d),n=s.elements.filter(e=>b.test(e.type)).map(e=>e.id),r=/* @__PURE__ */ new Map;for(let e of s.variables.filter(e=>!e.writes))r.set(e.elementId,/* @__PURE__ */ new Set([...r.get(e.elementId)??[],e.name]));for(let[a,o]of r){let r=m(a);if(!n.some(e=>e!==r&&i(l,e,r)&&!f.has(e)))for(let n of o)e.has(n)||t.has(n)||C.push({elementId:a,name:n})}}return{fields:_,names:C}}function w(e){let t=e?.variables,n=typeof t==`object`&&t&&!Array.isArray(t)?t:{};return{mode:n.check===`off`||n.check===`names`?n.check:`fields`,inputs:Array.isArray(n.inputs)?n.inputs.filter(e=>typeof e==`string`):[]}}function T(t){return t.fields.length===0?e(`app.code.finding.variableFieldNone`,{variable:t.variable,field:t.field,type:t.type}):e(`app.code.finding.variableField`,{variable:t.variable,field:t.field,type:t.type,fields:t.fields.join(`, `)})}function E(t){return t.from===null?e(`app.code.finding.variableFieldWhereUnknown`):e(`app.code.finding.variableFieldWhere`,{from:t.from})}function D(t){return e(`app.code.finding.variableUnknown`,{name:t})}function O(){return e(`app.code.finding.variableUnknownWhere`)}function k(e,t){let n=w(t.values);return{...t.codeLinks?e:{...e,fetches:[],implicitJobTypes:[]},variableChecks:{check:n.mode,inputs:n.inputs,entitled:t.entitled}}}export{k as a,y as c,O as i,E as n,C as o,D as r,w as s,T as t};
1
+ import{r as e}from"./chunk-translator-DNm9zRpP.js";import{o as t,s as n}from"./chunk-model-BulEKnY1.js";import{c as r,l as i,t as a}from"./chunk-variables-CXAMjZIR.js";const o=/* @__PURE__ */ new Set(/* @__PURE__ */ `String.string.str.CharSequence.char.Char.Character.Integer.int.Int.int32.int64.Long.long.Short.short.Byte.byte.Double.double.Float.float.float32.float64.decimal.Decimal.BigDecimal.BigInteger.Number.number.Boolean.boolean.bool.Date.LocalDate.LocalDateTime.LocalTime.OffsetDateTime.ZonedDateTime.Instant.Duration.UUID.Guid.DateTime.DateTimeOffset.TimeSpan.date.datetime.Time`.split(`.`)),s=/* @__PURE__ */ new Set([`List`,`ArrayList`,`LinkedList`,`Set`,`HashSet`,`LinkedHashSet`,`TreeSet`,`Collection`,`Iterable`,`Array`,`array`,`Optional`,`IList`,`IEnumerable`,`ICollection`,`IReadOnlyList`,`IReadOnlyCollection`,`Sequence`]),c=/* @__PURE__ */ new Set([`null`,`undefined`,`None`,`nil`,``]);function l(e,t){let n=[],r=0,i=0;for(let a=0;a<e.length;a+=1){let o=e[a];o===`<`||o===`[`||o===`(`?r+=1:o===`>`||o===`]`||o===`)`?--r:o===t&&r===0&&(n.push(e.slice(i,a)),i=a+1)}return n.push(e.slice(i)),n}function u(e){let t=e.trim().replace(/^readonly\s+/,``).replace(/^[*&]+/,``).replace(/^["']|["']$/g,``).replace(/\?$/,``).trim(),n=t.split(`|`).map(e=>e.trim()).filter(e=>!c.has(e));return n.length===1?n[0]:n.length===0?``:t}function d(e){if(e.endsWith(`[]`))return{base:`array`,args:[e.slice(0,-2)]};if(e.startsWith(`[]`))return{base:`array`,args:[e.slice(2)]};let t=/^([A-Za-z_][\w.]*)\s*[<[]([\s\S]*)[>\]]$/.exec(e);return t?{base:t[1],args:l(t[2],`,`)}:{base:e,args:null}}function f(e){return{kind:`open`,name:e}}function p(e,t,n,r){let i=t.get(e);if(!i||n>3||r.includes(e))return f(e);if(i.kind===`enum`)return{kind:`enum`,name:e,constants:i.constants};if(i.open)return f(e);let a=i.extends===null?void 0:t.get(i.extends);if(i.extends!==null&&(!a||a.kind!==`class`||a.open||a.extends!==null))return f(e);let o=i.fields,s=new Set(o.map(e=>e.name)),c=(a?.fields??[]).filter(e=>!s.has(e.name));return{kind:`object`,name:e,fields:[...o,...c].map(i=>({name:i.name,serialised:i.serialised,type:m(i.type,t,n+1,[...r,e])}))}}function m(e,t,n=1,r=[]){let i=u(e??``);if(i===``)return f(``);let{base:a,args:c}=d(i),l=a.slice(a.lastIndexOf(`.`)+1);return c!==null&&c.length===1&&s.has(l)?{kind:`collection`,name:l,element:m(c[0],t,n,r)}:c===null&&o.has(l)?{kind:`scalar`,name:l}:p(l,t,n,r)}function h(e,t){return e.find(e=>e.name===t)??e.find(e=>/^[A-Z]/.test(e.name)&&e.name.charAt(0).toLowerCase()+e.name.slice(1)===t)}const g=/* @__PURE__ */ new Set([`input`,`loop element`]);function _(e,n,r,i){return i.wholeProcess?n.elementId===r?g.has(n.where)||i.includeOwnCode===!0&&n.path!==void 0:!g.has(n.where)&&t(e,n.elementId,r):n.elementId===r&&n.path!==void 0}function v(e,t,n){let r=t.map(e=>({elementId:e.elementId,where:e.where,type:e.type??null,sample:e.sample??null,path:e.path??null,line:e.line??null,offset:e.offset??null})),i=[...new Set(r.map(e=>e.type))],a=i.filter(e=>e!==null);if(a.length>1)return{name:e,certainty:`ambiguous`,type:null,shape:m(null,n),writers:r};if(a.length===1&&i.length===1){let t=m(a[0],n);return{name:e,certainty:t.kind===`open`?`open`:`exact`,type:a[0],shape:t,writers:r}}return{name:e,certainty:`open`,type:null,shape:m(null,n),writers:r}}function y(e,t,n){let r=new Map(e.types.map(e=>[e.name,e])),i=e.inputs??[],a=e.model.variables.filter(r=>r.writes&&_(e.order,r,t,n));return{variables:[.../* @__PURE__ */ new Set([...a.map(e=>e.name),...n.wholeProcess?i:[]])].sort().map(e=>v(e,a.filter(t=>t.name===e),r)),startVariablesUnknown:i.length===0}}const b=/^(serviceTask|sendTask|receiveTask|scriptTask)$/;function x(e,t,n){let r=t,i=e;for(let e of n){if(e.kind===`index`){if(r.kind!==`collection`)return null;r=r.element,i+=`[]`;continue}if(r.kind!==`object`)return null;let t=h(r.fields,e.name);if(!t)return{variable:i,field:e.name,type:r.name,fields:r.fields.filter(e=>e.serialised).map(e=>e.name)};if(!t.serialised)return null;r=t.type,i+=`.${e.name}`}return null}function S(e){let t=e.writers.find(e=>e.path!==null);return t&&t.path!==null?`${t.path}:${t.line??0}`:null}function C(e){let o={fields:[],names:[]};if(!e.entitled||e.mode===`off`)return o;let{model:s,definitions:c,order:l,types:u,inputs:d,linked:f}=e,p=n(c),m=e=>p.flows.get(e)?.target??e,h=/* @__PURE__ */ new Map,g=e=>{let t=h.get(e);if(t)return t;let n=new Map(y({model:s,order:l,types:u,inputs:d},e,{wholeProcess:!0}).variables.map(e=>[e.name,e]));return h.set(e,n),n},_=[],v=/* @__PURE__ */ new Set;for(let e of a(c))for(let t of i(e.expression)){let n=r(t),i=g(m(e.elementId)).get(n.root);if(!i||i.certainty!==`exact`)continue;let a=x(n.root,i.shape,n.steps);if(!a)continue;let o=[e.elementId,a.variable,a.field].join(`\0`);v.has(o)||(v.add(o),_.push({elementId:e.elementId,...a,from:S(i)}))}let C=[];if(e.mode===`names`&&f.size>0){let e=new Set(s.variables.filter(e=>e.writes).map(e=>e.name)),n=new Set(d),r=s.elements.filter(e=>b.test(e.type)).map(e=>e.id),i=/* @__PURE__ */ new Map;for(let e of s.variables.filter(e=>!e.writes))i.set(e.elementId,/* @__PURE__ */ new Set([...i.get(e.elementId)??[],e.name]));for(let[a,o]of i){let i=m(a);if(!r.some(e=>e!==i&&t(l,e,i)&&!f.has(e)))for(let t of o)e.has(t)||n.has(t)||C.push({elementId:a,name:t})}}return{fields:_,names:C}}function w(e){let t=e?.variables,n=typeof t==`object`&&t&&!Array.isArray(t)?t:{};return{mode:n.check===`off`||n.check===`names`?n.check:`fields`,inputs:Array.isArray(n.inputs)?n.inputs.filter(e=>typeof e==`string`):[]}}function T(t){return t.fields.length===0?e(`app.code.finding.variableFieldNone`,{variable:t.variable,field:t.field,type:t.type}):e(`app.code.finding.variableField`,{variable:t.variable,field:t.field,type:t.type,fields:t.fields.join(`, `)})}function E(t){return t.from===null?e(`app.code.finding.variableFieldWhereUnknown`):e(`app.code.finding.variableFieldWhere`,{from:t.from})}function D(t){return e(`app.code.finding.variableUnknown`,{name:t})}function O(){return e(`app.code.finding.variableUnknownWhere`)}function k(e,t){let n=w(t.values);return{...t.codeLinks?e:{...e,fetches:[],implicitJobTypes:[]},variableChecks:{check:n.mode,inputs:n.inputs,entitled:t.entitled}}}export{k as a,y as c,O as i,E as n,C as o,D as r,w as s,T as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-codeIndex-N1gnP_sW.js";const t=`JsonIgnore`,n=`JsonProperty`,r=/* @__PURE__ */ new Set([`Data`,`Value`,`Getter`]),i=/* @__PURE__ */ new Set([`private`,`protected`]),a=/^(get|is)([A-Z]\w*)$/,o=/* @__PURE__ */ new Set([`Enum`,`StrEnum`,`IntEnum`,`IntFlag`,`Flag`]),s=/* @__PURE__ */ new Set([`BaseModel`,`TypedDict`]),c=/* @__PURE__ */ new Set([`BaseModel`,`TypedDict`,`Enum`,`StrEnum`,`IntEnum`,`IntFlag`,`Flag`,`object`,`Generic`]),l=/* @__PURE__ */ new Set([`alias`,`validation_alias`,`serialization_alias`]),u=/* @__PURE__ */ new Set([`Config`,`model_config`]),ee=/^(?:typing\.)?ClassVar\b/,te=/(?:^|\s)json:"([^"]*)"/,ne=/^I[A-Z]/;function d(e){let t=/* @__PURE__ */ new Map;for(let n of e)for(let e of re(n))t.set(e.name,[...t.get(e.name)??[],e]);return[...t].map(([e,t])=>t.length===1?t[0]:{name:e,kind:`class`,fields:[],constants:[],extends:null,open:!0})}function re(e){return e.declarations.flatMap(t=>{let n=ie(t,e.language);return n?[n]:[]})}function ie(e,t){return t===`java`||t===`kotlin`?se(e,t===`kotlin`):t===`typescript`||t===`javascript`?ce(e):t===`python`?le(e):t===`go`?ue(e):t===`csharp`?de(e):null}function f(e){return e.split(`.`).pop()??e}function p(e,t){return e.some(e=>f(e.name)===t)}function m(e,t){return e.find(e=>f(e.name)===t)?.arguments.find(e=>e.name===null||e.name===`value`)?.value??void 0}function ae(e){return e.charAt(0).toLowerCase()+e.slice(1)}function oe(e){let t=/* @__PURE__ */ new Map;for(let n of e){if(n.kind!==`method`||n.arity!==0||n.type===`void`||n.modifiers.includes(`static`)||!n.modifiers.includes(`public`))continue;let e=a.exec(n.name);e&&t.set(ae(e[2]),n.type)}return t}function se(e,t){if(e.kind===`interface`)return null;if(e.kind===`enum`)return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};let n=e.annotations.some(e=>r.has(f(e.name))),i=t?/* @__PURE__ */ new Map:oe(e.members),a=[],o=/* @__PURE__ */ new Set;for(let r of e.members){if(r.kind!==`parameter`&&r.kind!==`field`)continue;let e=t?pe(r,n,i):fe(r,n,i);e!==null&&(a.push(e),o.add(e.name))}for(let[e,t]of i)o.has(e)||a.push({name:e,type:t,serialised:!0});let s=e.supertypes,c=e.kind===`class`&&!t?s.find(e=>e.relation===`extends`):void 0,l=e.generic||e.members.some(e=>e.annotations.some(e=>f(e.name)===`JsonAny`))||t&&s.length>0;return{name:e.name,kind:`class`,fields:a,constants:[],extends:c?f(c.name):null,open:l}}function ce(e){if(e.kind===`enum`)return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};let t=e.members.flatMap(e=>e.kind===`field`||e.kind===`parameter`?[{name:e.name,type:e.type,serialised:!e.modifiers.includes(`static`)&&!e.name.startsWith(`#`)}]:[]),n=e.supertypes.filter(e=>e.relation===`extends`).map(e=>f(e.name)),r=e.generic||n.length>1||e.members.some(e=>e.kind===`index`||e.kind===`accessor`);return{name:e.name,kind:`class`,fields:t,constants:[],extends:n.length===1?n[0]:null,open:r}}function le(e){let t=e.supertypes.map(e=>f(e.name));if(t.some(e=>o.has(e)))return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};if(!e.annotations.some(e=>f(e.name)===`dataclass`)&&!t.some(e=>s.has(e)))return null;let n=t.filter(e=>!c.has(e)),r=e.members.flatMap(e=>e.kind===`field`&&e.type!==null&&!ee.test(e.type)?[{name:e.name,type:e.type,serialised:!0}]:[]),i=n.length>1||e.members.some(e=>e.kind===`config`&&u.has(e.name)||e.kind===`method`&&e.name===`__init__`)||e.members.some(e=>e.annotations.some(e=>e.arguments.some(e=>e.name!==null&&l.has(e.name))));return{name:e.name,kind:`class`,fields:r,constants:[],extends:n.length===1?n[0]:null,open:i}}function ue(e){let t=e.members.flatMap(e=>{if(e.kind!==`field`)return[];let t=te.exec(e.tag??``)?.[1],n=t!==void 0&&t!==`-`?t.split(`,`)[0]:``;return[{name:n===``?e.name:n,type:e.type,serialised:/^[A-Z]/.test(e.name)&&t!==`-`}]});return{name:e.name,kind:`class`,fields:t,constants:[],extends:null,open:e.generic||e.members.some(e=>e.kind===`embedded`)}}function de(e){if(e.kind===`enum`)return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};let t=e.supertypes.map(e=>f(e.name)).filter(e=>!ne.test(e)),n=e.members.flatMap(e=>{if(e.kind!==`field`&&e.kind!==`parameter`)return[];let t=e.kind===`parameter`||e.modifiers.includes(`public`)&&!e.modifiers.includes(`static`);return[{name:m(e.annotations,`JsonPropertyName`)??e.name,type:e.type,serialised:t&&!p(e.annotations,`JsonIgnore`)}]}),r=e.generic||t.length>1||e.members.some(e=>e.annotations.some(e=>f(e.name)===`JsonExtensionData`));return{name:e.name,kind:`class`,fields:n,constants:[],extends:t.length===1?t[0]:null,open:r}}function h(e){return m(e.annotations,n)??e.name}function fe(e,r,i){let a=p(e.annotations,t),o=p(e.annotations,n);if(e.kind===`parameter`)return{name:h(e),type:e.type,serialised:!a};let s=e.modifiers.includes(`static`),c=e.modifiers.includes(`transient`),l=e.modifiers.includes(`public`),u=!s&&!c&&!a&&(l||i.has(e.name)||r||o);return{name:h(e),type:e.type,serialised:u}}function pe(e,r,a){let o=p(e.annotations,t),s=e.modifiers.some(e=>i.has(e)),c=p(e.annotations,n);if(e.kind===`parameter`)return{name:h(e),type:e.type,serialised:!o&&!s};let l=!e.modifiers.includes(`const`)&&!o&&(!s||a.has(e.name)||r||c);return{name:h(e),type:e.type,serialised:l}}var g=class{placed;constructor(e,t){this.placed=e.map((e,n)=>({item:e,order:n,start:t(e)})).sort((e,t)=>e.start-t.start||e.order-t.order)}inOrder(e,t){return this.between(e,t).sort((e,t)=>e.order-t.order).map(e=>e.item)}byPosition(e,t){return this.between(e,t).map(e=>e.item)}between(e,t){let n=[];for(let r=this.firstFrom(e);r<this.placed.length&&this.placed[r].start<=t;r+=1)n.push(this.placed[r]);return n}firstFrom(e){let t=0,n=this.placed.length;for(;t<n;){let r=t+n>>>1;this.placed[r].start<e?t=r+1:n=r}return t}};const _=/* @__PURE__ */ new WeakMap;function v(e){let t=_.get(e);return t===void 0&&(t=me(e),_.set(e,t)),t}function y(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r);n.has(e)||n.set(e,r)}return n}function b(e,t){return e.from===t.from&&e.to===t.to}function me(e){let t=[...e.accesses,...e.innerAccesses];return{callsBySpan:new g(e.calls,e=>e.span.from),callsAt:new g(e.calls,e=>e.at),constructionsBySpan:new g(e.constructions,e=>e.span.from),callablesBySpan:new g(e.callables,e=>e.span.from),callablesAt:new g(e.callables,e=>e.at),parametersAt:new g(e.callables.flatMap(e=>e.parameters),e=>e.at),localsAt:new g(e.locals,e=>e.at),membersAt:new g(e.declarations.flatMap(e=>e.members),e=>e.at),accessesAt:new g(t,e=>e.at),accessesBySpan:new g(t,e=>e.span.from),returnsAt:new g(e.returns,e=>e.at),pairsByObject:he(e.pairs,e=>e.object),callableNamed:y(e.callables,e=>e.name),enclosingCall:x(e.calls.flatMap(e=>e.arguments.map(t=>({owner:e,span:t.span}))),e.calls),enclosingReturn:x(e.returns.map(e=>({owner:e,span:e.span})),e.calls)}}function he(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r),i=n.get(e);i===void 0?n.set(e,[r]):i.push(r)}return n}function x(e,t){let n=[...e].sort((e,t)=>e.span.from-t.span.from||t.span.to-e.span.to),r=[...t].sort((e,t)=>e.span.from-t.span.from),i=[],a=/* @__PURE__ */ new Map,o=0;for(let e of r){let t=e.span.from;for(;o<n.length&&n[o].span.from<=t;){let e=n[o];for(;i.length>0&&i[i.length-1].span.to<=e.span.from;)i.pop();i.push(e),o+=1}for(;i.length>0&&i[i.length-1].span.to<=t;)i.pop();for(let t=i.length-1;t>=0;--t){let n=i[t].span;if(n.from<=e.span.from&&e.span.to<=n.to){a.set(e,i[t].owner);break}}}return a}const S={from:0,to:1/0},ge=/* @__PURE__ */ new Set([`java`,`kotlin`,`groovy`,`scala`]),_e=/* @__PURE__ */ new Set([`JobWorker`,`ZeebeWorker`]),C=/* @__PURE__ */ new Set([`Component`,`Service`,`Named`,`Repository`,`Controller`]),ve=/* @__PURE__ */ new Set([...C,`RestController`]),ye=/* @__PURE__ */ new Set([`ExternalTaskSubscription`]),be=/* @__PURE__ */ new Map([[`Variable`,`@Variable`],[`VariablesAsType`,`@VariablesAsType`]]),xe=/* @__PURE__ */ new Set([`getVariable`,`getVariableLocal`]),Se=/* @__PURE__ */ new Set([`get`,`getOrDefault`]),Ce=/* @__PURE__ */ new Set([`setVariable`,`setVariableLocal`]),w=/* @__PURE__ */ new Map([[`Map.of`,`arguments`],[`Map.ofEntries`,`entries`],[`Collections.singletonMap`,`arguments`],[`.mapOf`,`pairs`],[`.Map`,`pairs`]]),we=/* @__PURE__ */ new Set([`complete`,`CompleteJob`,`CompleteAsyncJob`,`completeJob`,`complete_async`]),Te=/* @__PURE__ */ new Set([`variables`,`setVariables`,`SetVariables`,`withVariables`,`Variables`]),T=/* @__PURE__ */ new Set([`worker`,`task`]),Ee=/* @__PURE__ */ new Set([`complete`,`completeJob`]),De=/* @__PURE__ */ new Set([`createWorker`,`subscribe`]),Oe=/* @__PURE__ */ new Map([[`SubscribeJobType`,`JOB_TYPE`],[`JobType`,`JOB_TYPE`],[`TopicName`,`TOPIC`]]),ke=/* @__PURE__ */ new Set([`Variables`,`VariablesMap`]),Ae=/* @__PURE__ */ new Map([[`TopicName`,`TOPIC`],[`TaskType`,`JOB_TYPE`],[`JobType`,`JOB_TYPE`]]),je=/* @__PURE__ */ new Set([`CompleteJob`,`CompleteAsyncJob`]),E=/* @__PURE__ */ new Set([`Variables`]),Me=/* @__PURE__ */ new Set([`Value`]),Ne=/^[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*$/,D=/[A-Za-z_]\w*/g,O=(e,t)=>`${e}:${t}`,k=e=>e.split(`.`).pop()??e,Pe=e=>e.charAt(0).toLowerCase()+e.slice(1),A=(e,t)=>e.from<=t&&t<e.to,j=e=>[...e].sort((e,t)=>e.at-t.at),Fe=e=>j([...e.accesses,...e.innerAccesses]),M=(e,t)=>v(e).accessesAt.byPosition(t.from,t.to),N=(e,t)=>t===void 0?[]:v(e).pairsByObject.get(t.span.from)??[],P=(e,t)=>v(e).callsBySpan.inOrder(t.from,t.from).find(e=>b(e.span,t)),Ie=(e,t)=>v(e).constructionsBySpan.inOrder(t.from,t.from).find(e=>b(e.span,t));function F(e,t,n,r,i,a){return e==null||e.trim()===``?[]:[{name:e,writes:t,type:n,where:r,at:i,literal:a??i}]}function I(e,t){for(let n of t){let t=e.arguments.find(e=>e.name===n)?.value;if(t!=null)return t}}function L(e,t){return t.values===null?t.value===null?P(e,t.span)?.arguments.flatMap(e=>e.value??[])??[]:[t.value]:t.values}function R(e){return e.receiver===null?null:{from:e.span.from,to:e.span.from+e.receiver.length}}function z(e,t){let n=R(t);return n===null?void 0:P(e,n)}function Le(e,t){let n=R(t);return n===null?void 0:v(e).accessesBySpan.inOrder(n.from,n.from).find(e=>b(e.span,n))}function Re(e,t,n){let r=v(e),i=/* @__PURE__ */ new Set,a=e=>{e!=null&&i.add(e.replace(/^\*/,``))};return r.localsAt.inOrder(t.from,t.to).filter(e=>e.name===n&&A(t,e.at)).forEach(e=>a(e.type??e.initializer?.constructs)),r.parametersAt.inOrder(t.from,t.to).filter(e=>e.name===n&&A(t,e.at)).forEach(e=>a(e.type)),r.membersAt.inOrder(t.from,t.to).filter(e=>(e.kind===`field`||e.kind===`parameter`)&&e.name===n&&A(t,e.at)).forEach(e=>a(e.type)),i.size===1?[...i][0]:null}function B(e,t,n){return n==null?null:n.identifier===null?n.constructs:Re(e,t,n.identifier)}function V(e){return k(e?.trim()??``).replace(/\[\]/g,``)}function H(e){let t=d(e.filter(e=>ge.has(e.language)));return new Map(t.filter(e=>e.kind===`class`).map(e=>[e.name,e.fields.filter(e=>e.serialised)]))}function ze(e,t){return e.callables.flatMap(n=>{let r=n.annotations.find(e=>_e.has(k(e.name)));if(r===void 0)return[];let i=I(r,[`type`,`taskType`]),a=i??n.name;if(!t.has(O(`JOB_TYPE`,a)))return[];let o=r.arguments.find(e=>e.name===`fetchVariables`);return[{kind:`JOB_TYPE`,value:a,span:n.span,fetch:o===void 0?[]:L(e,o),fetchAt:r.at,declared:o!==void 0,implicit:i===void 0?{jobType:a,method:n.name}:void 0,implicitAt:r.at}]})}function Be(e,t){let n=e.filter(e=>C.has(k(e.name))).flatMap(e=>I(e,[null,`value`])??[]).at(-1);return n===void 0?e.some(e=>ve.has(k(e.name)))?Pe(t):void 0:n}function Ve(e){let t=e.find(e=>ye.has(k(e.name)));return t===void 0?void 0:I(t,[`topicName`,null,`value`])}function He(e,t){return e.declarations.filter(e=>e.kind===`class`||e.kind===`record`).flatMap(n=>{let r=e.package===null?n.name:`${e.package}.${n.name}`;return $([...[n.name,r].map(e=>({kind:`CLASS`,value:e})),{kind:`BEAN`,value:Be(n.annotations,n.name)},{kind:`TOPIC`,value:Ve(n.annotations)}].flatMap(({kind:e,value:r})=>r===void 0||!t.has(O(e,r))?[]:[{kind:e,value:r,span:n.span,fetch:[],fetchAt:0,declared:!1,implicitAt:0}]),e=>e.kind)})}function Ue(e,t,n){let r=v(e).callablesAt.inOrder(t.from,t.to).filter(e=>A(t,e.at)).flatMap(e=>e.parameters);return j(r.flatMap(e=>e.annotations.flatMap(t=>{let r=be.get(k(t.name));return r===`@Variable`?F(I(t,[`name`,`value`,null])??e.name,!1,null,r,t.at):r===`@VariablesAsType`?(n.get(V(e.type))??[]).flatMap(e=>F(e.name,!1,e.type,r,t.at)):[]})))}function We(e,t){let n=v(e),r=n.enclosingCall.get(t);return r!==void 0&&we.has(r.name)?`complete`:r!==void 0&&Te.has(r.name)?`variables`:n.enclosingReturn.has(t)?`return`:null}function Ge(e,t,n){let{arguments:r}=t;return n===`pairs`?r.flatMap(t=>N(e,t).filter(e=>e.quoted).map(e=>({name:e.key,value:e.value,literal:e.at}))):n===`arguments`?r.flatMap((e,t)=>t%2==0?[{name:e.value,value:r[t+1],literal:e.span.from}]:[]):r.map(t=>{let n=P(e,t.span)??Ie(e,t.span);return{name:n?.arguments[0]?.value??null,value:n?.arguments[1],literal:n?.arguments[0]?.span.from}})}function Ke(e,t,n){return[...n.filter(e=>w.has(`${k(e.receiver??``)}.${e.name}`))].sort((e,t)=>e.span.from-t.span.from).flatMap(n=>{let r=We(e,n);return r===null?[]:Ge(e,n,w.get(`${k(n.receiver??``)}.${n.name}`)??``).flatMap(i=>F(i.name,!0,B(e,t,i.value),r,n.span.from,i.literal))})}function qe(e,t,n){let r=v(e),i=/* @__PURE__ */ new Map;for(let e of r.localsAt.inOrder(t.from,t.to).filter(e=>A(t,e.at))){let t=V(e.type??e.initializer?.constructs);n.has(t)&&i.set(e.name,t)}for(let e of r.callablesAt.inOrder(t.from,t.to).filter(e=>A(t,e.at)).flatMap(e=>e.parameters))e.annotations.some(e=>k(e.name)===`VariablesAsType`)&&i.set(e.name,V(e.type));return r.returnsAt.inOrder(t.from,t.to).filter(e=>A(t,e.at)).flatMap(e=>{let t=i.get(e.expression?.identifier??``);return(n.get(t??``)??[]).flatMap(t=>F(t.name,!0,t.type,`return`,e.at))})}function Je(e,t,n){let r=t.span,i=v(e).callsAt.byPosition(r.from,r.to).filter(e=>A(r,e.at)),a=i.filter(e=>Se.has(e.name)).flatMap(t=>{let n=z(e,t);return n?.name===`getVariablesAsMap`&&n.arguments.length===0?F(t.arguments[0]?.value,!1,null,`variables`,n.at,t.arguments[0]?.span.from):[]});return[...i.filter(e=>xe.has(e.name)).flatMap(e=>F(e.arguments[0]?.value,!1,null,`getVariable`,e.at,e.arguments[0]?.span.from)),...a,...i.filter(e=>Ce.has(e.name)).flatMap(t=>F(t.arguments[0]?.value,!0,B(e,r,t.arguments[1]),`setVariable`,t.at,t.arguments[0]?.span.from)),...Ue(e,r,n),...Ke(e,r,i),...qe(e,r,n)]}function Ye(e,t){let n=t.span,r=e=>e!==null&&Ne.test(e),i=v(e).returnsAt.inOrder(n.from,n.to).filter(e=>A(n,e.at)).flatMap(t=>{let r=t.expression;if(r===null)return[];let i=N(e,r),a=P(e,r.span);return(i.length>0||a?.name!==`complete_job`?i:N(e,a.arguments.find(e=>e.name===`variables`))).filter(e=>e.quoted).flatMap(r=>F(r.key,!0,B(e,n,r.value),`complete`,t.at,r.at))});return[...M(e,n).filter(e=>A(n,e.at)&&r(e.receiver)).flatMap(e=>F(e.key,!1,null,`variables`,e.at,e.keyAt)),...v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&e.name===`get`&&r(e.receiver)).flatMap(e=>F(e.arguments[0]?.value,!1,null,`variables`,e.span.from,e.arguments[0]?.span.from)),...i]}function U(e,t){let n=e.pairs.find(e=>e.key===`taskVariables`&&t.includes(e.object));return n===void 0?null:L(e,n.value)}function Xe(e,t){let n=j(e.calls),r=e=>e.arguments.map(e=>e.span.from),i=n=>e.pairs.some(e=>e.object===n.arguments[0]?.span.from&&e.key===`type`&&e.value.value===t),a=i=>n.filter(e=>e.name===i&&e.arguments[0]?.value===t).map(t=>({at:t.at,fetch:U(e,r(t))}));return[j(e.pairs).filter(e=>e.key===`taskType`&&e.value.value===t).map(t=>({at:t.at,fetch:U(e,[t.object])})),n.filter(e=>e.name===`createJobWorker`&&i(e)).map(t=>({at:t.at,fetch:U(e,r(t))})),...[...De].map(a)]}function Ze(e,t){return[...t.values()].flatMap(([{kind:t,value:n}])=>{if(t!==`JOB_TYPE`&&t!==`TOPIC`)return[];let r=Xe(e,n).find(e=>e.length>0)?.[0];return r===void 0?[]:[{kind:t,value:n,span:S,fetch:r.fetch??[],fetchAt:r.at,declared:r.fetch!==null,implicitAt:0}]})}function Qe(e){let t=Fe(e).filter(e=>e.receiver===`job.variables`),n=j(e.calls).filter(e=>Ee.has(e.name)).flatMap(t=>N(e,t.arguments[1]).flatMap(n=>F(n.key,!0,B(e,S,n.value),`complete`,t.at,n.at)));return[...t.flatMap(e=>F(e.key,!1,null,`variables`,e.at,e.keyAt)),...t.flatMap(e=>F(e.name,!1,null,`variables`,e.at)),...e.locals.filter(e=>e.initializer?.text===`job.variables`).flatMap(e=>F(e.key,!1,null,`variables`,e.at)),...n]}function W(e,t,n){return v(e).callsBySpan.inOrder(t.span.from,t.span.from).filter(e=>e.name===n&&e.span.from===t.span.from&&e.span.to>t.span.to)}function G(e){return e?.identifier??e?.reference??null}function K(e,t,n){let r=G(t),i=r===null?void 0:v(e).callableNamed.get(r);return i===void 0?n===void 0?t?.span??null:n.span:i.span}function $e(e){return e.callables.flatMap(t=>t.annotations.flatMap(n=>{if(!T.has(k(n.name)))return[];let r=n.arguments.find(e=>(e.name===`task_type`||e.name===`topic_name`)&&e.value!==null),i=r?.value??null;if(r===void 0||i===null)return[];let a=n.arguments.find(e=>e.name?.includes(`variables`)??!1);return[{kind:r.name===`task_type`?`JOB_TYPE`:`TOPIC`,value:i,valueAt:r.span.from,at:n.at,end:t.span.to,span:t.span,fetch:a===void 0?null:L(e,a),contract:!0,handler:t.name}]}))}function et(e){return j(e.calls).flatMap(t=>{if(!T.has(t.name))return[];let n=t.arguments.find(e=>(e.name===`task_type`||e.name===`topic_name`)&&e.value!==null),r=W(e,t,t.name)[0];if(n===void 0||n.value===null||r===void 0)return[];let i=t.arguments.find(e=>e.name?.includes(`variables`)??!1),a=r.arguments[0];return[{kind:n.name===`task_type`?`JOB_TYPE`:`TOPIC`,value:n.value,valueAt:n.span.from,at:t.at,end:r.span.to,span:K(e,a,r)??S,fetch:i===void 0?null:L(e,i),contract:!0,handler:G(a)}]})}function tt(e){let t=e.arguments.slice(1),n=t.map(e=>e.constructs!==null).lastIndexOf(!0),r=t.slice(n+1).flatMap(e=>e.value??[]);return r.length>0?r:null}function nt(e){return j(e.calls).flatMap(t=>{let n=Oe.get(t.name),r=t.arguments[0],i=r?.value??null;if(n===void 0||r===void 0||i===null)return[];let a=W(e,t,`Handler`)[0],o=t.name===`SubscribeJobType`?t.arguments[1]:a?.arguments[0];return[{kind:n,value:i,valueAt:r.span.from,at:t.at,end:t.span.to,span:K(e,o,a)??S,fetch:tt(t),contract:!0,handler:G(o)}]})}function rt(e,t){let n=t.span,r=new Set(v(e).localsAt.inOrder(n.from,n.to).filter(e=>A(n,e.at)&&e.initializer?.text===`job.Variables()`).map(e=>e.name)),i=M(e,n).filter(e=>A(n,e.at)).flatMap(t=>{let n=z(e,t);return n!==void 0&&ke.has(n.name)&&n.arguments.length===0?F(t.key,!1,null,`variables`,n.at,t.keyAt):r.has(t.receiver)?F(t.key,!1,null,`variables`,t.at,t.keyAt):[]}),a=v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&e.name===`Variables`&&(e.arguments[0]?.constructs?.startsWith(`map[`)??!1)).flatMap(t=>N(e,t.arguments[0]).filter(e=>e.quoted).flatMap(r=>F(r.key,!0,B(e,n,r.value),`variables`,t.at,r.at)));return[...i,...a]}function it(e,t){let n=j(v(e).callsBySpan.inOrder(t.span.from,t.span.from)).filter(e=>E.has(e.name)&&e.span.from===t.span.from&&e.span.to>t.span.to);return n.length===0?null:n.flatMap(e=>e.arguments.flatMap(e=>e.value??[]))}function at(e){let t=j(e.calls),n=[...e.declarations,...e.callables].flatMap(e=>e.annotations.flatMap(e=>e.arguments)),r=(t,r)=>j([...n.flatMap(e=>e.name===t&&e.value!==null?[{kind:r,value:e.value,valueAt:e.span.from,at:e.at,end:e.span.to,span:S,fetch:null,contract:!1,handler:null}]:[]),...e.pairs.flatMap(e=>e.key===t&&e.value.value!==null?[{kind:r,value:e.value.value,valueAt:e.value.span.from,at:e.at,end:e.value.span.to,span:S,fetch:null,contract:!1,handler:null}]:[])]),i=(n,r)=>t.flatMap(t=>{let i=t.arguments[0],a=i?.value??null;if(t.name!==n||i===void 0||a===null)return[];let o=W(e,t,`Handler`)[0];return[{kind:r,value:a,valueAt:i.span.from,at:t.at,end:t.span.to,span:K(e,o?.arguments[0],o)??S,fetch:it(e,t),contract:!0,handler:G(o?.arguments[0])}]});return[...Ae].flatMap(([e,t])=>[...r(e,t),...i(e,t)])}function ot(e,t){let n=t.span,r=t=>E.has(Le(e,t)?.name??``),i=v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&je.has(e.name)).flatMap(t=>N(e,t.arguments[1]).filter(e=>e.quoted).flatMap(r=>F(r.key,!0,B(e,n,r.value),`complete`,t.at,r.at)));return[...M(e,n).filter(e=>A(n,e.at)&&r(e)).flatMap(e=>F(e.key,!1,null,`variables`,e.at,e.keyAt)),...v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&Me.has(e.name)&&r(e)).flatMap(e=>F(e.arguments[0]?.value,!1,null,`variables`,e.span.from,e.arguments[0]?.span.from)),...i]}function q(e){return j(e.calls).flatMap(t=>{let n=t.arguments[0],r=n?.value??null;if(t.name!==`jobType`||t.receiver===null||n===void 0||r===null)return[];let i=W(e,t,`handler`)[0],a=W(e,t,`fetchVariables`);return[{kind:`JOB_TYPE`,value:r,valueAt:n.span.from,at:t.at,end:t.span.to,span:K(e,i?.arguments[0],i)??t.span,fetch:a.length===0?null:a.flatMap(e=>e.arguments.flatMap(e=>e.value??[])),contract:!0,handler:G(i?.arguments[0])}]})}const st={java:q,kotlin:q,groovy:q,scala:q,typescript:()=>[],javascript:()=>[],python:e=>[...$e(e),...et(e)],go:nt,csharp:at};function J(e){return st[e.language](e)}function Y(e){return{kind:e.kind,value:e.value,span:e.span,fetch:e.fetch??[],fetchAt:e.at,declared:e.fetch!==null,implicitAt:0}}function X(e,t){let n=/* @__PURE__ */ new Set;return J(e).flatMap(e=>{let r=O(e.kind,e.value);return!t.has(r)||n.has(r)?[]:(n.add(r),[Y(e)])})}function ct(e,t,n){return ut[e.language].variables(e,Y(t),n)}const Z={regions:(e,t)=>[...ze(e,t),...He(e,t),...X(e,t)],variables:Je},lt={regions:Ze,variables:Qe},Q={regions:X},ut={java:Z,kotlin:Z,groovy:Z,scala:Z,typescript:lt,javascript:lt,python:{...Q,variables:Ye},go:{...Q,variables:rt},csharp:{...Q,variables:ot}};function dt(e,t){let n=new Map(e.map(e=>[e.name,e])),r=/* @__PURE__ */ new Map,i=[...t];for(let e=i.pop();e!==void 0;e=i.pop()){let t=n.get(e);t&&!r.has(e)&&(r.set(e,t),t.fields.forEach(e=>i.push(...e.type?.match(D)??[])),t.extends!==null&&i.push(t.extends))}return[...r.values()]}function ft(e,t){let n=t.flatMap(e=>e?.match(D)??[]);return n.length===0?[]:dt(d(e),n)}function $(e,t){let n=/* @__PURE__ */ new Set;return e.filter(e=>{let r=t(e);return!n.has(r)&&(n.add(r),!0)})}function pt(t,n){if(n.length===0||t.length===0)return{variables:[],fetches:[],implicitJobTypes:[],types:[]};let r=/* @__PURE__ */ new Map;for(let e of n)r.set(O(e.kind,e.value),[...r.get(O(e.kind,e.value))??[],e]);let i=H(t),a=[],o=[],s=[];for(let n of t){let t=ut[n.language];for(let c of t.regions(n,r)){let l=t.variables(n,c,i),u=e(n.lineStarts,c.fetchAt);for(let{elementId:t}of r.get(O(c.kind,c.value))??[])a.push(...l.map(r=>({elementId:t,name:r.name,writes:r.writes,type:r.type,where:r.where,path:n.path,line:e(n.lineStarts,r.at),offset:r.at}))),o.push({elementId:t,names:c.fetch,declared:c.declared,path:n.path,line:u}),c.implicit&&s.push({elementId:t,jobType:c.implicit.jobType,method:c.implicit.method,path:n.path,line:u,offset:c.implicitAt})}}let c=$(a,e=>JSON.stringify([e.elementId,e.name,e.writes,e.where]));return{variables:c,fetches:$(o,e=>e.elementId),implicitJobTypes:s,types:ft(t,c.map(e=>e.type))}}export{pt as a,J as i,ft as n,v as o,H as r,y as s,ct as t};
1
+ import{o as e}from"./chunk-codeIndex-vStNh6Bm.js";const t=`JsonIgnore`,n=`JsonProperty`,r=/* @__PURE__ */ new Set([`Data`,`Value`,`Getter`]),i=/* @__PURE__ */ new Set([`private`,`protected`]),a=/^(get|is)([A-Z]\w*)$/,o=/* @__PURE__ */ new Set([`Enum`,`StrEnum`,`IntEnum`,`IntFlag`,`Flag`]),s=/* @__PURE__ */ new Set([`BaseModel`,`TypedDict`]),c=/* @__PURE__ */ new Set([`BaseModel`,`TypedDict`,`Enum`,`StrEnum`,`IntEnum`,`IntFlag`,`Flag`,`object`,`Generic`]),l=/* @__PURE__ */ new Set([`alias`,`validation_alias`,`serialization_alias`]),u=/* @__PURE__ */ new Set([`Config`,`model_config`]),ee=/^(?:typing\.)?ClassVar\b/,te=/(?:^|\s)json:"([^"]*)"/,ne=/^I[A-Z]/;function d(e){let t=/* @__PURE__ */ new Map;for(let n of e)for(let e of re(n))t.set(e.name,[...t.get(e.name)??[],e]);return[...t].map(([e,t])=>t.length===1?t[0]:{name:e,kind:`class`,fields:[],constants:[],extends:null,open:!0})}function re(e){return e.declarations.flatMap(t=>{let n=ie(t,e.language);return n?[n]:[]})}function ie(e,t){return t===`java`||t===`kotlin`?se(e,t===`kotlin`):t===`typescript`||t===`javascript`?ce(e):t===`python`?le(e):t===`go`?ue(e):t===`csharp`?de(e):null}function f(e){return e.split(`.`).pop()??e}function p(e,t){return e.some(e=>f(e.name)===t)}function m(e,t){return e.find(e=>f(e.name)===t)?.arguments.find(e=>e.name===null||e.name===`value`)?.value??void 0}function ae(e){return e.charAt(0).toLowerCase()+e.slice(1)}function oe(e){let t=/* @__PURE__ */ new Map;for(let n of e){if(n.kind!==`method`||n.arity!==0||n.type===`void`||n.modifiers.includes(`static`)||!n.modifiers.includes(`public`))continue;let e=a.exec(n.name);e&&t.set(ae(e[2]),n.type)}return t}function se(e,t){if(e.kind===`interface`)return null;if(e.kind===`enum`)return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};let n=e.annotations.some(e=>r.has(f(e.name))),i=t?/* @__PURE__ */ new Map:oe(e.members),a=[],o=/* @__PURE__ */ new Set;for(let r of e.members){if(r.kind!==`parameter`&&r.kind!==`field`)continue;let e=t?pe(r,n,i):fe(r,n,i);e!==null&&(a.push(e),o.add(e.name))}for(let[e,t]of i)o.has(e)||a.push({name:e,type:t,serialised:!0});let s=e.supertypes,c=e.kind===`class`&&!t?s.find(e=>e.relation===`extends`):void 0,l=e.generic||e.members.some(e=>e.annotations.some(e=>f(e.name)===`JsonAny`))||t&&s.length>0;return{name:e.name,kind:`class`,fields:a,constants:[],extends:c?f(c.name):null,open:l}}function ce(e){if(e.kind===`enum`)return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};let t=e.members.flatMap(e=>e.kind===`field`||e.kind===`parameter`?[{name:e.name,type:e.type,serialised:!e.modifiers.includes(`static`)&&!e.name.startsWith(`#`)}]:[]),n=e.supertypes.filter(e=>e.relation===`extends`).map(e=>f(e.name)),r=e.generic||n.length>1||e.members.some(e=>e.kind===`index`||e.kind===`accessor`);return{name:e.name,kind:`class`,fields:t,constants:[],extends:n.length===1?n[0]:null,open:r}}function le(e){let t=e.supertypes.map(e=>f(e.name));if(t.some(e=>o.has(e)))return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};if(!e.annotations.some(e=>f(e.name)===`dataclass`)&&!t.some(e=>s.has(e)))return null;let n=t.filter(e=>!c.has(e)),r=e.members.flatMap(e=>e.kind===`field`&&e.type!==null&&!ee.test(e.type)?[{name:e.name,type:e.type,serialised:!0}]:[]),i=n.length>1||e.members.some(e=>e.kind===`config`&&u.has(e.name)||e.kind===`method`&&e.name===`__init__`)||e.members.some(e=>e.annotations.some(e=>e.arguments.some(e=>e.name!==null&&l.has(e.name))));return{name:e.name,kind:`class`,fields:r,constants:[],extends:n.length===1?n[0]:null,open:i}}function ue(e){let t=e.members.flatMap(e=>{if(e.kind!==`field`)return[];let t=te.exec(e.tag??``)?.[1],n=t!==void 0&&t!==`-`?t.split(`,`)[0]:``;return[{name:n===``?e.name:n,type:e.type,serialised:/^[A-Z]/.test(e.name)&&t!==`-`}]});return{name:e.name,kind:`class`,fields:t,constants:[],extends:null,open:e.generic||e.members.some(e=>e.kind===`embedded`)}}function de(e){if(e.kind===`enum`)return{name:e.name,kind:`enum`,fields:[],constants:e.constants,extends:null,open:!1};let t=e.supertypes.map(e=>f(e.name)).filter(e=>!ne.test(e)),n=e.members.flatMap(e=>{if(e.kind!==`field`&&e.kind!==`parameter`)return[];let t=e.kind===`parameter`||e.modifiers.includes(`public`)&&!e.modifiers.includes(`static`);return[{name:m(e.annotations,`JsonPropertyName`)??e.name,type:e.type,serialised:t&&!p(e.annotations,`JsonIgnore`)}]}),r=e.generic||t.length>1||e.members.some(e=>e.annotations.some(e=>f(e.name)===`JsonExtensionData`));return{name:e.name,kind:`class`,fields:n,constants:[],extends:t.length===1?t[0]:null,open:r}}function h(e){return m(e.annotations,n)??e.name}function fe(e,r,i){let a=p(e.annotations,t),o=p(e.annotations,n);if(e.kind===`parameter`)return{name:h(e),type:e.type,serialised:!a};let s=e.modifiers.includes(`static`),c=e.modifiers.includes(`transient`),l=e.modifiers.includes(`public`),u=!s&&!c&&!a&&(l||i.has(e.name)||r||o);return{name:h(e),type:e.type,serialised:u}}function pe(e,r,a){let o=p(e.annotations,t),s=e.modifiers.some(e=>i.has(e)),c=p(e.annotations,n);if(e.kind===`parameter`)return{name:h(e),type:e.type,serialised:!o&&!s};let l=!e.modifiers.includes(`const`)&&!o&&(!s||a.has(e.name)||r||c);return{name:h(e),type:e.type,serialised:l}}var g=class{placed;constructor(e,t){this.placed=e.map((e,n)=>({item:e,order:n,start:t(e)})).sort((e,t)=>e.start-t.start||e.order-t.order)}inOrder(e,t){return this.between(e,t).sort((e,t)=>e.order-t.order).map(e=>e.item)}byPosition(e,t){return this.between(e,t).map(e=>e.item)}between(e,t){let n=[];for(let r=this.firstFrom(e);r<this.placed.length&&this.placed[r].start<=t;r+=1)n.push(this.placed[r]);return n}firstFrom(e){let t=0,n=this.placed.length;for(;t<n;){let r=t+n>>>1;this.placed[r].start<e?t=r+1:n=r}return t}};const _=/* @__PURE__ */ new WeakMap;function v(e){let t=_.get(e);return t===void 0&&(t=me(e),_.set(e,t)),t}function y(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r);n.has(e)||n.set(e,r)}return n}function b(e,t){return e.from===t.from&&e.to===t.to}function me(e){let t=[...e.accesses,...e.innerAccesses];return{callsBySpan:new g(e.calls,e=>e.span.from),callsAt:new g(e.calls,e=>e.at),constructionsBySpan:new g(e.constructions,e=>e.span.from),callablesBySpan:new g(e.callables,e=>e.span.from),callablesAt:new g(e.callables,e=>e.at),parametersAt:new g(e.callables.flatMap(e=>e.parameters),e=>e.at),localsAt:new g(e.locals,e=>e.at),membersAt:new g(e.declarations.flatMap(e=>e.members),e=>e.at),accessesAt:new g(t,e=>e.at),accessesBySpan:new g(t,e=>e.span.from),returnsAt:new g(e.returns,e=>e.at),pairsByObject:he(e.pairs,e=>e.object),callableNamed:y(e.callables,e=>e.name),enclosingCall:x(e.calls.flatMap(e=>e.arguments.map(t=>({owner:e,span:t.span}))),e.calls),enclosingReturn:x(e.returns.map(e=>({owner:e,span:e.span})),e.calls)}}function he(e,t){let n=/* @__PURE__ */ new Map;for(let r of e){let e=t(r),i=n.get(e);i===void 0?n.set(e,[r]):i.push(r)}return n}function x(e,t){let n=[...e].sort((e,t)=>e.span.from-t.span.from||t.span.to-e.span.to),r=[...t].sort((e,t)=>e.span.from-t.span.from),i=[],a=/* @__PURE__ */ new Map,o=0;for(let e of r){let t=e.span.from;for(;o<n.length&&n[o].span.from<=t;){let e=n[o];for(;i.length>0&&i[i.length-1].span.to<=e.span.from;)i.pop();i.push(e),o+=1}for(;i.length>0&&i[i.length-1].span.to<=t;)i.pop();for(let t=i.length-1;t>=0;--t){let n=i[t].span;if(n.from<=e.span.from&&e.span.to<=n.to){a.set(e,i[t].owner);break}}}return a}const S={from:0,to:1/0},ge=/* @__PURE__ */ new Set([`java`,`kotlin`,`groovy`,`scala`]),_e=/* @__PURE__ */ new Set([`JobWorker`,`ZeebeWorker`]),C=/* @__PURE__ */ new Set([`Component`,`Service`,`Named`,`Repository`,`Controller`]),ve=/* @__PURE__ */ new Set([...C,`RestController`]),ye=/* @__PURE__ */ new Set([`ExternalTaskSubscription`]),be=/* @__PURE__ */ new Map([[`Variable`,`@Variable`],[`VariablesAsType`,`@VariablesAsType`]]),xe=/* @__PURE__ */ new Set([`getVariable`,`getVariableLocal`]),Se=/* @__PURE__ */ new Set([`get`,`getOrDefault`]),Ce=/* @__PURE__ */ new Set([`setVariable`,`setVariableLocal`]),w=/* @__PURE__ */ new Map([[`Map.of`,`arguments`],[`Map.ofEntries`,`entries`],[`Collections.singletonMap`,`arguments`],[`.mapOf`,`pairs`],[`.Map`,`pairs`]]),we=/* @__PURE__ */ new Set([`complete`,`CompleteJob`,`CompleteAsyncJob`,`completeJob`,`complete_async`]),Te=/* @__PURE__ */ new Set([`variables`,`setVariables`,`SetVariables`,`withVariables`,`Variables`]),T=/* @__PURE__ */ new Set([`worker`,`task`]),Ee=/* @__PURE__ */ new Set([`complete`,`completeJob`]),De=/* @__PURE__ */ new Set([`createWorker`,`subscribe`]),Oe=/* @__PURE__ */ new Map([[`SubscribeJobType`,`JOB_TYPE`],[`JobType`,`JOB_TYPE`],[`TopicName`,`TOPIC`]]),ke=/* @__PURE__ */ new Set([`Variables`,`VariablesMap`]),Ae=/* @__PURE__ */ new Map([[`TopicName`,`TOPIC`],[`TaskType`,`JOB_TYPE`],[`JobType`,`JOB_TYPE`]]),je=/* @__PURE__ */ new Set([`CompleteJob`,`CompleteAsyncJob`]),E=/* @__PURE__ */ new Set([`Variables`]),Me=/* @__PURE__ */ new Set([`Value`]),Ne=/^[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*$/,D=/[A-Za-z_]\w*/g,O=(e,t)=>`${e}:${t}`,k=e=>e.split(`.`).pop()??e,Pe=e=>e.charAt(0).toLowerCase()+e.slice(1),A=(e,t)=>e.from<=t&&t<e.to,j=e=>[...e].sort((e,t)=>e.at-t.at),Fe=e=>j([...e.accesses,...e.innerAccesses]),M=(e,t)=>v(e).accessesAt.byPosition(t.from,t.to),N=(e,t)=>t===void 0?[]:v(e).pairsByObject.get(t.span.from)??[],P=(e,t)=>v(e).callsBySpan.inOrder(t.from,t.from).find(e=>b(e.span,t)),Ie=(e,t)=>v(e).constructionsBySpan.inOrder(t.from,t.from).find(e=>b(e.span,t));function F(e,t,n,r,i,a){return e==null||e.trim()===``?[]:[{name:e,writes:t,type:n,where:r,at:i,literal:a??i}]}function I(e,t){for(let n of t){let t=e.arguments.find(e=>e.name===n)?.value;if(t!=null)return t}}function L(e,t){return t.values===null?t.value===null?P(e,t.span)?.arguments.flatMap(e=>e.value??[])??[]:[t.value]:t.values}function R(e){return e.receiver===null?null:{from:e.span.from,to:e.span.from+e.receiver.length}}function z(e,t){let n=R(t);return n===null?void 0:P(e,n)}function Le(e,t){let n=R(t);return n===null?void 0:v(e).accessesBySpan.inOrder(n.from,n.from).find(e=>b(e.span,n))}function Re(e,t,n){let r=v(e),i=/* @__PURE__ */ new Set,a=e=>{e!=null&&i.add(e.replace(/^\*/,``))};return r.localsAt.inOrder(t.from,t.to).filter(e=>e.name===n&&A(t,e.at)).forEach(e=>a(e.type??e.initializer?.constructs)),r.parametersAt.inOrder(t.from,t.to).filter(e=>e.name===n&&A(t,e.at)).forEach(e=>a(e.type)),r.membersAt.inOrder(t.from,t.to).filter(e=>(e.kind===`field`||e.kind===`parameter`)&&e.name===n&&A(t,e.at)).forEach(e=>a(e.type)),i.size===1?[...i][0]:null}function B(e,t,n){return n==null?null:n.identifier===null?n.constructs:Re(e,t,n.identifier)}function V(e){return k(e?.trim()??``).replace(/\[\]/g,``)}function H(e){let t=d(e.filter(e=>ge.has(e.language)));return new Map(t.filter(e=>e.kind===`class`).map(e=>[e.name,e.fields.filter(e=>e.serialised)]))}function ze(e,t){return e.callables.flatMap(n=>{let r=n.annotations.find(e=>_e.has(k(e.name)));if(r===void 0)return[];let i=I(r,[`type`,`taskType`]),a=i??n.name;if(!t.has(O(`JOB_TYPE`,a)))return[];let o=r.arguments.find(e=>e.name===`fetchVariables`);return[{kind:`JOB_TYPE`,value:a,span:n.span,fetch:o===void 0?[]:L(e,o),fetchAt:r.at,declared:o!==void 0,implicit:i===void 0?{jobType:a,method:n.name}:void 0,implicitAt:r.at}]})}function Be(e,t){let n=e.filter(e=>C.has(k(e.name))).flatMap(e=>I(e,[null,`value`])??[]).at(-1);return n===void 0?e.some(e=>ve.has(k(e.name)))?Pe(t):void 0:n}function Ve(e){let t=e.find(e=>ye.has(k(e.name)));return t===void 0?void 0:I(t,[`topicName`,null,`value`])}function He(e,t){return e.declarations.filter(e=>e.kind===`class`||e.kind===`record`).flatMap(n=>{let r=e.package===null?n.name:`${e.package}.${n.name}`;return $([...[n.name,r].map(e=>({kind:`CLASS`,value:e})),{kind:`BEAN`,value:Be(n.annotations,n.name)},{kind:`TOPIC`,value:Ve(n.annotations)}].flatMap(({kind:e,value:r})=>r===void 0||!t.has(O(e,r))?[]:[{kind:e,value:r,span:n.span,fetch:[],fetchAt:0,declared:!1,implicitAt:0}]),e=>e.kind)})}function Ue(e,t,n){let r=v(e).callablesAt.inOrder(t.from,t.to).filter(e=>A(t,e.at)).flatMap(e=>e.parameters);return j(r.flatMap(e=>e.annotations.flatMap(t=>{let r=be.get(k(t.name));return r===`@Variable`?F(I(t,[`name`,`value`,null])??e.name,!1,null,r,t.at):r===`@VariablesAsType`?(n.get(V(e.type))??[]).flatMap(e=>F(e.name,!1,e.type,r,t.at)):[]})))}function We(e,t){let n=v(e),r=n.enclosingCall.get(t);return r!==void 0&&we.has(r.name)?`complete`:r!==void 0&&Te.has(r.name)?`variables`:n.enclosingReturn.has(t)?`return`:null}function Ge(e,t,n){let{arguments:r}=t;return n===`pairs`?r.flatMap(t=>N(e,t).filter(e=>e.quoted).map(e=>({name:e.key,value:e.value,literal:e.at}))):n===`arguments`?r.flatMap((e,t)=>t%2==0?[{name:e.value,value:r[t+1],literal:e.span.from}]:[]):r.map(t=>{let n=P(e,t.span)??Ie(e,t.span);return{name:n?.arguments[0]?.value??null,value:n?.arguments[1],literal:n?.arguments[0]?.span.from}})}function Ke(e,t,n){return[...n.filter(e=>w.has(`${k(e.receiver??``)}.${e.name}`))].sort((e,t)=>e.span.from-t.span.from).flatMap(n=>{let r=We(e,n);return r===null?[]:Ge(e,n,w.get(`${k(n.receiver??``)}.${n.name}`)??``).flatMap(i=>F(i.name,!0,B(e,t,i.value),r,n.span.from,i.literal))})}function qe(e,t,n){let r=v(e),i=/* @__PURE__ */ new Map;for(let e of r.localsAt.inOrder(t.from,t.to).filter(e=>A(t,e.at))){let t=V(e.type??e.initializer?.constructs);n.has(t)&&i.set(e.name,t)}for(let e of r.callablesAt.inOrder(t.from,t.to).filter(e=>A(t,e.at)).flatMap(e=>e.parameters))e.annotations.some(e=>k(e.name)===`VariablesAsType`)&&i.set(e.name,V(e.type));return r.returnsAt.inOrder(t.from,t.to).filter(e=>A(t,e.at)).flatMap(e=>{let t=i.get(e.expression?.identifier??``);return(n.get(t??``)??[]).flatMap(t=>F(t.name,!0,t.type,`return`,e.at))})}function Je(e,t,n){let r=t.span,i=v(e).callsAt.byPosition(r.from,r.to).filter(e=>A(r,e.at)),a=i.filter(e=>Se.has(e.name)).flatMap(t=>{let n=z(e,t);return n?.name===`getVariablesAsMap`&&n.arguments.length===0?F(t.arguments[0]?.value,!1,null,`variables`,n.at,t.arguments[0]?.span.from):[]});return[...i.filter(e=>xe.has(e.name)).flatMap(e=>F(e.arguments[0]?.value,!1,null,`getVariable`,e.at,e.arguments[0]?.span.from)),...a,...i.filter(e=>Ce.has(e.name)).flatMap(t=>F(t.arguments[0]?.value,!0,B(e,r,t.arguments[1]),`setVariable`,t.at,t.arguments[0]?.span.from)),...Ue(e,r,n),...Ke(e,r,i),...qe(e,r,n)]}function Ye(e,t){let n=t.span,r=e=>e!==null&&Ne.test(e),i=v(e).returnsAt.inOrder(n.from,n.to).filter(e=>A(n,e.at)).flatMap(t=>{let r=t.expression;if(r===null)return[];let i=N(e,r),a=P(e,r.span);return(i.length>0||a?.name!==`complete_job`?i:N(e,a.arguments.find(e=>e.name===`variables`))).filter(e=>e.quoted).flatMap(r=>F(r.key,!0,B(e,n,r.value),`complete`,t.at,r.at))});return[...M(e,n).filter(e=>A(n,e.at)&&r(e.receiver)).flatMap(e=>F(e.key,!1,null,`variables`,e.at,e.keyAt)),...v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&e.name===`get`&&r(e.receiver)).flatMap(e=>F(e.arguments[0]?.value,!1,null,`variables`,e.span.from,e.arguments[0]?.span.from)),...i]}function U(e,t){let n=e.pairs.find(e=>e.key===`taskVariables`&&t.includes(e.object));return n===void 0?null:L(e,n.value)}function Xe(e,t){let n=j(e.calls),r=e=>e.arguments.map(e=>e.span.from),i=n=>e.pairs.some(e=>e.object===n.arguments[0]?.span.from&&e.key===`type`&&e.value.value===t),a=i=>n.filter(e=>e.name===i&&e.arguments[0]?.value===t).map(t=>({at:t.at,fetch:U(e,r(t))}));return[j(e.pairs).filter(e=>e.key===`taskType`&&e.value.value===t).map(t=>({at:t.at,fetch:U(e,[t.object])})),n.filter(e=>e.name===`createJobWorker`&&i(e)).map(t=>({at:t.at,fetch:U(e,r(t))})),...[...De].map(a)]}function Ze(e,t){return[...t.values()].flatMap(([{kind:t,value:n}])=>{if(t!==`JOB_TYPE`&&t!==`TOPIC`)return[];let r=Xe(e,n).find(e=>e.length>0)?.[0];return r===void 0?[]:[{kind:t,value:n,span:S,fetch:r.fetch??[],fetchAt:r.at,declared:r.fetch!==null,implicitAt:0}]})}function Qe(e){let t=Fe(e).filter(e=>e.receiver===`job.variables`),n=j(e.calls).filter(e=>Ee.has(e.name)).flatMap(t=>N(e,t.arguments[1]).flatMap(n=>F(n.key,!0,B(e,S,n.value),`complete`,t.at,n.at)));return[...t.flatMap(e=>F(e.key,!1,null,`variables`,e.at,e.keyAt)),...t.flatMap(e=>F(e.name,!1,null,`variables`,e.at)),...e.locals.filter(e=>e.initializer?.text===`job.variables`).flatMap(e=>F(e.key,!1,null,`variables`,e.at)),...n]}function W(e,t,n){return v(e).callsBySpan.inOrder(t.span.from,t.span.from).filter(e=>e.name===n&&e.span.from===t.span.from&&e.span.to>t.span.to)}function G(e){return e?.identifier??e?.reference??null}function K(e,t,n){let r=G(t),i=r===null?void 0:v(e).callableNamed.get(r);return i===void 0?n===void 0?t?.span??null:n.span:i.span}function $e(e){return e.callables.flatMap(t=>t.annotations.flatMap(n=>{if(!T.has(k(n.name)))return[];let r=n.arguments.find(e=>(e.name===`task_type`||e.name===`topic_name`)&&e.value!==null),i=r?.value??null;if(r===void 0||i===null)return[];let a=n.arguments.find(e=>e.name?.includes(`variables`)??!1);return[{kind:r.name===`task_type`?`JOB_TYPE`:`TOPIC`,value:i,valueAt:r.span.from,at:n.at,end:t.span.to,span:t.span,fetch:a===void 0?null:L(e,a),contract:!0,handler:t.name}]}))}function et(e){return j(e.calls).flatMap(t=>{if(!T.has(t.name))return[];let n=t.arguments.find(e=>(e.name===`task_type`||e.name===`topic_name`)&&e.value!==null),r=W(e,t,t.name)[0];if(n===void 0||n.value===null||r===void 0)return[];let i=t.arguments.find(e=>e.name?.includes(`variables`)??!1),a=r.arguments[0];return[{kind:n.name===`task_type`?`JOB_TYPE`:`TOPIC`,value:n.value,valueAt:n.span.from,at:t.at,end:r.span.to,span:K(e,a,r)??S,fetch:i===void 0?null:L(e,i),contract:!0,handler:G(a)}]})}function tt(e){let t=e.arguments.slice(1),n=t.map(e=>e.constructs!==null).lastIndexOf(!0),r=t.slice(n+1).flatMap(e=>e.value??[]);return r.length>0?r:null}function nt(e){return j(e.calls).flatMap(t=>{let n=Oe.get(t.name),r=t.arguments[0],i=r?.value??null;if(n===void 0||r===void 0||i===null)return[];let a=W(e,t,`Handler`)[0],o=t.name===`SubscribeJobType`?t.arguments[1]:a?.arguments[0];return[{kind:n,value:i,valueAt:r.span.from,at:t.at,end:t.span.to,span:K(e,o,a)??S,fetch:tt(t),contract:!0,handler:G(o)}]})}function rt(e,t){let n=t.span,r=new Set(v(e).localsAt.inOrder(n.from,n.to).filter(e=>A(n,e.at)&&e.initializer?.text===`job.Variables()`).map(e=>e.name)),i=M(e,n).filter(e=>A(n,e.at)).flatMap(t=>{let n=z(e,t);return n!==void 0&&ke.has(n.name)&&n.arguments.length===0?F(t.key,!1,null,`variables`,n.at,t.keyAt):r.has(t.receiver)?F(t.key,!1,null,`variables`,t.at,t.keyAt):[]}),a=v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&e.name===`Variables`&&(e.arguments[0]?.constructs?.startsWith(`map[`)??!1)).flatMap(t=>N(e,t.arguments[0]).filter(e=>e.quoted).flatMap(r=>F(r.key,!0,B(e,n,r.value),`variables`,t.at,r.at)));return[...i,...a]}function it(e,t){let n=j(v(e).callsBySpan.inOrder(t.span.from,t.span.from)).filter(e=>E.has(e.name)&&e.span.from===t.span.from&&e.span.to>t.span.to);return n.length===0?null:n.flatMap(e=>e.arguments.flatMap(e=>e.value??[]))}function at(e){let t=j(e.calls),n=[...e.declarations,...e.callables].flatMap(e=>e.annotations.flatMap(e=>e.arguments)),r=(t,r)=>j([...n.flatMap(e=>e.name===t&&e.value!==null?[{kind:r,value:e.value,valueAt:e.span.from,at:e.at,end:e.span.to,span:S,fetch:null,contract:!1,handler:null}]:[]),...e.pairs.flatMap(e=>e.key===t&&e.value.value!==null?[{kind:r,value:e.value.value,valueAt:e.value.span.from,at:e.at,end:e.value.span.to,span:S,fetch:null,contract:!1,handler:null}]:[])]),i=(n,r)=>t.flatMap(t=>{let i=t.arguments[0],a=i?.value??null;if(t.name!==n||i===void 0||a===null)return[];let o=W(e,t,`Handler`)[0];return[{kind:r,value:a,valueAt:i.span.from,at:t.at,end:t.span.to,span:K(e,o?.arguments[0],o)??S,fetch:it(e,t),contract:!0,handler:G(o?.arguments[0])}]});return[...Ae].flatMap(([e,t])=>[...r(e,t),...i(e,t)])}function ot(e,t){let n=t.span,r=t=>E.has(Le(e,t)?.name??``),i=v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&je.has(e.name)).flatMap(t=>N(e,t.arguments[1]).filter(e=>e.quoted).flatMap(r=>F(r.key,!0,B(e,n,r.value),`complete`,t.at,r.at)));return[...M(e,n).filter(e=>A(n,e.at)&&r(e)).flatMap(e=>F(e.key,!1,null,`variables`,e.at,e.keyAt)),...v(e).callsAt.byPosition(n.from,n.to).filter(e=>A(n,e.at)&&Me.has(e.name)&&r(e)).flatMap(e=>F(e.arguments[0]?.value,!1,null,`variables`,e.span.from,e.arguments[0]?.span.from)),...i]}function q(e){return j(e.calls).flatMap(t=>{let n=t.arguments[0],r=n?.value??null;if(t.name!==`jobType`||t.receiver===null||n===void 0||r===null)return[];let i=W(e,t,`handler`)[0],a=W(e,t,`fetchVariables`);return[{kind:`JOB_TYPE`,value:r,valueAt:n.span.from,at:t.at,end:t.span.to,span:K(e,i?.arguments[0],i)??t.span,fetch:a.length===0?null:a.flatMap(e=>e.arguments.flatMap(e=>e.value??[])),contract:!0,handler:G(i?.arguments[0])}]})}const st={java:q,kotlin:q,groovy:q,scala:q,typescript:()=>[],javascript:()=>[],python:e=>[...$e(e),...et(e)],go:nt,csharp:at};function J(e){return st[e.language](e)}function Y(e){return{kind:e.kind,value:e.value,span:e.span,fetch:e.fetch??[],fetchAt:e.at,declared:e.fetch!==null,implicitAt:0}}function X(e,t){let n=/* @__PURE__ */ new Set;return J(e).flatMap(e=>{let r=O(e.kind,e.value);return!t.has(r)||n.has(r)?[]:(n.add(r),[Y(e)])})}function ct(e,t,n){return ut[e.language].variables(e,Y(t),n)}const Z={regions:(e,t)=>[...ze(e,t),...He(e,t),...X(e,t)],variables:Je},lt={regions:Ze,variables:Qe},Q={regions:X},ut={java:Z,kotlin:Z,groovy:Z,scala:Z,typescript:lt,javascript:lt,python:{...Q,variables:Ye},go:{...Q,variables:rt},csharp:{...Q,variables:ot}};function dt(e,t){let n=new Map(e.map(e=>[e.name,e])),r=/* @__PURE__ */ new Map,i=[...t];for(let e=i.pop();e!==void 0;e=i.pop()){let t=n.get(e);t&&!r.has(e)&&(r.set(e,t),t.fields.forEach(e=>i.push(...e.type?.match(D)??[])),t.extends!==null&&i.push(t.extends))}return[...r.values()]}function ft(e,t){let n=t.flatMap(e=>e?.match(D)??[]);return n.length===0?[]:dt(d(e),n)}function $(e,t){let n=/* @__PURE__ */ new Set;return e.filter(e=>{let r=t(e);return!n.has(r)&&(n.add(r),!0)})}function pt(t,n){if(n.length===0||t.length===0)return{variables:[],fetches:[],implicitJobTypes:[],types:[]};let r=/* @__PURE__ */ new Map;for(let e of n)r.set(O(e.kind,e.value),[...r.get(O(e.kind,e.value))??[],e]);let i=H(t),a=[],o=[],s=[];for(let n of t){let t=ut[n.language];for(let c of t.regions(n,r)){let l=t.variables(n,c,i),u=e(n.lineStarts,c.fetchAt);for(let{elementId:t}of r.get(O(c.kind,c.value))??[])a.push(...l.map(r=>({elementId:t,name:r.name,writes:r.writes,type:r.type,where:r.where,path:n.path,line:e(n.lineStarts,r.at),offset:r.at}))),o.push({elementId:t,names:c.fetch,declared:c.declared,path:n.path,line:u}),c.implicit&&s.push({elementId:t,jobType:c.implicit.jobType,method:c.implicit.method,path:n.path,line:u,offset:c.implicitAt})}}let c=$(a,e=>JSON.stringify([e.elementId,e.name,e.writes,e.where]));return{variables:c,fetches:$(o,e=>e.elementId),implicitJobTypes:s,types:ft(t,c.map(e=>e.type))}}export{pt as a,J as i,ft as n,v as o,H as r,y as s,ct as t};
@@ -1 +1 @@
1
- import{r as e}from"./chunk-translator-DNm9zRpP.js";import{t}from"./chunk-list-XuNpvC6j.js";import{a as n}from"./chunk-workerVariables-CajAcbwl.js";import{a as r,i}from"./chunk-codeIndex-N1gnP_sW.js";const a={variables:[],fetches:[],implicitJobTypes:[]};function o(e){return e.split(/[\\/]/).pop()??e}function s(e){return(e??a).variables.map(e=>({name:e.name,writes:e.writes,elementId:e.elementId,where:`${e.where} in ${o(e.path)}:${e.line}`,type:e.type??null,path:e.path,line:e.line,offset:e.offset}))}function c(e,t){let n=s(t);return n.length===0?e:{...e,variables:[...e.variables,...n]}}function l(t){return e(t===`mcp-client`?`app.connections.kind.mcpClient`:`app.connections.kind.${t}`)}function u(t){let{name:n,environment:r,replacement:i,against:a,prefix:o}=t;switch(t.rule){case`secret-undefined`:return r===null?e(`app.connections.finding.secretUndefined`,{name:n}):e(`app.connections.finding.secretUndefinedIn`,{name:n,environment:r});case`secret-prefix`:return e(`app.connections.finding.secretPrefix`,{name:n,prefix:o??``});case`mcp-client-undefined`:return r===null?e(`app.connections.finding.mcpClientUndefined`,{name:n}):e(`app.connections.finding.mcpClientUndefinedIn`,{name:n,environment:r});case`property-renamed`:return e(`app.connections.finding.propertyRenamed`,{name:n,replacement:i??``});case`property-removed`:return e(`app.connections.finding.propertyRemoved`,{name:n});case`secret-missing-in-env`:return e(`app.connections.finding.secretMissing`,{name:n,against:a??``,environment:r??``});case`key-missing-in-env`:return e(`app.connections.finding.keyMissing`,{name:n,against:a??``,environment:r??``})}}function d(n){if(n.rule===`secret-undefined`&&n.providers.length>0)return e(`app.connections.finding.secretUndefinedHint`,{providers:t(n.providers)})}async function f(e,t){let a=e.filter(e=>r(e.path)!==null);return i().pass(a.length,async e=>n(await e(a),t))}export{o as a,l as i,d as n,s as o,u as r,c as s,f as t};
1
+ import{r as e}from"./chunk-translator-DNm9zRpP.js";import{t}from"./chunk-list-XuNpvC6j.js";import{a as n}from"./chunk-workerVariables-CNnCRijJ.js";import{a as r,i}from"./chunk-codeIndex-vStNh6Bm.js";const a={variables:[],fetches:[],implicitJobTypes:[]};function o(e){return e.split(/[\\/]/).pop()??e}function s(e){return(e??a).variables.map(e=>({name:e.name,writes:e.writes,elementId:e.elementId,where:`${e.where} in ${o(e.path)}:${e.line}`,type:e.type??null,path:e.path,line:e.line,offset:e.offset}))}function c(e,t){let n=s(t);return n.length===0?e:{...e,variables:[...e.variables,...n]}}function l(t){return e(t===`mcp-client`?`app.connections.kind.mcpClient`:`app.connections.kind.${t}`)}function u(t){let{name:n,environment:r,replacement:i,against:a,prefix:o}=t;switch(t.rule){case`secret-undefined`:return r===null?e(`app.connections.finding.secretUndefined`,{name:n}):e(`app.connections.finding.secretUndefinedIn`,{name:n,environment:r});case`secret-prefix`:return e(`app.connections.finding.secretPrefix`,{name:n,prefix:o??``});case`mcp-client-undefined`:return r===null?e(`app.connections.finding.mcpClientUndefined`,{name:n}):e(`app.connections.finding.mcpClientUndefinedIn`,{name:n,environment:r});case`property-renamed`:return e(`app.connections.finding.propertyRenamed`,{name:n,replacement:i??``});case`property-removed`:return e(`app.connections.finding.propertyRemoved`,{name:n});case`secret-missing-in-env`:return e(`app.connections.finding.secretMissing`,{name:n,against:a??``,environment:r??``});case`key-missing-in-env`:return e(`app.connections.finding.keyMissing`,{name:n,against:a??``,environment:r??``})}}function d(n){if(n.rule===`secret-undefined`&&n.providers.length>0)return e(`app.connections.finding.secretUndefinedHint`,{providers:t(n.providers)})}async function f(e,t){let a=e.filter(e=>r(e.path)!==null);return i().pass(a.length,async e=>n(await e(a),t))}export{o as a,l as i,d as n,s as o,u as r,c as s,f as t};
@@ -0,0 +1 @@
1
+ export{l as updateCommand}from"./chunk-wrapper-CK7Xtes6.js";
@@ -0,0 +1,3 @@
1
+ import{r as e}from"./chunk-context-rCJvBM9p.js";import{n as t,t as n}from"./chunk-version-CdS8_QQd.js";import{r}from"./chunk-translator-DNm9zRpP.js";import{n as i}from"./chunk-status-CmYxwOCn.js";import a from"node:path";import{homedir as o}from"node:os";import{chmodSync as s,copyFileSync as c,existsSync as l,mkdirSync as u,readFileSync as d,renameSync as f,rmSync as p,writeFileSync as m}from"node:fs";import{spawnSync as h}from"node:child_process";const g=a.join(`penstock`,`wrapper`,`penstock-wrapper.properties`),_=[`penstockw`,`penstockw.cmd`],v=a.join(import.meta.dirname,`wrapper`);function y(e){let t=a.join(e,g);if(!l(t))return{};let n={};for(let e of d(t,`utf8`).split(/\r?\n/)){let t=/^(version|distribution)=(.*)$/.exec(e.trim());t&&(n[t[1]]=t[2].trim())}return n}function b(e,t){let n=a.join(e,g);u(a.dirname(n),{recursive:!0});let i=[`# ${r(`app.config.local.wrapperWhichPenstock`)}`,`# ${r(`app.config.local.wrapperChangeVersion`)}`,`version=${t.version??`latest`}`,...t.distribution?[`distribution=${t.distribution}`]:[]];return m(n,`${i.join(`
2
+ `)}\n`),n}function x(e){let t=a.resolve(e);for(;;){if(l(a.join(t,`penstockw`))||l(a.join(t,g)))return t;let e=a.dirname(t);if(e===t)return null;t=e}}function S(e,t=v){let n=[];for(let r of _){let i=a.join(e,r);c(a.join(t,r),i),r===`penstockw`&&s(i,493),n.push(i)}return n}function C(n,r){if(!(_.every(e=>l(a.join(n,e)))&&l(a.join(n,g)))){for(let t of S(n))r.push(`${i(`wrote`).padEnd(8)} ${e(t)}`);l(a.join(n,g))||r.push(`${i(`wrote`).padEnd(8)} ${e(b(n,{version:t()??`latest`}))}`)}}function w(e=process.env){return a.join(e.PENSTOCK_HOME||a.join(o(),`.penstock`),`wrapper`,`dists`)}function T(e,t){let n=h(process.platform===`win32`?`npm.cmd`:`npm`,e,{cwd:t,encoding:`utf8`,shell:process.platform===`win32`});return{ok:n.status===0,out:(n.stdout??``).trim(),err:(n.stderr??``).trim()}}function E(){let e=T([`view`,n,`version`]),t=e.out.trim().split(`
3
+ `).at(-1)?.trim();return e.ok&&t?t:null}function D(e,t){if(t)return t.startsWith(`./`)||t.startsWith(`../`)?a.join(e,t):t}const O=/^[A-Za-z0-9][A-Za-z0-9._+-]*$/,k=/^-|[&|<>^"'%!;`$()\u0000-\u001f]/;function A(e,t,i=process.env){if(!O.test(e))throw Error(`${e} is not a valid version`);if(t!==void 0&&k.test(t))throw Error(`${t} is not a valid distribution`);let o=w(i),s=a.join(o,e),c=a.join(s,`node_modules`,...n.split(`/`),`dist`,`penstock.js`);if(l(c))return{entry:c,downloaded:!1};u(o,{recursive:!0});let d=a.join(o,`.${e}.${process.pid}`);p(d,{recursive:!0,force:!0});let m=T([`install`,`--prefix`,d,`--no-audit`,`--no-fund`,`--no-package-lock`,`--loglevel=error`,t??`@kern0x1b/penstock-cli@${e}`]);if(!m.ok)throw p(d,{recursive:!0,force:!0}),Error(m.err||r(`app.cli.update.npmFailed`,{package:t??`@kern0x1b/penstock-cli@${e}`}));if(l(c)?p(d,{recursive:!0,force:!0}):(p(s,{recursive:!0,force:!0}),f(d,s)),!l(c))throw Error(r(`app.cli.update.noCli`,{package:t??`@kern0x1b/penstock-cli`}));return{entry:c,downloaded:!0}}function j(t,o={}){let s=x(t);if(!s)return{ok:!1,lines:[r(`app.cli.update.noWrapper`)]};let c=y(s),l=!o.version||o.version===`latest`?(o.latest??E)():o.version;if(!l)return{ok:!1,lines:[r(`app.cli.update.noLatest`,{package:n})]};let u=o.distribution??(l===c.version?c.distribution:void 0),d;try{d=A(l,D(s,u),o.env)}catch(e){return{ok:!1,lines:[r(`app.cli.update.downloadFailed`,{version:l,reason:e instanceof Error?e.message:String(e)})]}}let f=S(s,a.join(a.dirname(d.entry),`wrapper`));b(s,{version:l,distribution:u});let p=[c.version===l?r(`app.cli.update.alreadyPinned`,{version:l}):r(`app.cli.update.moved`,{from:c.version??r(`app.cli.update.none`),to:l}),d.downloaded?r(`app.cli.update.downloaded`,{version:l,home:w(o.env)}):r(`app.cli.update.alreadyDownloaded`,{version:l}),...f.map(t=>`${i(`wrote`).padEnd(8)} ${e(t)}`),`${i(`wrote`).padEnd(8)} ${e(a.join(s,g))}`];return c.distribution&&!u&&p.push(r(`app.cli.update.droppedDistribution`,{distribution:c.distribution,version:c.version})),p.push(``,r(`app.cli.update.commit`,{scripts:_.join(`, `),properties:g.split(a.sep).join(`/`)})),{ok:!0,lines:p}}export{S as a,D as c,C as d,x as i,j as l,w as n,E as o,A as r,y as s,g as t,b as u};
Binary file
package/dist/penstock.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{t as e}from"./chunk-cacheDirectory-7sa0970e.js";import{n as t}from"./chunk-version-CdS8_QQd.js";import*as n from"node:module";import r from"node:v8";import i from"node:path";function a(t=process.env){return i.join(i.dirname(e(t)),`compile`)}function o(e=process.env,t=n.enableCompileCache){if(typeof t!=`function`||e.NODE_COMPILE_CACHE||e.NODE_DISABLE_COMPILE_CACHE)return!1;try{return t(a(e)),!0}catch{return!1}}r.setFlagsFromString(`--no-concurrent-sparkplug`),o();const s=process.argv.slice(2);s.length===1&&(s[0]===`--version`||s[0]===`version`)?process.stdout.write(`${t()??`development`}\n`):await import(`./chunk-main-Cw2JXCil.js`);export{};
2
+ import{t as e}from"./chunk-cacheDirectory-7sa0970e.js";import{n as t}from"./chunk-version-CdS8_QQd.js";import*as n from"node:module";import r from"node:v8";import i from"node:path";function a(t=process.env){return i.join(i.dirname(e(t)),`compile`)}function o(e=process.env,t=n.enableCompileCache){if(typeof t!=`function`||e.NODE_COMPILE_CACHE||e.NODE_DISABLE_COMPILE_CACHE)return!1;try{return t(a(e)),!0}catch{return!1}}r.setFlagsFromString(`--no-concurrent-sparkplug`),o();const s=process.argv.slice(2);s.length===1&&(s[0]===`--version`||s[0]===`version`)?process.stdout.write(`${t()??`development`}\n`):await import(`./chunk-main-BZF-ErAx.js`);export{};
@@ -1 +1 @@
1
- import"./rolldown-runtime-B8BYMn-z.js";import{c as e,h as t,i as n,r,s as i,u as a}from"./vendor-NJP34MHU.js";import{i as o,n as s}from"./translator-DLDFsUlE.js";import{n as c,r as l}from"./httpHost-DBSjdVth.js";import{t as u}from"./bridgeInstance-qzSInqLW.js";import{n as d,u as f}from"./ui-BTKMbWYG.js";import{i as p,r as m}from"./preferences-BcLlKYFq.js";var h=[`off`,`bottom`,`sidebar`],g=`bottom`;function aiChatPlaceOf(e){return h.find(t=>t===e)??`bottom`}function aiChatSurfaces(e){let t=e!==`off`;return{bottomInput:e===`bottom`,card:e===`bottom`,chatTab:t,chatsList:t,toolbarButton:t,paletteAction:t,agentProcess:t}}var _=null;function registerAgentsOpener(e){return _=e,()=>{_===e&&(_=null)}}async function openAgentsScreen(){if(_)_();else try{await u().agentsHost?.().openSettings()}catch(e){console.error(`The AI agents screen did not open:`,e)}}function normalise(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/+$/,``)}function pathsMatch(e,t){return normalise(e)===normalise(t)}function baseName(e){return normalise(e).split(`/`).filter(Boolean).pop()??e}var v=1e3,y=15e3,b=2e3,x={status:`loading`,entries:[],queue:[],permission:null,error:null,options:[]},S={text:``,mentions:[],dismissed:[],focus:0};function isLicenceRefusal(e){return e instanceof l&&e.status===402}function newClientId(){return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function upsert(e,t){let n=e.findIndex(e=>e.id===t.id);if(n<0){let n=[...e,t];return n.length>b?n.slice(n.length-b):n}let r=e.slice();return r[n]=t,r}function withPlan(e,t){let n=-1;for(let t=e.length-1;t>=0;--t)if(e[t].kind===`plan`){n=t;break}if(n<0)return upsert(e,{kind:`plan`,id:`plan`,items:t});let r=e.slice();return r[n]={kind:`plan`,id:e[n].id,items:t},r}function withApproved(e,t){let n=e.status===`done`&&e.diffs.length===0?t?.get(c(e)):void 0;return n?{...e,diffs:n}:e}function applyToTranscript(e,t,n){switch(t.type){case`entry`:{let r=t.entry.kind===`tool`?{...t.entry,tool:withApproved(t.entry.tool,n)}:t.entry,i=e.entries.find(e=>e.id===r.id);return i&&JSON.stringify(i)===JSON.stringify(r)?e:{...e,entries:upsert(e.entries,r)}}case`tool`:return{...e,entries:upsert(e.entries,{kind:`tool`,id:c(t.tool),tool:withApproved(t.tool,n)})};case`plan`:return{...e,entries:withPlan(e.entries,t.items)};case`queue`:return{...e,queue:t.queue};case`permission`:return{...e,permission:t.permission};case`error`:return{...e,error:t.error};case`options`:return{...e,options:t.options};default:return e}}function sameChats(e,t){return e.length===t.length&&e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n]))}var AssistantStore=class{state;listeners=new Set;host;options;client;pending=new Map;approved=new Map;loading=new Map;openings=new Set;expected=null;waitingChat=null;manage;control=null;started=!1;disposed=!1;failures=0;resyncing=null;constructor(e,t={}){this.host=e,this.options=t,this.client=t.client??newClientId(),this.manage=t.onManageAgents??null;let n=t.place?t.place():g;this.state={enabled:n!==`off`,place:n,loaded:!1,connected:!1,choices:[],chats:[],transcripts:{},active:{},shown:{},folded:{},revealed:{},focused:null,agentId:null,drafts:{},picks:{},canManageAgents:!!t.onManageAgents,failure:null}}snapshot=()=>this.state;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.state={...this.state,...e},this.recordOpenings();for(let e of[...this.listeners])try{e()}catch(e){console.error(`An assistant listener failed:`,e)}}recordOpenings(){for(let e of Object.keys(this.state.active))!this.openings.has(e)&&this.settled(e)&&this.openings.add(e)}settled(e){if(!this.state.loaded)return!1;let t=this.activeChat(e);if(t===null)return!0;let n=this.state.transcripts[t.id];return n!==void 0&&n.status!==`loading`}opened(e){return!this.state.enabled||this.openings.has(e)}describe(e){return e instanceof l&&e.failure?e.failure:{key:`app.agent.failed`,detail:e instanceof Error?e.message:String(e)}}wait(e){return this.options.wait?this.options.wait(e):new Promise(t=>setTimeout(t,e))}allowed(){return!this.options.place||this.options.place()!==`off`}setPlace(e){if(e===this.state.place)return;let t=e!==`off`;this.commit({place:e,enabled:t}),t?this.started&&this.begin():this.halt()}start(){return this.disposed?Promise.resolve():(this.started=!0,this.allowed()?(this.state.enabled||this.commit({enabled:!0}),this.control&&!this.control.signal.aborted?Promise.resolve():this.begin()):(this.state.enabled&&this.commit({enabled:!1}),Promise.resolve()))}begin(){let e=new AbortController;this.control=e;let t=this.resync();return this.pump(e),t}halt(){this.control?.abort(),this.control=null,this.commit({connected:!1})}dispose(){this.disposed=!0,this.started=!1,this.halt(),this.listeners.clear()}async pump(e){for(;!e.signal.aborted;)try{let t=await this.host.next(this.client,e.signal);if(e.signal.aborted)return;this.failures>0&&(this.failures=0,this.state.connected||this.commit({connected:!0})),t&&this.receive(t)}catch{if(e.signal.aborted)return;this.failures+=1,this.state.connected&&this.commit({connected:!1});let t=Math.min(this.options.maxRetryMs??y,(this.options.retryMs??v)*2**Math.min(this.failures-1,6));if(await this.wait(t),e.signal.aborted)return;await this.resync()}}resync(){if(this.resyncing)return this.resyncing;let e=(async()=>{try{let[e,t]=await Promise.all([this.host.choices().catch(()=>this.state.choices),this.host.chats()]);this.commit({choices:e,loaded:!0,connected:!0,enabled:t.enabled&&this.allowed(),failure:null}),this.takeChats(t.chats);let n=Object.keys(this.state.transcripts);await Promise.all(n.map(e=>this.fetchChat(e,!0)))}catch(e){this.state.loaded||this.commit({loaded:!0}),this.commit({failure:this.describe(e)})}finally{this.resyncing=null}})();return this.resyncing=e,e}takeChats(e){let t=new Set(e.map(e=>e.id)),n=Object.fromEntries(Object.entries(this.state.active).map(([e,n])=>[e,n!==null&&t.has(n)?n:null])),r=Object.fromEntries(Object.entries(this.state.transcripts).filter(([e])=>t.has(e))),i=this.state.chats,a=!sameChats(i,e),o=Object.entries(n).some(([e,t])=>t!==this.state.active[e])||Object.keys(r).length!==Object.keys(this.state.transcripts).length;if(a||o){for(let t of e){let e=i.find(e=>e.id===t.id);(t.state===`working`||t.state===`waiting`||t.state===`connecting`||t.state===`failed`)&&e?.state!==t.state&&(this.state={...this.state,shown:{...this.state.shown,[t.id]:!0}},t.state===`waiting`&&(this.state={...this.state,folded:{...this.state.folded,[t.id]:!1}}))}this.commit({chats:e,active:n,transcripts:r});for(let t of e){let e=i.find(e=>e.id===t.id);t.state===`waiting`&&e?.state!==`waiting`&&this.revealWaiting(t.id),t.state===`waiting`&&!this.state.transcripts[t.id]&&this.open(t.id)}}}receive(e){switch(e.type){case`sync`:this.resync();return;case`chats`:this.takeChats(e.chats);return;case`enabled`:this.commit({enabled:e.enabled&&this.allowed()});return;default:{let t=e.chatId,n=this.state.transcripts[t];if(!n){this.state.chats.some(e=>e.id===t)&&(this.pending.set(t,[...this.pending.get(t)??[],e]),this.open(t));return}if(n.status===`loading`){this.pending.set(t,[...this.pending.get(t)??[],e]);return}let r=applyToTranscript(n,e,this.approved);if(r===n)return;e.type===`options`&&this.learn(t);let i={transcripts:{...this.state.transcripts,[t]:r}};if(e.type===`permission`&&e.permission&&e.permission.id!==n.permission?.id){i.folded={...this.state.folded,[t]:!1},i.shown={...this.state.shown,[t]:!0},this.commit(i),this.revealWaiting(t);return}this.commit(i)}}}fetchChat(e,t){let n=this.loading.get(e);if(n)return n;let r=this.state.transcripts[e];!t||!r?this.commit({transcripts:{...this.state.transcripts,[e]:{...r??x,status:`loading`}}}):this.commit({transcripts:{...this.state.transcripts,[e]:{...r,status:`loading`}}});let i=(async()=>{try{let t=await this.host.chat(e),n={status:`ready`,entries:t.entries,queue:t.queue,permission:t.permission,error:t.error,options:t.options};for(let t of this.pending.get(e)??[])n=applyToTranscript(n,t,this.approved);this.pending.delete(e),this.state.chats.some(t=>t.id===e)&&this.commit({transcripts:{...this.state.transcripts,[e]:n}}),this.mergeSummary(t)}catch(t){this.pending.delete(e);let n=t instanceof l?t.status:null,r={...this.state.transcripts};n===404?delete r[e]:r[e]={...r[e]??x,status:`failed`},this.commit({transcripts:r})}finally{this.loading.delete(e)}})();return this.loading.set(e,i),i}mergeSummary(e){let t=this.state.chats.findIndex(t=>t.id===e.chat.id);if(t<0||JSON.stringify(this.state.chats[t])===JSON.stringify(e.chat))return;let n=this.state.chats.slice();n[t]=e.chat,this.commit({chats:n})}open(e){let t=this.state.transcripts[e];return t&&t.status!==`failed`&&t.status!==`missing`?this.loading.get(e)??Promise.resolve():this.fetchChat(e,!1)}focus(e){if(e!==this.state.focused&&(this.commit({focused:e}),e&&this.waitingChat)){let e=this.waitingChat;this.waitingChat=null,this.openChat(e)}}unfocus(e){this.state.focused===e&&this.commit({focused:null})}activeChat(e){let t=e?this.state.active[e]:null;return t?this.state.chats.find(e=>e.id===t)??null:null}select(e,t){this.commit({active:{...this.state.active,[e]:t}}),t&&this.open(t)}expectChat(e,t){this.expected={chatId:e,file:t}}settle(e,t){if(!this.state.loaded)return;if(this.expected&&t&&pathsMatch(this.expected.file,t)){let{chatId:t}=this.expected;this.expected=null,this.select(e,t);return}if(e in this.state.active)return;let n=(t?this.state.chats.filter(e=>e.files.some(e=>pathsMatch(e,t))):[]).reduce((e,t)=>e===null||t.updated>e.updated?t:e,null);this.select(e,n?.id??null)}get onManageAgents(){return this.manage}setManageAgents(e){return this.manage=e,this.commit({canManageAgents:e!==null}),()=>{this.manage===e&&(this.manage=null,this.commit({canManageAgents:!1}))}}changeAgent(e,t){this.activeChat(e)&&this.select(e,null),this.pickAgent(t)}pickAgent(e){this.commit({agentId:e,picks:{}})}learn(e){let t=this.state.chats.find(t=>t.id===e)?.agentId,n=this.state.choices.find(e=>e.id===t);!n||(n.options??[]).length>0||this.host.choices().then(e=>this.commit({choices:e}),()=>void 0)}async pickOption(e,t,n,r){if(!t){let t=this.agentFor(null);if(!t)return;let i=this.state.picks[e],a=i&&i.agentId===t?i.values:{};this.commit({picks:{...this.state.picks,[e]:{agentId:t,values:{...a,[n.id]:r}}}});return}let i=this.state.transcripts[t.id],chosen=e=>e.map(e=>e.id===n.id?{...e,current:r}:e);i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:chosen(i.options)}}});try{let e=await this.host.setOption(t.id,n.id,r),i=this.state.transcripts[t.id];i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:e}}})}catch(e){let n=this.state.transcripts[t.id];n&&i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...n,options:i.options}}}),this.commit({failure:this.describe(e)})}}agentFor(e){return e?e.agentId:this.state.agentId?this.state.agentId:this.state.choices.find(e=>e.available)?.id??null}reveal(e){this.commit({revealed:{...this.state.revealed,[e]:(this.state.revealed[e]??0)+1}})}revealWaiting(e){if(this.state.place===`sidebar`)for(let[t,n]of Object.entries(this.state.active))n===e&&this.reveal(t)}openChat(e){let t=this.state.focused;t?(this.select(t,e),this.reveal(t)):this.waitingChat=e}showCard(e){this.commit({shown:{...this.state.shown,[e]:!0},folded:{...this.state.folded,[e]:!1}})}returnToCard(e){let t=this.activeChat(e);t&&this.state.place===`bottom`&&this.showCard(t.id)}setFolded(e,t){!!this.state.folded[e]!==t&&this.commit({folded:{...this.state.folded,[e]:t}})}dismissCard(e){this.commit({shown:{...this.state.shown,[e]:!1}})}draft(e){return this.state.drafts[e]??S}setDraft(e,t){this.commit({drafts:{...this.state.drafts,[e]:{...this.draft(e),...t}}})}setText(e,t){t!==this.draft(e).text&&this.setDraft(e,{text:t})}mention(e,t){let n=this.draft(e),r=mentionKey(t);n.mentions.some(e=>mentionKey(e)===r)||this.setDraft(e,{mentions:[...n.mentions,t],dismissed:n.dismissed.filter(e=>e!==r)})}unmention(e,t){let n=this.draft(e);this.setDraft(e,{mentions:n.mentions.filter(e=>mentionKey(e)!==t),dismissed:n.dismissed.includes(t)?n.dismissed:[...n.dismissed,t]})}releaseDismissed(e,t){let n=this.draft(e),r=n.dismissed.filter(e=>!e.startsWith(C)||t.includes(e.slice(C.length)));r.length!==n.dismissed.length&&this.setDraft(e,{dismissed:r})}focusInput(e){this.state.place===`sidebar`&&this.reveal(e),this.setDraft(e,{focus:this.draft(e).focus+1})}compose(e,t,n){let r=this.draft(e),i=r.text.trim()===``?n:r.text.includes(n)?r.text:`${r.text.trimEnd()}\n${n}`,a=mentionKey(t),o=r.mentions.some(e=>mentionKey(e)===a)?r.mentions:[...r.mentions,t];this.setDraft(e,{text:i,mentions:o,dismissed:r.dismissed.filter(e=>e!==a),focus:r.focus+1})}clearDraft(e){this.setDraft(e,{text:``,mentions:[]})}async create(e,t=null){try{let n=await this.host.create(t??this.agentFor(null));return this.takeChats([n,...this.state.chats.filter(e=>e.id!==n.id)]),this.commit({transcripts:{...this.state.transcripts,[n.id]:{status:`ready`,entries:[],queue:[],permission:null,error:null,options:[]}}}),e&&this.select(e,n.id),n}catch(e){return this.commit({failure:this.describe(e)}),null}}async rename(e,t){let n=t.trim();if(n)try{let t=await this.host.rename(e,n);this.takeChats(this.state.chats.map(e=>e.id===t.id?t:e))}catch(e){this.commit({failure:this.describe(e)})}}async remove(e){try{await this.host.remove(e)}catch(e){if(!(e instanceof l&&e.status===404)){this.commit({failure:this.describe(e)});return}}this.takeChats(this.state.chats.filter(t=>t.id!==e))}async send(e){let t=e.text.trim();if(!t)return`refused`;let n=this.activeChat(e.editor);if(!await e.authorize())return`refused`;let r=n===null;try{if(!n){if(n=await this.create(e.editor),!n)return`failed`;await this.applyPicks(e.editor,n)}let r=n.id;return e.onChat?.(r),this.state.place===`sidebar`?(this.reveal(e.editor),this.commit({failure:null})):this.commit({shown:{...this.state.shown,[r]:!0},folded:{...this.state.folded,[r]:!1},failure:null}),(await this.host.prompt(r,t,e.context)).queued?`queued`:`sent`}catch(t){return isLicenceRefusal(t)?(r&&n&&await this.discard(e.editor,n.id),await e.authorize(),`refused`):(this.commit({failure:this.describe(t)}),`failed`)}}async discard(e,t){this.select(e,null),await this.remove(t)}async applyPicks(e,t){let n=this.state.picks[e];if(!n)return;let{[e]:r,...i}=this.state.picks;if(this.commit({picks:i}),n.agentId===t.agentId)for(let[e,r]of Object.entries(n.values))try{let n=await this.host.setOption(t.id,e,r),i=this.state.transcripts[t.id];i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:n}}})}catch{}}async tryAgain(e,t){let n=[...this.state.transcripts[e]?.entries??[]].reverse().find(e=>e.kind===`user`);if(!n||n.kind!==`user`||!await t())return`refused`;try{return this.commit({shown:{...this.state.shown,[e]:!0},folded:{...this.state.folded,[e]:!1},failure:null}),(await this.host.prompt(e,n.text,null)).queued?`queued`:`sent`}catch(e){return isLicenceRefusal(e)?(await t(),`refused`):(this.commit({failure:this.describe(e)}),`failed`)}}async unqueue(e,t,n){let r=this.state.transcripts[e],i=r?r.queue.findIndex(e=>e.id===t):-1,a=i>=0&&r?r.queue[i]:null;r&&this.commit({transcripts:{...this.state.transcripts,[e]:{...r,queue:r.queue.filter(e=>e.id!==t)}}});try{await this.host.unqueue(e,t)}catch(t){if(t instanceof l&&t.status===404)return;this.commit({failure:this.describe(t)});let n=this.state.transcripts[e];if(a&&n&&!n.queue.some(e=>e.id===a.id)){let t=[...n.queue];t.splice(Math.min(i,t.length),0,a),this.commit({transcripts:{...this.state.transcripts,[e]:{...n,queue:t}}})}return}if(!a)return;let o=this.draft(n),s=o.text.trim()===``?a.text:`${o.text.trimEnd()}\n${a.text}`;this.setDraft(n,{text:s,focus:o.focus+1})}async stop(e){try{await this.host.stop(e)}catch(e){this.commit({failure:this.describe(e)})}}async signIn(e,t){if(await t())try{await this.host.signIn(e)}catch(e){if(isLicenceRefusal(e)){await t();return}this.commit({failure:this.describe(e)})}}async answer(e,t,n){let r=this.state.transcripts[e];if(r?.permission?.id===t){r.permission.options.find(e=>e.id===n)?.kind===`allow`&&r.permission.tool.diffs.length>0&&this.approved.set(c(r.permission.tool),r.permission.tool.diffs),this.commit({transcripts:{...this.state.transcripts,[e]:{...r,permission:null}}});try{await this.host.answer(e,t,n)}catch(t){if(t instanceof l&&t.status===409)return;this.commit({failure:this.describe(t)}),this.fetchChat(e,!0)}}}retry(e,t){return t&&this.select(t,e),this.fetchChat(e,!0)}dismissFailure(){this.state.failure!==null&&this.commit({failure:null})}},C=`element:`;function mentionKey(e){return e.kind===`element`?`${C}${e.id}`:`file:${e.path}`}function optionsFor(e,t,n,r){if(n)return e.transcripts[n.id]?.options??[];let i=e.picks[t],a=i&&i.agentId===r?i.values:{};return(e.choices.find(e=>e.id===r)?.options??[]).map(e=>a[e.id]!==void 0&&e.values.some(t=>t.id===a[e.id])?{...e,current:a[e.id]}:e)}var w=null,T=!1,release=null;function aiChatPlace(){return aiChatPlaceOf(p().aiChat)}function aiChatOn(){return aiChatPlace()!==`off`}function createAssistant(e={}){let t=u().agentHost?.();return t?new AssistantStore(t,{place:aiChatPlace,onManageAgents:()=>void openAgentsScreen(),...e}):null}function setAssistant(e){if(release?.(),release=null,w=e,T=!0,!e)return;let t=m(()=>{e.setPlace(aiChatPlace())}),refocused=()=>{e.snapshot().enabled&&e.resync()},n=typeof window>`u`?null:window;n?.addEventListener(`focus`,refocused),release=()=>{t(),n?.removeEventListener(`focus`,refocused)}}function getAssistant(){if(!T){T=!0;try{setAssistant(createAssistant())}catch{w=null}}return w}function installOpenChat(){let e=globalThis,open=e=>getAssistant()?.openChat(e);if(e.penstockOpenChat=open,e.pendingOpenChat){let t=e.pendingOpenChat;delete e.pendingOpenChat,open(t)}return()=>{e.penstockOpenChat===open&&delete e.penstockOpenChat}}function useTick(t,r,i=Object.is){let[,o]=e(0),s=n(r);s.current=r;let c=n(r()),l=r();return c.current=l,a(()=>t(()=>{let e=s.current();i(c.current,e)||(c.current=e,o(e=>e+1))}),[t]),l}var E=6e4,D=60*E,O=24*D;function ago(e,t=Date.now()){let n=t-e,r;try{r=new Intl.RelativeTimeFormat(s(),{numeric:`auto`,style:`short`})}catch{r=new Intl.RelativeTimeFormat(`en`,{numeric:`auto`,style:`short`})}return!Number.isFinite(n)||n<E?r.format(0,`minute`):n<D?r.format(-Math.floor(n/E),`minute`):n<O?r.format(-Math.floor(n/D),`hour`):r.format(-Math.floor(n/O),`day`)}var k=/(?:fill|stroke)\s*[:=]\s*["']?\s*(#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)|[a-zA-Z]+)/g,A=new Set([`none`,`transparent`,`currentcolor`,`inherit`]),j=2e5,M=new Map;function isSingleColour(e){let t=new Set;for(let n of e.matchAll(k)){let e=n[1].toLowerCase().replace(/\s+/g,``);A.has(e)||t.add(e)}return t.size<=1&&!/<(?:linearGradient|radialGradient|image)\b/i.test(e)}var N=/^data:image\/svg\+xml;base64,([A-Za-z0-9+/=]+)$/,P=/^(?:data:image\/svg\+xml;base64,[A-Za-z0-9+/=]+|https?:\/\/\S+|\/[^\s/]\S*)$/;function loadable(e){return typeof e==`string`&&P.test(e)}function decoded(e){let t=N.exec(e);if(!t)return null;try{return atob(t[1])}catch{return``}}function singleColour(e){let t=decoded(e);if(t!==null)return Promise.resolve(t!==``&&t.length<=j&&isSingleColour(t));let n=M.get(e);return n||(n=fetch(e).then(e=>e.ok?e.text():``).then(t=>t!==``&&t.length<=j&&/\.svg(?:$|\?)/i.test(e)&&isSingleColour(t)).catch(()=>!1),M.set(e,n)),n}function monogramOf(e){return(Array.from(e.trim())[0]??`?`).toLocaleUpperCase()}function AgentLogo({name:t,icon:n,class:i,size:o=16}){let s=loadable(n)?n:null,[c,l]=e(null),[u,d]=e(!1);a(()=>{if(d(!1),l(null),!s)return;let e=!0;return singleColour(s).then(t=>{e&&l(t)}),()=>{e=!1}},[s]);let f=`agent-logo${o===20?` agent-logo--large`:``}${i?` ${i}`:``}`;return!s||u?r(`span`,{class:`${f} agent-logo--monogram type-badge`,"aria-hidden":`true`,children:monogramOf(t)}):c===!0?r(`span`,{class:`${f} agent-logo--mask`,style:{maskImage:`url("${s}")`,WebkitMaskImage:`url("${s}")`},"aria-hidden":`true`}):r(`img`,{class:f,src:s,alt:``,width:o,height:o,onError:()=>d(!0)})}var F=/^default\b/i,I=28,L=4;function settingsOf(e){let first=t=>e.find(e=>e.category===t)??null;return{model:first(`model`),level:first(`thought_level`),mode:first(`mode`)}}function currentOf(e){return e.values.find(t=>t.id===e.current)??null}function isDefaultValue(e){return F.test(e.id)||F.test(e.name)}function standsFor(e){let t=e.description?.trim()??``,n=t.split(/\s+/).length;return t!==``&&t.length<=I&&n<=L&&/^[A-Z0-9]/.test(t)&&!/[.!?]$/.test(t)?t:null}function rowName(e){let t=currentOf(e);return t?e.category===`model`?modelName(e)??t.name:isDefaultValue(t)?standsFor(t)??t.name:t.name:e.current}function modelName(e){let t=currentOf(e);return t?isDefaultValue(t)?standsFor(t):t.name:e.current}function levelName(e){let t=currentOf(e);return t?isDefaultValue(t)?null:t.name:e.current}function modelAndLevel(e){return[e.model?modelName(e.model):null,e.level?levelName(e.level):null].filter(e=>e!==null).join(` `)}function modeSuffix(e){let t=e.mode;if(!t)return null;let n=currentOf(t);return n&&isDefaultValue(n)?null:modeName(t)}function settingsLabel(e){return[modelAndLevel(e),modeSuffix(e)].filter(e=>e!==null&&e!==``).join(` · `)}function modeName(e){return currentOf(e)?.name??e.current}var R=6,z=22,B=2;function groupsOf(e){let t=[];for(let n of e){let e=t[t.length-1];e&&e.name===n.group?e.values.push(n):t.push({name:n.group,values:[n]})}return t}function isSegmented(e){let t=e.values;return t.length<2||t.length>R||!t.every(e=>!e.description&&!e.group)?!1:t.reduce((e,t)=>e+Array.from(t.name).length+B,0)<=z}var V=360,H=72,U=60,W=16,G={kind:`rows`};function Segmented({option:e,onPick:t}){return r(`div`,{class:`assistant-form__segments`,role:`radiogroup`,"aria-label":e.name,children:e.values.map(n=>r(`button`,{type:`button`,role:`radio`,"aria-checked":n.id===e.current,"data-nav":`segment`,class:`assistant-form__segment type-body`,onClick:()=>t(e,n.id),children:n.name},n.id))})}function Select({text:e,logo:t,onOpen:n,label:i,nav:a=`item`}){return r(`button`,{type:`button`,class:`assistant-form__select type-body`,"data-nav":a,"aria-label":`${i}: ${e}`,"aria-haspopup":`listbox`,onClick:n,children:[t,r(`span`,{class:`assistant-form__select-text`,children:e}),r(d,{name:`chevronDown`,class:`assistant-form__select-chevron`})]})}function Row({label:e,children:t}){return r(`div`,{class:`assistant-form__row`,children:[r(`span`,{class:`assistant-form__label type-help`,children:e}),r(`div`,{class:`assistant-form__control`,children:t})]})}function OptionList({option:e,onPick:t}){return r(`div`,{class:`assistant-form__choices`,role:`listbox`,"aria-label":e.name,children:groupsOf(e.values).map((n,i)=>r(`div`,{role:`presentation`,class:`assistant-form__group`,children:[n.name&&r(`div`,{class:`assistant-form__subheading type-help`,role:`presentation`,children:n.name}),n.values.map(n=>{let i=n.id===e.current;return r(`button`,{type:`button`,role:`option`,"aria-selected":i,"data-nav":`item`,"data-current":i?`true`:void 0,class:`assistant-form__item type-body`,onClick:()=>t(e,n.id),children:[r(`span`,{class:`assistant-form__check`,"aria-hidden":`true`,children:i&&r(d,{name:`check`})}),r(`span`,{class:`assistant-form__text`,children:[r(`span`,{class:`assistant-form__name`,children:n.name}),n.description&&r(`span`,{class:`assistant-form__description type-help`,children:n.description})]})]},n.id)})]},`${n.name??``}:${i}`))})}function navigate(e,t){let n=document.activeElement,r=Array.from(e.querySelectorAll(`[data-nav]`)),i=n?r.indexOf(n):-1;if(i<0)return!1;if(n?.dataset.nav===`segment`&&(t===`ArrowRight`||t===`ArrowLeft`)){let e=Array.from(n.parentElement?.querySelectorAll(`[data-nav="segment"]`)??[]);return e[(e.indexOf(n)+(t===`ArrowRight`?1:-1)+e.length)%e.length]?.focus(),!0}return t!==`ArrowDown`&&t!==`ArrowUp`?!1:(r[(i+(t===`ArrowDown`?1:-1)+r.length)%r.length]?.focus(),!0)}function listLimit(e,t){return Math.max(H,Math.min(V,Math.round(e-t-W-U)))}function AgentSettings({store:s,state:c,editor:l,chat:u,agentId:p,options:m,busy:h,started:g}){let _=n(null),v=n(null),y=n(null),[b,x]=e(!1),[S,C]=e(G),[w,T]=e(V),E=settingsOf(m),D=c.choices.find(e=>e.id===p),O=c.choices.filter(e=>e.available),k=D?.name??(p===``?o(`app.assistant.input.noAgent`):p),A=O.length===0&&c.canManageAgents,j=settingsLabel(E),M=[E.model,E.level,E.mode].filter(e=>e!==null),N=S.kind===`option`?M.find(e=>e.id===S.id)??null:null,close=()=>{x(!1),C(G)},back=()=>{C(G)},drill=e=>{y.current=document.activeElement,C(e)},pick=(e,t)=>{t!==e.current&&s.pickOption(l,u,e,t)},pickFromList=(e,t)=>{pick(e,t),back()},chooseAgent=e=>{e!==p&&s.changeAgent(l,e),back()},manage=()=>{close(),s.onManageAgents?.()};i(()=>{if(!b||S.kind===`rows`||!_.current)return;let e=_.current.closest(`.editor-canvas`);T(listLimit(_.current.getBoundingClientRect().top,e?e.getBoundingClientRect().top:0))},[b,S]),a(()=>{if(!b)return;let e=v.current;if(e){if(S.kind===`rows`){let t=y.current&&e.contains(y.current)?y.current:e.querySelector(`[data-nav]`);y.current=null,t?.focus()}else(e.querySelector(`[data-current="true"]`)??e.querySelector(`[data-nav="item"]:not(.assistant-form__back)`))?.focus()}},[b,S]);let P=S.kind===`agent`?o(`app.assistant.form.agent`):N?.name??``;return r(t,{children:[r(`button`,{ref:_,type:`button`,class:`assistant-settings type-body`,title:j===``?k:`${k}: ${j}`,"aria-label":j===``?k:o(`app.assistant.input.settingsLabel`,{agent:k,settings:j}),"aria-haspopup":A?void 0:`dialog`,"aria-expanded":A?void 0:b,onClick:()=>A?s.onManageAgents?.():b?close():x(!0),children:[r(AgentLogo,{name:k,icon:D?.icon}),j!==``&&r(`span`,{class:`assistant-settings__label`,children:j})]}),b&&r(f,{anchor:_.current,label:o(`app.assistant.form.title`),onClose:close,onEscape:()=>S.kind!==`rows`&&(back(),!0),width:320,class:`assistant-form`,children:[r(`div`,{ref:v,class:`assistant-form__body`,"data-view":S.kind,style:{"--assistant-form-list":`${w}px`},onKeyDown:e=>{let t=e.currentTarget;/^Arrow/.test(e.key)&&navigate(t,e.key)&&e.preventDefault()},children:[S.kind===`rows`&&r(t,{children:[r(Row,{label:o(`app.assistant.form.agent`),children:r(Select,{label:o(`app.assistant.form.agent`),text:k,logo:r(AgentLogo,{name:k,icon:D?.icon}),onOpen:()=>drill({kind:`agent`})})}),M.map(e=>{let t=rowName(e);return r(Row,{label:e.name,children:e.category!==`model`&&isSegmented(e)?r(Segmented,{option:e,onPick:pick}):r(Select,{label:e.name,text:t,onOpen:()=>drill({kind:`option`,id:e.id})})},e.id)}),h&&M.length>0&&r(`p`,{class:`assistant-form__note type-help`,children:o(`app.assistant.input.optionNextTurn`)})]}),S.kind!==`rows`&&r(t,{children:[r(`header`,{class:`assistant-form__head`,children:[r(`button`,{type:`button`,class:`assistant-form__back`,"data-nav":`item`,"aria-label":o(`app.assistant.form.back`),title:o(`app.assistant.form.back`),onClick:back,children:r(d,{name:`chevronLeft`})}),r(`h3`,{class:`assistant-form__title type-section-heading`,children:P})]}),r(`div`,{class:`assistant-form__scroll`,children:[S.kind===`agent`&&r(t,{children:[r(`div`,{class:`assistant-form__choices`,role:`listbox`,"aria-label":o(`app.assistant.form.agent`),children:O.map(e=>r(`button`,{type:`button`,role:`option`,"aria-selected":e.id===p,"data-nav":`item`,"data-current":e.id===p?`true`:void 0,class:`assistant-form__item type-body`,onClick:()=>chooseAgent(e.id),children:[r(`span`,{class:`assistant-form__check`,"aria-hidden":`true`,children:e.id===p&&r(d,{name:`check`})}),r(AgentLogo,{name:e.name,icon:e.icon}),r(`span`,{class:`assistant-form__text`,children:r(`span`,{class:`assistant-form__name`,children:e.name})})]},e.id))}),g&&r(`p`,{class:`assistant-form__note type-help`,children:o(`app.assistant.form.agentNew`)})]}),N&&r(OptionList,{option:N,onPick:pickFromList})]})]})]}),c.canManageAgents&&S.kind===`rows`&&r(`div`,{class:`assistant-form__foot`,children:r(`button`,{type:`button`,"data-nav":`item`,class:`assistant-form__manage type-body`,onClick:manage,children:o(`app.assistant.form.manage`)})})]})]})}export{aiChatPlaceOf as _,useTick as a,getAssistant as c,mentionKey as d,optionsFor as f,registerAgentsOpener as g,openAgentsScreen as h,ago as i,installOpenChat as l,pathsMatch as m,OptionList as n,aiChatOn as o,baseName as p,AgentLogo as r,createAssistant as s,AgentSettings as t,setAssistant as u,aiChatSurfaces as v};
1
+ import"./rolldown-runtime-B8BYMn-z.js";import{c as e,h as t,i as n,r,s as i,u as a}from"./vendor-NJP34MHU.js";import{i as o,n as s}from"./translator-BLCeE6UY.js";import{n as c,r as l}from"./httpHost-C973OTRe.js";import{t as u}from"./bridgeInstance-qzSInqLW.js";import{n as d,u as f}from"./ui-BLtm3Y1J.js";import{i as p,r as m}from"./preferences-BcLlKYFq.js";var h=[`off`,`bottom`,`sidebar`],g=`bottom`;function aiChatPlaceOf(e){return h.find(t=>t===e)??`bottom`}function aiChatSurfaces(e){let t=e!==`off`;return{bottomInput:e===`bottom`,card:e===`bottom`,chatTab:t,chatsList:t,toolbarButton:t,paletteAction:t,agentProcess:t}}var _=null;function registerAgentsOpener(e){return _=e,()=>{_===e&&(_=null)}}async function openAgentsScreen(){if(_)_();else try{await u().agentsHost?.().openSettings()}catch(e){console.error(`The AI agents screen did not open:`,e)}}function normalise(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/+$/,``)}function pathsMatch(e,t){return normalise(e)===normalise(t)}function baseName(e){return normalise(e).split(`/`).filter(Boolean).pop()??e}var v=1e3,y=15e3,b=2e3,x={status:`loading`,entries:[],queue:[],permission:null,error:null,options:[]},S={text:``,mentions:[],dismissed:[],focus:0};function isLicenceRefusal(e){return e instanceof l&&e.status===402}function newClientId(){return`c${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function upsert(e,t){let n=e.findIndex(e=>e.id===t.id);if(n<0){let n=[...e,t];return n.length>b?n.slice(n.length-b):n}let r=e.slice();return r[n]=t,r}function withPlan(e,t){let n=-1;for(let t=e.length-1;t>=0;--t)if(e[t].kind===`plan`){n=t;break}if(n<0)return upsert(e,{kind:`plan`,id:`plan`,items:t});let r=e.slice();return r[n]={kind:`plan`,id:e[n].id,items:t},r}function withApproved(e,t){let n=e.status===`done`&&e.diffs.length===0?t?.get(c(e)):void 0;return n?{...e,diffs:n}:e}function applyToTranscript(e,t,n){switch(t.type){case`entry`:{let r=t.entry.kind===`tool`?{...t.entry,tool:withApproved(t.entry.tool,n)}:t.entry,i=e.entries.find(e=>e.id===r.id);return i&&JSON.stringify(i)===JSON.stringify(r)?e:{...e,entries:upsert(e.entries,r)}}case`tool`:return{...e,entries:upsert(e.entries,{kind:`tool`,id:c(t.tool),tool:withApproved(t.tool,n)})};case`plan`:return{...e,entries:withPlan(e.entries,t.items)};case`queue`:return{...e,queue:t.queue};case`permission`:return{...e,permission:t.permission};case`error`:return{...e,error:t.error};case`options`:return{...e,options:t.options};default:return e}}function sameChats(e,t){return e.length===t.length&&e.every((e,n)=>JSON.stringify(e)===JSON.stringify(t[n]))}var AssistantStore=class{state;listeners=new Set;host;options;client;pending=new Map;approved=new Map;loading=new Map;openings=new Set;expected=null;waitingChat=null;manage;control=null;started=!1;disposed=!1;failures=0;resyncing=null;constructor(e,t={}){this.host=e,this.options=t,this.client=t.client??newClientId(),this.manage=t.onManageAgents??null;let n=t.place?t.place():g;this.state={enabled:n!==`off`,place:n,loaded:!1,connected:!1,choices:[],chats:[],transcripts:{},active:{},shown:{},folded:{},revealed:{},focused:null,agentId:null,drafts:{},picks:{},canManageAgents:!!t.onManageAgents,failure:null}}snapshot=()=>this.state;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.state={...this.state,...e},this.recordOpenings();for(let e of[...this.listeners])try{e()}catch(e){console.error(`An assistant listener failed:`,e)}}recordOpenings(){for(let e of Object.keys(this.state.active))!this.openings.has(e)&&this.settled(e)&&this.openings.add(e)}settled(e){if(!this.state.loaded)return!1;let t=this.activeChat(e);if(t===null)return!0;let n=this.state.transcripts[t.id];return n!==void 0&&n.status!==`loading`}opened(e){return!this.state.enabled||this.openings.has(e)}describe(e){return e instanceof l&&e.failure?e.failure:{key:`app.agent.failed`,detail:e instanceof Error?e.message:String(e)}}wait(e){return this.options.wait?this.options.wait(e):new Promise(t=>setTimeout(t,e))}allowed(){return!this.options.place||this.options.place()!==`off`}setPlace(e){if(e===this.state.place)return;let t=e!==`off`;this.commit({place:e,enabled:t}),t?this.started&&this.begin():this.halt()}start(){return this.disposed?Promise.resolve():(this.started=!0,this.allowed()?(this.state.enabled||this.commit({enabled:!0}),this.control&&!this.control.signal.aborted?Promise.resolve():this.begin()):(this.state.enabled&&this.commit({enabled:!1}),Promise.resolve()))}begin(){let e=new AbortController;this.control=e;let t=this.resync();return this.pump(e),t}halt(){this.control?.abort(),this.control=null,this.commit({connected:!1})}dispose(){this.disposed=!0,this.started=!1,this.halt(),this.listeners.clear()}async pump(e){for(;!e.signal.aborted;)try{let t=await this.host.next(this.client,e.signal);if(e.signal.aborted)return;this.failures>0&&(this.failures=0,this.state.connected||this.commit({connected:!0})),t&&this.receive(t)}catch{if(e.signal.aborted)return;this.failures+=1,this.state.connected&&this.commit({connected:!1});let t=Math.min(this.options.maxRetryMs??y,(this.options.retryMs??v)*2**Math.min(this.failures-1,6));if(await this.wait(t),e.signal.aborted)return;await this.resync()}}resync(){if(this.resyncing)return this.resyncing;let e=(async()=>{try{let[e,t]=await Promise.all([this.host.choices().catch(()=>this.state.choices),this.host.chats()]);this.commit({choices:e,loaded:!0,connected:!0,enabled:t.enabled&&this.allowed(),failure:null}),this.takeChats(t.chats);let n=Object.keys(this.state.transcripts);await Promise.all(n.map(e=>this.fetchChat(e,!0)))}catch(e){this.state.loaded||this.commit({loaded:!0}),this.commit({failure:this.describe(e)})}finally{this.resyncing=null}})();return this.resyncing=e,e}takeChats(e){let t=new Set(e.map(e=>e.id)),n=Object.fromEntries(Object.entries(this.state.active).map(([e,n])=>[e,n!==null&&t.has(n)?n:null])),r=Object.fromEntries(Object.entries(this.state.transcripts).filter(([e])=>t.has(e))),i=this.state.chats,a=!sameChats(i,e),o=Object.entries(n).some(([e,t])=>t!==this.state.active[e])||Object.keys(r).length!==Object.keys(this.state.transcripts).length;if(a||o){for(let t of e){let e=i.find(e=>e.id===t.id);(t.state===`working`||t.state===`waiting`||t.state===`connecting`||t.state===`failed`)&&e?.state!==t.state&&(this.state={...this.state,shown:{...this.state.shown,[t.id]:!0}},t.state===`waiting`&&(this.state={...this.state,folded:{...this.state.folded,[t.id]:!1}}))}this.commit({chats:e,active:n,transcripts:r});for(let t of e){let e=i.find(e=>e.id===t.id);t.state===`waiting`&&e?.state!==`waiting`&&this.revealWaiting(t.id),t.state===`waiting`&&!this.state.transcripts[t.id]&&this.open(t.id)}}}receive(e){switch(e.type){case`sync`:this.resync();return;case`chats`:this.takeChats(e.chats);return;case`enabled`:this.commit({enabled:e.enabled&&this.allowed()});return;default:{let t=e.chatId,n=this.state.transcripts[t];if(!n){this.state.chats.some(e=>e.id===t)&&(this.pending.set(t,[...this.pending.get(t)??[],e]),this.open(t));return}if(n.status===`loading`){this.pending.set(t,[...this.pending.get(t)??[],e]);return}let r=applyToTranscript(n,e,this.approved);if(r===n)return;e.type===`options`&&this.learn(t);let i={transcripts:{...this.state.transcripts,[t]:r}};if(e.type===`permission`&&e.permission&&e.permission.id!==n.permission?.id){i.folded={...this.state.folded,[t]:!1},i.shown={...this.state.shown,[t]:!0},this.commit(i),this.revealWaiting(t);return}this.commit(i)}}}fetchChat(e,t){let n=this.loading.get(e);if(n)return n;let r=this.state.transcripts[e];!t||!r?this.commit({transcripts:{...this.state.transcripts,[e]:{...r??x,status:`loading`}}}):this.commit({transcripts:{...this.state.transcripts,[e]:{...r,status:`loading`}}});let i=(async()=>{try{let t=await this.host.chat(e),n={status:`ready`,entries:t.entries,queue:t.queue,permission:t.permission,error:t.error,options:t.options};for(let t of this.pending.get(e)??[])n=applyToTranscript(n,t,this.approved);this.pending.delete(e),this.state.chats.some(t=>t.id===e)&&this.commit({transcripts:{...this.state.transcripts,[e]:n}}),this.mergeSummary(t)}catch(t){this.pending.delete(e);let n=t instanceof l?t.status:null,r={...this.state.transcripts};n===404?delete r[e]:r[e]={...r[e]??x,status:`failed`},this.commit({transcripts:r})}finally{this.loading.delete(e)}})();return this.loading.set(e,i),i}mergeSummary(e){let t=this.state.chats.findIndex(t=>t.id===e.chat.id);if(t<0||JSON.stringify(this.state.chats[t])===JSON.stringify(e.chat))return;let n=this.state.chats.slice();n[t]=e.chat,this.commit({chats:n})}open(e){let t=this.state.transcripts[e];return t&&t.status!==`failed`&&t.status!==`missing`?this.loading.get(e)??Promise.resolve():this.fetchChat(e,!1)}focus(e){if(e!==this.state.focused&&(this.commit({focused:e}),e&&this.waitingChat)){let e=this.waitingChat;this.waitingChat=null,this.openChat(e)}}unfocus(e){this.state.focused===e&&this.commit({focused:null})}activeChat(e){let t=e?this.state.active[e]:null;return t?this.state.chats.find(e=>e.id===t)??null:null}select(e,t){this.commit({active:{...this.state.active,[e]:t}}),t&&this.open(t)}expectChat(e,t){this.expected={chatId:e,file:t}}settle(e,t){if(!this.state.loaded)return;if(this.expected&&t&&pathsMatch(this.expected.file,t)){let{chatId:t}=this.expected;this.expected=null,this.select(e,t);return}if(e in this.state.active)return;let n=(t?this.state.chats.filter(e=>e.files.some(e=>pathsMatch(e,t))):[]).reduce((e,t)=>e===null||t.updated>e.updated?t:e,null);this.select(e,n?.id??null)}get onManageAgents(){return this.manage}setManageAgents(e){return this.manage=e,this.commit({canManageAgents:e!==null}),()=>{this.manage===e&&(this.manage=null,this.commit({canManageAgents:!1}))}}changeAgent(e,t){this.activeChat(e)&&this.select(e,null),this.pickAgent(t)}pickAgent(e){this.commit({agentId:e,picks:{}})}learn(e){let t=this.state.chats.find(t=>t.id===e)?.agentId,n=this.state.choices.find(e=>e.id===t);!n||(n.options??[]).length>0||this.host.choices().then(e=>this.commit({choices:e}),()=>void 0)}async pickOption(e,t,n,r){if(!t){let t=this.agentFor(null);if(!t)return;let i=this.state.picks[e],a=i&&i.agentId===t?i.values:{};this.commit({picks:{...this.state.picks,[e]:{agentId:t,values:{...a,[n.id]:r}}}});return}let i=this.state.transcripts[t.id],chosen=e=>e.map(e=>e.id===n.id?{...e,current:r}:e);i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:chosen(i.options)}}});try{let e=await this.host.setOption(t.id,n.id,r),i=this.state.transcripts[t.id];i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:e}}})}catch(e){let n=this.state.transcripts[t.id];n&&i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...n,options:i.options}}}),this.commit({failure:this.describe(e)})}}agentFor(e){return e?e.agentId:this.state.agentId?this.state.agentId:this.state.choices.find(e=>e.available)?.id??null}reveal(e){this.commit({revealed:{...this.state.revealed,[e]:(this.state.revealed[e]??0)+1}})}revealWaiting(e){if(this.state.place===`sidebar`)for(let[t,n]of Object.entries(this.state.active))n===e&&this.reveal(t)}openChat(e){let t=this.state.focused;t?(this.select(t,e),this.reveal(t)):this.waitingChat=e}showCard(e){this.commit({shown:{...this.state.shown,[e]:!0},folded:{...this.state.folded,[e]:!1}})}returnToCard(e){let t=this.activeChat(e);t&&this.state.place===`bottom`&&this.showCard(t.id)}setFolded(e,t){!!this.state.folded[e]!==t&&this.commit({folded:{...this.state.folded,[e]:t}})}dismissCard(e){this.commit({shown:{...this.state.shown,[e]:!1}})}draft(e){return this.state.drafts[e]??S}setDraft(e,t){this.commit({drafts:{...this.state.drafts,[e]:{...this.draft(e),...t}}})}setText(e,t){t!==this.draft(e).text&&this.setDraft(e,{text:t})}mention(e,t){let n=this.draft(e),r=mentionKey(t);n.mentions.some(e=>mentionKey(e)===r)||this.setDraft(e,{mentions:[...n.mentions,t],dismissed:n.dismissed.filter(e=>e!==r)})}unmention(e,t){let n=this.draft(e);this.setDraft(e,{mentions:n.mentions.filter(e=>mentionKey(e)!==t),dismissed:n.dismissed.includes(t)?n.dismissed:[...n.dismissed,t]})}releaseDismissed(e,t){let n=this.draft(e),r=n.dismissed.filter(e=>!e.startsWith(C)||t.includes(e.slice(C.length)));r.length!==n.dismissed.length&&this.setDraft(e,{dismissed:r})}focusInput(e){this.state.place===`sidebar`&&this.reveal(e),this.setDraft(e,{focus:this.draft(e).focus+1})}compose(e,t,n){let r=this.draft(e),i=r.text.trim()===``?n:r.text.includes(n)?r.text:`${r.text.trimEnd()}\n${n}`,a=mentionKey(t),o=r.mentions.some(e=>mentionKey(e)===a)?r.mentions:[...r.mentions,t];this.setDraft(e,{text:i,mentions:o,dismissed:r.dismissed.filter(e=>e!==a),focus:r.focus+1})}clearDraft(e){this.setDraft(e,{text:``,mentions:[]})}async create(e,t=null){try{let n=await this.host.create(t??this.agentFor(null));return this.takeChats([n,...this.state.chats.filter(e=>e.id!==n.id)]),this.commit({transcripts:{...this.state.transcripts,[n.id]:{status:`ready`,entries:[],queue:[],permission:null,error:null,options:[]}}}),e&&this.select(e,n.id),n}catch(e){return this.commit({failure:this.describe(e)}),null}}async rename(e,t){let n=t.trim();if(n)try{let t=await this.host.rename(e,n);this.takeChats(this.state.chats.map(e=>e.id===t.id?t:e))}catch(e){this.commit({failure:this.describe(e)})}}async remove(e){try{await this.host.remove(e)}catch(e){if(!(e instanceof l&&e.status===404)){this.commit({failure:this.describe(e)});return}}this.takeChats(this.state.chats.filter(t=>t.id!==e))}async send(e){let t=e.text.trim();if(!t)return`refused`;let n=this.activeChat(e.editor);if(!await e.authorize())return`refused`;let r=n===null;try{if(!n){if(n=await this.create(e.editor),!n)return`failed`;await this.applyPicks(e.editor,n)}let r=n.id;return e.onChat?.(r),this.state.place===`sidebar`?(this.reveal(e.editor),this.commit({failure:null})):this.commit({shown:{...this.state.shown,[r]:!0},folded:{...this.state.folded,[r]:!1},failure:null}),(await this.host.prompt(r,t,e.context)).queued?`queued`:`sent`}catch(t){return isLicenceRefusal(t)?(r&&n&&await this.discard(e.editor,n.id),await e.authorize(),`refused`):(this.commit({failure:this.describe(t)}),`failed`)}}async discard(e,t){this.select(e,null),await this.remove(t)}async applyPicks(e,t){let n=this.state.picks[e];if(!n)return;let{[e]:r,...i}=this.state.picks;if(this.commit({picks:i}),n.agentId===t.agentId)for(let[e,r]of Object.entries(n.values))try{let n=await this.host.setOption(t.id,e,r),i=this.state.transcripts[t.id];i&&this.commit({transcripts:{...this.state.transcripts,[t.id]:{...i,options:n}}})}catch{}}async tryAgain(e,t){let n=[...this.state.transcripts[e]?.entries??[]].reverse().find(e=>e.kind===`user`);if(!n||n.kind!==`user`||!await t())return`refused`;try{return this.commit({shown:{...this.state.shown,[e]:!0},folded:{...this.state.folded,[e]:!1},failure:null}),(await this.host.prompt(e,n.text,null)).queued?`queued`:`sent`}catch(e){return isLicenceRefusal(e)?(await t(),`refused`):(this.commit({failure:this.describe(e)}),`failed`)}}async unqueue(e,t,n){let r=this.state.transcripts[e],i=r?r.queue.findIndex(e=>e.id===t):-1,a=i>=0&&r?r.queue[i]:null;r&&this.commit({transcripts:{...this.state.transcripts,[e]:{...r,queue:r.queue.filter(e=>e.id!==t)}}});try{await this.host.unqueue(e,t)}catch(t){if(t instanceof l&&t.status===404)return;this.commit({failure:this.describe(t)});let n=this.state.transcripts[e];if(a&&n&&!n.queue.some(e=>e.id===a.id)){let t=[...n.queue];t.splice(Math.min(i,t.length),0,a),this.commit({transcripts:{...this.state.transcripts,[e]:{...n,queue:t}}})}return}if(!a)return;let o=this.draft(n),s=o.text.trim()===``?a.text:`${o.text.trimEnd()}\n${a.text}`;this.setDraft(n,{text:s,focus:o.focus+1})}async stop(e){try{await this.host.stop(e)}catch(e){this.commit({failure:this.describe(e)})}}async signIn(e,t){if(await t())try{await this.host.signIn(e)}catch(e){if(isLicenceRefusal(e)){await t();return}this.commit({failure:this.describe(e)})}}async answer(e,t,n){let r=this.state.transcripts[e];if(r?.permission?.id===t){r.permission.options.find(e=>e.id===n)?.kind===`allow`&&r.permission.tool.diffs.length>0&&this.approved.set(c(r.permission.tool),r.permission.tool.diffs),this.commit({transcripts:{...this.state.transcripts,[e]:{...r,permission:null}}});try{await this.host.answer(e,t,n)}catch(t){if(t instanceof l&&t.status===409)return;this.commit({failure:this.describe(t)}),this.fetchChat(e,!0)}}}retry(e,t){return t&&this.select(t,e),this.fetchChat(e,!0)}dismissFailure(){this.state.failure!==null&&this.commit({failure:null})}},C=`element:`;function mentionKey(e){return e.kind===`element`?`${C}${e.id}`:`file:${e.path}`}function optionsFor(e,t,n,r){if(n)return e.transcripts[n.id]?.options??[];let i=e.picks[t],a=i&&i.agentId===r?i.values:{};return(e.choices.find(e=>e.id===r)?.options??[]).map(e=>a[e.id]!==void 0&&e.values.some(t=>t.id===a[e.id])?{...e,current:a[e.id]}:e)}var w=null,T=!1,release=null;function aiChatPlace(){return aiChatPlaceOf(p().aiChat)}function aiChatOn(){return aiChatPlace()!==`off`}function createAssistant(e={}){let t=u().agentHost?.();return t?new AssistantStore(t,{place:aiChatPlace,onManageAgents:()=>void openAgentsScreen(),...e}):null}function setAssistant(e){if(release?.(),release=null,w=e,T=!0,!e)return;let t=m(()=>{e.setPlace(aiChatPlace())}),refocused=()=>{e.snapshot().enabled&&e.resync()},n=typeof window>`u`?null:window;n?.addEventListener(`focus`,refocused),release=()=>{t(),n?.removeEventListener(`focus`,refocused)}}function getAssistant(){if(!T){T=!0;try{setAssistant(createAssistant())}catch{w=null}}return w}function installOpenChat(){let e=globalThis,open=e=>getAssistant()?.openChat(e);if(e.penstockOpenChat=open,e.pendingOpenChat){let t=e.pendingOpenChat;delete e.pendingOpenChat,open(t)}return()=>{e.penstockOpenChat===open&&delete e.penstockOpenChat}}function useTick(t,r,i=Object.is){let[,o]=e(0),s=n(r);s.current=r;let c=n(r()),l=r();return c.current=l,a(()=>t(()=>{let e=s.current();i(c.current,e)||(c.current=e,o(e=>e+1))}),[t]),l}var E=6e4,D=60*E,O=24*D;function ago(e,t=Date.now()){let n=t-e,r;try{r=new Intl.RelativeTimeFormat(s(),{numeric:`auto`,style:`short`})}catch{r=new Intl.RelativeTimeFormat(`en`,{numeric:`auto`,style:`short`})}return!Number.isFinite(n)||n<E?r.format(0,`minute`):n<D?r.format(-Math.floor(n/E),`minute`):n<O?r.format(-Math.floor(n/D),`hour`):r.format(-Math.floor(n/O),`day`)}var k=/(?:fill|stroke)\s*[:=]\s*["']?\s*(#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)|[a-zA-Z]+)/g,A=new Set([`none`,`transparent`,`currentcolor`,`inherit`]),j=2e5,M=new Map;function isSingleColour(e){let t=new Set;for(let n of e.matchAll(k)){let e=n[1].toLowerCase().replace(/\s+/g,``);A.has(e)||t.add(e)}return t.size<=1&&!/<(?:linearGradient|radialGradient|image)\b/i.test(e)}var N=/^data:image\/svg\+xml;base64,([A-Za-z0-9+/=]+)$/,P=/^(?:data:image\/svg\+xml;base64,[A-Za-z0-9+/=]+|https?:\/\/\S+|\/[^\s/]\S*)$/;function loadable(e){return typeof e==`string`&&P.test(e)}function decoded(e){let t=N.exec(e);if(!t)return null;try{return atob(t[1])}catch{return``}}function singleColour(e){let t=decoded(e);if(t!==null)return Promise.resolve(t!==``&&t.length<=j&&isSingleColour(t));let n=M.get(e);return n||(n=fetch(e).then(e=>e.ok?e.text():``).then(t=>t!==``&&t.length<=j&&/\.svg(?:$|\?)/i.test(e)&&isSingleColour(t)).catch(()=>!1),M.set(e,n)),n}function monogramOf(e){return(Array.from(e.trim())[0]??`?`).toLocaleUpperCase()}function AgentLogo({name:t,icon:n,class:i,size:o=16}){let s=loadable(n)?n:null,[c,l]=e(null),[u,d]=e(!1);a(()=>{if(d(!1),l(null),!s)return;let e=!0;return singleColour(s).then(t=>{e&&l(t)}),()=>{e=!1}},[s]);let f=`agent-logo${o===20?` agent-logo--large`:``}${i?` ${i}`:``}`;return!s||u?r(`span`,{class:`${f} agent-logo--monogram type-badge`,"aria-hidden":`true`,children:monogramOf(t)}):c===!0?r(`span`,{class:`${f} agent-logo--mask`,style:{maskImage:`url("${s}")`,WebkitMaskImage:`url("${s}")`},"aria-hidden":`true`}):r(`img`,{class:f,src:s,alt:``,width:o,height:o,onError:()=>d(!0)})}var F=/^default\b/i,I=28,L=4;function settingsOf(e){let first=t=>e.find(e=>e.category===t)??null;return{model:first(`model`),level:first(`thought_level`),mode:first(`mode`)}}function currentOf(e){return e.values.find(t=>t.id===e.current)??null}function isDefaultValue(e){return F.test(e.id)||F.test(e.name)}function standsFor(e){let t=e.description?.trim()??``,n=t.split(/\s+/).length;return t!==``&&t.length<=I&&n<=L&&/^[A-Z0-9]/.test(t)&&!/[.!?]$/.test(t)?t:null}function rowName(e){let t=currentOf(e);return t?e.category===`model`?modelName(e)??t.name:isDefaultValue(t)?standsFor(t)??t.name:t.name:e.current}function modelName(e){let t=currentOf(e);return t?isDefaultValue(t)?standsFor(t):t.name:e.current}function levelName(e){let t=currentOf(e);return t?isDefaultValue(t)?null:t.name:e.current}function modelAndLevel(e){return[e.model?modelName(e.model):null,e.level?levelName(e.level):null].filter(e=>e!==null).join(` `)}function modeSuffix(e){let t=e.mode;if(!t)return null;let n=currentOf(t);return n&&isDefaultValue(n)?null:modeName(t)}function settingsLabel(e){return[modelAndLevel(e),modeSuffix(e)].filter(e=>e!==null&&e!==``).join(` · `)}function modeName(e){return currentOf(e)?.name??e.current}var R=6,z=22,B=2;function groupsOf(e){let t=[];for(let n of e){let e=t[t.length-1];e&&e.name===n.group?e.values.push(n):t.push({name:n.group,values:[n]})}return t}function isSegmented(e){let t=e.values;return t.length<2||t.length>R||!t.every(e=>!e.description&&!e.group)?!1:t.reduce((e,t)=>e+Array.from(t.name).length+B,0)<=z}var V=360,H=72,U=60,W=16,G={kind:`rows`};function Segmented({option:e,onPick:t}){return r(`div`,{class:`assistant-form__segments`,role:`radiogroup`,"aria-label":e.name,children:e.values.map(n=>r(`button`,{type:`button`,role:`radio`,"aria-checked":n.id===e.current,"data-nav":`segment`,class:`assistant-form__segment type-body`,onClick:()=>t(e,n.id),children:n.name},n.id))})}function Select({text:e,logo:t,onOpen:n,label:i,nav:a=`item`}){return r(`button`,{type:`button`,class:`assistant-form__select type-body`,"data-nav":a,"aria-label":`${i}: ${e}`,"aria-haspopup":`listbox`,onClick:n,children:[t,r(`span`,{class:`assistant-form__select-text`,children:e}),r(d,{name:`chevronDown`,class:`assistant-form__select-chevron`})]})}function Row({label:e,children:t}){return r(`div`,{class:`assistant-form__row`,children:[r(`span`,{class:`assistant-form__label type-help`,children:e}),r(`div`,{class:`assistant-form__control`,children:t})]})}function OptionList({option:e,onPick:t}){return r(`div`,{class:`assistant-form__choices`,role:`listbox`,"aria-label":e.name,children:groupsOf(e.values).map((n,i)=>r(`div`,{role:`presentation`,class:`assistant-form__group`,children:[n.name&&r(`div`,{class:`assistant-form__subheading type-help`,role:`presentation`,children:n.name}),n.values.map(n=>{let i=n.id===e.current;return r(`button`,{type:`button`,role:`option`,"aria-selected":i,"data-nav":`item`,"data-current":i?`true`:void 0,class:`assistant-form__item type-body`,onClick:()=>t(e,n.id),children:[r(`span`,{class:`assistant-form__check`,"aria-hidden":`true`,children:i&&r(d,{name:`check`})}),r(`span`,{class:`assistant-form__text`,children:[r(`span`,{class:`assistant-form__name`,children:n.name}),n.description&&r(`span`,{class:`assistant-form__description type-help`,children:n.description})]})]},n.id)})]},`${n.name??``}:${i}`))})}function navigate(e,t){let n=document.activeElement,r=Array.from(e.querySelectorAll(`[data-nav]`)),i=n?r.indexOf(n):-1;if(i<0)return!1;if(n?.dataset.nav===`segment`&&(t===`ArrowRight`||t===`ArrowLeft`)){let e=Array.from(n.parentElement?.querySelectorAll(`[data-nav="segment"]`)??[]);return e[(e.indexOf(n)+(t===`ArrowRight`?1:-1)+e.length)%e.length]?.focus(),!0}return t!==`ArrowDown`&&t!==`ArrowUp`?!1:(r[(i+(t===`ArrowDown`?1:-1)+r.length)%r.length]?.focus(),!0)}function listLimit(e,t){return Math.max(H,Math.min(V,Math.round(e-t-W-U)))}function AgentSettings({store:s,state:c,editor:l,chat:u,agentId:p,options:m,busy:h,started:g}){let _=n(null),v=n(null),y=n(null),[b,x]=e(!1),[S,C]=e(G),[w,T]=e(V),E=settingsOf(m),D=c.choices.find(e=>e.id===p),O=c.choices.filter(e=>e.available),k=D?.name??(p===``?o(`app.assistant.input.noAgent`):p),A=O.length===0&&c.canManageAgents,j=settingsLabel(E),M=[E.model,E.level,E.mode].filter(e=>e!==null),N=S.kind===`option`?M.find(e=>e.id===S.id)??null:null,close=()=>{x(!1),C(G)},back=()=>{C(G)},drill=e=>{y.current=document.activeElement,C(e)},pick=(e,t)=>{t!==e.current&&s.pickOption(l,u,e,t)},pickFromList=(e,t)=>{pick(e,t),back()},chooseAgent=e=>{e!==p&&s.changeAgent(l,e),back()},manage=()=>{close(),s.onManageAgents?.()};i(()=>{if(!b||S.kind===`rows`||!_.current)return;let e=_.current.closest(`.editor-canvas`);T(listLimit(_.current.getBoundingClientRect().top,e?e.getBoundingClientRect().top:0))},[b,S]),a(()=>{if(!b)return;let e=v.current;if(e){if(S.kind===`rows`){let t=y.current&&e.contains(y.current)?y.current:e.querySelector(`[data-nav]`);y.current=null,t?.focus()}else(e.querySelector(`[data-current="true"]`)??e.querySelector(`[data-nav="item"]:not(.assistant-form__back)`))?.focus()}},[b,S]);let P=S.kind===`agent`?o(`app.assistant.form.agent`):N?.name??``;return r(t,{children:[r(`button`,{ref:_,type:`button`,class:`assistant-settings type-body`,title:j===``?k:`${k}: ${j}`,"aria-label":j===``?k:o(`app.assistant.input.settingsLabel`,{agent:k,settings:j}),"aria-haspopup":A?void 0:`dialog`,"aria-expanded":A?void 0:b,onClick:()=>A?s.onManageAgents?.():b?close():x(!0),children:[r(AgentLogo,{name:k,icon:D?.icon}),j!==``&&r(`span`,{class:`assistant-settings__label`,children:j})]}),b&&r(f,{anchor:_.current,label:o(`app.assistant.form.title`),onClose:close,onEscape:()=>S.kind!==`rows`&&(back(),!0),width:320,class:`assistant-form`,children:[r(`div`,{ref:v,class:`assistant-form__body`,"data-view":S.kind,style:{"--assistant-form-list":`${w}px`},onKeyDown:e=>{let t=e.currentTarget;/^Arrow/.test(e.key)&&navigate(t,e.key)&&e.preventDefault()},children:[S.kind===`rows`&&r(t,{children:[r(Row,{label:o(`app.assistant.form.agent`),children:r(Select,{label:o(`app.assistant.form.agent`),text:k,logo:r(AgentLogo,{name:k,icon:D?.icon}),onOpen:()=>drill({kind:`agent`})})}),M.map(e=>{let t=rowName(e);return r(Row,{label:e.name,children:e.category!==`model`&&isSegmented(e)?r(Segmented,{option:e,onPick:pick}):r(Select,{label:e.name,text:t,onOpen:()=>drill({kind:`option`,id:e.id})})},e.id)}),h&&M.length>0&&r(`p`,{class:`assistant-form__note type-help`,children:o(`app.assistant.input.optionNextTurn`)})]}),S.kind!==`rows`&&r(t,{children:[r(`header`,{class:`assistant-form__head`,children:[r(`button`,{type:`button`,class:`assistant-form__back`,"data-nav":`item`,"aria-label":o(`app.assistant.form.back`),title:o(`app.assistant.form.back`),onClick:back,children:r(d,{name:`chevronLeft`})}),r(`h3`,{class:`assistant-form__title type-section-heading`,children:P})]}),r(`div`,{class:`assistant-form__scroll`,children:[S.kind===`agent`&&r(t,{children:[r(`div`,{class:`assistant-form__choices`,role:`listbox`,"aria-label":o(`app.assistant.form.agent`),children:O.map(e=>r(`button`,{type:`button`,role:`option`,"aria-selected":e.id===p,"data-nav":`item`,"data-current":e.id===p?`true`:void 0,class:`assistant-form__item type-body`,onClick:()=>chooseAgent(e.id),children:[r(`span`,{class:`assistant-form__check`,"aria-hidden":`true`,children:e.id===p&&r(d,{name:`check`})}),r(AgentLogo,{name:e.name,icon:e.icon}),r(`span`,{class:`assistant-form__text`,children:r(`span`,{class:`assistant-form__name`,children:e.name})})]},e.id))}),g&&r(`p`,{class:`assistant-form__note type-help`,children:o(`app.assistant.form.agentNew`)})]}),N&&r(OptionList,{option:N,onPick:pickFromList})]})]})]}),c.canManageAgents&&S.kind===`rows`&&r(`div`,{class:`assistant-form__foot`,children:r(`button`,{type:`button`,"data-nav":`item`,class:`assistant-form__manage type-body`,onClick:manage,children:o(`app.assistant.form.manage`)})})]})]})}export{aiChatPlaceOf as _,useTick as a,getAssistant as c,mentionKey as d,optionsFor as f,registerAgentsOpener as g,openAgentsScreen as h,ago as i,installOpenChat as l,pathsMatch as m,OptionList as n,aiChatOn as o,baseName as p,AgentLogo as r,createAssistant as s,AgentSettings as t,setAssistant as u,aiChatSurfaces as v};
@@ -1 +1 @@
1
- import"./rolldown-runtime-B8BYMn-z.js";import{c as e,d as t,h as n,o as r,r as i,u as a}from"./vendor-NJP34MHU.js";import{i as o}from"./translator-DLDFsUlE.js";import{t as s}from"./bridgeInstance-qzSInqLW.js";import{h as c,m as l,s as u}from"./ui-BTKMbWYG.js";import{r as d,t as f}from"./sharedReader-Bopy7Uk9.js";import{s as p}from"./model--Bj28IOj.js";import{n as m}from"./data-Da5Nxzev.js";function clientLabel(e,t){let n=e.agent.mcpClients[t];return n.clientId??n.url??n.name??n.elementId}function Clients({entry:e}){return e.agent.mcpClients.length===0?i(`span`,{class:`ai-agents__muted`,children:o(`app.aiAgents.value.none`)}):i(n,{children:e.agent.mcpClients.map((t,n)=>{let r=e.clients.find(e=>e.elementId===t.elementId)?.status??null,a=t.remote?o(`app.aiAgents.mcp.remote`,{transport:t.transport??`http`}):o(r===null?`app.aiAgents.mcp.unverifiable`:`app.aiAgents.mcp.${r}`);return i(`span`,{class:`ai-agents__client-inline`,children:[clientLabel(e,n),` `,i(`span`,{class:`ai-agents__status is-${t.remote?`defined`:r??`unverifiable`}`,children:a})]},t.elementId)})})}function AgentRow({entry:e,host:t}){let{agent:n}=e,r=[n.provider,n.model].filter(e=>!!e).join(` / `);return i(`tr`,{children:[i(`td`,{children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>t.open(e.file,n.id),children:n.name||n.id}),i(`span`,{class:`ai-agents__muted`,children:d(e.file)})]}),i(`td`,{children:o(n.kind===`task`?`app.aiAgents.kind.task`:`app.aiAgents.kind.subprocess`)}),i(`td`,{children:r||i(`span`,{class:`ai-agents__muted`,children:o(`app.aiAgents.value.notSet`)})}),i(`td`,{children:n.tools.length}),i(`td`,{children:i(Clients,{entry:e})}),i(`td`,{children:e.findings.length===0?i(`span`,{class:`ai-agents__muted`,children:o(`app.aiAgents.value.none`)}):i(`span`,{class:`ai-agents__problem`,children:e.findings.length})})]})}function AgentsScreen({host:n}){let[r,s]=e(null),[c,l]=e(!1),f=t(()=>{let e=!0;return n.load().then(t=>{e&&(s(t),l(!1))}).catch(()=>e&&l(!0)),()=>{e=!1}},[n]);if(a(()=>f(),[f]),a(()=>{let again=()=>{document.visibilityState===`visible`&&f()};return window.addEventListener(`focus`,again),document.addEventListener(`visibilitychange`,again),()=>{window.removeEventListener(`focus`,again),document.removeEventListener(`visibilitychange`,again)}},[f]),c&&!r)return i(u,{title:o(`app.aiAgents.screen.failed.title`),hint:o(`app.aiAgents.screen.failed.hint`)});if(!r)return i(`p`,{class:`ai-agents__note type-help`,children:o(`app.aiAgents.screen.loading`)});let{report:m}=r,h=m.agents.length===0&&m.orphans.length===0&&m.standalone.length===0;return i(`div`,{class:`ai-agents-screen`,children:[i(`p`,{class:`ai-agents__note type-help`,children:o(`app.aiAgents.screen.help`)}),h&&i(u,{title:o(`app.aiAgents.screen.empty.title`),hint:o(`app.aiAgents.screen.empty.hint`)}),m.agents.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`p`,{class:`ai-agents__summary type-help`,children:[o(`app.aiAgents.screen.agentCount`,{count:m.agents.length}),o(`app.aiAgents.screen.problemCount`,{count:m.findings.length})].join(`, `)}),i(`table`,{class:`ai-agents__table ai-agents__table--wide`,children:[i(`thead`,{children:i(`tr`,{children:[i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.agent`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.kind`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.model`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.tools`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.mcp`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.problems`)})]})}),i(`tbody`,{children:m.agents.map(e=>i(AgentRow,{entry:e,host:n},`${e.file}:${e.agent.id}`))})]})]}),m.findings.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`h3`,{class:`ai-agents__heading type-section-heading`,children:o(`app.aiAgents.section.findings`)}),i(`ul`,{class:`ai-agents__list`,children:m.findings.map((e,t)=>i(`li`,{class:`ai-agents__finding`,children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>n.open(e.file,e.finding.elementId),children:[i(`span`,{class:`ai-agents__severity is-${e.finding.severity}`,children:o(`app.aiAgents.severity.${e.finding.severity}`)}),p(e.finding)]}),i(`span`,{class:`ai-agents__muted`,children:d(e.file)})]},t))})]}),m.orphans.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`h3`,{class:`ai-agents__heading type-section-heading`,children:o(`app.aiAgents.orphans`)}),i(`ul`,{class:`ai-agents__list`,children:m.orphans.map(e=>i(`li`,{children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>n.open(e.file,e.id),children:e.name||e.id}),i(`span`,{class:`ai-agents__muted`,children:d(e.file)})]},`${e.file}:${e.id}`))})]}),m.standalone.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`h3`,{class:`ai-agents__heading type-section-heading`,children:o(`app.aiAgents.standalone`)}),i(`ul`,{class:`ai-agents__list`,children:m.standalone.map(e=>i(`li`,{children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>n.open(e.file,e.client.elementId),children:e.client.clientId??e.client.url??e.client.name??e.client.elementId}),i(`span`,{class:`ai-agents__muted`,children:d(e.file)})]},`${e.file}:${e.client.elementId}`))})]})]})}function bridgeAgentsHost(){let e=s(),t=``;return{load:async()=>{let e=await m(await f.read());return t=e.root,e},open:(n,r)=>{let i=t===``?n:`${t.replace(/[\\/]+$/,``)}/${n}`;e.revealElement(i,r??void 0).catch(e=>console.error(`The file did not open:`,e))}}}function AiAgentsDialog({onClose:e}){let t=r(()=>bridgeAgentsHost(),[]);return i(l,{title:o(`app.aiAgents.screen.title`),size:`xlarge`,class:`ai-agents-dialog`,onClose:e,footer:i(c,{actions:[{id:`done`,label:o(`app.common.done`),role:`primary`,onClick:e}]}),children:i(AgentsScreen,{host:t})})}export{AiAgentsDialog};
1
+ import"./rolldown-runtime-B8BYMn-z.js";import{c as e,d as t,h as n,o as r,r as i,u as a}from"./vendor-NJP34MHU.js";import{i as o}from"./translator-BLCeE6UY.js";import{h as s,m as c,s as l}from"./ui-BLtm3Y1J.js";import{r as u,t as d}from"./sharedReader-BsXfiBT8.js";import{s as f}from"./model-afHgSxJs.js";import{t as p}from"./bridgeInstance-qzSInqLW.js";import{n as m}from"./data-wU6sw6RY.js";function clientLabel(e,t){let n=e.agent.mcpClients[t];return n.clientId??n.url??n.name??n.elementId}function Clients({entry:e}){return e.agent.mcpClients.length===0?i(`span`,{class:`ai-agents__muted`,children:o(`app.aiAgents.value.none`)}):i(n,{children:e.agent.mcpClients.map((t,n)=>{let r=e.clients.find(e=>e.elementId===t.elementId)?.status??null,a=t.remote?o(`app.aiAgents.mcp.remote`,{transport:t.transport??`http`}):o(r===null?`app.aiAgents.mcp.unverifiable`:`app.aiAgents.mcp.${r}`);return i(`span`,{class:`ai-agents__client-inline`,children:[clientLabel(e,n),` `,i(`span`,{class:`ai-agents__status is-${t.remote?`defined`:r??`unverifiable`}`,children:a})]},t.elementId)})})}function AgentRow({entry:e,host:t}){let{agent:n}=e,r=[n.provider,n.model].filter(e=>!!e).join(` / `);return i(`tr`,{children:[i(`td`,{children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>t.open(e.file,n.id),children:n.name||n.id}),i(`span`,{class:`ai-agents__muted`,children:u(e.file)})]}),i(`td`,{children:o(n.kind===`task`?`app.aiAgents.kind.task`:`app.aiAgents.kind.subprocess`)}),i(`td`,{children:r||i(`span`,{class:`ai-agents__muted`,children:o(`app.aiAgents.value.notSet`)})}),i(`td`,{children:n.tools.length}),i(`td`,{children:i(Clients,{entry:e})}),i(`td`,{children:e.findings.length===0?i(`span`,{class:`ai-agents__muted`,children:o(`app.aiAgents.value.none`)}):i(`span`,{class:`ai-agents__problem`,children:e.findings.length})})]})}function AgentsScreen({host:n}){let[r,s]=e(null),[c,d]=e(!1),p=t(()=>{let e=!0;return n.load().then(t=>{e&&(s(t),d(!1))}).catch(()=>e&&d(!0)),()=>{e=!1}},[n]);if(a(()=>p(),[p]),a(()=>{let again=()=>{document.visibilityState===`visible`&&p()};return window.addEventListener(`focus`,again),document.addEventListener(`visibilitychange`,again),()=>{window.removeEventListener(`focus`,again),document.removeEventListener(`visibilitychange`,again)}},[p]),c&&!r)return i(l,{title:o(`app.aiAgents.screen.failed.title`),hint:o(`app.aiAgents.screen.failed.hint`)});if(!r)return i(`p`,{class:`ai-agents__note type-help`,children:o(`app.aiAgents.screen.loading`)});let{report:m}=r,h=m.agents.length===0&&m.orphans.length===0&&m.standalone.length===0;return i(`div`,{class:`ai-agents-screen`,children:[i(`p`,{class:`ai-agents__note type-help`,children:o(`app.aiAgents.screen.help`)}),h&&i(l,{title:o(`app.aiAgents.screen.empty.title`),hint:o(`app.aiAgents.screen.empty.hint`)}),m.agents.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`p`,{class:`ai-agents__summary type-help`,children:[o(`app.aiAgents.screen.agentCount`,{count:m.agents.length}),o(`app.aiAgents.screen.problemCount`,{count:m.findings.length})].join(`, `)}),i(`table`,{class:`ai-agents__table ai-agents__table--wide`,children:[i(`thead`,{children:i(`tr`,{children:[i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.agent`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.kind`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.model`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.tools`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.mcp`)}),i(`th`,{class:`type-table-header`,children:o(`app.aiAgents.screen.column.problems`)})]})}),i(`tbody`,{children:m.agents.map(e=>i(AgentRow,{entry:e,host:n},`${e.file}:${e.agent.id}`))})]})]}),m.findings.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`h3`,{class:`ai-agents__heading type-section-heading`,children:o(`app.aiAgents.section.findings`)}),i(`ul`,{class:`ai-agents__list`,children:m.findings.map((e,t)=>i(`li`,{class:`ai-agents__finding`,children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>n.open(e.file,e.finding.elementId),children:[i(`span`,{class:`ai-agents__severity is-${e.finding.severity}`,children:o(`app.aiAgents.severity.${e.finding.severity}`)}),f(e.finding)]}),i(`span`,{class:`ai-agents__muted`,children:u(e.file)})]},t))})]}),m.orphans.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`h3`,{class:`ai-agents__heading type-section-heading`,children:o(`app.aiAgents.orphans`)}),i(`ul`,{class:`ai-agents__list`,children:m.orphans.map(e=>i(`li`,{children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>n.open(e.file,e.id),children:e.name||e.id}),i(`span`,{class:`ai-agents__muted`,children:u(e.file)})]},`${e.file}:${e.id}`))})]}),m.standalone.length>0&&i(`section`,{class:`ai-agents__section`,children:[i(`h3`,{class:`ai-agents__heading type-section-heading`,children:o(`app.aiAgents.standalone`)}),i(`ul`,{class:`ai-agents__list`,children:m.standalone.map(e=>i(`li`,{children:[i(`button`,{type:`button`,class:`ai-agents__link`,title:o(`app.aiAgents.screen.open`),onClick:()=>n.open(e.file,e.client.elementId),children:e.client.clientId??e.client.url??e.client.name??e.client.elementId}),i(`span`,{class:`ai-agents__muted`,children:u(e.file)})]},`${e.file}:${e.client.elementId}`))})]})]})}function bridgeAgentsHost(){let e=p(),t=``;return{load:async()=>{let e=await m(await d.read());return t=e.root,e},open:(n,r)=>{let i=t===``?n:`${t.replace(/[\\/]+$/,``)}/${n}`;e.revealElement(i,r??void 0).catch(e=>console.error(`The file did not open:`,e))}}}function AiAgentsDialog({onClose:e}){let t=r(()=>bridgeAgentsHost(),[]);return i(c,{title:o(`app.aiAgents.screen.title`),size:`xlarge`,class:`ai-agents-dialog`,onClose:e,footer:i(s,{actions:[{id:`done`,label:o(`app.common.done`),role:`primary`,onClick:e}]}),children:i(AgentsScreen,{host:t})})}export{AiAgentsDialog};
@@ -1 +1 @@
1
- import"./rolldown-runtime-B8BYMn-z.js";import{c as e,h as t,i as n,o as r,r as i,u as a}from"./vendor-NJP34MHU.js";import{i as o}from"./translator-DLDFsUlE.js";import{t as s}from"./bridgeInstance-qzSInqLW.js";import{d as c,h as l,m as u,n as d,r as f,s as p,u as m}from"./ui-BTKMbWYG.js";import{a as h,c as g,i as _,n as v,r as y}from"./AgentSettings-Cn5Vcph3.js";var b=`general`,x=700,S=1e4,C=4;function matches(e,t){let n=t.trim().toLowerCase();return n===``||`${e.name} ${e.id} ${e.description}`.toLowerCase().includes(n)}function sections(e){let t=(e.catalog?.agents??[]).filter(t=>matches(t,e.query)),running=e=>e.enabled&&e.installed;return{on:t.filter(running),rest:t.filter(e=>!running(e))}}var AgentsStore=class{state={status:`loading`,failure:null,catalog:null,refreshing:!1,query:``,selected:null,errors:{}};listeners=new Set;host;options;polling=!1;disposed=!1;started=null;constructor(e,t={}){this.host=e,this.options=t}snapshot=()=>this.state;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.state={...this.state,...e};for(let e of[...this.listeners])try{e()}catch(e){console.error(`An agents listener failed:`,e)}}describe(e){return this.options.describe?this.options.describe(e):e instanceof Error?e.message:String(e)}start(){return this.started??=this.load(!0),this.started}reload(){return this.load(!1)}async load(e){try{let t=await this.host.catalog();if(this.disposed)return;this.commit({status:`ready`,failure:null,catalog:t,selected:this.state.selected??defaultSelection(t)}),this.watch(t),e&&t.stale&&this.refresh()}catch(e){if(this.disposed)return;this.commit({status:this.state.catalog?`ready`:`failed`,failure:this.describe(e)})}}async refresh(){if(!this.state.refreshing){this.commit({refreshing:!0});try{let e=await this.host.refresh();if(this.disposed)return;this.commit({status:`ready`,failure:null,refreshing:!1,catalog:e,selected:this.state.selected??defaultSelection(e)}),this.watch(e)}catch(e){if(this.disposed)return;this.commit({refreshing:!1,failure:this.describe(e),status:this.state.catalog?`ready`:`failed`})}}}select(e){this.commit({selected:e})}search(e){this.commit({query:e})}setError(e,t){let n={...this.state.errors};t===null?delete n[e]:n[e]=t,this.commit({errors:n})}replace(e){let t=this.state.catalog;if(!t)return;let n=t.agents.map(t=>t.id===e.id?e:t),r={...t,agents:n,busy:t.busy||e.job?.state===`running`};this.commit({catalog:r}),this.watch(r)}async act(e,t){this.setError(e,null);try{this.replace(await t()),this.options.changed?.()}catch(t){if(this.disposed)return;this.setError(e,this.describe(t)),this.load(!1)}}install(e){return this.act(e,()=>this.host.install(e))}uninstall(e){return this.act(e,()=>this.host.uninstall(e))}turn(e,t){return this.act(e,()=>this.host.turn(e,t))}refreshModels(e){return this.act(e,()=>this.host.refreshModels(e))}choose(e,t,n){return this.act(e,()=>this.host.choose(e,t,n))}watch(e){!e.busy||this.polling||this.disposed||(this.polling=!0,(async()=>{let e=0;try{for(;!this.disposed;){let t=Math.min((this.options.pollMs??x)*2**e,S);if(await(this.options.wait?this.options.wait(t):new Promise(e=>setTimeout(e,t))),this.disposed)return;let n;try{n=await this.host.catalog()}catch(t){e=Math.min(e+1,C),this.commit({failure:this.describe(t)});continue}if(this.disposed||(e=0,this.commit({catalog:n,failure:null}),!n.busy))return}}finally{this.polling=!1}})())}dispose(){this.disposed=!0,this.listeners.clear()}};function defaultSelection(e){return e.agents.find(e=>e.enabled&&e.installed)?.id??`general`}var w=280;function ValueSelect({id:r,option:a,chosen:s,onChoose:c}){let l=n(null),[u,f]=e(!1),p=a.values.find(e=>e.id===a.current)?.name??a.current,h=[{id:``,name:o(`app.agents.modelsOwn`,{value:p}),description:null,group:null},...a.values.map(e=>({id:e.id,name:e.name,description:null,group:null}))],g=h.find(e=>e.id===s)?.name??s,_={id:a.id,name:a.name,description:null,category:a.category??a.id,current:s,values:h};return i(t,{children:[i(`button`,{ref:l,id:r,type:`button`,class:`assistant-form__select type-body agents-select`,"aria-haspopup":`listbox`,"aria-expanded":u,onClick:()=>f(e=>!e),children:[i(`span`,{class:`assistant-form__select-text`,children:g}),i(d,{name:`chevronDown`,class:`assistant-form__select-chevron`})]}),u&&i(m,{anchor:l.current,label:a.name,onClose:()=>f(!1),width:320,class:`assistant-form`,children:i(`div`,{class:`assistant-form__scroll`,style:{"--assistant-form-list":`${w}px`},children:i(v,{option:_,onPick:(e,t)=>{f(!1),c(t===``?null:t)}})})})]})}var T=`https://nodejs.org/en/download`,E=`https://docs.astral.sh/uv/getting-started/installation/`,D=[`off`,`bottom`,`sidebar`],O={off:`app.agents.aiChatOff`,bottom:`app.agents.aiChatBottom`,sidebar:`app.agents.aiChatSidebar`},k={off:`app.agents.aiChatOffHelp`,bottom:`app.agents.aiChatBottomHelp`,sidebar:`app.agents.aiChatSidebarHelp`};function openLink(e){s().openExternalLink(e).catch(()=>void 0)}function reasonText(e){let t=o(e.key,e.params);return t===e.key?e.detail===``?o(`app.agents.reason.unknown`):e.detail:e.detail===``?t:`${t} ${e.detail}`}function stateWord(e){if(e.job?.state===`running`){if(e.job.kind===`install`)return e.job.percent===null?o(`app.agents.state.installing`):o(`app.agents.state.installingPercent`,{percent:e.job.percent});if(e.job.kind===`models`)return o(`app.agents.state.reading`)}return e.job?.state===`failed`&&e.job.kind!==`models`?o(`app.agents.state.failed`):e.updateAvailable?o(`app.agents.state.update`):e.enabled&&e.installed?o(`app.agents.state.on`):e.installed?o(`app.agents.state.installed`):``}function Row({agent:e,selected:t,onSelect:n}){let r=stateWord(e);return i(`button`,{type:`button`,role:`option`,"aria-selected":t,tabIndex:t?0:-1,"data-id":e.id,class:`agents-row type-body`,onClick:n,children:[i(y,{icon:e.icon,name:e.name}),i(`span`,{class:`agents-row__name`,children:e.name}),r!==``&&i(`span`,{class:`agents-row__state type-help${e.enabled&&e.installed?` is-on`:``}${e.job?.state===`failed`?` is-failed`:``}`,children:r})]})}function GeneralRow({selected:e,onSelect:t}){return i(`button`,{type:`button`,role:`option`,"aria-selected":e,tabIndex:e?0:-1,"data-id":b,class:`agents-row type-body`,onClick:t,children:[i(`span`,{class:`agents-general-icon`,"aria-hidden":`true`}),i(`span`,{class:`agents-row__name`,children:o(`app.agents.general`)})]})}function General({preferences:e}){let t=h(e.subscribe,e.aiChat);return i(`div`,{class:`agents-general`,children:i(`section`,{class:`agents-group`,"aria-labelledby":`agents-chat`,children:[i(`h3`,{id:`agents-chat`,class:`agents-group__heading type-section-heading`,children:o(`app.agents.aiChat`)}),i(`div`,{role:`radiogroup`,"aria-labelledby":`agents-chat`,class:`agents-group__choices`,children:D.map(n=>i(`div`,{children:[i(`label`,{class:`agents-check type-body`,children:[i(`input`,{type:`radio`,name:`agents-chat`,value:n,checked:t===n,"aria-describedby":`agents-chat-${n}`,onChange:()=>e.setAiChat(n)}),i(`span`,{children:o(O[n])})]}),i(`p`,{id:`agents-chat-${n}`,class:`agents-group__help type-help`,children:o(k[n])})]},n))})]})})}function Blocked({agent:e,node:n,uv:r}){if(e.blocked===null)return null;let a=e.blocked===`node`&&!n?T:e.blocked===`uv`&&!r?E:null;return i(`p`,{class:`agents-note type-help`,children:[o(`app.agents.blocked.${e.blocked}`),a&&i(t,{children:[` `,i(`a`,{class:`agents-link`,href:a,onClick:e=>{e.preventDefault(),openLink(a)},children:o(e.blocked===`node`?`app.agents.blocked.nodeLink`:`app.agents.blocked.uvLink`)})]})]})}function Progress({percent:e}){return i(`div`,{class:`agents-progress`,role:`progressbar`,"aria-label":o(`app.agents.state.installing`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e??void 0,children:i(`span`,{class:`agents-progress__bar${e===null?` is-unknown`:``}`,style:e===null?void 0:{width:`${e}%`}})})}function Models({store:e,agent:n,error:r}){let a=n.job?.kind===`models`&&n.job.state===`running`,s=n.job?.kind===`models`&&n.job.state===`failed`?n.job.error:null,l=n.options,u=l&&l.readAt!==``&&Number.isFinite(Date.parse(l.readAt))?_(Date.parse(l.readAt)):null;return i(`section`,{class:`agents-group`,"aria-labelledby":`agents-models-${n.id}`,children:[i(`div`,{class:`agents-group__head`,children:[i(`h3`,{id:`agents-models-${n.id}`,class:`agents-group__heading type-section-heading`,children:o(`app.agents.models`)}),i(`button`,{type:`button`,class:`ui-button type-button agents-refresh`,disabled:a,onClick:()=>void e.refreshModels(n.id),children:[a&&i(f,{}),i(`span`,{children:o(a?`app.agents.modelsReading`:`app.agents.modelsRefresh`)})]})]}),l===null&&!a&&!s&&i(t,{children:[i(`p`,{class:`agents-note type-body`,children:o(`app.agents.modelsEmpty`)}),i(`p`,{class:`agents-note type-help`,children:o(`app.agents.modelsEmptyHint`)})]}),l?.options.map(t=>{let r=t.category??t.id;return i(c,{label:t.name,children:a=>i(ValueSelect,{id:a.id,option:t,chosen:n.chosen[r]??``,onChoose:t=>void e.choose(n.id,r,t)})},t.id)}),u!==null&&!a&&i(`p`,{class:`agents-note type-help`,children:o(`app.agents.modelsRead`,{time:u})}),s&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:[reasonText(s),s.key===`app.agent.authRequired`&&i(`span`,{class:`agents-note__more type-help`,children:o(`app.agents.signInHint`)})]}),r&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:r})]})}function Detail({store:e,agent:n,state:r}){let a=r.catalog,s=n.job?.kind===`install`&&n.job.state===`running`,c=n.job?.state===`failed`&&n.job.kind!==`models`?n.job.error:null,l=r.errors[n.id]??null,u=!n.installed&&n.how!==`none`&&n.how!==`custom`&&n.blocked===null,d=n.installed&&(n.installedVia===`download`||n.installedVia===`package`);return i(`div`,{class:`agents-detail__page`,children:[i(`header`,{class:`agents-detail__head`,children:[i(y,{icon:n.icon,name:n.name,size:20}),i(`h2`,{class:`agents-detail__name type-dialog-title`,children:n.name}),n.version&&i(`span`,{class:`agents-detail__version type-help`,children:o(`app.agents.version`,{version:n.version})})]}),n.description!==``&&i(`p`,{class:`agents-detail__text type-body`,children:n.description}),i(`dl`,{class:`agents-meta type-help`,children:[n.license&&i(t,{children:[i(`dt`,{children:o(`app.agents.license`)}),i(`dd`,{children:n.license})]}),n.website&&i(t,{children:[i(`dt`,{children:o(`app.agents.website`)}),i(`dd`,{children:i(`a`,{class:`agents-link`,href:n.website,onClick:e=>{e.preventDefault(),openLink(n.website)},children:n.website})})]}),n.repository&&n.repository!==n.website&&i(t,{children:[i(`dt`,{children:o(`app.agents.repository`)}),i(`dd`,{children:i(`a`,{class:`agents-link`,href:n.repository,onClick:e=>{e.preventDefault(),openLink(n.repository)},children:n.repository})})]}),i(`dt`,{children:o(`app.agents.status`)}),i(`dd`,{children:n.installed?`${o(`app.agents.via.${n.installedVia??`path`}`)}${n.installedVersion?` · ${o(`app.agents.version`,{version:n.installedVersion})}`:``}`:n.how===`none`?o(`app.agents.cannotInstall`):o(`app.agents.how.${n.how}`)})]}),i(`div`,{class:`agents-actions`,children:[u&&!s&&i(`button`,{type:`button`,class:`ui-button ui-button--primary type-button`,onClick:()=>void e.install(n.id),children:o(c?`app.agents.tryAgain`:`app.agents.install`)}),s&&i(`button`,{type:`button`,class:`ui-button type-button`,disabled:!0,children:[i(f,{}),i(`span`,{children:o(`app.agents.state.installing`)})]}),n.installed&&!s&&n.updateAvailable&&d&&i(`button`,{type:`button`,class:`ui-button type-button`,onClick:()=>void e.install(n.id),children:o(`app.agents.update`)}),n.installed&&!s&&i(`button`,{type:`button`,class:`ui-button type-button${n.enabled?``:` ui-button--primary`}`,onClick:()=>void e.turn(n.id,!n.enabled),children:n.enabled?o(`app.agents.turnOff`):o(`app.agents.turnOn`)}),d&&!s&&i(`button`,{type:`button`,class:`ui-button ui-button--quiet ui-button--danger type-button`,onClick:()=>void e.uninstall(n.id),children:o(`app.agents.uninstall`)})]}),s&&i(Progress,{percent:n.job?.percent??null}),!n.installed&&a&&i(Blocked,{agent:n,node:a.node,uv:a.uv}),!n.installed&&n.blocked!==null&&n.install&&i(`p`,{class:`agents-note type-help`,children:[o(`app.agents.byHand`),` `,i(`code`,{class:`type-code`,children:n.install})]}),c&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:reasonText(c)}),l&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:l}),n.installed&&i(Models,{store:e,agent:n,error:null})]})}function ListFoot({store:e,state:t}){let n=t.catalog,r=n?.updated&&Number.isFinite(Date.parse(n.updated))?_(Date.parse(n.updated)):null,a=t.failure??(n?.refreshError?reasonText(n.refreshError):null);return i(`footer`,{class:`agents-list__foot`,children:[i(`p`,{class:`agents-list__updated type-help`,role:`status`,children:t.refreshing?o(`app.agents.updating`):r===null?o(`app.agents.neverUpdated`):n?.source===`snapshot`?o(`app.agents.updatedSnapshot`,{time:r}):o(`app.agents.updated`,{time:r})}),a&&!t.refreshing&&i(`p`,{class:`agents-list__problem type-warning-message`,children:a}),i(`button`,{type:`button`,class:`ui-button type-button agents-refresh`,disabled:t.refreshing,onClick:()=>void e.refresh(),children:[t.refreshing&&i(f,{}),i(`span`,{children:o(`app.agents.refresh`)})]})]})}function AgentsScreen({store:t,preferences:r}){let s=h(t.subscribe,t.snapshot),c=n(null),l=n(null),u=n(!1),[d,m]=e(null);a(()=>{t.start()},[t]),a(()=>{if(s.status!==`ready`||u.current)return;u.current=!0;let e=document.activeElement;(!e||e===document.body||e.classList.contains(`ui-dialog__close`)||e.classList.contains(`ui-dialog`))&&l.current?.focus()},[s.status]),a(()=>{d!==null&&(c.current?.querySelector(`[data-id="${CSS.escape(d)}"]`)?.focus(),m(null))},[d]);let{on:g,rest:_}=sections(s),v=[b,...g.map(e=>e.id),..._.map(e=>e.id)],y=s.selected??`general`,x=s.catalog?.agents.find(e=>e.id===y)??null,move=e=>{let n=e.key===`ArrowDown`?1:e.key===`ArrowUp`?-1:0,r=e.key===`Home`?0:e.key===`End`?v.length-1:null;if(n===0&&r===null)return;e.preventDefault();let i=v.indexOf(y),a=r??Math.min(v.length-1,Math.max(0,(i<0?0:i)+n));v[a]!==void 0&&(t.select(v[a]),m(v[a]))};return s.status===`loading`?i(`div`,{class:`agents-screen is-loading`,role:`status`,children:[i(f,{}),i(`span`,{class:`type-help`,children:o(`app.agents.loading`)})]}):s.status===`failed`||!s.catalog?i(`div`,{class:`agents-screen is-empty`,children:i(p,{title:o(`app.agents.failed.title`),hint:s.failure??o(`app.agents.failed.hint`),actions:[{label:o(`app.assistant.tryAgain`),run:()=>void t.reload()}]})}):i(`div`,{class:`agents-screen`,children:[i(`nav`,{class:`agents-list`,"aria-label":o(`app.agents.list`),children:[i(`input`,{ref:l,type:`search`,class:`agents-list__search type-input`,value:s.query,placeholder:o(`app.agents.search`),"aria-label":o(`app.agents.search`),onInput:e=>t.search(e.currentTarget.value)}),i(`div`,{ref:c,class:`agents-list__scroll`,role:`listbox`,"aria-label":o(`app.agents.list`),onKeyDown:move,children:[i(GeneralRow,{selected:y===b,onSelect:()=>t.select(b)}),i(`h3`,{class:`agents-list__heading type-section-heading`,children:o(`app.agents.on`)}),g.length===0&&(s.query===``||_.length===0)&&i(`p`,{class:`agents-list__none type-help`,children:s.query===``?o(`app.agents.noneOn`):o(`app.agents.noMatch`)}),g.map(e=>i(Row,{agent:e,selected:y===e.id,onSelect:()=>t.select(e.id)},e.id)),i(`h3`,{class:`agents-list__heading type-section-heading`,children:o(`app.agents.all`)}),_.length===0&&g.length>0&&i(`p`,{class:`agents-list__none type-help`,children:o(`app.agents.allShown`)}),_.length===0&&g.length===0&&s.query!==``&&i(`p`,{class:`agents-list__none type-help`,children:o(`app.agents.noMatch`)}),_.map(e=>i(Row,{agent:e,selected:y===e.id,onSelect:()=>t.select(e.id)},e.id))]}),i(ListFoot,{store:t,state:s})]}),i(`section`,{class:`agents-detail`,"aria-label":x?.name??o(`app.agents.general`),children:y===`general`||x===null?i(General,{preferences:r}):i(Detail,{store:t,agent:x,state:s})})]})}function AgentsDialog({host:e,preferences:t,onClose:n}){let s=r(()=>new AgentsStore(e,{changed:()=>void g()?.resync()}),[e]);return a(()=>()=>s.dispose(),[s]),i(u,{title:o(`app.agents.title`),size:`large`,body:`split`,class:`agents-dialog`,onClose:n,footer:i(l,{actions:[{id:`done`,label:o(`app.common.done`),role:`primary`,onClick:n}]}),children:i(AgentsScreen,{store:s,preferences:t})})}export{AgentsDialog};
1
+ import"./rolldown-runtime-B8BYMn-z.js";import{c as e,h as t,i as n,o as r,r as i,u as a}from"./vendor-NJP34MHU.js";import{i as o}from"./translator-BLCeE6UY.js";import{d as s,h as c,m as l,n as u,r as d,s as f,u as p}from"./ui-BLtm3Y1J.js";import{a as m,c as h,i as g,n as _,r as v}from"./AgentSettings-D24jOuht.js";import{t as y}from"./bridgeInstance-qzSInqLW.js";var b=`general`,x=700,S=1e4,C=4;function matches(e,t){let n=t.trim().toLowerCase();return n===``||`${e.name} ${e.id} ${e.description}`.toLowerCase().includes(n)}function sections(e){let t=(e.catalog?.agents??[]).filter(t=>matches(t,e.query)),running=e=>e.enabled&&e.installed;return{on:t.filter(running),rest:t.filter(e=>!running(e))}}var AgentsStore=class{state={status:`loading`,failure:null,catalog:null,refreshing:!1,query:``,selected:null,errors:{}};listeners=new Set;host;options;polling=!1;disposed=!1;started=null;constructor(e,t={}){this.host=e,this.options=t}snapshot=()=>this.state;subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});commit(e){this.state={...this.state,...e};for(let e of[...this.listeners])try{e()}catch(e){console.error(`An agents listener failed:`,e)}}describe(e){return this.options.describe?this.options.describe(e):e instanceof Error?e.message:String(e)}start(){return this.started??=this.load(!0),this.started}reload(){return this.load(!1)}async load(e){try{let t=await this.host.catalog();if(this.disposed)return;this.commit({status:`ready`,failure:null,catalog:t,selected:this.state.selected??defaultSelection(t)}),this.watch(t),e&&t.stale&&this.refresh()}catch(e){if(this.disposed)return;this.commit({status:this.state.catalog?`ready`:`failed`,failure:this.describe(e)})}}async refresh(){if(!this.state.refreshing){this.commit({refreshing:!0});try{let e=await this.host.refresh();if(this.disposed)return;this.commit({status:`ready`,failure:null,refreshing:!1,catalog:e,selected:this.state.selected??defaultSelection(e)}),this.watch(e)}catch(e){if(this.disposed)return;this.commit({refreshing:!1,failure:this.describe(e),status:this.state.catalog?`ready`:`failed`})}}}select(e){this.commit({selected:e})}search(e){this.commit({query:e})}setError(e,t){let n={...this.state.errors};t===null?delete n[e]:n[e]=t,this.commit({errors:n})}replace(e){let t=this.state.catalog;if(!t)return;let n=t.agents.map(t=>t.id===e.id?e:t),r={...t,agents:n,busy:t.busy||e.job?.state===`running`};this.commit({catalog:r}),this.watch(r)}async act(e,t){this.setError(e,null);try{this.replace(await t()),this.options.changed?.()}catch(t){if(this.disposed)return;this.setError(e,this.describe(t)),this.load(!1)}}install(e){return this.act(e,()=>this.host.install(e))}uninstall(e){return this.act(e,()=>this.host.uninstall(e))}turn(e,t){return this.act(e,()=>this.host.turn(e,t))}refreshModels(e){return this.act(e,()=>this.host.refreshModels(e))}choose(e,t,n){return this.act(e,()=>this.host.choose(e,t,n))}watch(e){!e.busy||this.polling||this.disposed||(this.polling=!0,(async()=>{let e=0;try{for(;!this.disposed;){let t=Math.min((this.options.pollMs??x)*2**e,S);if(await(this.options.wait?this.options.wait(t):new Promise(e=>setTimeout(e,t))),this.disposed)return;let n;try{n=await this.host.catalog()}catch(t){e=Math.min(e+1,C),this.commit({failure:this.describe(t)});continue}if(this.disposed||(e=0,this.commit({catalog:n,failure:null}),!n.busy))return}}finally{this.polling=!1}})())}dispose(){this.disposed=!0,this.listeners.clear()}};function defaultSelection(e){return e.agents.find(e=>e.enabled&&e.installed)?.id??`general`}var w=280;function ValueSelect({id:r,option:a,chosen:s,onChoose:c}){let l=n(null),[d,f]=e(!1),m=a.values.find(e=>e.id===a.current)?.name??a.current,h=[{id:``,name:o(`app.agents.modelsOwn`,{value:m}),description:null,group:null},...a.values.map(e=>({id:e.id,name:e.name,description:null,group:null}))],g=h.find(e=>e.id===s)?.name??s,v={id:a.id,name:a.name,description:null,category:a.category??a.id,current:s,values:h};return i(t,{children:[i(`button`,{ref:l,id:r,type:`button`,class:`assistant-form__select type-body agents-select`,"aria-haspopup":`listbox`,"aria-expanded":d,onClick:()=>f(e=>!e),children:[i(`span`,{class:`assistant-form__select-text`,children:g}),i(u,{name:`chevronDown`,class:`assistant-form__select-chevron`})]}),d&&i(p,{anchor:l.current,label:a.name,onClose:()=>f(!1),width:320,class:`assistant-form`,children:i(`div`,{class:`assistant-form__scroll`,style:{"--assistant-form-list":`${w}px`},children:i(_,{option:v,onPick:(e,t)=>{f(!1),c(t===``?null:t)}})})})]})}var T=`https://nodejs.org/en/download`,E=`https://docs.astral.sh/uv/getting-started/installation/`,D=[`off`,`bottom`,`sidebar`],O={off:`app.agents.aiChatOff`,bottom:`app.agents.aiChatBottom`,sidebar:`app.agents.aiChatSidebar`},k={off:`app.agents.aiChatOffHelp`,bottom:`app.agents.aiChatBottomHelp`,sidebar:`app.agents.aiChatSidebarHelp`};function openLink(e){y().openExternalLink(e).catch(()=>void 0)}function reasonText(e){let t=o(e.key,e.params);return t===e.key?e.detail===``?o(`app.agents.reason.unknown`):e.detail:e.detail===``?t:`${t} ${e.detail}`}function stateWord(e){if(e.job?.state===`running`){if(e.job.kind===`install`)return e.job.percent===null?o(`app.agents.state.installing`):o(`app.agents.state.installingPercent`,{percent:e.job.percent});if(e.job.kind===`models`)return o(`app.agents.state.reading`)}return e.job?.state===`failed`&&e.job.kind!==`models`?o(`app.agents.state.failed`):e.updateAvailable?o(`app.agents.state.update`):e.enabled&&e.installed?o(`app.agents.state.on`):e.installed?o(`app.agents.state.installed`):``}function Row({agent:e,selected:t,onSelect:n}){let r=stateWord(e);return i(`button`,{type:`button`,role:`option`,"aria-selected":t,tabIndex:t?0:-1,"data-id":e.id,class:`agents-row type-body`,onClick:n,children:[i(v,{icon:e.icon,name:e.name}),i(`span`,{class:`agents-row__name`,children:e.name}),r!==``&&i(`span`,{class:`agents-row__state type-help${e.enabled&&e.installed?` is-on`:``}${e.job?.state===`failed`?` is-failed`:``}`,children:r})]})}function GeneralRow({selected:e,onSelect:t}){return i(`button`,{type:`button`,role:`option`,"aria-selected":e,tabIndex:e?0:-1,"data-id":b,class:`agents-row type-body`,onClick:t,children:[i(`span`,{class:`agents-general-icon`,"aria-hidden":`true`}),i(`span`,{class:`agents-row__name`,children:o(`app.agents.general`)})]})}function General({preferences:e}){let t=m(e.subscribe,e.aiChat);return i(`div`,{class:`agents-general`,children:i(`section`,{class:`agents-group`,"aria-labelledby":`agents-chat`,children:[i(`h3`,{id:`agents-chat`,class:`agents-group__heading type-section-heading`,children:o(`app.agents.aiChat`)}),i(`div`,{role:`radiogroup`,"aria-labelledby":`agents-chat`,class:`agents-group__choices`,children:D.map(n=>i(`div`,{children:[i(`label`,{class:`agents-check type-body`,children:[i(`input`,{type:`radio`,name:`agents-chat`,value:n,checked:t===n,"aria-describedby":`agents-chat-${n}`,onChange:()=>e.setAiChat(n)}),i(`span`,{children:o(O[n])})]}),i(`p`,{id:`agents-chat-${n}`,class:`agents-group__help type-help`,children:o(k[n])})]},n))})]})})}function Blocked({agent:e,node:n,uv:r}){if(e.blocked===null)return null;let a=e.blocked===`node`&&!n?T:e.blocked===`uv`&&!r?E:null;return i(`p`,{class:`agents-note type-help`,children:[o(`app.agents.blocked.${e.blocked}`),a&&i(t,{children:[` `,i(`a`,{class:`agents-link`,href:a,onClick:e=>{e.preventDefault(),openLink(a)},children:o(e.blocked===`node`?`app.agents.blocked.nodeLink`:`app.agents.blocked.uvLink`)})]})]})}function Progress({percent:e}){return i(`div`,{class:`agents-progress`,role:`progressbar`,"aria-label":o(`app.agents.state.installing`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e??void 0,children:i(`span`,{class:`agents-progress__bar${e===null?` is-unknown`:``}`,style:e===null?void 0:{width:`${e}%`}})})}function Models({store:e,agent:n,error:r}){let a=n.job?.kind===`models`&&n.job.state===`running`,c=n.job?.kind===`models`&&n.job.state===`failed`?n.job.error:null,l=n.options,u=l&&l.readAt!==``&&Number.isFinite(Date.parse(l.readAt))?g(Date.parse(l.readAt)):null;return i(`section`,{class:`agents-group`,"aria-labelledby":`agents-models-${n.id}`,children:[i(`div`,{class:`agents-group__head`,children:[i(`h3`,{id:`agents-models-${n.id}`,class:`agents-group__heading type-section-heading`,children:o(`app.agents.models`)}),i(`button`,{type:`button`,class:`ui-button type-button agents-refresh`,disabled:a,onClick:()=>void e.refreshModels(n.id),children:[a&&i(d,{}),i(`span`,{children:o(a?`app.agents.modelsReading`:`app.agents.modelsRefresh`)})]})]}),l===null&&!a&&!c&&i(t,{children:[i(`p`,{class:`agents-note type-body`,children:o(`app.agents.modelsEmpty`)}),i(`p`,{class:`agents-note type-help`,children:o(`app.agents.modelsEmptyHint`)})]}),l?.options.map(t=>{let r=t.category??t.id;return i(s,{label:t.name,children:a=>i(ValueSelect,{id:a.id,option:t,chosen:n.chosen[r]??``,onChoose:t=>void e.choose(n.id,r,t)})},t.id)}),u!==null&&!a&&i(`p`,{class:`agents-note type-help`,children:o(`app.agents.modelsRead`,{time:u})}),c&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:[reasonText(c),c.key===`app.agent.authRequired`&&i(`span`,{class:`agents-note__more type-help`,children:o(`app.agents.signInHint`)})]}),r&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:r})]})}function Detail({store:e,agent:n,state:r}){let a=r.catalog,s=n.job?.kind===`install`&&n.job.state===`running`,c=n.job?.state===`failed`&&n.job.kind!==`models`?n.job.error:null,l=r.errors[n.id]??null,u=!n.installed&&n.how!==`none`&&n.how!==`custom`&&n.blocked===null,f=n.installed&&(n.installedVia===`download`||n.installedVia===`package`);return i(`div`,{class:`agents-detail__page`,children:[i(`header`,{class:`agents-detail__head`,children:[i(v,{icon:n.icon,name:n.name,size:20}),i(`h2`,{class:`agents-detail__name type-dialog-title`,children:n.name}),n.version&&i(`span`,{class:`agents-detail__version type-help`,children:o(`app.agents.version`,{version:n.version})})]}),n.description!==``&&i(`p`,{class:`agents-detail__text type-body`,children:n.description}),i(`dl`,{class:`agents-meta type-help`,children:[n.license&&i(t,{children:[i(`dt`,{children:o(`app.agents.license`)}),i(`dd`,{children:n.license})]}),n.website&&i(t,{children:[i(`dt`,{children:o(`app.agents.website`)}),i(`dd`,{children:i(`a`,{class:`agents-link`,href:n.website,onClick:e=>{e.preventDefault(),openLink(n.website)},children:n.website})})]}),n.repository&&n.repository!==n.website&&i(t,{children:[i(`dt`,{children:o(`app.agents.repository`)}),i(`dd`,{children:i(`a`,{class:`agents-link`,href:n.repository,onClick:e=>{e.preventDefault(),openLink(n.repository)},children:n.repository})})]}),i(`dt`,{children:o(`app.agents.status`)}),i(`dd`,{children:n.installed?`${o(`app.agents.via.${n.installedVia??`path`}`)}${n.installedVersion?` · ${o(`app.agents.version`,{version:n.installedVersion})}`:``}`:n.how===`none`?o(`app.agents.cannotInstall`):o(`app.agents.how.${n.how}`)})]}),i(`div`,{class:`agents-actions`,children:[u&&!s&&i(`button`,{type:`button`,class:`ui-button ui-button--primary type-button`,onClick:()=>void e.install(n.id),children:o(c?`app.agents.tryAgain`:`app.agents.install`)}),s&&i(`button`,{type:`button`,class:`ui-button type-button`,disabled:!0,children:[i(d,{}),i(`span`,{children:o(`app.agents.state.installing`)})]}),n.installed&&!s&&n.updateAvailable&&f&&i(`button`,{type:`button`,class:`ui-button type-button`,onClick:()=>void e.install(n.id),children:o(`app.agents.update`)}),n.installed&&!s&&i(`button`,{type:`button`,class:`ui-button type-button${n.enabled?``:` ui-button--primary`}`,onClick:()=>void e.turn(n.id,!n.enabled),children:n.enabled?o(`app.agents.turnOff`):o(`app.agents.turnOn`)}),f&&!s&&i(`button`,{type:`button`,class:`ui-button ui-button--quiet ui-button--danger type-button`,onClick:()=>void e.uninstall(n.id),children:o(`app.agents.uninstall`)})]}),s&&i(Progress,{percent:n.job?.percent??null}),!n.installed&&a&&i(Blocked,{agent:n,node:a.node,uv:a.uv}),!n.installed&&n.blocked!==null&&n.install&&i(`p`,{class:`agents-note type-help`,children:[o(`app.agents.byHand`),` `,i(`code`,{class:`type-code`,children:n.install})]}),c&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:reasonText(c)}),l&&i(`p`,{class:`agents-note type-error-message`,role:`alert`,children:l}),n.installed&&i(Models,{store:e,agent:n,error:null})]})}function ListFoot({store:e,state:t}){let n=t.catalog,r=n?.updated&&Number.isFinite(Date.parse(n.updated))?g(Date.parse(n.updated)):null,a=t.failure??(n?.refreshError?reasonText(n.refreshError):null);return i(`footer`,{class:`agents-list__foot`,children:[i(`p`,{class:`agents-list__updated type-help`,role:`status`,children:t.refreshing?o(`app.agents.updating`):r===null?o(`app.agents.neverUpdated`):n?.source===`snapshot`?o(`app.agents.updatedSnapshot`,{time:r}):o(`app.agents.updated`,{time:r})}),a&&!t.refreshing&&i(`p`,{class:`agents-list__problem type-warning-message`,children:a}),i(`button`,{type:`button`,class:`ui-button type-button agents-refresh`,disabled:t.refreshing,onClick:()=>void e.refresh(),children:[t.refreshing&&i(d,{}),i(`span`,{children:o(`app.agents.refresh`)})]})]})}function AgentsScreen({store:t,preferences:r}){let s=m(t.subscribe,t.snapshot),c=n(null),l=n(null),u=n(!1),[p,h]=e(null);a(()=>{t.start()},[t]),a(()=>{if(s.status!==`ready`||u.current)return;u.current=!0;let e=document.activeElement;(!e||e===document.body||e.classList.contains(`ui-dialog__close`)||e.classList.contains(`ui-dialog`))&&l.current?.focus()},[s.status]),a(()=>{p!==null&&(c.current?.querySelector(`[data-id="${CSS.escape(p)}"]`)?.focus(),h(null))},[p]);let{on:g,rest:_}=sections(s),v=[b,...g.map(e=>e.id),..._.map(e=>e.id)],y=s.selected??`general`,x=s.catalog?.agents.find(e=>e.id===y)??null,move=e=>{let n=e.key===`ArrowDown`?1:e.key===`ArrowUp`?-1:0,r=e.key===`Home`?0:e.key===`End`?v.length-1:null;if(n===0&&r===null)return;e.preventDefault();let i=v.indexOf(y),a=r??Math.min(v.length-1,Math.max(0,(i<0?0:i)+n));v[a]!==void 0&&(t.select(v[a]),h(v[a]))};return s.status===`loading`?i(`div`,{class:`agents-screen is-loading`,role:`status`,children:[i(d,{}),i(`span`,{class:`type-help`,children:o(`app.agents.loading`)})]}):s.status===`failed`||!s.catalog?i(`div`,{class:`agents-screen is-empty`,children:i(f,{title:o(`app.agents.failed.title`),hint:s.failure??o(`app.agents.failed.hint`),actions:[{label:o(`app.assistant.tryAgain`),run:()=>void t.reload()}]})}):i(`div`,{class:`agents-screen`,children:[i(`nav`,{class:`agents-list`,"aria-label":o(`app.agents.list`),children:[i(`input`,{ref:l,type:`search`,class:`agents-list__search type-input`,value:s.query,placeholder:o(`app.agents.search`),"aria-label":o(`app.agents.search`),onInput:e=>t.search(e.currentTarget.value)}),i(`div`,{ref:c,class:`agents-list__scroll`,role:`listbox`,"aria-label":o(`app.agents.list`),onKeyDown:move,children:[i(GeneralRow,{selected:y===b,onSelect:()=>t.select(b)}),i(`h3`,{class:`agents-list__heading type-section-heading`,children:o(`app.agents.on`)}),g.length===0&&(s.query===``||_.length===0)&&i(`p`,{class:`agents-list__none type-help`,children:s.query===``?o(`app.agents.noneOn`):o(`app.agents.noMatch`)}),g.map(e=>i(Row,{agent:e,selected:y===e.id,onSelect:()=>t.select(e.id)},e.id)),i(`h3`,{class:`agents-list__heading type-section-heading`,children:o(`app.agents.all`)}),_.length===0&&g.length>0&&i(`p`,{class:`agents-list__none type-help`,children:o(`app.agents.allShown`)}),_.length===0&&g.length===0&&s.query!==``&&i(`p`,{class:`agents-list__none type-help`,children:o(`app.agents.noMatch`)}),_.map(e=>i(Row,{agent:e,selected:y===e.id,onSelect:()=>t.select(e.id)},e.id))]}),i(ListFoot,{store:t,state:s})]}),i(`section`,{class:`agents-detail`,"aria-label":x?.name??o(`app.agents.general`),children:y===`general`||x===null?i(General,{preferences:r}):i(Detail,{store:t,agent:x,state:s})})]})}function AgentsDialog({host:e,preferences:t,onClose:n}){let s=r(()=>new AgentsStore(e,{changed:()=>void h()?.resync()}),[e]);return a(()=>()=>s.dispose(),[s]),i(l,{title:o(`app.agents.title`),size:`large`,body:`split`,class:`agents-dialog`,onClose:n,footer:i(c,{actions:[{id:`done`,label:o(`app.common.done`),role:`primary`,onClick:n}]}),children:i(AgentsScreen,{store:s,preferences:t})})}export{AgentsDialog};