decocms 3.75.0 → 3.75.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 (222) hide show
  1. package/dist/client/assets/{AlertCircle-gDIRb30q.js → AlertCircle-CNubGDaO.js} +1 -1
  2. package/dist/client/assets/{ArrowRight-DOrox7OR.js → ArrowRight-xN7BW_ul.js} +1 -1
  3. package/dist/client/assets/{ArrowUpRight-DUpL9CZ2.js → ArrowUpRight-D3CKRkTo.js} +1 -1
  4. package/dist/client/assets/{Check-Cm33WeVI.js → Check-DU5rb3bM.js} +1 -1
  5. package/dist/client/assets/{CheckCircle-n1UVh1rp.js → CheckCircle-BSoYnn-I.js} +1 -1
  6. package/dist/client/assets/{ChevronDown-B1p7gEgu.js → ChevronDown-TvYn-OY4.js} +1 -1
  7. package/dist/client/assets/{ChevronLeft-mGN37yAj.js → ChevronLeft-BTipE5Wt.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-BaLK8W40.js → ChevronRight-VbCUQ4nm.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-DGOcvlL6.js → ChevronUp-CE5JDW17.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-CnMx95BE.js → DotsVertical-C3vJLOIx.js} +1 -1
  11. package/dist/client/assets/{Eye-zZDQDA3a.js → Eye-C2MUknhG.js} +1 -1
  12. package/dist/client/assets/{FilterLines-Dl8wSr4T.js → FilterLines-C44nyj1e.js} +1 -1
  13. package/dist/client/assets/{Globe01-BLm5QG5d.js → Globe01-DF9LBrGV.js} +1 -1
  14. package/dist/client/assets/{Globe04-C-LVP6qx.js → Globe04-DiSYAA-c.js} +1 -1
  15. package/dist/client/assets/{HardDrive-m2RrTwEL.js → HardDrive-d3IntPKl.js} +1 -1
  16. package/dist/client/assets/{Key01-RXyewMb-.js → Key01-DoBeqbsw.js} +1 -1
  17. package/dist/client/assets/{LayoutLeft-BdoPIgTz.js → LayoutLeft-yX6ZaEXM.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-D8bSh32s.js → LinkExternal01-BzrXa1Dk.js} +1 -1
  19. package/dist/client/assets/{Monitor01-BCz40A5M.js → Monitor01-B4R66HFG.js} +1 -1
  20. package/dist/client/assets/{Palette-wtl4QkBp.js → Palette-CZf9xPYO.js} +1 -1
  21. package/dist/client/assets/{Play-DDTUl1uH.js → Play-Bh8sfYwM.js} +1 -1
  22. package/dist/client/assets/{Plus-CVwFP0PN.js → Plus-BoROENfr.js} +1 -1
  23. package/dist/client/assets/{SearchMd-BW7euwEe.js → SearchMd-BfPMpih2.js} +1 -1
  24. package/dist/client/assets/{Settings02-iz5Ayf9j.js → Settings02-DBLsMPef.js} +1 -1
  25. package/dist/client/assets/{Shield01-BCu1IdE0.js → Shield01-CTNl8Ar6.js} +1 -1
  26. package/dist/client/assets/{Star01-DCpmC1j3.js → Star01-BFLcGuw1.js} +1 -1
  27. package/dist/client/assets/{Stars01-BRfLDHl4.js → Stars01-CHs_UD1n.js} +1 -1
  28. package/dist/client/assets/{Stars02-Bzgbk92-.js → Stars02-BJLb-WgL.js} +1 -1
  29. package/dist/client/assets/{Sun-C8DHOjPt.js → Sun-BZGkPKkt.js} +1 -1
  30. package/dist/client/assets/{SwitchHorizontal01-CfRV3USq.js → SwitchHorizontal01-Dtng_RoY.js} +1 -1
  31. package/dist/client/assets/{Tool01-B5EFkWYb.js → Tool01-lXuB6RrN.js} +1 -1
  32. package/dist/client/assets/{Trash01-pGyZZZg3.js → Trash01-DXfifcH2.js} +1 -1
  33. package/dist/client/assets/{Upload01-CO717o9q.js → Upload01-D3BizWvA.js} +1 -1
  34. package/dist/client/assets/{User01-BsJPatkI.js → User01-DJp_IeHl.js} +1 -1
  35. package/dist/client/assets/{Users01-BxvSAjH8.js → Users01-Cd5fFCG3.js} +1 -1
  36. package/dist/client/assets/{Users03-CIlsRKUq.js → Users03-DBhmjqg-.js} +1 -1
  37. package/dist/client/assets/{X-CZpN5x6J.js → X-Cb9V7Mmc.js} +1 -1
  38. package/dist/client/assets/{XCircle-DVQX_ogU.js → XCircle-D1bMGooP.js} +1 -1
  39. package/dist/client/assets/{XClose-C6AbPQFS.js → XClose-C-OqIzD0.js} +1 -1
  40. package/dist/client/assets/{Zap-DG9_RSXd.js → Zap-fD2sTtVx.js} +1 -1
  41. package/dist/client/assets/{ZapSquare-BTnHHxm_.js → ZapSquare-CQngmi94.js} +1 -1
  42. package/dist/client/assets/{ZoomOut-CZ4ld1AP.js → ZoomOut-btgvbLfz.js} +1 -1
  43. package/dist/client/assets/{access-gate-D9-CVWiV.js → access-gate-DopFOivn.js} +1 -1
  44. package/dist/client/assets/{add-section-modal-CP1B07W5.js → add-section-modal-DaW89V0L.js} +1 -1
  45. package/dist/client/assets/{agent-icon-B9d-96TZ.js → agent-icon-Dt9gAenf.js} +1 -1
  46. package/dist/client/assets/{agents-list-BRtDsLop.js → agents-list-DJqTtRwj.js} +1 -1
  47. package/dist/client/assets/{ai-providers-DW6wb4_w.js → ai-providers-Dt9ZC4ot.js} +1 -1
  48. package/dist/client/assets/{alert-6Fct2Yfh.js → alert-BEVgn7Ey.js} +1 -1
  49. package/dist/client/assets/{alert-dialog-BNLt3lQD.js → alert-dialog-BI0HtITQ.js} +1 -1
  50. package/dist/client/assets/{app-editor-CnPsZtOc.js → app-editor-NI3cJ7Tq.js} +1 -1
  51. package/dist/client/assets/{auth-4W_EFEAm.js → auth-B4gmwlqe.js} +1 -1
  52. package/dist/client/assets/{auth-catchall-FBHQyT3w.js → auth-catchall-BQbd477s.js} +1 -1
  53. package/dist/client/assets/{auth-entry-CatFRWPl.js → auth-entry-ChG4AH7U.js} +1 -1
  54. package/dist/client/assets/{auth-split-layout-Qbd_XkxB.js → auth-split-layout-DCJj8VSe.js} +1 -1
  55. package/dist/client/assets/{automation-list-row-DoJkgDgr.js → automation-list-row-DppLBhCt.js} +1 -1
  56. package/dist/client/assets/{automation-runs-CUFxzmfV.js → automation-runs-5dSIKSAM.js} +1 -1
  57. package/dist/client/assets/{automations-CabohE9a.js → automations-Ci91R3wv.js} +1 -1
  58. package/dist/client/assets/{avatar-P-4FtMAp.js → avatar-fJAHQTnV.js} +1 -1
  59. package/dist/client/assets/{badge-CA2aw-nf.js → badge-_YKQKI_5.js} +1 -1
  60. package/dist/client/assets/{block-document-DBOLBUl9.js → block-document-CsRe6WAh.js} +1 -1
  61. package/dist/client/assets/{brand-context-DUqDv9rb.js → brand-context-DDDXyCcm.js} +1 -1
  62. package/dist/client/assets/{buckets-CZzli-pv.js → buckets-DFAe7O6M.js} +1 -1
  63. package/dist/client/assets/{calendar-txHWMXIT.js → calendar-DNMnej2k.js} +1 -1
  64. package/dist/client/assets/{capability-load-error-DR1p6bTx.js → capability-load-error-6WyfjcJj.js} +1 -1
  65. package/dist/client/assets/{card-B2iG-uof.js → card--NKS06Go.js} +1 -1
  66. package/dist/client/assets/category-editor-BSYT0S7j.js +1 -0
  67. package/dist/client/assets/{chat-context-rlOQNE59.js → chat-context-BBXOT296.js} +1 -1
  68. package/dist/client/assets/{checkbox-BA_77XLZ.js → checkbox-DioyTT5K.js} +1 -1
  69. package/dist/client/assets/{cli-auth-success-ma7E5wYX.js → cli-auth-success-CyURtcqJ.js} +1 -1
  70. package/dist/client/assets/{collection-detail-CS3p9M1R.js → collection-detail-DmymJ-oX.js} +1 -1
  71. package/dist/client/assets/{collection-display-button-Dj5uDvuS.js → collection-display-button-Cd9myrh7.js} +1 -1
  72. package/dist/client/assets/{collection-search-_6FIA0Xj.js → collection-search-BZq7gbHk.js} +1 -1
  73. package/dist/client/assets/{collection-tabs-DwMsWo9f.js → collection-tabs-D6OcWh8j.js} +1 -1
  74. package/dist/client/assets/{command-B27wsER9.js → command-C8wmQ_e6.js} +1 -1
  75. package/dist/client/assets/commerce-onboarding-nmWmtHC4.js +1 -0
  76. package/dist/client/assets/{connect-desktop-dialog-GQLUi7li.js → connect-desktop-dialog-DdSa47RX.js} +1 -1
  77. package/dist/client/assets/{connection-card-CX1DS71u.js → connection-card-Bk1hBg4j.js} +1 -1
  78. package/dist/client/assets/{connection-detail-DqcnMDO-.js → connection-detail-Bx3dAqUw.js} +1 -1
  79. package/dist/client/assets/{connection-form-helpers-CBjQkddI.js → connection-form-helpers-B5KjXNd0.js} +1 -1
  80. package/dist/client/assets/{connections-F_I9_qJr.js → connections-CQD6YxIa.js} +1 -1
  81. package/dist/client/assets/{context-menu-BpgQstIM.js → context-menu-gCK6_paD.js} +1 -1
  82. package/dist/client/assets/{decopilot-FgrFF7Fp.js → decopilot-B0LSd6zj.js} +1 -1
  83. package/dist/client/assets/{decopilot-sse-pool-DMpx5_Wv.js → decopilot-sse-pool-Dr6zLVju.js} +1 -1
  84. package/dist/client/assets/{dialog-K6fUF2ve.js → dialog-oTR0pyLu.js} +1 -1
  85. package/dist/client/assets/{domain-settings-C3FHyjrg.js → domain-settings-D1RYSSaH.js} +1 -1
  86. package/dist/client/assets/{drawer-Co3WWFC1.js → drawer-CQ737j09.js} +1 -1
  87. package/dist/client/assets/{dropdown-menu-5W_sgZVH.js → dropdown-menu-C8krdQDA.js} +1 -1
  88. package/dist/client/assets/{empty-state-CO4a25-j.js → empty-state-2-TuTLZO.js} +1 -1
  89. package/dist/client/assets/{extract-connection-data-DZucvYfU.js → extract-connection-data-CoqC381t.js} +1 -1
  90. package/dist/client/assets/{file-explorer-CqPeyiCF.js → file-explorer-D_emiMhz.js} +1 -1
  91. package/dist/client/assets/{file-type-icon-BZQ5R-XM.js → file-type-icon-0w6lWLwV.js} +1 -1
  92. package/dist/client/assets/{files-BDxHO9pY.js → files-DgtpUNqB.js} +1 -1
  93. package/dist/client/assets/{form-BjMnGj6X.js → form-BagRiauK.js} +1 -1
  94. package/dist/client/assets/{general-BBlcQ-ht.js → general-u65O_ulZ.js} +1 -1
  95. package/dist/client/assets/{github-repo-picker-_k79qN8r.js → github-repo-picker-BPZlnUfE.js} +1 -1
  96. package/dist/client/assets/{hooks-D6XuBBC6.js → hooks-CxzPycJ_.js} +1 -1
  97. package/dist/client/assets/{image-field-BmdkZbCY.js → image-field-MuguRJgc.js} +1 -1
  98. package/dist/client/assets/{import-from-deco-dialog-OGhtcz0k.js → import-from-deco-dialog-UI3dH-Hl.js} +1 -1
  99. package/dist/client/assets/{index-4DFLhyGP.js → index-4QUVw0pj.js} +1 -1
  100. package/dist/client/assets/{index-5wLfHEXe.js → index-BIs9Ud-n.js} +1 -1
  101. package/dist/client/assets/{index-O7bXn1ca.js → index-BarrImOK.js} +1 -1
  102. package/dist/client/assets/{index-D1GDu3f0.js → index-BkjLb3UM.js} +1 -1
  103. package/dist/client/assets/{index-C_oukb-6.js → index-ByF5bntS.js} +3 -3
  104. package/dist/client/assets/{index-Dq7zL7ft.js → index-CDiti927.js} +1 -1
  105. package/dist/client/assets/{index-okWbIZy5.js → index-CZhEygsx.js} +4 -4
  106. package/dist/client/assets/{index-Czglk-CY.js → index-CbbSoEZK.js} +1 -1
  107. package/dist/client/assets/index-Ccsp4bJ3.js +3 -0
  108. package/dist/client/assets/{index-_4NX_Yew.js → index-D2SAtRXJ.js} +1 -1
  109. package/dist/client/assets/{index-CJD5j0F7.js → index-DIdWimus.js} +1 -1
  110. package/dist/client/assets/{index-dPL3Unnh.js → index-DaQLp-vp.js} +1 -1
  111. package/dist/client/assets/{index-MKNwh3Ag.js → index-aZUbmonm.js} +1 -1
  112. package/dist/client/assets/{index-redirect-DIsWHj9i.js → index-redirect-BihaLwOx.js} +1 -1
  113. package/dist/client/assets/{index-B-GcMgWE.js → index-vZmzAO4E.js} +1 -1
  114. package/dist/client/assets/{input-D5W2abuH.js → input-BbFJIfNw.js} +1 -1
  115. package/dist/client/assets/{integration-icon-CRb2USX8.js → integration-icon-CnsCd0E7.js} +1 -1
  116. package/dist/client/assets/{label-BElDaZMn.js → label-BMmTnqcN.js} +1 -1
  117. package/dist/client/assets/{login-DlGbre6S.js → login-BgMVzBys.js} +1 -1
  118. package/dist/client/assets/{mcp-oauth-C0C6iyUr.js → mcp-oauth-Bz-VdP7D.js} +1 -1
  119. package/dist/client/assets/{members-DANdG_qT.js → members-DR6dSQyU.js} +1 -1
  120. package/dist/client/assets/{monaco-editor-qyEj4EXj.js → monaco-editor-ESNgwP--.js} +1 -1
  121. package/dist/client/assets/{monitoring-stats-row-ClqdPUY_.js → monitoring-stats-row-kDhyNhF-.js} +1 -1
  122. package/dist/client/assets/{oauth-callback-BnZw5lf7.js → oauth-callback-BOzxigzA.js} +1 -1
  123. package/dist/client/assets/{oauth-callback-ai-provider-BDfsvj3N.js → oauth-callback-ai-provider-C5MfgzuH.js} +1 -1
  124. package/dist/client/assets/{onboarding-Bhh2Gfr7.js → onboarding-JGOf00z4.js} +1 -1
  125. package/dist/client/assets/{org-install-CLKcwFC7.js → org-install-DxVgzR1j.js} +1 -1
  126. package/dist/client/assets/{org-layout-BtwB1Yd_.js → org-layout-UNAnU3dA.js} +1 -1
  127. package/dist/client/assets/{organization-choice-Utx7V6Tf.js → organization-choice-U7SIyZLD.js} +1 -1
  128. package/dist/client/assets/{page-seo-form-IyeHzt0x.js → page-seo-form-DDmJ7WM7.js} +1 -1
  129. package/dist/client/assets/page-seo-sheet-tAzLcu1B.js +1 -0
  130. package/dist/client/assets/{popover-DrmoScrz.js → popover-CbGGQiRT.js} +1 -1
  131. package/dist/client/assets/{post-editor-85T1iDhM.js → post-editor-EFJORDJS.js} +1 -1
  132. package/dist/client/assets/{preview-dialog-BtBeOlGc.js → preview-dialog-C6JG48B-.js} +1 -1
  133. package/dist/client/assets/{primitives-CyAmXJ6r.js → primitives-CmNGaFLq.js} +1 -1
  134. package/dist/client/assets/{profile-BZvBJZHl.js → profile-DeZ6t4-R.js} +1 -1
  135. package/dist/client/assets/project-app-view-lTLFjkpn.js +1 -0
  136. package/dist/client/assets/record-editor-cDeH3Vh6.js +1 -0
  137. package/dist/client/assets/registry-BuM4iuit.js +2 -0
  138. package/dist/client/assets/{registry-layout-Blav6YiD.js → registry-layout-EyoNoFU9.js} +1 -1
  139. package/dist/client/assets/{require-capability-rNA3gn0T.js → require-capability-BTWSjjcL.js} +1 -1
  140. package/dist/client/assets/{required-auth-layout-DKqkYrYg.js → required-auth-layout-nQU7linn.js} +1 -1
  141. package/dist/client/assets/{reset-password-B9qOkXzA.js → reset-password-BPJYUgtU.js} +1 -1
  142. package/dist/client/assets/{roles-B0IO3W8R.js → roles-D2UJQdT5.js} +1 -1
  143. package/dist/client/assets/save-referenced-block-Cz8Q3CB5.js +1 -0
  144. package/dist/client/assets/{save-status-BGoLsugG.js → save-status-B0qeonp0.js} +1 -1
  145. package/dist/client/assets/{schema-form-AuQQIbwO.js → schema-form-C3xSIHrW.js} +1 -1
  146. package/dist/client/assets/{scroll-area-DU0ESQct.js → scroll-area-B8ItTjhW.js} +1 -1
  147. package/dist/client/assets/{search-input-CQDoT-2H.js → search-input-CdLueOhF.js} +1 -1
  148. package/dist/client/assets/{secrets-Bt7g_eL6.js → secrets-CJIvH6yN.js} +1 -1
  149. package/dist/client/assets/{sections-editor-C5D7KMRv.js → sections-editor-D8owzXB3.js} +1 -1
  150. package/dist/client/assets/{select-CWgv_m_K.js → select-Bo6CrzVw.js} +1 -1
  151. package/dist/client/assets/{select-model-BbKGRdYy.js → select-model-ppX7sHfC.js} +1 -1
  152. package/dist/client/assets/{seo-editor-B__Haa2P.js → seo-editor-0xmY1Z00.js} +1 -1
  153. package/dist/client/assets/{settings-layout-DCyMU3DC.js → settings-layout-Og4lnODt.js} +1 -1
  154. package/dist/client/assets/{settings-section-CJtoNKEm.js → settings-section-CnVR3qqE.js} +1 -1
  155. package/dist/client/assets/{sheet-CdA5nUqw.js → sheet-BuEWFo6R.js} +1 -1
  156. package/dist/client/assets/{shell-controls-CykUSzsG.js → shell-controls-DLyk9enu.js} +1 -1
  157. package/dist/client/assets/shell-layout-BmHL7kpa.js +1 -0
  158. package/dist/client/assets/{shell-route-loading-XgUvvz6p.js → shell-route-loading-RRQOTV6Y.js} +1 -1
  159. package/dist/client/assets/{sidebar-ChFfr0rN.js → sidebar-CRs9fZ48.js} +1 -1
  160. package/dist/client/assets/{skeleton-sLaw1Xk2.js → skeleton-BBoWXlQw.js} +1 -1
  161. package/dist/client/assets/{sortable.esm-B2GVQDR4.js → sortable.esm-Bj8xmSPS.js} +1 -1
  162. package/dist/client/assets/{sso-wVe-gPEC.js → sso-DtcGtItQ.js} +1 -1
  163. package/dist/client/assets/{store-DKnN_mWg.js → store-GzsI2yK1.js} +1 -1
  164. package/dist/client/assets/store-registry-DkQNv_eF.js +2 -0
  165. package/dist/client/assets/{studio-tools-Bf0h7pKn.js → studio-tools-DkpVw1Fk.js} +1 -1
  166. package/dist/client/assets/{switch-B5emAkAa.js → switch-DxdiLTfz.js} +1 -1
  167. package/dist/client/assets/{table-DDDAcgpb.js → table-DhLw2Dwk.js} +1 -1
  168. package/dist/client/assets/{tabs-DpXkahnx.js → tabs-XHi1y4Cg.js} +1 -1
  169. package/dist/client/assets/{task-status-DxP55tG6.js → task-status-Cavo-ZwA.js} +1 -1
  170. package/dist/client/assets/{textarea-wSBnNv7u.js → textarea-_jouvwDc.js} +1 -1
  171. package/dist/client/assets/{toggle-group-BcGBnErX.js → toggle-group-CfmlR7sy.js} +1 -1
  172. package/dist/client/assets/{toolbar-fshSxuLx.js → toolbar-CIBafoV_.js} +1 -1
  173. package/dist/client/assets/{tooltip-CDUQmtIe.js → tooltip-BGNlh40O.js} +1 -1
  174. package/dist/client/assets/{types-BXRFG3iR.js → types-sci-lCr2.js} +1 -1
  175. package/dist/client/assets/{use-ai-providers-D_ebIH0r.js → use-ai-providers-B2SGssyX.js} +1 -1
  176. package/dist/client/assets/{use-automations-ERukqXr_.js → use-automations-DlxacTNX.js} +1 -1
  177. package/dist/client/assets/{use-capability-CrbE-PVJ.js → use-capability-B9zmFZLR.js} +1 -1
  178. package/dist/client/assets/{use-clock-tick-Doyp_hie.js → use-clock-tick-xD667FrM.js} +1 -1
  179. package/dist/client/assets/{use-collections-C5c19M28.js → use-collections-YcK_UpXo.js} +1 -1
  180. package/dist/client/assets/{use-connection-BmWMtwa9.js → use-connection-8IOgdNi0.js} +1 -1
  181. package/dist/client/assets/{use-copy-Cq9FbLLo.js → use-copy-CRqf_gDL.js} +1 -1
  182. package/dist/client/assets/{use-create-virtual-mcp-DdNYKluu.js → use-create-virtual-mcp-CDVY_QqV.js} +1 -1
  183. package/dist/client/assets/{use-debounced-autosave-D7-TM9NJ.js → use-debounced-autosave-cJge7NGp.js} +1 -1
  184. package/dist/client/assets/{use-deco-credits-l2OguEyG.js → use-deco-credits-DgT4uYPb.js} +1 -1
  185. package/dist/client/assets/{use-delete-connection-LB7jL5NP.js → use-delete-connection-2pMxBj7g.js} +1 -1
  186. package/dist/client/assets/{use-file-configs-BIkBkbG9.js → use-file-configs-ClyDZHyo.js} +1 -1
  187. package/dist/client/assets/{use-infinite-scroll-eransp1S.js → use-infinite-scroll-B-zoWl8c.js} +1 -1
  188. package/dist/client/assets/{use-join-requests-DJIGN6qo.js → use-join-requests-CS9hHY93.js} +1 -1
  189. package/dist/client/assets/{use-mcp-client-4Oly-YkT.js → use-mcp-client-BI9mCeJ3.js} +1 -1
  190. package/dist/client/assets/{use-mcp-prompts-BzVgnzr0.js → use-mcp-prompts-B4uY1_xI.js} +1 -1
  191. package/dist/client/assets/{use-mcp-tools-BQHlQR5o.js → use-mcp-tools-B5SwMdAl.js} +1 -1
  192. package/dist/client/assets/{use-members-DfpjiEN8.js → use-members-BXMztwuo.js} +1 -1
  193. package/dist/client/assets/{use-navigate-to-agent-BkZH8xYi.js → use-navigate-to-agent-BeUkvKDD.js} +1 -1
  194. package/dist/client/assets/{use-org-auth-client-BUfV82c_.js → use-org-auth-client-BN1ti7dt.js} +1 -1
  195. package/dist/client/assets/{use-org-sso-BHaPLxVv.js → use-org-sso-C6H_RLHI.js} +1 -1
  196. package/dist/client/assets/{use-organization-roles-CHXWUrIp.js → use-organization-roles-B7adr4SK.js} +1 -1
  197. package/dist/client/assets/{use-organization-settings-D2zerFXW.js → use-organization-settings-C1kJraO9.js} +1 -1
  198. package/dist/client/assets/{use-registry-connections-D-BNd8aV.js → use-registry-connections-xZJwULcQ.js} +1 -1
  199. package/dist/client/assets/{use-secrets-cs3fO-m_.js → use-secrets-Dz889CgS.js} +1 -1
  200. package/dist/client/assets/{use-status-sounds-DpP7gGFB.js → use-status-sounds-CRdMhPvE.js} +1 -1
  201. package/dist/client/assets/{use-view-mode-D-rE3O6I.js → use-view-mode-rOJla7nl.js} +1 -1
  202. package/dist/client/assets/{use-virtual-mcp-Ctv1YJgk.js → use-virtual-mcp-DVO8vnjv.js} +1 -1
  203. package/dist/client/assets/useInfiniteQuery-cug4FXD1.js +1 -0
  204. package/dist/client/assets/useSuspenseInfiniteQuery-B6VvfHY4.js +1 -0
  205. package/dist/client/assets/{variant-calendar-se_uWtri.js → variant-calendar-B3h7hcmo.js} +1 -1
  206. package/dist/client/assets/{view-mode-toggle-DuWN4iSs.js → view-mode-toggle-B8QrRReE.js} +1 -1
  207. package/dist/client/index.html +1 -1
  208. package/dist/server/cli.js +6 -6
  209. package/dist/server/server.js +3 -3
  210. package/package.json +1 -1
  211. package/dist/client/assets/category-editor-dHLb0Q5z.js +0 -1
  212. package/dist/client/assets/commerce-onboarding-Cc0EEeKk.js +0 -1
  213. package/dist/client/assets/index-fBd_LCW3.js +0 -3
  214. package/dist/client/assets/page-seo-sheet-BAekolJG.js +0 -1
  215. package/dist/client/assets/project-app-view-C27tx_mL.js +0 -1
  216. package/dist/client/assets/record-editor-DCcletMQ.js +0 -1
  217. package/dist/client/assets/registry-BMCM3rbD.js +0 -2
  218. package/dist/client/assets/save-referenced-block-KDKLCPRO.js +0 -1
  219. package/dist/client/assets/shell-layout-CrOv1YY7.js +0 -1
  220. package/dist/client/assets/store-registry-Be51xSYe.js +0 -2
  221. package/dist/client/assets/useInfiniteQuery-ClmiO4eL.js +0 -1
  222. package/dist/client/assets/useSuspenseInfiniteQuery-Bg7QIp7e.js +0 -1
@@ -1426,7 +1426,7 @@ data:
1426
1426
  </head>`+$.slice(w)}return`<head>
1427
1427
  `+X+`
1428
1428
  </head>
1429
- `+$}function hH0($){if(!$||$.length===0)return[];return $.filter((Z)=>cJ6.test(Z))}function uJ6($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return BQ$;let G=hH0(Z.resourceDomains),X=hH0(Z.connectDomains),Y=hH0(Z.frameDomains),Q=hH0(Z.baseUriDomains),J=G.length>0,W=X.length>0,K=Y.length>0,U=Q.length>0;if(!J&&!W&&!K&&!U)return BQ$;let w=G.join(" ");return["default-src 'none'",J?`script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' ${w}`:"script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",J?`style-src 'unsafe-inline' ${w}`:"style-src 'unsafe-inline'",J?`img-src * data: blob: ${w}`:"img-src * data: blob:",J?`media-src * data: blob: ${w}`:"media-src * data: blob:",J?`font-src data: ${w}`:"font-src data:",W?`connect-src ${X.join(" ")}`:"connect-src 'none'",K?`frame-src ${Y.join(" ")}`:"frame-src 'none'","worker-src blob:","form-action 'none'",U?`base-uri ${Q.join(" ")}`:"base-uri 'none'"].join("; ")}var BQ$,cJ6;var EQ$=O(()=>{BQ$=["default-src 'none'","script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'","style-src 'unsafe-inline'","img-src * data: blob:","media-src * data: blob:","font-src data:","connect-src 'none'","frame-src 'none'","worker-src blob:","form-action 'none'","base-uri 'none'"].join("; ");cJ6=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function dJ6($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=_x1&&Z>=fx1}class Cn0{options;kv=null;codec=J$0();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new LQ$.Kvm($).create(lJ6,{storage:DQ$.StorageType.Memory,ttl:zQ$.nanos(xx1)})}async recordFailure($){if(!this.kv)return Vn0;let Z=Date.now();for(let G=0;G<mJ6;G++)try{let X=await this.kv.get($);if(!(X&&X.operation!=="DEL"&&X.operation!=="PURGE"&&X.value?.length)){let W={count:1,firstFailureAt:Z,lastFailureAt:Z};return await this.kv.create($,this.codec.encode(W)),{count:W.count,shouldDisable:!1}}let Q=this.codec.decode(X.value),J={count:Q.count+1,firstFailureAt:Q.firstFailureAt,lastFailureAt:Z};return await this.kv.update($,this.codec.encode(J),X.revision),{count:J.count,shouldDisable:dJ6(J)}}catch{}return Vn0}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class Nn{async recordFailure(){return Vn0}async recordSuccess(){}teardown(){}}function bn0($){jQ$=$??new Nn}function _n0(){return jQ$}var DQ$,LQ$,zQ$,Vn0,lJ6="DECOCMS_CONN_CIRCUIT",mJ6=5,jQ$;var fn0=O(()=>{DQ$=k(OB(),1),LQ$=k(Ef0(),1),zQ$=k(Eg(),1),Vn0={count:0,shouldDisable:!1};jQ$=new Nn});function PQ$($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(nJ6.has($))return{decision:"skip"};let Z=iJ6[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function AQ$($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>pJ6)return;try{let G=await $.clone().json(),Y=(Array.isArray(G)?G[0]:G)?.method;return typeof Y==="string"?Y:void 0}catch{return}}var iJ6,nJ6,pJ6=64000;var TQ$=O(()=>{iJ6={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},nJ6=new Set(["ping"])});function xn0($){let Z=Object.values($),[G]=Z;if(!G)return null;return Z.find((X)=>X.sandboxProviderKind!=="user-desktop")??G}async function oJ6($){if(IQ$.has($))return!0;let Z=Date.now();if(Z-(RQ$.get($)??0)<rJ6)return!1;RQ$.set($,Z);try{let G=await fetch($,{method:"POST",headers:{"content-type":"application/json",accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mesh-dev-probe",version:"1"}}}),signal:AbortSignal.timeout(4000)}),X=G.ok?await G.text():"",Y=/"protocolVersion"|"serverInfo"/.test(X);if(Y)IQ$.add($);return Y}catch{return!1}}async function pS($,Z,G,X){let Y=$.organization?.id;if(!Y)return null;let Q=await $.storage.virtualMcps.findById(Z);if(!Q||Q.organization_id!==Y)return null;let J=Q.metadata??{},W=e9(J)[G];if(!W)return null;let K=X?aJ6(W,X):sJ6(W);if(!K?.entry.previewUrl)return null;let U=await eJ6($,J,Y,G),w=K.entry.previewUrl.replace(/\/+$/,""),F=U?`${w}/api/mcp?token=${encodeURIComponent(U)}`:`${w}/api/mcp`;if(!await oJ6(F))return null;return{id:BC0(Z),organization_id:Y,title:`${Q.title} (dev)`,description:"Ephemeral sandbox dev-server connection",icon:Q.icon??null,app_name:Q.title??null,app_id:null,slug:null,connection_type:"HTTP",connection_url:F,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDevConnection:!0,virtualMcpId:Z,branch:K.branch},tools:null,bindings:null,status:"active",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:"system"}}function aJ6($,Z){let G=xn0(iY($[Z]));return G?{branch:Z,entry:G}:null}function sJ6($){let Z=null;for(let[G,X]of Object.entries($)){let Y=xn0(iY(X));if(!Y)continue;if(!Z||(Y.createdAt??0)>(Z.entry.createdAt??0))Z={branch:G,entry:Y}}return Z}async function eJ6($,Z,G,X){let Y=KH0(Z)?.find((Q)=>Q.key===tJ6);if(!Y)return null;if(Y.kind==="literal")return Y.value||null;try{let{value:Q}=await $.storage.secrets.resolveById(Y.secretId,G,X);return Q||null}catch(Q){if(Q instanceof YW||Q instanceof bf)return null;throw Q}}var tJ6="MCP_AUTH_TOKEN",IQ$,RQ$,rJ6=1e4;var cH0=O(()=>{W6();f80();Kv();EQ();IQ$=new Set,RQ$=new Map});import{SpanStatusCode as uH0}from"@opentelemetry/api";async function dH0($,Z){let G=$.get("meshContext");try{let X=$.req.header("x-org-id"),Y=$.req.header("x-org-slug"),Q=X?X:Y?await G.db.selectFrom("organization").select("id").where("slug","=",Y).executeTakeFirst().then((E)=>E?.id):null,J=Z?Z:Q?A00(Q):null;if(!J)return $.json({error:"Agent ID or organization ID is required"},400);let W=await G.tracer.startActiveSpan("studio.virtual_mcp.lookup",{attributes:{"virtual_mcp.id":J}},async(E)=>{try{let D=await G.storage.virtualMcps.findById(J,Q??void 0);return E.setStatus({code:uH0.OK}),D}catch(D){throw E.setStatus({code:uH0.ERROR,message:D.message}),E.recordException(D),D}finally{E.end()}});if(!W)return $.json({error:"Agent not found"},404);if(Q&&W.organization_id!==Q)return $.json({error:"Agent not found"},404);if(W.status!=="active")return $.json({error:`Agent is inactive: ${W.id??"Decopilot"}`},503);if(G.organization?.id&&W.organization_id!==G.organization.id)return $.json({error:"Forbidden: Agent does not belong to your organization"},403);G.connectionId=W.id??void 0;let K=await G.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",W.organization_id).executeTakeFirst();if(K)G.organization={id:K.id,slug:K.slug,name:K.name};let U=l1(G),w=null;if(W.id&&U&&e9(W.metadata)[U])w=await pS(G,W.id,U,$.req.query("branch")??void 0).catch(()=>null);let F=await G.tracer.startActiveSpan("studio.virtual_mcp.create_client",{attributes:{"virtual_mcp.id":W.id??"decopilot"}},async(E)=>{try{let D=await TU(W,G,"passthrough",!1,{includeSkillsCatalog:!0,additionalConnections:w?[w]:[]});return E.setStatus({code:uH0.OK}),D}catch(D){throw E.setStatus({code:uH0.ERROR,message:D.message}),E.recordException(D),D}finally{E.end()}}),H={name:W.id??"Decopilot",version:"1.0.0",title:W.title??void 0,description:W.description??void 0,icons:W.icon?[{src:W.icon}]:void 0},N=sK(F,H,{capabilities:{tools:{},resources:{},prompts:{}},instructions:F.getInstructions(),toolCallTimeoutMs:B_}),B=new TY({enableJsonResponse:$.req.header("Accept")?.includes("application/json")??!1});return await N.connect(B),await yW(N,B,$.req.raw,`virtual-mcp:${W.id??"decopilot"}`,{onClose:()=>F.close()})}catch(X){let Y=X;return console.error("[virtual-mcp] Error handling virtual MCP request:",Y),$.json({error:"Internal server error",message:Y.message},500)}}var lH0=()=>{let $=new x1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let G=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return dH0(Z,G)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let G=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return dH0(Z,G)}),$};var mH0=O(()=>{W6();Ev();g6();Ax();cH0();EQ();Hn()});import{SpanStatusCode as iH0}from"@opentelemetry/api";var qQ$=($,Z)=>{if($ instanceof kf)return Z.header("Retry-After",String(Math.ceil($.cooldownRemainingMs/1000))),Z.json({error:$.message},503);if($.message.includes("not found"))return Z.json({error:$.message},404);if($.message.includes("does not belong to the active organization"))return Z.json({error:"Connection not found"},404);if($.message.includes("inactive"))return Z.json({error:$.message},503);return Z.json({error:"Internal server error",message:$.message},500)},nH0=()=>{let $=new x1;return $.all("/",async(Z)=>{return dH0(Z,void 0)}),$.get("/:connectionId/ui-resource",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.param("connectionId"),Y=Z.req.query("uri");if(!Y)return Z.json({error:"uri query param is required"},400);if(!G.organization?.id)return Z.json({error:"Organization context is required"},403);let Q=T00(X),J;if(Q){let N=l1(G);if(!N)return Z.json({error:"Authentication required"},401);if(J=await pS(G,Q,N,Z.req.query("branch")??void 0),!J)return Z.json({error:"Dev server not running"},503)}else if(J=await G.storage.connections.findById(X,G.organization.id),!J||J.organization_id!==G.organization.id)return Z.json({error:"Connection not found"},404);let W=OH(J,G,!1,J9()??void 0),K,U;try{let B=(await W.readResource({uri:Y})).contents?.[0];K=B?.text,U=B?._meta?.ui?.csp}catch(N){return Z.json({error:N.message},502)}finally{await W.close().catch(()=>{})}if(typeof K!=="string")return Z.json({error:"Resource has no text content"},404);let w=OQ$(K,{resourceCsp:U}),F=`"${Bun.hash(w).toString(36)}"`,H="private, no-cache";if(Z.req.header("if-none-match")===F)return new Response(null,{status:304,headers:{ETag:F,"Cache-Control":H}});return new Response(w,{headers:{"Content-Type":"text/html; charset=utf-8",ETag:F,"Cache-Control":H}})}),$.all("/:connectionId",async(Z)=>{let G=Z.req.param("connectionId"),X=Z.get("meshContext");if(G.endsWith("_self")){let Q=G.slice(0,-5);if(!X.organization||X.organization.id!==Q)return Z.json({error:"Connection not found"},404);let J=await Dv(X),W=new TY({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await J.connect(W),tS.run(X,()=>yW(J,W,Z.req.raw,`mcp:self:${G}`))}let Y=T00(G);if(Y){if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let Q=l1(X);if(!Q)return Z.json({error:"Authentication required"},401);let J=await pS(X,Y,Q,Z.req.query("branch")??void 0);if(!J)return Z.json({error:"Dev server not running"},503);let W=K40(J,X,!1),K=new TY({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await W.connect(K),yW(W,K,Z.req.raw,`mcp:dev:${G}`)}try{try{if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let Q=await X.tracer.startActiveSpan("studio.connection.lookup",{attributes:{"connection.id":G}},async(B)=>{nY(Z,"mcp.find_connection");try{let E=await X.storage.connections.findById(G,X.organization.id);return B.setStatus({code:iH0.OK}),E}catch(E){throw B.setStatus({code:iH0.ERROR,message:E.message}),B.recordException(E),E}finally{aX(Z,"mcp.find_connection"),B.end()}});if(!Q)throw Error("Connection not found");if(Q.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");let J=!1;if(Q.status!=="active"){let B=Date.now()-new Date(Q.updated_at).getTime();if(Q.status==="error"&&!!Q.connection_url&&B>=__0)J=!0;else{if(Q.status==="error"&&Q.connection_url){let D=__0-B;Z.header("Retry-After",String(Math.ceil(D/1000)))}throw Error(`Connection inactive: ${Q.status}`)}}let W=await AQ$(Z.req.raw),{decision:K,listType:U}=PQ$(W),w=K==="probe";if(K==="skip-if-list-cached"&&U){let B=J9();w=B?await B.get(U,G)===null:!0}if(J)w=!0;if(Q.connection_url&&w)P80(G),await X.tracer.startActiveSpan("studio.connection.handshake",{attributes:{"connection.id":G,"connection.url":Q.connection_url}},async(B)=>{nY(Z,"mcp.client_handshake");try{if(await rZ(Q,X,!1),A80(G),_n0().recordSuccess(G),J)await X.storage.connections.update(G,{status:"active"}),console.info("[proxy] auto-recovered connection after successful re-probe",{connectionId:G,org:X.organization?.slug});B.setStatus({code:iH0.OK})}catch(E){throw B.setStatus({code:iH0.ERROR,message:E.message}),B.recordException(E),E}finally{aX(Z,"mcp.client_handshake"),B.end()}});nY(Z,"mcp.create_server");let F=K40(Q,X,!1);aX(Z,"mcp.create_server");let H=new TY({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});nY(Z,"mcp.server_connect"),await F.connect(H),aX(Z,"mcp.server_connect"),nY(Z,"mcp.handle_request");let N=await yW(F,H,Z.req.raw,`mcp:${G}`);return aX(Z,"mcp.handle_request"),N}catch(Q){if(Q instanceof kf)throw Q;let J=await X.storage.connections.findById(G,X.organization?.id);if(J?.connection_url){let W=await eh0({error:Q,reqUrl:new URL(Z.req.raw.url),connectionId:G,connectionUrl:J.connection_url,headers:{},orgSlug:X.organization?.slug});if(W)return W;T80(G);let{shouldDisable:K}=await _n0().recordFailure(G);if(K&&J.status==="active")await X.storage.connections.update(G,{status:"error"}),console.warn("[proxy] auto-disabled connection after sustained failures",{connectionId:G,org:X.organization?.slug,error:Q.message})}throw Q}}catch(Q){return qQ$(Q,Z)}}),$.all("/:connectionId/call-tool/:toolName",async(Z)=>{let G=Z.req.param("connectionId"),X=Z.req.param("toolName"),Y=Z.get("meshContext");try{let Q=await Y.storage.connections.findById(G,Y.organization?.id);if(!Q)return Z.json({error:"Connection not found"},404);let W=await(await rZ(Q,Y,!1)).callTool({name:X,arguments:await Z.req.json()});if(W.isError)return new Response(JSON.stringify(W.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(W.structuredContent??W.content),{headers:{"Content-Type":"application/json"}})}catch(Q){let J=await Y.storage.connections.findById(G,Y.organization?.id);if(J?.connection_url){let W=await eh0({error:Q,reqUrl:new URL(Z.req.raw.url),connectionId:G,connectionUrl:J.connection_url,headers:{},orgSlug:Y.organization?.slug});if(W)return W}return qQ$(Q,Z)}}),$};var pH0=O(()=>{lE();Ev();g6();Ab0();tE();Hn();cm();eX();Jl();EQ$();Iv0();fn0();TQ$();mH0();cH0();W6();Cv0()});async function TN($,Z,G,X){if(Z.type!=="event"||!Z.connection_id)return{success:!0};let Y=await $.storage.connections.findById(Z.connection_id);if(!Y)return{success:!0};let Q=$.organization?.id,J=$.organization?.slug;try{let W=await rZ(Y,$,!0),K=Lc0.forClient(Vv0(W)),U,w,F;if(G&&X&&Q){let L=await X.generateTokenPair();w=L.plaintext,F=L.hash,U=J?`${$.baseUrl}/api/${J}/trigger-callback`:`${$.baseUrl}/api/trigger-callback`}let H=5000,N=!1,B=new Promise((L,z)=>setTimeout(()=>{N=!0,z(Error("TRIGGER_CONFIGURE timeout"))},H)),E;try{E=await Promise.race([K.TRIGGER_CONFIGURE({type:Z.event_type,params:JSON.parse(Z.params??"{}"),enabled:G,callbackUrl:U,callbackToken:w}),B])}catch(L){if(N&&G&&X&&Q&&F)await X.persistTokenHash(Q,Z.connection_id,F);return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE threw on connection=${Z.connection_id} type=${Z.event_type}:`,L),{success:!1,error:String(L)}}let D=E;if(!D||D.success!==!0)return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE did not return success=true on connection=${Z.connection_id} type=${Z.event_type}. Raw payload:`,JSON.stringify(E)),{success:!1,error:`TRIGGER_CONFIGURE did not return success=true (got ${JSON.stringify(E)})`};try{if(G&&X&&Q&&F)await X.persistTokenHash(Q,Z.connection_id,F);if(!G&&X&&Q)await X.deleteByConnection(Z.connection_id,Q)}catch(L){console.error("[configureTriggerOnMcp] Token persistence failed after successful TRIGGER_CONFIGURE:",L)}return{success:!0}}catch(W){return{success:!1,error:String(W)}}}var Bn=O(()=>{lE();pH0();zc0()});import{z as c4}from"zod";var vn0;var MQ$=O(()=>{nS();W1();MU();Bn();vn0=J0({name:"AUTOMATION_UPDATE",description:"Update an automation's config. Toggling active state reconfigures event triggers on MCPs.",annotations:{title:"Update Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:c4.object({id:c4.string(),name:c4.string().min(1).max(255).optional(),active:c4.boolean().optional(),messages:c4.union([c4.string(),c4.array(c4.looseObject({id:c4.string().optional(),role:c4.enum(["user","assistant","system"]),parts:c4.array(c4.record(c4.string(),c4.unknown())),metadata:c4.unknown().optional()}))]).optional(),models:c4.object({tier:M40,modelId:c4.string().optional(),credentialId:c4.string().optional()}).loose().optional(),tools:c4.array(c4.string()).nullable().optional(),maxAgentSteps:c4.number().int().min(1).max(100).nullable().optional(),temperature:c4.number().optional()}),outputSchema:c4.object({id:c4.string(),name:c4.string(),active:c4.boolean(),updated_at:c4.string()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.id,G.id);if(!X)throw Error("Automation not found");let Y={};if($.name!==void 0)Y.name=$.name;if($.active!==void 0)Y.active=$.active;if($.messages!==void 0){let J=_H0($.messages);Y.messages=JSON.stringify(J)}if($.models!==void 0)Y.models=JSON.stringify($.models);if($.tools!==void 0)Y.tools=$.tools===null?null:JSON.stringify($.tools);if($.temperature!==void 0)Y.temperature=$.temperature;if($.maxAgentSteps!==void 0)Y.max_agent_steps=$.maxAgentSteps;let Q=await Z.storage.automations.update($.id,G.id,Y);if($.active!==void 0&&$.active!==X.active){let J=await Z.storage.automations.listTriggers(Q.id),W=J.filter((K)=>K.type==="event");await Promise.allSettled(W.map(async(K)=>{let U=await TN(Z,K,$.active);if(!U.success)console.warn(`Failed to configure trigger ${K.id}: ${U.error}`)})),await UQ$(J,$.active)}return{id:Q.id,name:Q.name,active:Q.active,updated_at:Q.updated_at}}})});import{z as tH0}from"zod";var yn0;var kQ$=O(()=>{nS();f4();W1();Bn();yn0=J0({name:"AUTOMATION_DELETE",description:"Permanently delete an automation. Disables all event triggers on connected MCPs first.",annotations:{title:"Delete Automation",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:tH0.object({id:tH0.string()}),outputSchema:tH0.object({success:tH0.boolean()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);if(await Z.access.check(),!await Z.storage.automations.findById($.id,G.id))throw Error("Automation not found");let Y=await Z.storage.automations.listTriggers($.id),Q=Y.filter((K)=>K.type==="event");await Promise.allSettled(Q.map(async(K)=>{let U=await TN(Z,K,!1);if(!U.success)console.warn(`Failed to disable trigger ${K.id}: ${U.error}`)}));let{success:J}=await Z.storage.automations.delete($.id,G.id);await wQ$(Y);let W=l1(Z);if(W)p1.capture({distinctId:W,event:"automation_deleted",groups:{organization:G.id},properties:{organization_id:G.id,automation_id:$.id,trigger_count:Y.length}});return{success:J}}})});function Lv($){return`webhook_${$}`}function rH0($,Z,G){if(!Z)throw Error("Cannot build webhook URL: organization slug missing from request context");return`${$}/api/${Z}/webhooks/${G}`}import{z as JG}from"zod";var SQ$=300000,$36=10,gn0;var VQ$=O(()=>{jn0();nS();zn0();W1();Bn();gn0=J0({name:"AUTOMATION_TRIGGER_ADD",description:"Add a cron, event, or webhook trigger to an automation. For webhook triggers the response includes a one-time URL + secret token.",annotations:{title:"Add Trigger",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:JG.object({automation_id:JG.string(),type:JG.enum(["cron","event","webhook"]),cron_expression:JG.string().optional(),connection_id:JG.string().optional(),event_type:JG.string().optional(),params:JG.record(JG.string(),JG.string()).optional()}),outputSchema:JG.object({id:JG.string(),automation_id:JG.string(),type:JG.enum(["cron","event","webhook"]),created_at:JG.string(),webhook:JG.object({url:JG.string(),token:JG.string()}).nullable().optional()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.automation_id,G.id);if(!X)throw Error("Automation not found");if($.type==="cron"){if(!$.cron_expression)throw Error("cron_expression is required for cron triggers");let K=new xH0($.cron_expression,{timezone:"UTC"}).nextRuns($36);if(K.length===0)throw Error("Cron expression has no future runs");let U=1/0;for(let w=1;w<K.length;w++){let F=K[w].getTime()-K[w-1].getTime();if(F<U)U=F}if(K.length>=2&&Number.isFinite(U)&&U<SQ$){let w=SQ$/1000;throw Error(`Cron fires too frequently \u2014 minimum interval is ${w}s between runs (observed ${U/1000}s)`)}}if($.type==="event"){if(!$.connection_id)throw Error("connection_id is required for event triggers");if(!$.event_type)throw Error("event_type is required for event triggers");if(!await Z.storage.connections.findById($.connection_id,G.id))throw Error("Connection not found");let K={id:"",automation_id:$.automation_id,type:"event",cron_expression:null,connection_id:$.connection_id,event_type:$.event_type,params:$.params?JSON.stringify($.params):null,last_run_at:null,next_run_at:null,api_key_id:null,created_at:""},U=await TN(Z,K,!0,Z.storage.triggerCallbackTokens);if(!U.success)throw Error(`Failed to configure trigger on connection: ${U.error}`)}let Y=$.type==="cron"&&$.cron_expression?vH0($.cron_expression,new Date):null,Q=await Z.storage.automations.addTrigger({automation_id:$.automation_id,type:$.type,cron_expression:$.type==="cron"?$.cron_expression:null,connection_id:$.type==="event"?$.connection_id:null,event_type:$.type==="event"?$.event_type:null,params:$.params?JSON.stringify($.params):null,next_run_at:Y?.toISOString()??null}),J=null;if($.type==="webhook")try{let W=await Z.boundAuth.apiKey.create({name:`webhook:${X.name}:${Q.id.slice(0,8)}`,permissions:{[Lv(Q.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:X.id,trigger_id:Q.id}});await Z.storage.automations.setTriggerApiKeyId(Q.id,W.id),J={url:rH0(Z.baseUrl,G.slug,Q.id),token:W.key}}catch(W){await Z.storage.automations.removeTrigger(Q.id,Q.automation_id);let K=W instanceof Error?W.message:String(W);throw Error(`Failed to mint webhook token: ${K}`)}return await gH0(Q,X),{id:Q.id,automation_id:Q.automation_id,type:Q.type,created_at:Q.created_at,webhook:J}}})});import{z as oH0}from"zod";var hn0;var CQ$=O(()=>{nS();W1();Bn();hn0=J0({name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove a trigger from an automation. Disables associated event listeners on MCPs.",annotations:{title:"Remove Trigger",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:oH0.object({trigger_id:oH0.string()}),outputSchema:oH0.object({success:oH0.boolean()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(!await Z.storage.automations.findById(X.automation_id,G.id))throw Error("Automation not found");if(X.type==="event"){let J=await TN(Z,X,!1,Z.storage.triggerCallbackTokens);if(!J.success)console.warn(`Failed to disable trigger ${X.id}: ${J.error}`)}let{success:Q}=await Z.storage.automations.removeTrigger(X.id,X.automation_id);if(X.type==="cron")await kn0(X.id);if(X.type==="webhook"&&X.api_key_id)try{await Z.boundAuth.apiKey.delete(X.api_key_id)}catch(J){console.warn(`[trigger-remove] failed to delete api key ${X.api_key_id} for trigger ${X.id}:`,J instanceof Error?J.message:J)}return{success:Q}}})});import{z as zv}from"zod";var cn0;var bQ$=O(()=>{W1();cn0=J0({name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger. Returns a new token; the old token is revoked.",annotations:{title:"Rotate Webhook Token",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:zv.object({trigger_id:zv.string()}),outputSchema:zv.object({trigger_id:zv.string(),url:zv.string(),token:zv.string()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(X.type!=="webhook")throw Error("Trigger is not a webhook trigger");let Y=await Z.storage.automations.findById(X.automation_id,G.id);if(!Y)throw Error("Automation not found");let Q=X.api_key_id,J=await Z.boundAuth.apiKey.create({name:`webhook:${Y.name}:${X.id.slice(0,8)}`,permissions:{[Lv(X.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Y.id,trigger_id:X.id}});if(await Z.storage.automations.setTriggerApiKeyId(X.id,J.id),Q)try{await Z.boundAuth.apiKey.delete(Q)}catch(W){console.warn(`[trigger-rotate] failed to delete old key ${Q} for trigger ${X.id}:`,W instanceof Error?W.message:W)}return{trigger_id:X.id,url:rH0(Z.baseUrl,G.slug,X.id),token:J.key}}})});import{z as jv}from"zod";var un0;var _Q$=O(()=>{f4();W1();un0=J0({name:"AUTOMATION_RUN",description:"Manually trigger an automation run. Bypasses configured triggers.",annotations:{title:"Run Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:jv.object({id:jv.string()}),outputSchema:jv.object({threadId:jv.string().optional(),error:jv.string().optional(),skipped:jv.string().optional()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);if(await Z.access.check(),!Z.automationRunner)throw Error("Automation runner not available");let X=l1(Z);if(!X)throw Error("User ID not available");let Y=await Z.automationRunner($.id,G.id,X);if(p1.capture({distinctId:X,event:"automation_run",groups:{organization:G.id},properties:{organization_id:G.id,automation_id:$.id,thread_id:"taskId"in Y?Y.taskId:void 0,status:"skipped"in Y?"skipped":("error"in Y)?"error":"started",skip_reason:"skipped"in Y?Y.skipped:void 0,error_message:"error"in Y?Y.error:void 0}}),"skipped"in Y)return{skipped:Y.skipped};if("error"in Y)return{threadId:Y.taskId,error:Y.error};return{threadId:Y.taskId}}})});import{z as MZ}from"zod";var Z36=500,dn0;var fQ$=O(()=>{H5();W1();dn0=J0({name:"AUTOMATION_RUN_STATS",description:"Aggregate run counts (by status) and LLM token/cost totals for a single automation.",annotations:{title:"Automation Run Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:MZ.object({automation_id:MZ.string(),startDate:MZ.string().datetime().optional().describe("Filter runs at or after this ISO timestamp"),endDate:MZ.string().datetime().optional().describe("Filter runs at or before this ISO timestamp")}),outputSchema:MZ.object({runs:MZ.object({total:MZ.number(),completed:MZ.number(),failed:MZ.number(),inProgress:MZ.number()}),usage:MZ.object({calls:MZ.number(),inputTokens:MZ.number(),outputTokens:MZ.number(),totalTokens:MZ.number(),costUsd:MZ.number(),sampledRuns:MZ.number(),truncated:MZ.boolean()})}),handler:async($,Z)=>{f0(Z);let G=E0(Z);if(await Z.access.check(),await SY(),!await Z.storage.automations.findById($.automation_id,G.id))throw Error("Automation not found");let Y=await Z.storage.automations.getRunStats($.automation_id,G.id,{startDate:$.startDate,endDate:$.endDate}),Q=await Z.storage.automations.listRunThreadIds($.automation_id,G.id,{startDate:$.startDate,endDate:$.endDate,limit:Z36}),J={calls:0,inputTokens:0,outputTokens:0,totalTokens:0,costUsd:0,sampledRuns:Q.length,truncated:Y.total>Q.length};if(Q.length>0){let W=await Z.storage.monitoring.queryThreadUsage({organizationId:G.id,connectionId:"decopilot",threadIds:Q,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});for(let K of W)J.calls+=K.calls,J.inputTokens+=K.inputTokens,J.outputTokens+=K.outputTokens,J.totalTokens+=K.totalTokens,J.costUsd+=K.costUsd}return{runs:Y,usage:J}}})});var xQ$=O(()=>{aY$();sY$();eY$();MQ$();kQ$();VQ$();CQ$();bQ$();_Q$();fQ$()});import{z as IN}from"zod";var X36,Y36,ln0;var vQ$=O(()=>{W1();X36=IN.object({id:IN.string().min(1)}),Y36=IN.object({user:IN.object({id:IN.string(),name:IN.string(),email:IN.string(),image:IN.string().nullable()}).nullable()}),ln0=J0({name:"USER_GET",description:"Get a user's profile by ID. Only returns users who share an organization with the caller.",annotations:{title:"Get User",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:X36,outputSchema:Y36,handler:async($,Z)=>{await Z.access.check(),f0(Z);let G=l1(Z);if(!G)throw Error("Authentication required");let X=await Z.storage.users.findById($.id,G);if(!X)return{user:null};return{user:{id:X.id,name:X.name,email:X.email,image:X.image??null}}}})});var yQ$=O(()=>{vQ$()});import IY from"zod";var mn0;var gQ$=O(()=>{W1();AU();mn0=J0({name:"AI_PROVIDERS_LIST",description:"List all supported AI providers and their connection methods (API key, OAuth).",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:IY.object({}),outputSchema:IY.object({providers:IY.array(IY.object({id:IY.string(),name:IY.string(),description:IY.string(),logo:IY.string().optional(),supportedMethods:IY.array(IY.enum(["api-key","oauth-pkce"])),supportsTopUp:IY.boolean().optional(),supportsCredits:IY.boolean().optional(),supportsProvision:IY.boolean().optional()}))}),handler:async($,Z)=>{return f0(Z),E0(Z),await Z.access.check(),{providers:Object.values($G()).filter((X)=>!!X).map((X)=>({...X.info,supportedMethods:X.supportedMethods,supportsTopUp:!!X.getTopUpUrl,supportsCredits:!!X.getCreditsBalance,supportsProvision:!!X.provisionKey}))}}})});function J36($){if(!$)return;if(!("models"in $))return;return $.models??void 0}function hQ$($,Z){if(!$)return!0;if($.includes("*:*"))return!0;return $.some((G)=>G.startsWith(`${Z}:`))}function rU($,Z,G){if(!$)return!0;return $.includes("*:*")||$.includes(`${Z}:*`)||$.includes(`${Z}:${G}`)}function aH0($,Z){if($===void 0)return Z;let G=Z;if(G.image&&!rU($,G.image.credentialId,G.image.id)){let{image:X,...Y}=G;G=Y}if(G.webSearch&&!rU($,G.webSearch.credentialId,G.webSearch.id)){let{webSearch:X,...Y}=G;G=Y}if(G.deepResearch&&!rU($,G.deepResearch.credentialId,G.deepResearch.id)){let{deepResearch:X,...Y}=G;G=Y}return G}function cQ$($){if(!$)return{allowAll:!0,models:{}};if($.includes("*:*"))return{allowAll:!0,models:{}};let Z={};for(let G of $){let X=G.indexOf(":");if(X===-1)continue;let Y=G.slice(0,X),Q=G.slice(X+1);if(!Z[Y])Z[Y]=[];Z[Y].push(Q)}return{allowAll:!1,models:Z}}async function oU($,Z,G){if(!G||sY.includes(G))return;let X=await $.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Z).where("role","=",G).executeTakeFirst();if(!X?.permission)return;try{let Y=JSON.parse(X.permission);return J36(Y)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${G}`),[]}}var On=O(()=>{XW()});var in0;var uQ$=O(()=>{in0=[{providerId:"claude-code",modelId:"claude-code:haiku",title:"Claude Code Haiku",description:"Fast and lightweight",capabilities:["text"],limits:null,costs:null},{providerId:"claude-code",modelId:"claude-code:sonnet",title:"Claude Code Sonnet",description:"Balanced performance",capabilities:["text","reasoning"],limits:null,costs:null},{providerId:"claude-code",modelId:"claude-code:opus",title:"Claude Code Opus",description:"Most capable",capabilities:["text","reasoning"],limits:null,costs:null},{providerId:"claude-code",modelId:"claude-code:opus-1m",title:"Claude Code Opus 4.8 1M",description:"Most capable, 1M context window",capabilities:["text","reasoning"],limits:{contextWindow:1e6,maxOutputTokens:null},costs:null}]});var dQ$=O(()=>{uQ$()});var nn0;var lQ$=O(()=>{nn0=[{providerId:"codex",modelId:"codex:gpt-5.5",title:"GPT-5.5",description:"Frontier model for complex coding, research, and real-world work",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null},{providerId:"codex",modelId:"codex:gpt-5.4",title:"GPT-5.4",description:"Strong model for everyday coding",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null},{providerId:"codex",modelId:"codex:gpt-5.4-mini",title:"GPT-5.4 Mini",description:"Small, fast, and cost-efficient model for simpler coding tasks",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null},{providerId:"codex",modelId:"codex:gpt-5.3-codex-spark",title:"GPT-5.3 Codex Spark",description:"Ultra-fast coding model",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null}]});var mQ$=O(()=>{lQ$()});import ZZ from"zod";var pn0;var iQ$=O(()=>{W1();On();dQ$();mQ$();pn0=J0({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider. Requires a valid stored API key.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:ZZ.object({keyId:ZZ.string().describe("The provider key ID to use")}),outputSchema:ZZ.object({models:ZZ.array(ZZ.object({providerId:ZZ.string(),modelId:ZZ.string(),title:ZZ.string(),description:ZZ.string().nullish(),logo:ZZ.string().nullish(),capabilities:ZZ.array(ZZ.string()),limits:ZZ.object({contextWindow:ZZ.coerce.number(),maxOutputTokens:ZZ.coerce.number().nullable()}).nullish(),costs:ZZ.object({input:ZZ.coerce.number(),output:ZZ.coerce.number()}).nullish(),asyncResearch:ZZ.boolean().optional()}))}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.findById($.keyId,G.id).catch(()=>null);if(X?.providerId==="claude-code")return{models:in0};if(X?.providerId==="codex")return{models:nn0};let[Y,Q]=await Promise.all([Z.aiProviders.listModels($.keyId,G.id),oU(Z.db,G.id,Z.auth.user?.role)]);return{models:Y.filter((W)=>rU(Q,$.keyId,W.modelId))}}})});import aU from"zod";var tn0;var nQ$=O(()=>{W1();AU();tn0=J0({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured and ready to use.",inputSchema:aU.object({}),outputSchema:aU.object({providers:aU.array(aU.object({id:aU.string(),name:aU.string(),description:aU.string(),logo:aU.string().optional(),keyCount:aU.number()}))}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.list({organizationId:G.id}),Y=new Map;for(let J of X)Y.set(J.providerId,(Y.get(J.providerId)??0)+1);return{providers:[...Y.entries()].flatMap(([J,W])=>{let U=$G()[J];if(!U)return console.warn(`AI provider "${J}" has stored keys but is not in the registry; skipping.`),[];return[{...U.info,keyCount:W}]})}}})});var RN=O(()=>{W6()});import G3 from"zod";var rS,rn0;var En=O(()=>{f4();W1();RN();rS=G3.object({id:G3.string(),providerId:G3.string(),label:G3.string(),presetId:G3.string().nullable(),createdAt:G3.string()}),rn0=J0({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider. The key is encrypted at rest in the vault.",inputSchema:G3.object({providerId:G3.enum(nZ),label:G3.string().min(1).max(100),apiKey:G3.string().min(1),presetId:G3.string().min(1).max(64).optional()}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.create({providerId:$.providerId,label:$.label,apiKey:$.apiKey,organizationId:G.id,createdBy:Z.auth.user.id,presetId:$.presetId??null});return p1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_created",groups:{organization:G.id},properties:{organization_id:G.id,provider_id:X.providerId,preset_id:X.presetId,key_id:X.id,label:X.label}}),{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import sH0 from"zod";var Pv=($,Z)=>$&&$.keyId===Z?null:$,W36=($,Z)=>{let G={tiers:{fast:Pv($.tiers.fast,Z),smart:Pv($.tiers.smart,Z),thinking:Pv($.tiers.thinking,Z),image:Pv($.tiers.image,Z),web_search:Pv($.tiers.web_search,Z),deep_research:Pv($.tiers.deep_research,Z)}},X=G.tiers.fast!==$.tiers.fast||G.tiers.smart!==$.tiers.smart||G.tiers.thinking!==$.tiers.thinking||G.tiers.image!==$.tiers.image||G.tiers.web_search!==$.tiers.web_search||G.tiers.deep_research!==$.tiers.deep_research;return{config:G,changed:X}},on0;var pQ$=O(()=>{f4();W1();on0=J0({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key. Cannot be undone.",inputSchema:sH0.object({keyId:sH0.string().describe("The provider key ID to delete")}),outputSchema:sH0.object({success:sH0.boolean()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.organizationSettings.get(G.id);if(X?.simple_mode){let{config:Y,changed:Q}=W36(X.simple_mode,$.keyId);if(Q)await Z.storage.organizationSettings.upsert(G.id,{simple_mode:Y})}return await Z.storage.aiProviderKeys.delete($.keyId,G.id),p1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_deleted",groups:{organization:G.id},properties:{organization_id:G.id,key_id:$.keyId}}),{success:!0}}})});import eH0 from"zod";var an0;var tQ$=O(()=>{W1();En();an0=J0({name:"AI_PROVIDER_KEY_UPDATE",description:"Update the label and/or API key of a stored AI provider key. Pass apiKey to rotate the stored credential.",inputSchema:eH0.object({keyId:eH0.string(),label:eH0.string().min(1).max(100).optional(),apiKey:eH0.string().min(1).optional()}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.updateKey($.keyId,G.id,{label:$.label,apiKey:$.apiKey});return{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import Av from"zod";var sn0;var rQ$=O(()=>{W1();sn0=J0({name:"AI_PROVIDER_KEY_PREVIEW",description:"Get the label and a masked preview of a stored AI provider API key. The API key is partially obscured (only the last 4 characters are visible). For openai-compatible keys the baseUrl is also returned.",inputSchema:Av.object({keyId:Av.string()}),outputSchema:Av.object({label:Av.string(),maskedKey:Av.string(),baseUrl:Av.string().optional()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);return await Z.access.check(),Z.storage.aiProviderKeys.getPreview($.keyId,G.id)}})});import X3 from"zod";var en0;var oQ$=O(()=>{W1();RN();On();en0=J0({name:"AI_PROVIDER_KEY_LIST",description:"List stored AI provider API keys. Returns metadata only \u2014 secrets are never exposed.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:X3.object({providerId:X3.enum(nZ).optional()}),outputSchema:X3.object({keys:X3.array(X3.object({id:X3.string(),providerId:X3.string(),label:X3.string(),presetId:X3.string().nullable(),createdBy:X3.string(),createdAt:X3.string()}))}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let[X,Y]=await Promise.all([Z.storage.aiProviderKeys.list({organizationId:G.id,providerId:$.providerId}),oU(Z.db,G.id,Z.auth.user?.role)]);return{keys:X.filter((W)=>hQ$(Y,W.id)).map(({organizationId:W,...K})=>K)}}})});import{createHash as K36,randomBytes as U36}from"crypto";function aQ$(){return U36(32).toString("base64url")}function sQ$($){return K36("sha256").update($).digest("base64url")}var eQ$=()=>{};import Tv from"zod";function $J$($){return $==="localhost"||$.endsWith(".localhost")||$==="127.0.0.1"||$==="[::1]"||$==="::1"}function w36($){let Z=z1(),G=Z.baseUrl??`http://localhost:${Z.port}`,X=new URL($),Y=new URL(G);if(X.origin===Y.origin)return!0;return X.protocol===Y.protocol&&$J$(X.hostname)&&$J$(Y.hostname)}var $p0;var ZJ$=O(()=>{W1();RN();AU();eQ$();y8();$p0=J0({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth PKCE authorization URL for a provider. Returns URL and state token.",inputSchema:Tv.object({providerId:Tv.enum(nZ),callbackUrl:Tv.string().url().refine(($)=>{return w36($)},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:Tv.object({url:Tv.string(),stateToken:Tv.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=$G()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.getOAuthUrl)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=aQ$(),Q=sQ$(Y),J=await Z.storage.oauthPkceStates.create(Y,G.id,Z.auth.user.id),W=new URL($.callbackUrl);W.searchParams.set("state",J);let K={callbackUrl:W.toString(),codeChallenge:Q,codeChallengeMethod:"S256",organizationId:G.id};return{url:X.getOAuthUrl(K),stateToken:J}}})});import Dn from"zod";var Zp0;var GJ$=O(()=>{W1();RN();AU();En();Zp0=J0({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key. Completes the OAuth flow started by AI_PROVIDER_OAUTH_URL.",inputSchema:Dn.object({providerId:Dn.enum(nZ),code:Dn.string(),stateToken:Dn.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:Dn.string().min(1).max(100)}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=$G()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.exchangeOAuthCode)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=l1(Z);if(!Y)throw Error("Unable to determine user ID");let Q=await Z.storage.oauthPkceStates.consume($.stateToken,G.id,Y),{apiKey:J}=await X.exchangeOAuthCode({code:$.code,codeVerifier:Q,codeChallengeMethod:"S256"}),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:$.label,apiKey:J,organizationId:G.id,createdBy:Y});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});import XJ$ from"zod";var Gp0;var YJ$=O(()=>{W1();RN();AU();gO();En();Gp0=J0({name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision an API key for a provider that supports server-to-server key creation (e.g. Deco AI Gateway).",inputSchema:XJ$.object({providerId:XJ$.enum(nZ)}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("Unable to determine user ID");let Y=$G()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.provisionKey)throw Error(`Provider ${$.providerId} does not support key provisioning`);let Q=await yF(X),J=await Y.provisionKey(Q,G.id),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:"Auto-provisioned",apiKey:J,organizationId:G.id,createdBy:X});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});import Iv from"zod";var Xp0;var QJ$=O(()=>{W1();RN();AU();gO();Xp0=J0({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",inputSchema:Iv.object({providerId:Iv.enum(nZ),amountCents:Iv.number().int().positive().describe("Amount in cents (e.g. 1000 = $10.00)"),currency:Iv.enum(["usd","brl"]).default("usd")}),outputSchema:Iv.object({url:Iv.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("Unable to determine user ID");let Y=$G()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getTopUpUrl)throw Error(`Provider ${$.providerId} does not support credit top-ups`);let Q=await yF(X,Z.auth.user?.email);return{url:await Y.getTopUpUrl(Q,G.id,$.amountCents,$.currency)}}})});import $N0 from"zod";var Yp0;var JJ$=O(()=>{W1();RN();AU();gO();Yp0=J0({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:$N0.object({providerId:$N0.enum(nZ)}),outputSchema:$N0.object({balanceCents:$N0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("Unable to determine user ID");let Y=$G()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getCreditsBalance)throw Error(`Provider ${$.providerId} does not expose a credits balance`);let Q=await yF(X);return Y.getCreditsBalance(Q,G.id)}})});var WJ$=O(()=>{gQ$();iQ$();nQ$();En();pQ$();tQ$();rQ$();oQ$();ZJ$();GJ$();YJ$();QJ$();JJ$()});import gW from"zod";var ZN0;var Qp0=O(()=>{ZN0=gW.object({id:gW.string(),scope:gW.enum(["user","organization"]),userId:gW.string().nullable(),name:gW.string(),description:gW.string().nullable(),createdBy:gW.string(),createdAt:gW.string(),updatedBy:gW.string(),updatedAt:gW.string()})});import Ln from"zod";var Jp0;var KJ$=O(()=>{W1();Qp0();Jp0=J0({name:"SECRET_CREATE",description:"Create a secret. The value is encrypted at rest in the credential vault and never returned by any tool. Scope 'user' is private to the caller within this organization; scope 'organization' is visible to all org members.",inputSchema:Ln.object({scope:Ln.enum(["user","organization"]),name:Ln.string().min(1).max(128).regex(/^[A-Za-z0-9_.-]+$/,{message:"Name may only contain letters, digits, underscore, dot, and hyphen."}),value:Ln.string().min(1),description:Ln.string().max(500).optional()}),outputSchema:ZN0,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:{kind:"organization"};return await Z.storage.secrets.create({organizationId:G.id,scope:Y,name:$.name,value:$.value,description:$.description??null,createdBy:X})}})});import GN0 from"zod";var Wp0;var UJ$=O(()=>{W1();Qp0();Wp0=J0({name:"SECRET_LIST",description:"List secrets visible to the caller: all organization-scoped secrets, plus user-scoped secrets owned by the caller. Values are never returned.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:GN0.object({scope:GN0.enum(["user","organization"]).optional()}),outputSchema:GN0.object({secrets:GN0.array(ZN0)}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:$.scope==="organization"?{kind:"organization"}:void 0;return{secrets:await Z.storage.secrets.list({organizationId:G.id,callerUserId:X,scope:Y})}}})});var wJ$=O(()=>{KJ$();UJ$()});var oS=b((L36)=>{var Kp0;(function($){$.HEADER="header",$.QUERY="query"})(Kp0||(Kp0={}));var Up0;(function($){$.HEADER="header",$.QUERY="query"})(Up0||(Up0={}));var wp0;(function($){$.HTTP="http",$.HTTPS="https"})(wp0||(wp0={}));var zn;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(zn||(zn={}));var N36=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>zn.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>zn.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(G){Z.push(G)},checksumAlgorithms(){return Z}}},B36=($)=>{let Z={};return $.checksumAlgorithms().forEach((G)=>{Z[G.algorithmId()]=G.checksumConstructor()}),Z},O36=($)=>{return N36($)},E36=($)=>{return B36($)},Fp0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(Fp0||(Fp0={}));var D36="__smithy_context",Hp0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(Hp0||(Hp0={}));var Np0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(Np0||(Np0={}));L36.AlgorithmId=zn;L36.EndpointURLScheme=wp0;L36.FieldPosition=Fp0;L36.HttpApiKeyAuthLocation=Up0;L36.HttpAuthLocation=Kp0;L36.IniSectionType=Hp0;L36.RequestHandlerProtocol=Np0;L36.SMITHY_CONTEXT_KEY=D36;L36.getDefaultClientConfiguration=O36;L36.resolveDefaultRuntimeConfig=E36});var hW=b((x36)=>{var{SMITHY_CONTEXT_KEY:FJ$}=oS(),S36=($)=>$[FJ$]||($[FJ$]={});class XN0{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor($){this.method=$.method||"GET",this.hostname=$.hostname||"localhost",this.port=$.port,this.query=$.query||{},this.headers=$.headers||{},this.body=$.body,this.protocol=$.protocol?$.protocol.slice(-1)!==":"?`${$.protocol}:`:$.protocol:"https:",this.path=$.path?$.path.charAt(0)!=="/"?`/${$.path}`:$.path:"/",this.username=$.username,this.password=$.password,this.fragment=$.fragment}static clone($){let Z=new XN0({...$,headers:{...$.headers}});if(Z.query)Z.query=V36(Z.query);return Z}static isInstance($){if(!$)return!1;let Z=$;return"method"in Z&&"protocol"in Z&&"hostname"in Z&&"path"in Z&&typeof Z.query==="object"&&typeof Z.headers==="object"}clone(){return XN0.clone(this)}}function V36($){return Object.keys($).reduce((Z,G)=>{let X=$[G];return{...Z,[G]:Array.isArray(X)?[...X]:X}},{})}class HJ${statusCode;reason;headers;body;constructor($){this.statusCode=$.statusCode,this.reason=$.reason,this.headers=$.headers||{},this.body=$.body}static isInstance($){if(!$)return!1;let Z=$;return typeof Z.statusCode==="number"&&typeof Z.headers==="object"}}var C36=new RegExp("^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$"),NJ$=($,Z=!1)=>{if(!Z)return C36.test($);let G=$.split(".");for(let X of G)if(!NJ$(X))return!1;return!0};function b36($){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test($)}var _36=($)=>{if(typeof $==="function")return $;let Z=Promise.resolve($);return()=>Z};function BJ$($){let Z={};if($=$.replace(/^\?/,""),$)for(let G of $.split("&")){let[X,Y=null]=G.split("=");if(X=decodeURIComponent(X),Y)Y=decodeURIComponent(Y);if(!(X in Z))Z[X]=Y;else if(Array.isArray(Z[X]))Z[X].push(Y);else Z[X]=[Z[X],Y]}return Z}var YN0=($)=>{if(typeof $==="string")return YN0(new URL($));let{hostname:Z,pathname:G,port:X,protocol:Y,search:Q}=$,J;if(Q)J=BJ$(Q);return{hostname:Z,port:X?parseInt(X):void 0,protocol:Y,path:G,query:J}},f36=($)=>{if(typeof $==="object"){if("url"in $){let Z=YN0($.url);if($.headers){Z.headers={};for(let G in $.headers)Z.headers[G.toLowerCase()]=$.headers[G].join(", ")}return Z}return $}return YN0($)};x36.HttpRequest=XN0;x36.HttpResponse=HJ$;x36.getSmithyContext=S36;x36.isValidHostLabel=NJ$;x36.isValidHostname=b36;x36.normalizeProvider=_36;x36.parseQueryString=BJ$;x36.parseUrl=YN0;x36.toEndpointV1=f36});var Y3=b((YW6)=>{var{getSmithyContext:OJ$,HttpResponse:i36,toEndpointV1:n36}=hW(),QN0=($)=>{if(typeof $==="function")return $();return $},Ep0=($,Z,G,X,Y)=>({name:Z,namespace:$,traits:G,input:X,output:Y}),p36=($)=>(Z,G)=>async(X)=>{let{response:Y}=await Z(X),{operationSchema:Q}=OJ$(G),[,J,W,K,U,w]=Q??[];try{let F=await $.protocol.deserializeResponse(Ep0(J,W,K,U,w),{...$,...G},Y);return{response:Y,output:F}}catch(F){if(Object.defineProperty(F,"$response",{value:Y,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in F)){try{F.message+=`
1429
+ `+$}function hH0($){if(!$||$.length===0)return[];return $.filter((Z)=>cJ6.test(Z))}function uJ6($){if($.csp)return $.csp;let Z=$.resourceCsp;if(!Z)return BQ$;let G=hH0(Z.resourceDomains),X=hH0(Z.connectDomains),Y=hH0(Z.frameDomains),Q=hH0(Z.baseUriDomains),J=G.length>0,W=X.length>0,K=Y.length>0,U=Q.length>0;if(!J&&!W&&!K&&!U)return BQ$;let w=G.join(" ");return["default-src 'none'",J?`script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval' ${w}`:"script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",J?`style-src 'unsafe-inline' ${w}`:"style-src 'unsafe-inline'",J?`img-src * data: blob: ${w}`:"img-src * data: blob:",J?`media-src * data: blob: ${w}`:"media-src * data: blob:",J?`font-src data: ${w}`:"font-src data:",W?`connect-src ${X.join(" ")}`:"connect-src 'none'",K?`frame-src ${Y.join(" ")}`:"frame-src 'none'","worker-src blob:","form-action 'none'",U?`base-uri ${Q.join(" ")}`:"base-uri 'none'"].join("; ")}var BQ$,cJ6;var EQ$=O(()=>{BQ$=["default-src 'none'","script-src 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'","style-src 'unsafe-inline'","img-src * data: blob:","media-src * data: blob:","font-src data:","connect-src 'none'","frame-src 'none'","worker-src blob:","form-action 'none'","base-uri 'none'"].join("; ");cJ6=/^https?:\/\/(\*\.)?[a-zA-Z0-9._-]+(:\d+)?\/?$/});function dJ6($){let Z=$.lastFailureAt-$.firstFailureAt;return $.count>=_x1&&Z>=fx1}class Cn0{options;kv=null;codec=J$0();constructor($){this.options=$}async init(){let $=this.options.getJetStream();if(!$)return;this.kv=await new LQ$.Kvm($).create(lJ6,{storage:DQ$.StorageType.Memory,ttl:zQ$.nanos(xx1)})}async recordFailure($){if(!this.kv)return Vn0;let Z=Date.now();for(let G=0;G<mJ6;G++)try{let X=await this.kv.get($);if(!(X&&X.operation!=="DEL"&&X.operation!=="PURGE"&&X.value?.length)){let W={count:1,firstFailureAt:Z,lastFailureAt:Z};return await this.kv.create($,this.codec.encode(W)),{count:W.count,shouldDisable:!1}}let Q=this.codec.decode(X.value),J={count:Q.count+1,firstFailureAt:Q.firstFailureAt,lastFailureAt:Z};return await this.kv.update($,this.codec.encode(J),X.revision),{count:J.count,shouldDisable:dJ6(J)}}catch{}return Vn0}async recordSuccess($){if(!this.kv)return;try{await this.kv.delete($)}catch{}}teardown(){this.kv=null}}class Nn{async recordFailure(){return Vn0}async recordSuccess(){}teardown(){}}function bn0($){jQ$=$??new Nn}function _n0(){return jQ$}var DQ$,LQ$,zQ$,Vn0,lJ6="DECOCMS_CONN_CIRCUIT",mJ6=5,jQ$;var fn0=O(()=>{DQ$=k(OB(),1),LQ$=k(Ef0(),1),zQ$=k(Eg(),1),Vn0={count:0,shouldDisable:!1};jQ$=new Nn});function PQ$($){if(!$)return{decision:"skip"};if($.startsWith("notifications/"))return{decision:"skip"};if(nJ6.has($))return{decision:"skip"};let Z=iJ6[$];if(Z)return{decision:"skip-if-list-cached",listType:Z};return{decision:"probe"}}async function AQ$($){if($.method!=="POST")return;let Z=$.headers.get("content-length");if(Z&&Number(Z)>pJ6)return;try{let G=await $.clone().json(),Y=(Array.isArray(G)?G[0]:G)?.method;return typeof Y==="string"?Y:void 0}catch{return}}var iJ6,nJ6,pJ6=64000;var TQ$=O(()=>{iJ6={"tools/list":"tools","resources/list":"resources","prompts/list":"prompts"},nJ6=new Set(["ping"])});function xn0($){let Z=Object.values($),[G]=Z;if(!G)return null;return Z.find((X)=>X.sandboxProviderKind!=="user-desktop")??G}async function oJ6($){if(IQ$.has($))return!0;let Z=Date.now();if(Z-(RQ$.get($)??0)<rJ6)return!1;RQ$.set($,Z);try{let G=await fetch($,{method:"POST",headers:{"content-type":"application/json",accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"mesh-dev-probe",version:"1"}}}),signal:AbortSignal.timeout(4000)}),X=G.ok?await G.text():"",Y=/"protocolVersion"|"serverInfo"/.test(X);if(Y)IQ$.add($);return Y}catch{return!1}}async function pS($,Z,G,X){let Y=$.organization?.id;if(!Y)return null;let Q=await $.storage.virtualMcps.findById(Z);if(!Q||Q.organization_id!==Y)return null;let J=Q.metadata??{},W=e9(J)[G];if(!W)return null;let K=X?aJ6(W,X):sJ6(W);if(!K?.entry.previewUrl)return null;let U=await eJ6($,J,Y,G),w=K.entry.previewUrl.replace(/\/+$/,""),F=U?`${w}/api/mcp?token=${encodeURIComponent(U)}`:`${w}/api/mcp`;if(!await oJ6(F))return null;return{id:BC0(Z),organization_id:Y,title:`${Q.title} (dev)`,description:"Ephemeral sandbox dev-server connection",icon:Q.icon??null,app_name:Q.title??null,app_id:null,slug:null,connection_type:"HTTP",connection_url:F,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDevConnection:!0,virtualMcpId:Z,branch:K.branch},tools:null,bindings:null,status:"active",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:"system"}}function aJ6($,Z){let G=xn0(iY($[Z]));return G?{branch:Z,entry:G}:null}function sJ6($){let Z=null;for(let[G,X]of Object.entries($)){let Y=xn0(iY(X));if(!Y)continue;if(!Z||(Y.createdAt??0)>(Z.entry.createdAt??0))Z={branch:G,entry:Y}}return Z}async function eJ6($,Z,G,X){let Y=KH0(Z)?.find((Q)=>Q.key===tJ6);if(!Y)return null;if(Y.kind==="literal")return Y.value||null;try{let{value:Q}=await $.storage.secrets.resolveById(Y.secretId,G,X);return Q||null}catch(Q){if(Q instanceof YW||Q instanceof bf)return null;throw Q}}var tJ6="MCP_AUTH_TOKEN",IQ$,RQ$,rJ6=1e4;var cH0=O(()=>{W6();f80();Kv();EQ();IQ$=new Set,RQ$=new Map});import{SpanStatusCode as uH0}from"@opentelemetry/api";async function dH0($,Z){let G=$.get("meshContext");try{let X=$.req.header("x-org-id"),Y=$.req.header("x-org-slug"),Q=X?X:Y?await G.db.selectFrom("organization").select("id").where("slug","=",Y).executeTakeFirst().then((E)=>E?.id):null,J=Z?Z:Q?A00(Q):null;if(!J)return $.json({error:"Agent ID or organization ID is required"},400);let W=await G.tracer.startActiveSpan("studio.virtual_mcp.lookup",{attributes:{"virtual_mcp.id":J}},async(E)=>{try{let D=await G.storage.virtualMcps.findById(J,Q??void 0);return E.setStatus({code:uH0.OK}),D}catch(D){throw E.setStatus({code:uH0.ERROR,message:D.message}),E.recordException(D),D}finally{E.end()}});if(!W)return $.json({error:"Agent not found"},404);if(Q&&W.organization_id!==Q)return $.json({error:"Agent not found"},404);if(W.status!=="active")return $.json({error:`Agent is inactive: ${W.id??"Decopilot"}`},503);if(G.organization?.id&&W.organization_id!==G.organization.id)return $.json({error:"Forbidden: Agent does not belong to your organization"},403);G.connectionId=W.id??void 0;let K=await G.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",W.organization_id).executeTakeFirst();if(K)G.organization={id:K.id,slug:K.slug,name:K.name};let U=l1(G),w=null;if(W.id&&U&&e9(W.metadata)[U])w=await pS(G,W.id,U,$.req.query("branch")??void 0).catch(()=>null);let F=await G.tracer.startActiveSpan("studio.virtual_mcp.create_client",{attributes:{"virtual_mcp.id":W.id??"decopilot"}},async(E)=>{try{let D=await TU(W,G,"passthrough",!1,{includeSkillsCatalog:!0,additionalConnections:w?[w]:[]});return E.setStatus({code:uH0.OK}),D}catch(D){throw E.setStatus({code:uH0.ERROR,message:D.message}),E.recordException(D),D}finally{E.end()}}),H={name:W.id??"Decopilot",version:"1.0.0",title:W.title??void 0,description:W.description??void 0,icons:W.icon?[{src:W.icon}]:void 0},N=sK(F,H,{capabilities:{tools:{},resources:{},prompts:{}},instructions:F.getInstructions(),toolCallTimeoutMs:B_}),B=new TY({enableJsonResponse:$.req.header("Accept")?.includes("application/json")??!1});return await N.connect(B),await yW(N,B,$.req.raw,`virtual-mcp:${W.id??"decopilot"}`,{onClose:()=>F.close()})}catch(X){let Y=X;return console.error("[virtual-mcp] Error handling virtual MCP request:",Y),$.json({error:"Internal server error",message:Y.message},500)}}var lH0=()=>{let $=new x1;return $.all("/gateway/:virtualMcpId?",async(Z)=>{let G=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return dH0(Z,G)}),$.all("/virtual-mcp/:virtualMcpId?",async(Z)=>{let G=Z.req.param("virtualMcpId")||Z.req.header("x-virtual-mcp-id");return dH0(Z,G)}),$};var mH0=O(()=>{W6();Ev();g6();Ax();cH0();EQ();Hn()});import{SpanStatusCode as iH0}from"@opentelemetry/api";var qQ$=($,Z)=>{if($ instanceof kf)return Z.header("Retry-After",String(Math.ceil($.cooldownRemainingMs/1000))),Z.json({error:$.message},503);if($.message.includes("not found"))return Z.json({error:$.message},404);if($.message.includes("does not belong to the active organization"))return Z.json({error:"Connection not found"},404);if($.message.includes("inactive"))return Z.json({error:$.message},503);return Z.json({error:"Internal server error",message:$.message},500)},nH0=()=>{let $=new x1;return $.all("/",async(Z)=>{return dH0(Z,void 0)}),$.get("/:connectionId/ui-resource",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.param("connectionId"),Y=Z.req.query("uri");if(!Y)return Z.json({error:"uri query param is required"},400);if(!G.organization?.id)return Z.json({error:"Organization context is required"},403);let Q=T00(X),J;if(Q){let N=l1(G);if(!N)return Z.json({error:"Authentication required"},401);if(J=await pS(G,Q,N,Z.req.query("branch")??void 0),!J)return Z.json({error:"Dev server not running"},503)}else if(J=await G.storage.connections.findById(X,G.organization.id),!J||J.organization_id!==G.organization.id)return Z.json({error:"Connection not found"},404);let W=OH(J,G,!1,J9()??void 0),K,U;try{let B=(await W.readResource({uri:Y})).contents?.[0];K=B?.text,U=B?._meta?.ui?.csp}catch(N){return Z.json({error:N.message},502)}finally{await W.close().catch(()=>{})}if(typeof K!=="string")return Z.json({error:"Resource has no text content"},404);let w=OQ$(K,{resourceCsp:U}),F=`"${Bun.hash(w).toString(36)}"`,H="private, no-cache";if(Z.req.header("if-none-match")===F)return new Response(null,{status:304,headers:{ETag:F,"Cache-Control":H}});return new Response(w,{headers:{"Content-Type":"text/html; charset=utf-8",ETag:F,"Cache-Control":H}})}),$.all("/:connectionId",async(Z)=>{let G=Z.req.param("connectionId"),X=Z.get("meshContext");if(G.endsWith("_self")){let Q=G.slice(0,-5);if(!X.organization||X.organization.id!==Q)return Z.json({error:"Connection not found"},404);let J=await Dv(X),W=new TY({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await J.connect(W),tS.run(X,()=>yW(J,W,Z.req.raw,`mcp:self:${G}`))}let Y=T00(G);if(Y){if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let Q=l1(X);if(!Q)return Z.json({error:"Authentication required"},401);let J=await pS(X,Y,Q,Z.req.query("branch")??void 0);if(!J)return Z.json({error:"Dev server not running"},503);let W=K40(J,X,!1),K=new TY({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});return await W.connect(K),yW(W,K,Z.req.raw,`mcp:dev:${G}`)}try{try{if(!X.organization?.id)return Z.json({error:"Organization context is required"},403);let Q=await X.tracer.startActiveSpan("studio.connection.lookup",{attributes:{"connection.id":G}},async(B)=>{nY(Z,"mcp.find_connection");try{let E=await X.storage.connections.findById(G,X.organization.id);return B.setStatus({code:iH0.OK}),E}catch(E){throw B.setStatus({code:iH0.ERROR,message:E.message}),B.recordException(E),E}finally{aX(Z,"mcp.find_connection"),B.end()}});if(!Q)throw Error("Connection not found");if(Q.organization_id!==X.organization.id)throw Error("Connection does not belong to the active organization");let J=!1;if(Q.status!=="active"){let B=Date.now()-new Date(Q.updated_at).getTime();if(Q.status==="error"&&!!Q.connection_url&&B>=__0)J=!0;else{if(Q.status==="error"&&Q.connection_url){let D=__0-B;Z.header("Retry-After",String(Math.ceil(D/1000)))}throw Error(`Connection inactive: ${Q.status}`)}}let W=await AQ$(Z.req.raw),{decision:K,listType:U}=PQ$(W),w=K==="probe";if(K==="skip-if-list-cached"&&U){let B=J9();w=B?await B.get(U,G)===null:!0}if(J)w=!0;if(Q.connection_url&&w)P80(G),await X.tracer.startActiveSpan("studio.connection.handshake",{attributes:{"connection.id":G,"connection.url":Q.connection_url}},async(B)=>{nY(Z,"mcp.client_handshake");try{if(await rZ(Q,X,!1),A80(G),_n0().recordSuccess(G),J)await X.storage.connections.update(G,{status:"active"}),console.info("[proxy] auto-recovered connection after successful re-probe",{connectionId:G,org:X.organization?.slug});B.setStatus({code:iH0.OK})}catch(E){throw B.setStatus({code:iH0.ERROR,message:E.message}),B.recordException(E),E}finally{aX(Z,"mcp.client_handshake"),B.end()}});nY(Z,"mcp.create_server");let F=K40(Q,X,!1);aX(Z,"mcp.create_server");let H=new TY({enableJsonResponse:Z.req.raw.headers.get("Accept")?.includes("application/json")??!1});nY(Z,"mcp.server_connect"),await F.connect(H),aX(Z,"mcp.server_connect"),nY(Z,"mcp.handle_request");let N=await yW(F,H,Z.req.raw,`mcp:${G}`);return aX(Z,"mcp.handle_request"),N}catch(Q){if(Q instanceof kf)throw Q;let J=await X.storage.connections.findById(G,X.organization?.id);if(J?.connection_url){let W=await eh0({error:Q,reqUrl:new URL(Z.req.raw.url),connectionId:G,connectionUrl:J.connection_url,headers:{},orgSlug:X.organization?.slug});if(W)return W;T80(G);let{shouldDisable:K}=await _n0().recordFailure(G);if(K&&J.status==="active")await X.storage.connections.update(G,{status:"error"}),console.warn("[proxy] auto-disabled connection after sustained failures",{connectionId:G,org:X.organization?.slug,error:Q.message})}throw Q}}catch(Q){return qQ$(Q,Z)}}),$.all("/:connectionId/call-tool/:toolName",async(Z)=>{let G=Z.req.param("connectionId"),X=Z.req.param("toolName"),Y=Z.get("meshContext");try{let Q=await Y.storage.connections.findById(G,Y.organization?.id);if(!Q)return Z.json({error:"Connection not found"},404);let W=await(await rZ(Q,Y,!1)).callTool({name:X,arguments:await Z.req.json()});if(W.isError)return new Response(JSON.stringify(W.content),{headers:{"Content-Type":"application/json"},status:500});return new Response(JSON.stringify(W.structuredContent??W.content),{headers:{"Content-Type":"application/json"}})}catch(Q){let J=await Y.storage.connections.findById(G,Y.organization?.id);if(J?.connection_url){let W=await eh0({error:Q,reqUrl:new URL(Z.req.raw.url),connectionId:G,connectionUrl:J.connection_url,headers:{},orgSlug:Y.organization?.slug});if(W)return W}return qQ$(Q,Z)}}),$};var pH0=O(()=>{lE();Ev();g6();Ab0();tE();Hn();cm();eX();Jl();EQ$();Iv0();fn0();TQ$();mH0();cH0();W6();Cv0()});async function TN($,Z,G,X){if(Z.type!=="event"||!Z.connection_id)return{success:!0};let Y=await $.storage.connections.findById(Z.connection_id);if(!Y)return{success:!0};let Q=$.organization?.id,J=$.organization?.slug;try{let W=await rZ(Y,$,!0),K=Lc0.forClient(Vv0(W)),U,w,F;if(G&&X&&Q){let L=await X.generateTokenPair();w=L.plaintext,F=L.hash,U=J?`${$.baseUrl}/api/${J}/trigger-callback`:`${$.baseUrl}/api/trigger-callback`}let H=5000,N=!1,B=new Promise((L,z)=>setTimeout(()=>{N=!0,z(Error("TRIGGER_CONFIGURE timeout"))},H)),E;try{E=await Promise.race([K.TRIGGER_CONFIGURE({type:Z.event_type,params:JSON.parse(Z.params??"{}"),enabled:G,callbackUrl:U,callbackToken:w}),B])}catch(L){if(N&&G&&X&&Q&&F)await X.persistTokenHash(Q,Z.connection_id,F);return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE threw on connection=${Z.connection_id} type=${Z.event_type}:`,L),{success:!1,error:String(L)}}let D=E;if(!D||D.success!==!0)return console.error(`[configureTriggerOnMcp] TRIGGER_CONFIGURE did not return success=true on connection=${Z.connection_id} type=${Z.event_type}. Raw payload:`,JSON.stringify(E)),{success:!1,error:`TRIGGER_CONFIGURE did not return success=true (got ${JSON.stringify(E)})`};try{if(G&&X&&Q&&F)await X.persistTokenHash(Q,Z.connection_id,F);if(!G&&X&&Q)await X.deleteByConnection(Z.connection_id,Q)}catch(L){console.error("[configureTriggerOnMcp] Token persistence failed after successful TRIGGER_CONFIGURE:",L)}return{success:!0}}catch(W){return{success:!1,error:String(W)}}}var Bn=O(()=>{lE();pH0();zc0()});import{z as c4}from"zod";var vn0;var MQ$=O(()=>{nS();W1();MU();Bn();vn0=J0({name:"AUTOMATION_UPDATE",description:"Update an automation's config. Toggling active state reconfigures event triggers on MCPs.",annotations:{title:"Update Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:c4.object({id:c4.string(),name:c4.string().min(1).max(255).optional(),active:c4.boolean().optional(),messages:c4.union([c4.string(),c4.array(c4.looseObject({id:c4.string().optional(),role:c4.enum(["user","assistant","system"]),parts:c4.array(c4.record(c4.string(),c4.unknown())),metadata:c4.unknown().optional()}))]).optional(),models:c4.object({tier:M40,modelId:c4.string().optional(),credentialId:c4.string().optional()}).loose().optional(),tools:c4.array(c4.string()).nullable().optional(),maxAgentSteps:c4.number().int().min(1).max(100).nullable().optional(),temperature:c4.number().optional()}),outputSchema:c4.object({id:c4.string(),name:c4.string(),active:c4.boolean(),updated_at:c4.string()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.id,G.id);if(!X)throw Error("Automation not found");let Y={};if($.name!==void 0)Y.name=$.name;if($.active!==void 0)Y.active=$.active;if($.messages!==void 0){let J=_H0($.messages);Y.messages=JSON.stringify(J)}if($.models!==void 0)Y.models=JSON.stringify($.models);if($.tools!==void 0)Y.tools=$.tools===null?null:JSON.stringify($.tools);if($.temperature!==void 0)Y.temperature=$.temperature;if($.maxAgentSteps!==void 0)Y.max_agent_steps=$.maxAgentSteps;let Q=await Z.storage.automations.update($.id,G.id,Y);if($.active!==void 0&&$.active!==X.active){let J=await Z.storage.automations.listTriggers(Q.id),W=J.filter((K)=>K.type==="event");await Promise.allSettled(W.map(async(K)=>{let U=await TN(Z,K,$.active);if(!U.success)console.warn(`Failed to configure trigger ${K.id}: ${U.error}`)})),await UQ$(J,$.active)}return{id:Q.id,name:Q.name,active:Q.active,updated_at:Q.updated_at}}})});import{z as tH0}from"zod";var yn0;var kQ$=O(()=>{nS();f4();W1();Bn();yn0=J0({name:"AUTOMATION_DELETE",description:"Permanently delete an automation. Disables all event triggers on connected MCPs first.",annotations:{title:"Delete Automation",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:tH0.object({id:tH0.string()}),outputSchema:tH0.object({success:tH0.boolean()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);if(await Z.access.check(),!await Z.storage.automations.findById($.id,G.id))throw Error("Automation not found");let Y=await Z.storage.automations.listTriggers($.id),Q=Y.filter((K)=>K.type==="event");await Promise.allSettled(Q.map(async(K)=>{let U=await TN(Z,K,!1);if(!U.success)console.warn(`Failed to disable trigger ${K.id}: ${U.error}`)}));let{success:J}=await Z.storage.automations.delete($.id,G.id);await wQ$(Y);let W=l1(Z);if(W)p1.capture({distinctId:W,event:"automation_deleted",groups:{organization:G.id},properties:{organization_id:G.id,automation_id:$.id,trigger_count:Y.length}});return{success:J}}})});function Lv($){return`webhook_${$}`}function rH0($,Z,G){if(!Z)throw Error("Cannot build webhook URL: organization slug missing from request context");return`${$}/api/${Z}/webhooks/${G}`}import{z as JG}from"zod";var SQ$=300000,$36=10,gn0;var VQ$=O(()=>{jn0();nS();zn0();W1();Bn();gn0=J0({name:"AUTOMATION_TRIGGER_ADD",description:"Add a cron, event, or webhook trigger to an automation. For webhook triggers the response includes a one-time URL + secret token.",annotations:{title:"Add Trigger",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:JG.object({automation_id:JG.string(),type:JG.enum(["cron","event","webhook"]),cron_expression:JG.string().optional(),connection_id:JG.string().optional(),event_type:JG.string().optional(),params:JG.record(JG.string(),JG.string()).optional()}),outputSchema:JG.object({id:JG.string(),automation_id:JG.string(),type:JG.enum(["cron","event","webhook"]),created_at:JG.string(),webhook:JG.object({url:JG.string(),token:JG.string()}).nullable().optional()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findById($.automation_id,G.id);if(!X)throw Error("Automation not found");if($.type==="cron"){if(!$.cron_expression)throw Error("cron_expression is required for cron triggers");let K=new xH0($.cron_expression,{timezone:"UTC"}).nextRuns($36);if(K.length===0)throw Error("Cron expression has no future runs");let U=1/0;for(let w=1;w<K.length;w++){let F=K[w].getTime()-K[w-1].getTime();if(F<U)U=F}if(K.length>=2&&Number.isFinite(U)&&U<SQ$){let w=SQ$/1000;throw Error(`Cron fires too frequently \u2014 minimum interval is ${w}s between runs (observed ${U/1000}s)`)}}if($.type==="event"){if(!$.connection_id)throw Error("connection_id is required for event triggers");if(!$.event_type)throw Error("event_type is required for event triggers");if(!await Z.storage.connections.findById($.connection_id,G.id))throw Error("Connection not found");let K={id:"",automation_id:$.automation_id,type:"event",cron_expression:null,connection_id:$.connection_id,event_type:$.event_type,params:$.params?JSON.stringify($.params):null,last_run_at:null,next_run_at:null,api_key_id:null,created_at:""},U=await TN(Z,K,!0,Z.storage.triggerCallbackTokens);if(!U.success)throw Error(`Failed to configure trigger on connection: ${U.error}`)}let Y=$.type==="cron"&&$.cron_expression?vH0($.cron_expression,new Date):null,Q=await Z.storage.automations.addTrigger({automation_id:$.automation_id,type:$.type,cron_expression:$.type==="cron"?$.cron_expression:null,connection_id:$.type==="event"?$.connection_id:null,event_type:$.type==="event"?$.event_type:null,params:$.params?JSON.stringify($.params):null,next_run_at:Y?.toISOString()??null}),J=null;if($.type==="webhook")try{let W=await Z.boundAuth.apiKey.create({name:`webhook:${X.name}:${Q.id.slice(0,8)}`,permissions:{[Lv(Q.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:X.id,trigger_id:Q.id}});await Z.storage.automations.setTriggerApiKeyId(Q.id,W.id),J={url:rH0(Z.baseUrl,G.slug,Q.id),token:W.key}}catch(W){await Z.storage.automations.removeTrigger(Q.id,Q.automation_id);let K=W instanceof Error?W.message:String(W);throw Error(`Failed to mint webhook token: ${K}`)}return await gH0(Q,X),{id:Q.id,automation_id:Q.automation_id,type:Q.type,created_at:Q.created_at,webhook:J}}})});import{z as oH0}from"zod";var hn0;var CQ$=O(()=>{nS();W1();Bn();hn0=J0({name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove a trigger from an automation. Disables associated event listeners on MCPs.",annotations:{title:"Remove Trigger",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:oH0.object({trigger_id:oH0.string()}),outputSchema:oH0.object({success:oH0.boolean()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(!await Z.storage.automations.findById(X.automation_id,G.id))throw Error("Automation not found");if(X.type==="event"){let J=await TN(Z,X,!1,Z.storage.triggerCallbackTokens);if(!J.success)console.warn(`Failed to disable trigger ${X.id}: ${J.error}`)}let{success:Q}=await Z.storage.automations.removeTrigger(X.id,X.automation_id);if(X.type==="cron")await kn0(X.id);if(X.type==="webhook"&&X.api_key_id)try{await Z.boundAuth.apiKey.delete(X.api_key_id)}catch(J){console.warn(`[trigger-remove] failed to delete api key ${X.api_key_id} for trigger ${X.id}:`,J instanceof Error?J.message:J)}return{success:Q}}})});import{z as zv}from"zod";var cn0;var bQ$=O(()=>{W1();cn0=J0({name:"AUTOMATION_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger. Returns a new token; the old token is revoked.",annotations:{title:"Rotate Webhook Token",readOnlyHint:!1,destructiveHint:!0,idempotentHint:!1,openWorldHint:!1},inputSchema:zv.object({trigger_id:zv.string()}),outputSchema:zv.object({trigger_id:zv.string(),url:zv.string(),token:zv.string()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.automations.findTriggerById($.trigger_id);if(!X)throw Error("Trigger not found");if(X.type!=="webhook")throw Error("Trigger is not a webhook trigger");let Y=await Z.storage.automations.findById(X.automation_id,G.id);if(!Y)throw Error("Automation not found");let Q=X.api_key_id,J=await Z.boundAuth.apiKey.create({name:`webhook:${Y.name}:${X.id.slice(0,8)}`,permissions:{[Lv(X.id)]:["FIRE"]},metadata:{kind:"webhook_trigger",automation_id:Y.id,trigger_id:X.id}});if(await Z.storage.automations.setTriggerApiKeyId(X.id,J.id),Q)try{await Z.boundAuth.apiKey.delete(Q)}catch(W){console.warn(`[trigger-rotate] failed to delete old key ${Q} for trigger ${X.id}:`,W instanceof Error?W.message:W)}return{trigger_id:X.id,url:rH0(Z.baseUrl,G.slug,X.id),token:J.key}}})});import{z as jv}from"zod";var un0;var _Q$=O(()=>{f4();W1();un0=J0({name:"AUTOMATION_RUN",description:"Manually trigger an automation run. Bypasses configured triggers.",annotations:{title:"Run Automation",readOnlyHint:!1,destructiveHint:!1,idempotentHint:!1,openWorldHint:!1},inputSchema:jv.object({id:jv.string()}),outputSchema:jv.object({threadId:jv.string().optional(),error:jv.string().optional(),skipped:jv.string().optional()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);if(await Z.access.check(),!Z.automationRunner)throw Error("Automation runner not available");let X=l1(Z);if(!X)throw Error("User ID not available");let Y=await Z.automationRunner($.id,G.id,X);if(p1.capture({distinctId:X,event:"automation_run",groups:{organization:G.id},properties:{organization_id:G.id,automation_id:$.id,thread_id:"taskId"in Y?Y.taskId:void 0,status:"skipped"in Y?"skipped":("error"in Y)?"error":"started",skip_reason:"skipped"in Y?Y.skipped:void 0,error_message:"error"in Y?Y.error:void 0}}),"skipped"in Y)return{skipped:Y.skipped};if("error"in Y)return{threadId:Y.taskId,error:Y.error};return{threadId:Y.taskId}}})});import{z as MZ}from"zod";var Z36=500,dn0;var fQ$=O(()=>{H5();W1();dn0=J0({name:"AUTOMATION_RUN_STATS",description:"Aggregate run counts (by status) and LLM token/cost totals for a single automation.",annotations:{title:"Automation Run Stats",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:MZ.object({automation_id:MZ.string(),startDate:MZ.string().datetime().optional().describe("Filter runs at or after this ISO timestamp"),endDate:MZ.string().datetime().optional().describe("Filter runs at or before this ISO timestamp")}),outputSchema:MZ.object({runs:MZ.object({total:MZ.number(),completed:MZ.number(),failed:MZ.number(),inProgress:MZ.number()}),usage:MZ.object({calls:MZ.number(),inputTokens:MZ.number(),outputTokens:MZ.number(),totalTokens:MZ.number(),costUsd:MZ.number(),sampledRuns:MZ.number(),truncated:MZ.boolean()})}),handler:async($,Z)=>{f0(Z);let G=E0(Z);if(await Z.access.check(),await SY(),!await Z.storage.automations.findById($.automation_id,G.id))throw Error("Automation not found");let Y=await Z.storage.automations.getRunStats($.automation_id,G.id,{startDate:$.startDate,endDate:$.endDate}),Q=await Z.storage.automations.listRunThreadIds($.automation_id,G.id,{startDate:$.startDate,endDate:$.endDate,limit:Z36}),J={calls:0,inputTokens:0,outputTokens:0,totalTokens:0,costUsd:0,sampledRuns:Q.length,truncated:Y.total>Q.length};if(Q.length>0){let W=await Z.storage.monitoring.queryThreadUsage({organizationId:G.id,connectionId:"decopilot",threadIds:Q,startDate:$.startDate?new Date($.startDate):void 0,endDate:$.endDate?new Date($.endDate):void 0});for(let K of W)J.calls+=K.calls,J.inputTokens+=K.inputTokens,J.outputTokens+=K.outputTokens,J.totalTokens+=K.totalTokens,J.costUsd+=K.costUsd}return{runs:Y,usage:J}}})});var xQ$=O(()=>{aY$();sY$();eY$();MQ$();kQ$();VQ$();CQ$();bQ$();_Q$();fQ$()});import{z as IN}from"zod";var X36,Y36,ln0;var vQ$=O(()=>{W1();X36=IN.object({id:IN.string().min(1)}),Y36=IN.object({user:IN.object({id:IN.string(),name:IN.string(),email:IN.string(),image:IN.string().nullable()}).nullable()}),ln0=J0({name:"USER_GET",description:"Get a user's profile by ID. Only returns users who share an organization with the caller.",annotations:{title:"Get User",readOnlyHint:!0,destructiveHint:!1,idempotentHint:!0,openWorldHint:!1},inputSchema:X36,outputSchema:Y36,handler:async($,Z)=>{await Z.access.check(),f0(Z);let G=l1(Z);if(!G)throw Error("Authentication required");let X=await Z.storage.users.findById($.id,G);if(!X)return{user:null};return{user:{id:X.id,name:X.name,email:X.email,image:X.image??null}}}})});var yQ$=O(()=>{vQ$()});import IY from"zod";var mn0;var gQ$=O(()=>{W1();AU();mn0=J0({name:"AI_PROVIDERS_LIST",description:"List all supported AI providers and their connection methods (API key, OAuth).",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:IY.object({}),outputSchema:IY.object({providers:IY.array(IY.object({id:IY.string(),name:IY.string(),description:IY.string(),logo:IY.string().optional(),supportedMethods:IY.array(IY.enum(["api-key","oauth-pkce"])),supportsTopUp:IY.boolean().optional(),supportsCredits:IY.boolean().optional(),supportsProvision:IY.boolean().optional()}))}),handler:async($,Z)=>{return f0(Z),E0(Z),await Z.access.check(),{providers:Object.values($G()).filter((X)=>!!X).map((X)=>({...X.info,supportedMethods:X.supportedMethods,supportsTopUp:!!X.getTopUpUrl,supportsCredits:!!X.getCreditsBalance,supportsProvision:!!X.provisionKey}))}}})});function J36($){if(!$)return;if(!("models"in $))return;return $.models??void 0}function hQ$($,Z){if(!$)return!0;if($.includes("*:*"))return!0;return $.some((G)=>G.startsWith(`${Z}:`))}function rU($,Z,G){if(!$)return!0;return $.includes("*:*")||$.includes(`${Z}:*`)||$.includes(`${Z}:${G}`)}function aH0($,Z){if($===void 0)return Z;let G=Z;if(G.image&&!rU($,G.image.credentialId,G.image.id)){let{image:X,...Y}=G;G=Y}if(G.webSearch&&!rU($,G.webSearch.credentialId,G.webSearch.id)){let{webSearch:X,...Y}=G;G=Y}if(G.deepResearch&&!rU($,G.deepResearch.credentialId,G.deepResearch.id)){let{deepResearch:X,...Y}=G;G=Y}return G}function cQ$($){if(!$)return{allowAll:!0,models:{}};if($.includes("*:*"))return{allowAll:!0,models:{}};let Z={};for(let G of $){let X=G.indexOf(":");if(X===-1)continue;let Y=G.slice(0,X),Q=G.slice(X+1);if(!Z[Y])Z[Y]=[];Z[Y].push(Q)}return{allowAll:!1,models:Z}}async function oU($,Z,G){if(!G||sY.includes(G))return;let X=await $.selectFrom("organizationRole").select(["permission"]).where("organizationId","=",Z).where("role","=",G).executeTakeFirst();if(!X?.permission)return;try{let Y=JSON.parse(X.permission);return J36(Y)}catch{return console.error(`[model-permissions] Failed to parse permissions for role: ${G}`),[]}}var On=O(()=>{XW()});var in0;var uQ$=O(()=>{in0=[{providerId:"claude-code",modelId:"claude-code:haiku",title:"Claude Code Haiku",description:"Fast and lightweight",capabilities:["text"],limits:null,costs:null},{providerId:"claude-code",modelId:"claude-code:sonnet",title:"Claude Code Sonnet 5",description:"Balanced performance",capabilities:["text","reasoning"],limits:null,costs:null},{providerId:"claude-code",modelId:"claude-code:opus",title:"Claude Code Opus",description:"Most capable",capabilities:["text","reasoning"],limits:null,costs:null},{providerId:"claude-code",modelId:"claude-code:opus-1m",title:"Claude Code Opus 4.8 1M",description:"Most capable, 1M context window",capabilities:["text","reasoning"],limits:{contextWindow:1e6,maxOutputTokens:null},costs:null}]});var dQ$=O(()=>{uQ$()});var nn0;var lQ$=O(()=>{nn0=[{providerId:"codex",modelId:"codex:gpt-5.5",title:"GPT-5.5",description:"Frontier model for complex coding, research, and real-world work",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null},{providerId:"codex",modelId:"codex:gpt-5.4",title:"GPT-5.4",description:"Strong model for everyday coding",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null},{providerId:"codex",modelId:"codex:gpt-5.4-mini",title:"GPT-5.4 Mini",description:"Small, fast, and cost-efficient model for simpler coding tasks",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null},{providerId:"codex",modelId:"codex:gpt-5.3-codex-spark",title:"GPT-5.3 Codex Spark",description:"Ultra-fast coding model",capabilities:["text","reasoning"],logo:"https://assets.decocache.com/decocms/6ac44f1c-c0cf-4480-84b5-2ae6fe742d0b/codex-app.png.png",limits:null,costs:null}]});var mQ$=O(()=>{lQ$()});import ZZ from"zod";var pn0;var iQ$=O(()=>{W1();On();dQ$();mQ$();pn0=J0({name:"AI_PROVIDERS_LIST_MODELS",description:"List models available from an AI provider. Requires a valid stored API key.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:ZZ.object({keyId:ZZ.string().describe("The provider key ID to use")}),outputSchema:ZZ.object({models:ZZ.array(ZZ.object({providerId:ZZ.string(),modelId:ZZ.string(),title:ZZ.string(),description:ZZ.string().nullish(),logo:ZZ.string().nullish(),capabilities:ZZ.array(ZZ.string()),limits:ZZ.object({contextWindow:ZZ.coerce.number(),maxOutputTokens:ZZ.coerce.number().nullable()}).nullish(),costs:ZZ.object({input:ZZ.coerce.number(),output:ZZ.coerce.number()}).nullish(),asyncResearch:ZZ.boolean().optional()}))}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.findById($.keyId,G.id).catch(()=>null);if(X?.providerId==="claude-code")return{models:in0};if(X?.providerId==="codex")return{models:nn0};let[Y,Q]=await Promise.all([Z.aiProviders.listModels($.keyId,G.id),oU(Z.db,G.id,Z.auth.user?.role)]);return{models:Y.filter((W)=>rU(Q,$.keyId,W.modelId))}}})});import aU from"zod";var tn0;var nQ$=O(()=>{W1();AU();tn0=J0({name:"AI_PROVIDERS_ACTIVE",description:"List AI providers that have at least one API key configured and ready to use.",inputSchema:aU.object({}),outputSchema:aU.object({providers:aU.array(aU.object({id:aU.string(),name:aU.string(),description:aU.string(),logo:aU.string().optional(),keyCount:aU.number()}))}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.list({organizationId:G.id}),Y=new Map;for(let J of X)Y.set(J.providerId,(Y.get(J.providerId)??0)+1);return{providers:[...Y.entries()].flatMap(([J,W])=>{let U=$G()[J];if(!U)return console.warn(`AI provider "${J}" has stored keys but is not in the registry; skipping.`),[];return[{...U.info,keyCount:W}]})}}})});var RN=O(()=>{W6()});import G3 from"zod";var rS,rn0;var En=O(()=>{f4();W1();RN();rS=G3.object({id:G3.string(),providerId:G3.string(),label:G3.string(),presetId:G3.string().nullable(),createdAt:G3.string()}),rn0=J0({name:"AI_PROVIDER_KEY_CREATE",description:"Store an API key for an AI provider. The key is encrypted at rest in the vault.",inputSchema:G3.object({providerId:G3.enum(nZ),label:G3.string().min(1).max(100),apiKey:G3.string().min(1),presetId:G3.string().min(1).max(64).optional()}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.create({providerId:$.providerId,label:$.label,apiKey:$.apiKey,organizationId:G.id,createdBy:Z.auth.user.id,presetId:$.presetId??null});return p1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_created",groups:{organization:G.id},properties:{organization_id:G.id,provider_id:X.providerId,preset_id:X.presetId,key_id:X.id,label:X.label}}),{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import sH0 from"zod";var Pv=($,Z)=>$&&$.keyId===Z?null:$,W36=($,Z)=>{let G={tiers:{fast:Pv($.tiers.fast,Z),smart:Pv($.tiers.smart,Z),thinking:Pv($.tiers.thinking,Z),image:Pv($.tiers.image,Z),web_search:Pv($.tiers.web_search,Z),deep_research:Pv($.tiers.deep_research,Z)}},X=G.tiers.fast!==$.tiers.fast||G.tiers.smart!==$.tiers.smart||G.tiers.thinking!==$.tiers.thinking||G.tiers.image!==$.tiers.image||G.tiers.web_search!==$.tiers.web_search||G.tiers.deep_research!==$.tiers.deep_research;return{config:G,changed:X}},on0;var pQ$=O(()=>{f4();W1();on0=J0({name:"AI_PROVIDER_KEY_DELETE",description:"Delete a stored AI provider API key. Cannot be undone.",inputSchema:sH0.object({keyId:sH0.string().describe("The provider key ID to delete")}),outputSchema:sH0.object({success:sH0.boolean()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.organizationSettings.get(G.id);if(X?.simple_mode){let{config:Y,changed:Q}=W36(X.simple_mode,$.keyId);if(Q)await Z.storage.organizationSettings.upsert(G.id,{simple_mode:Y})}return await Z.storage.aiProviderKeys.delete($.keyId,G.id),p1.capture({distinctId:Z.auth.user.id,event:"ai_provider_key_deleted",groups:{organization:G.id},properties:{organization_id:G.id,key_id:$.keyId}}),{success:!0}}})});import eH0 from"zod";var an0;var tQ$=O(()=>{W1();En();an0=J0({name:"AI_PROVIDER_KEY_UPDATE",description:"Update the label and/or API key of a stored AI provider key. Pass apiKey to rotate the stored credential.",inputSchema:eH0.object({keyId:eH0.string(),label:eH0.string().min(1).max(100).optional(),apiKey:eH0.string().min(1).optional()}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=await Z.storage.aiProviderKeys.updateKey($.keyId,G.id,{label:$.label,apiKey:$.apiKey});return{id:X.id,providerId:X.providerId,label:X.label,presetId:X.presetId,createdAt:X.createdAt}}})});import Av from"zod";var sn0;var rQ$=O(()=>{W1();sn0=J0({name:"AI_PROVIDER_KEY_PREVIEW",description:"Get the label and a masked preview of a stored AI provider API key. The API key is partially obscured (only the last 4 characters are visible). For openai-compatible keys the baseUrl is also returned.",inputSchema:Av.object({keyId:Av.string()}),outputSchema:Av.object({label:Av.string(),maskedKey:Av.string(),baseUrl:Av.string().optional()}),handler:async($,Z)=>{f0(Z);let G=E0(Z);return await Z.access.check(),Z.storage.aiProviderKeys.getPreview($.keyId,G.id)}})});import X3 from"zod";var en0;var oQ$=O(()=>{W1();RN();On();en0=J0({name:"AI_PROVIDER_KEY_LIST",description:"List stored AI provider API keys. Returns metadata only \u2014 secrets are never exposed.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:X3.object({providerId:X3.enum(nZ).optional()}),outputSchema:X3.object({keys:X3.array(X3.object({id:X3.string(),providerId:X3.string(),label:X3.string(),presetId:X3.string().nullable(),createdBy:X3.string(),createdAt:X3.string()}))}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let[X,Y]=await Promise.all([Z.storage.aiProviderKeys.list({organizationId:G.id,providerId:$.providerId}),oU(Z.db,G.id,Z.auth.user?.role)]);return{keys:X.filter((W)=>hQ$(Y,W.id)).map(({organizationId:W,...K})=>K)}}})});import{createHash as K36,randomBytes as U36}from"crypto";function aQ$(){return U36(32).toString("base64url")}function sQ$($){return K36("sha256").update($).digest("base64url")}var eQ$=()=>{};import Tv from"zod";function $J$($){return $==="localhost"||$.endsWith(".localhost")||$==="127.0.0.1"||$==="[::1]"||$==="::1"}function w36($){let Z=z1(),G=Z.baseUrl??`http://localhost:${Z.port}`,X=new URL($),Y=new URL(G);if(X.origin===Y.origin)return!0;return X.protocol===Y.protocol&&$J$(X.hostname)&&$J$(Y.hostname)}var $p0;var ZJ$=O(()=>{W1();RN();AU();eQ$();y8();$p0=J0({name:"AI_PROVIDER_OAUTH_URL",description:"Get the OAuth PKCE authorization URL for a provider. Returns URL and state token.",inputSchema:Tv.object({providerId:Tv.enum(nZ),callbackUrl:Tv.string().url().refine(($)=>{return w36($)},{message:"callbackUrl must be on the same origin as BASE_URL"})}),outputSchema:Tv.object({url:Tv.string(),stateToken:Tv.string().describe("Opaque token \u2014 pass to AI_PROVIDER_OAUTH_EXCHANGE")}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=$G()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.getOAuthUrl)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=aQ$(),Q=sQ$(Y),J=await Z.storage.oauthPkceStates.create(Y,G.id,Z.auth.user.id),W=new URL($.callbackUrl);W.searchParams.set("state",J);let K={callbackUrl:W.toString(),codeChallenge:Q,codeChallengeMethod:"S256",organizationId:G.id};return{url:X.getOAuthUrl(K),stateToken:J}}})});import Dn from"zod";var Zp0;var GJ$=O(()=>{W1();RN();AU();En();Zp0=J0({name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange an OAuth authorization code for an API key. Completes the OAuth flow started by AI_PROVIDER_OAUTH_URL.",inputSchema:Dn.object({providerId:Dn.enum(nZ),code:Dn.string(),stateToken:Dn.string().describe("The stateToken returned by AI_PROVIDER_OAUTH_URL"),label:Dn.string().min(1).max(100)}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=$G()[$.providerId];if(!X)throw Error(`Unknown provider: ${$.providerId}`);if(!X.supportedMethods.includes("oauth-pkce")||!X.exchangeOAuthCode)throw Error(`Provider ${$.providerId} does not support OAuth PKCE`);let Y=l1(Z);if(!Y)throw Error("Unable to determine user ID");let Q=await Z.storage.oauthPkceStates.consume($.stateToken,G.id,Y),{apiKey:J}=await X.exchangeOAuthCode({code:$.code,codeVerifier:Q,codeChallengeMethod:"S256"}),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:$.label,apiKey:J,organizationId:G.id,createdBy:Y});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});import XJ$ from"zod";var Gp0;var YJ$=O(()=>{W1();RN();AU();gO();En();Gp0=J0({name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision an API key for a provider that supports server-to-server key creation (e.g. Deco AI Gateway).",inputSchema:XJ$.object({providerId:XJ$.enum(nZ)}),outputSchema:rS,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("Unable to determine user ID");let Y=$G()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.provisionKey)throw Error(`Provider ${$.providerId} does not support key provisioning`);let Q=await yF(X),J=await Y.provisionKey(Q,G.id),W=await Z.storage.aiProviderKeys.upsert({providerId:$.providerId,label:"Auto-provisioned",apiKey:J,organizationId:G.id,createdBy:X});return{id:W.id,providerId:W.providerId,label:W.label,presetId:W.presetId,createdAt:W.createdAt}}})});import Iv from"zod";var Xp0;var QJ$=O(()=>{W1();RN();AU();gO();Xp0=J0({name:"AI_PROVIDER_TOPUP_URL",description:"Get a checkout URL to top up credits for a provider that supports it (e.g. Deco AI Gateway)",inputSchema:Iv.object({providerId:Iv.enum(nZ),amountCents:Iv.number().int().positive().describe("Amount in cents (e.g. 1000 = $10.00)"),currency:Iv.enum(["usd","brl"]).default("usd")}),outputSchema:Iv.object({url:Iv.string().describe("Checkout URL \u2014 open in browser to complete payment")}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("Unable to determine user ID");let Y=$G()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getTopUpUrl)throw Error(`Provider ${$.providerId} does not support credit top-ups`);let Q=await yF(X,Z.auth.user?.email);return{url:await Y.getTopUpUrl(Q,G.id,$.amountCents,$.currency)}}})});import $N0 from"zod";var Yp0;var JJ$=O(()=>{W1();RN();AU();gO();Yp0=J0({name:"AI_PROVIDER_CREDITS",description:"Get the current credit balance for a provider (providers that support it, e.g. Deco AI Gateway)",inputSchema:$N0.object({providerId:$N0.enum(nZ)}),outputSchema:$N0.object({balanceCents:$N0.number().describe("Remaining balance in cents (e.g. 1000 = $10.00)")}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=l1(Z);if(!X)throw Error("Unable to determine user ID");let Y=$G()[$.providerId];if(!Y)throw Error(`Unknown provider: ${$.providerId}`);if(!Y.getCreditsBalance)throw Error(`Provider ${$.providerId} does not expose a credits balance`);let Q=await yF(X);return Y.getCreditsBalance(Q,G.id)}})});var WJ$=O(()=>{gQ$();iQ$();nQ$();En();pQ$();tQ$();rQ$();oQ$();ZJ$();GJ$();YJ$();QJ$();JJ$()});import gW from"zod";var ZN0;var Qp0=O(()=>{ZN0=gW.object({id:gW.string(),scope:gW.enum(["user","organization"]),userId:gW.string().nullable(),name:gW.string(),description:gW.string().nullable(),createdBy:gW.string(),createdAt:gW.string(),updatedBy:gW.string(),updatedAt:gW.string()})});import Ln from"zod";var Jp0;var KJ$=O(()=>{W1();Qp0();Jp0=J0({name:"SECRET_CREATE",description:"Create a secret. The value is encrypted at rest in the credential vault and never returned by any tool. Scope 'user' is private to the caller within this organization; scope 'organization' is visible to all org members.",inputSchema:Ln.object({scope:Ln.enum(["user","organization"]),name:Ln.string().min(1).max(128).regex(/^[A-Za-z0-9_.-]+$/,{message:"Name may only contain letters, digits, underscore, dot, and hyphen."}),value:Ln.string().min(1),description:Ln.string().max(500).optional()}),outputSchema:ZN0,handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:{kind:"organization"};return await Z.storage.secrets.create({organizationId:G.id,scope:Y,name:$.name,value:$.value,description:$.description??null,createdBy:X})}})});import GN0 from"zod";var Wp0;var UJ$=O(()=>{W1();Qp0();Wp0=J0({name:"SECRET_LIST",description:"List secrets visible to the caller: all organization-scoped secrets, plus user-scoped secrets owned by the caller. Values are never returned.",annotations:{readOnlyHint:!0,idempotentHint:!0},inputSchema:GN0.object({scope:GN0.enum(["user","organization"]).optional()}),outputSchema:GN0.object({secrets:GN0.array(ZN0)}),handler:async($,Z)=>{f0(Z);let G=E0(Z);await Z.access.check();let X=Z.auth.user.id,Y=$.scope==="user"?{kind:"user",userId:X}:$.scope==="organization"?{kind:"organization"}:void 0;return{secrets:await Z.storage.secrets.list({organizationId:G.id,callerUserId:X,scope:Y})}}})});var wJ$=O(()=>{KJ$();UJ$()});var oS=b((L36)=>{var Kp0;(function($){$.HEADER="header",$.QUERY="query"})(Kp0||(Kp0={}));var Up0;(function($){$.HEADER="header",$.QUERY="query"})(Up0||(Up0={}));var wp0;(function($){$.HTTP="http",$.HTTPS="https"})(wp0||(wp0={}));var zn;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(zn||(zn={}));var N36=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>zn.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>zn.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(G){Z.push(G)},checksumAlgorithms(){return Z}}},B36=($)=>{let Z={};return $.checksumAlgorithms().forEach((G)=>{Z[G.algorithmId()]=G.checksumConstructor()}),Z},O36=($)=>{return N36($)},E36=($)=>{return B36($)},Fp0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(Fp0||(Fp0={}));var D36="__smithy_context",Hp0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(Hp0||(Hp0={}));var Np0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(Np0||(Np0={}));L36.AlgorithmId=zn;L36.EndpointURLScheme=wp0;L36.FieldPosition=Fp0;L36.HttpApiKeyAuthLocation=Up0;L36.HttpAuthLocation=Kp0;L36.IniSectionType=Hp0;L36.RequestHandlerProtocol=Np0;L36.SMITHY_CONTEXT_KEY=D36;L36.getDefaultClientConfiguration=O36;L36.resolveDefaultRuntimeConfig=E36});var hW=b((x36)=>{var{SMITHY_CONTEXT_KEY:FJ$}=oS(),S36=($)=>$[FJ$]||($[FJ$]={});class XN0{method;protocol;hostname;port;path;query;headers;username;password;fragment;body;constructor($){this.method=$.method||"GET",this.hostname=$.hostname||"localhost",this.port=$.port,this.query=$.query||{},this.headers=$.headers||{},this.body=$.body,this.protocol=$.protocol?$.protocol.slice(-1)!==":"?`${$.protocol}:`:$.protocol:"https:",this.path=$.path?$.path.charAt(0)!=="/"?`/${$.path}`:$.path:"/",this.username=$.username,this.password=$.password,this.fragment=$.fragment}static clone($){let Z=new XN0({...$,headers:{...$.headers}});if(Z.query)Z.query=V36(Z.query);return Z}static isInstance($){if(!$)return!1;let Z=$;return"method"in Z&&"protocol"in Z&&"hostname"in Z&&"path"in Z&&typeof Z.query==="object"&&typeof Z.headers==="object"}clone(){return XN0.clone(this)}}function V36($){return Object.keys($).reduce((Z,G)=>{let X=$[G];return{...Z,[G]:Array.isArray(X)?[...X]:X}},{})}class HJ${statusCode;reason;headers;body;constructor($){this.statusCode=$.statusCode,this.reason=$.reason,this.headers=$.headers||{},this.body=$.body}static isInstance($){if(!$)return!1;let Z=$;return typeof Z.statusCode==="number"&&typeof Z.headers==="object"}}var C36=new RegExp("^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$"),NJ$=($,Z=!1)=>{if(!Z)return C36.test($);let G=$.split(".");for(let X of G)if(!NJ$(X))return!1;return!0};function b36($){return/^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/.test($)}var _36=($)=>{if(typeof $==="function")return $;let Z=Promise.resolve($);return()=>Z};function BJ$($){let Z={};if($=$.replace(/^\?/,""),$)for(let G of $.split("&")){let[X,Y=null]=G.split("=");if(X=decodeURIComponent(X),Y)Y=decodeURIComponent(Y);if(!(X in Z))Z[X]=Y;else if(Array.isArray(Z[X]))Z[X].push(Y);else Z[X]=[Z[X],Y]}return Z}var YN0=($)=>{if(typeof $==="string")return YN0(new URL($));let{hostname:Z,pathname:G,port:X,protocol:Y,search:Q}=$,J;if(Q)J=BJ$(Q);return{hostname:Z,port:X?parseInt(X):void 0,protocol:Y,path:G,query:J}},f36=($)=>{if(typeof $==="object"){if("url"in $){let Z=YN0($.url);if($.headers){Z.headers={};for(let G in $.headers)Z.headers[G.toLowerCase()]=$.headers[G].join(", ")}return Z}return $}return YN0($)};x36.HttpRequest=XN0;x36.HttpResponse=HJ$;x36.getSmithyContext=S36;x36.isValidHostLabel=NJ$;x36.isValidHostname=b36;x36.normalizeProvider=_36;x36.parseQueryString=BJ$;x36.parseUrl=YN0;x36.toEndpointV1=f36});var Y3=b((YW6)=>{var{getSmithyContext:OJ$,HttpResponse:i36,toEndpointV1:n36}=hW(),QN0=($)=>{if(typeof $==="function")return $();return $},Ep0=($,Z,G,X,Y)=>({name:Z,namespace:$,traits:G,input:X,output:Y}),p36=($)=>(Z,G)=>async(X)=>{let{response:Y}=await Z(X),{operationSchema:Q}=OJ$(G),[,J,W,K,U,w]=Q??[];try{let F=await $.protocol.deserializeResponse(Ep0(J,W,K,U,w),{...$,...G},Y);return{response:Y,output:F}}catch(F){if(Object.defineProperty(F,"$response",{value:Y,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in F)){try{F.message+=`
1430
1430
  Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`}catch(N){if(!G.logger||G.logger?.constructor?.name==="NoOpLogger")console.warn("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.");else G.logger?.warn?.("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.")}if(typeof F.$responseBodyText<"u"){if(F.$response)F.$response.body=F.$responseBodyText}try{if(i36.isInstance(Y)){let{headers:N={},statusCode:B}=Y,E=Object.entries(N);F.$metadata={httpStatusCode:B,requestId:Bp0(/^x-[\w-]+-request-?id$/,E),extendedRequestId:Bp0(/^x-[\w-]+-id-2$/,E),cfId:Bp0(/^x-[\w-]+-cf-id$/,E)}}}catch(N){}}throw F}},Bp0=($,Z)=>{return(Z.find(([G])=>{return G.match($)})||[void 0,void 0])[1]},t36=($)=>(Z,G)=>async(X)=>{let{operationSchema:Y}=OJ$(G),[,Q,J,W,K,U]=Y??[],w=G.endpointV2?async()=>n36(G.endpointV2):$.endpoint,F=await $.protocol.serializeRequest(Ep0(Q,J,W,K,U),X.input,{...$,...G,endpoint:w});return Z({...X,request:F})},EJ$={name:"deserializerMiddleware",step:"deserialize",tags:["DESERIALIZER"],override:!0},DJ$={name:"serializerMiddleware",step:"serialize",tags:["SERIALIZER"],override:!0};function r36($){return{applyToStack:(Z)=>{Z.add(t36($),DJ$),Z.add(p36($),EJ$),$.protocol.setSerdeContext($)}}}class RX{name;namespace;traits;static assign($,Z){return Object.assign($,Z)}static[Symbol.hasInstance]($){let Z=this.prototype.isPrototypeOf($);if(!Z&&typeof $==="object"&&$!==null)return $.symbol===this.symbol;return Z}getName(){return this.namespace+"#"+this.name}}class UN0 extends RX{static symbol=Symbol.for("@smithy/lis");name;traits;valueSchema;symbol=UN0.symbol}var o36=($,Z,G,X)=>RX.assign(new UN0,{name:Z,namespace:$,traits:G,valueSchema:X});class wN0 extends RX{static symbol=Symbol.for("@smithy/map");name;traits;keySchema;valueSchema;symbol=wN0.symbol}var a36=($,Z,G,X,Y)=>RX.assign(new wN0,{name:Z,namespace:$,traits:G,keySchema:X,valueSchema:Y});class FN0 extends RX{static symbol=Symbol.for("@smithy/ope");name;traits;input;output;symbol=FN0.symbol}var s36=($,Z,G,X,Y)=>RX.assign(new FN0,{name:Z,namespace:$,traits:G,input:X,output:Y});class Tn extends RX{static symbol=Symbol.for("@smithy/str");name;traits;memberNames;memberList;symbol=Tn.symbol}var e36=($,Z,G,X,Y)=>RX.assign(new Tn,{name:Z,namespace:$,traits:G,memberNames:X,memberList:Y});class HN0 extends Tn{static symbol=Symbol.for("@smithy/err");ctor;symbol=HN0.symbol}var $W6=($,Z,G,X,Y,Q)=>RX.assign(new HN0,{name:Z,namespace:$,traits:G,memberNames:X,memberList:Y,ctor:null}),JN0=[];function An($){if(typeof $==="object")return $;if($=$|0,JN0[$])return JN0[$];let Z={},G=0;for(let X of["httpLabel","idempotent","idempotencyToken","sensitive","httpPayload","httpResponseCode","httpQueryParams"])if(($>>G++&1)===1)Z[X]=1;return JN0[$]=Z}var jn={it:Symbol.for("@smithy/nor-struct-it"),ns:Symbol.for("@smithy/ns")},WN0=[],KN0={};class eU{ref;memberName;static symbol=Symbol.for("@smithy/nor");symbol=eU.symbol;name;schema;_isMemberSchema;traits;memberTraits;normalizedTraits;constructor($,Z){this.ref=$,this.memberName=Z;let G=[],X=$,Y=$;this._isMemberSchema=!1;while(Op0(X))G.push(X[1]),X=X[0],Y=QN0(X),this._isMemberSchema=!0;if(G.length>0){this.memberTraits={};for(let Q=G.length-1;Q>=0;--Q){let J=G[Q];Object.assign(this.memberTraits,An(J))}}else this.memberTraits=0;if(Y instanceof eU){let Q=this.memberTraits;Object.assign(this,Y),this.memberTraits=Object.assign({},Q,Y.getMemberTraits(),this.getMemberTraits()),this.normalizedTraits=void 0,this.memberName=Z??Y.memberName;return}if(this.schema=QN0(Y),LJ$(this.schema))this.name=`${this.schema[1]}#${this.schema[2]}`,this.traits=this.schema[3];else this.name=this.memberName??String(Y),this.traits=0;if(this._isMemberSchema&&!Z)throw Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(!0)} missing member name.`)}static[Symbol.hasInstance]($){let Z=this.prototype.isPrototypeOf($);if(!Z&&typeof $==="object"&&$!==null)return $.symbol===this.symbol;return Z}static of($){let Z=typeof $==="function"||typeof $==="object"&&$!==null;if(typeof $==="number"){if(WN0[$])return WN0[$]}else if(typeof $==="string"){if(KN0[$])return KN0[$]}else if(Z){if($[jn.ns])return $[jn.ns]}let G=QN0($);if(G instanceof eU)return G;if(Op0(G)){let[Y,Q]=G;if(Y instanceof eU)return Object.assign(Y.getMergedTraits(),An(Q)),Y;throw Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify($,null,2)}.`)}let X=new eU(G);if(Z)return $[jn.ns]=X;if(typeof G==="string")return KN0[G]=X;if(typeof G==="number")return WN0[G]=X;return X}getSchema(){let $=this.schema;if(Array.isArray($)&&$[0]===0)return $[4];return $}getName($=!1){let{name:Z}=this;return!$&&Z&&Z.includes("#")?Z.split("#")[1]:Z||void 0}getMemberName(){return this.memberName}isMemberSchema(){return this._isMemberSchema}isListSchema(){let $=this.getSchema();return typeof $==="number"?$>=64&&$<128:$[0]===1}isMapSchema(){let $=this.getSchema();return typeof $==="number"?$>=128&&$<=255:$[0]===2}isStructSchema(){let $=this.getSchema();if(typeof $!=="object")return!1;let Z=$[0];return Z===3||Z===-3||Z===4}isUnionSchema(){let $=this.getSchema();if(typeof $!=="object")return!1;return $[0]===4}isBlobSchema(){let $=this.getSchema();return $===21||$===42}isTimestampSchema(){let $=this.getSchema();return typeof $==="number"&&$>=4&&$<=7}isUnitSchema(){return this.getSchema()==="unit"}isDocumentSchema(){return this.getSchema()===15}isStringSchema(){return this.getSchema()===0}isBooleanSchema(){return this.getSchema()===2}isNumericSchema(){return this.getSchema()===1}isBigIntegerSchema(){return this.getSchema()===17}isBigDecimalSchema(){return this.getSchema()===19}isStreaming(){let{streaming:$}=this.getMergedTraits();return!!$||this.getSchema()===42}isIdempotencyToken(){return!!this.getMergedTraits().idempotencyToken}getMergedTraits(){return this.normalizedTraits??(this.normalizedTraits={...this.getOwnTraits(),...this.getMemberTraits()})}getMemberTraits(){return An(this.memberTraits)}getOwnTraits(){return An(this.traits)}getKeySchema(){let[$,Z]=[this.isDocumentSchema(),this.isMapSchema()];if(!$&&!Z)throw Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(!0)}`);let G=this.getSchema(),X=$?15:G[4]??0;return Pn([X,0],"key")}getValueSchema(){let $=this.getSchema(),[Z,G,X]=[this.isDocumentSchema(),this.isMapSchema(),this.isListSchema()],Y=typeof $==="number"?63&$:$&&typeof $==="object"&&(G||X)?$[3+$[0]]:Z?15:void 0;if(Y!=null)return Pn([Y,0],G?"value":"member");throw Error(`@smithy/core/schema - ${this.getName(!0)} has no value member.`)}getMemberSchema($){let Z=this.getSchema();if(this.isStructSchema()&&Z[4].includes($)){let G=Z[4].indexOf($),X=Z[5][G];return Pn(Op0(X)?X:[X,0],$)}if(this.isDocumentSchema())return Pn([15,0],$);throw Error(`@smithy/core/schema - ${this.getName(!0)} has no member=${$}.`)}getMemberSchemas(){let $={};try{for(let[Z,G]of this.structIterator())$[Z]=G}catch(Z){}return $}getEventStreamMember(){if(this.isStructSchema()){for(let[$,Z]of this.structIterator())if(Z.isStreaming()&&Z.isStructSchema())return $}return""}*structIterator(){if(this.isUnitSchema())return;if(!this.isStructSchema())throw Error("@smithy/core/schema - cannot iterate non-struct schema.");let $=this.getSchema(),Z=$[4].length,G=$[jn.it];if(G&&Z===G.length){yield*G;return}G=Array(Z);for(let X=0;X<Z;++X){let Y=$[4][X],Q=Pn([$[5][X],0],Y);yield G[X]=[Y,Q]}$[jn.it]=G}}function Pn($,Z){if($ instanceof eU)return Object.assign($,{memberName:Z,_isMemberSchema:!0});return new eU($,Z)}var Op0=($)=>Array.isArray($)&&$.length===2,LJ$=($)=>Array.isArray($)&&$.length>=5;class In extends RX{static symbol=Symbol.for("@smithy/sim");name;schemaRef;traits;symbol=In.symbol}var ZW6=($,Z,G,X)=>RX.assign(new In,{name:Z,namespace:$,traits:X,schemaRef:G}),GW6=($,Z,G,X)=>RX.assign(new In,{name:Z,namespace:$,traits:G,schemaRef:X}),XW6={BLOB:21,STREAMING_BLOB:42,BOOLEAN:2,STRING:0,NUMERIC:1,BIG_INTEGER:17,BIG_DECIMAL:19,DOCUMENT:15,TIMESTAMP_DEFAULT:4,TIMESTAMP_DATE_TIME:5,TIMESTAMP_HTTP_DATE:6,TIMESTAMP_EPOCH_SECONDS:7,LIST_MODIFIER:64,MAP_MODIFIER:128};class sU{namespace;schemas;exceptions;static registries=new Map;constructor($,Z=new Map,G=new Map){this.namespace=$,this.schemas=Z,this.exceptions=G}static for($){if(!sU.registries.has($))sU.registries.set($,new sU($));return sU.registries.get($)}copyFrom($){let{schemas:Z,exceptions:G}=this;for(let[X,Y]of $.schemas)if(!Z.has(X))Z.set(X,Y);for(let[X,Y]of $.exceptions)if(!G.has(X))G.set(X,Y)}register($,Z){let G=this.normalizeShapeId($);for(let X of[this,sU.for(G.split("#")[0])])X.schemas.set(G,Z)}getSchema($){let Z=this.normalizeShapeId($);if(!this.schemas.has(Z)){if(!$.includes("#")){let G="#"+$,X=[];for(let[Y,Q]of this.schemas.entries())if(Y.endsWith(G))X.push(Q);if(X.length===1)return X[0]}throw Error(`@smithy/core/schema - schema not found for ${Z}`)}return this.schemas.get(Z)}registerError($,Z){let G=$,X=G[1];for(let Y of[this,sU.for(X)])Y.schemas.set(X+"#"+G[2],G),Y.exceptions.set(G,Z)}getErrorCtor($){let Z=$;if(this.exceptions.has(Z))return this.exceptions.get(Z);return sU.for(Z[1]).exceptions.get(Z)}getBaseException(){for(let $ of this.exceptions.keys())if(Array.isArray($)){let[,Z,G]=$,X=Z+"#"+G;if(X.startsWith("smithy.ts.sdk.synthetic.")&&X.endsWith("ServiceException"))return $}return}find($){for(let Z of this.schemas.values())if($(Z))return Z;return}clear(){this.schemas.clear(),this.exceptions.clear()}normalizeShapeId($){if($.includes("#"))return $;return this.namespace+"#"+$}}YW6.ErrorSchema=HN0;YW6.ListSchema=UN0;YW6.MapSchema=wN0;YW6.NormalizedSchema=eU;YW6.OperationSchema=FN0;YW6.SCHEMA=XW6;YW6.Schema=RX;YW6.SimpleSchema=In;YW6.StructureSchema=Tn;YW6.TypeRegistry=sU;YW6.deref=QN0;YW6.deserializerMiddlewareOption=EJ$;YW6.error=$W6;YW6.getSchemaSerdePlugin=r36;YW6.isStaticSchema=LJ$;YW6.list=o36;YW6.map=a36;YW6.op=s36;YW6.operation=Ep0;YW6.serializerMiddlewareOption=DJ$;YW6.sim=ZW6;YW6.simAdapter=GW6;YW6.simpleSchemaCacheN=WN0;YW6.simpleSchemaCacheS=KN0;YW6.struct=e36;YW6.traitsCache=JN0;YW6.translateTraits=An});var u4=b((wK6)=>{var{getSmithyContext:bW6,normalizeProvider:_W6}=hW();wK6.getSmithyContext=bW6;wK6.normalizeProvider=_W6;var{SMITHY_CONTEXT_KEY:fW6,AlgorithmId:BN0}=oS();wK6.AlgorithmId=BN0;var{NormalizedSchema:xW6}=Y3(),aS=($,Z)=>{let G=[];if($)G.push($);if(Z)for(let X of Z)G.push(X);return G},qN=($,Z)=>{return`${$||"anonymous"}${Z&&Z.length>0?` (a.k.a. ${Z.join(",")})`:""}`},Rn=()=>{let $=[],Z=[],G=!1,X=new Set,Y=(F)=>F.sort((H,N)=>zJ$[N.step]-zJ$[H.step]||jJ$[N.priority||"normal"]-jJ$[H.priority||"normal"]),Q=(F)=>{let H=!1,N=(B)=>{let E=aS(B.name,B.aliases);if(E.includes(F)){H=!0;for(let D of E)X.delete(D);return!1}return!0};return $=$.filter(N),Z=Z.filter(N),H},J=(F)=>{let H=!1,N=(B)=>{if(B.middleware===F){H=!0;for(let E of aS(B.name,B.aliases))X.delete(E);return!1}return!0};return $=$.filter(N),Z=Z.filter(N),H},W=(F)=>{return $.forEach((H)=>{F.add(H.middleware,{...H})}),Z.forEach((H)=>{F.addRelativeTo(H.middleware,{...H})}),F.identifyOnResolve?.(w.identifyOnResolve()),F},K=(F)=>{let H=[];return F.before.forEach((N)=>{if(N.before.length===0&&N.after.length===0)H.push(N);else H.push(...K(N))}),H.push(F),F.after.reverse().forEach((N)=>{if(N.before.length===0&&N.after.length===0)H.push(N);else H.push(...K(N))}),H},U=(F=!1)=>{let H=[],N=[],B={};return $.forEach((D)=>{let L={...D,before:[],after:[]};for(let z of aS(L.name,L.aliases))B[z]=L;H.push(L)}),Z.forEach((D)=>{let L={...D,before:[],after:[]};for(let z of aS(L.name,L.aliases))B[z]=L;N.push(L)}),N.forEach((D)=>{if(D.toMiddleware){let L=B[D.toMiddleware];if(L===void 0){if(F)return;throw Error(`${D.toMiddleware} is not found when adding ${qN(D.name,D.aliases)} middleware ${D.relation} ${D.toMiddleware}`)}if(D.relation==="after")L.after.push(D);if(D.relation==="before")L.before.push(D)}}),Y(H).map(K).reduce((D,L)=>{return D.push(...L),D},[])},w={add:(F,H={})=>{let{name:N,override:B,aliases:E}=H,D={step:"initialize",priority:"normal",middleware:F,...H},L=aS(N,E);if(L.length>0){if(L.some((z)=>X.has(z))){if(!B)throw Error(`Duplicate middleware name '${qN(N,E)}'`);for(let z of L){let j=$.findIndex((A)=>A.name===z||A.aliases?.some((M)=>M===z));if(j===-1)continue;let P=$[j];if(P.step!==D.step||D.priority!==P.priority)throw Error(`"${qN(P.name,P.aliases)}" middleware with ${P.priority} priority in ${P.step} step cannot be overridden by "${qN(N,E)}" middleware with ${D.priority} priority in ${D.step} step.`);$.splice(j,1)}}for(let z of L)X.add(z)}$.push(D)},addRelativeTo:(F,H)=>{let{name:N,override:B,aliases:E}=H,D={middleware:F,...H},L=aS(N,E);if(L.length>0){if(L.some((z)=>X.has(z))){if(!B)throw Error(`Duplicate middleware name '${qN(N,E)}'`);for(let z of L){let j=Z.findIndex((A)=>A.name===z||A.aliases?.some((M)=>M===z));if(j===-1)continue;let P=Z[j];if(P.toMiddleware!==D.toMiddleware||P.relation!==D.relation)throw Error(`"${qN(P.name,P.aliases)}" middleware ${P.relation} "${P.toMiddleware}" middleware cannot be overridden by "${qN(N,E)}" middleware ${D.relation} "${D.toMiddleware}" middleware.`);Z.splice(j,1)}}for(let z of L)X.add(z)}Z.push(D)},clone:()=>W(Rn()),use:(F)=>{F.applyToStack(w)},remove:(F)=>{if(typeof F==="string")return Q(F);else return J(F)},removeByTag:(F)=>{let H=!1,N=(B)=>{let{tags:E,name:D,aliases:L}=B;if(E&&E.includes(F)){let z=aS(D,L);for(let j of z)X.delete(j);return H=!0,!1}return!0};return $=$.filter(N),Z=Z.filter(N),H},concat:(F)=>{let H=W(Rn());return H.use(F),H.identifyOnResolve(G||H.identifyOnResolve()||(F.identifyOnResolve?.()??!1)),H},applyToStack:W,identify:()=>{return U(!0).map((F)=>{let H=F.step??F.relation+" "+F.toMiddleware;return qN(F.name,F.aliases)+" - "+H})},identifyOnResolve(F){if(typeof F==="boolean")G=F;return G},resolve:(F,H)=>{for(let N of U().map((B)=>B.middleware).reverse())F=N(F,H);if(G)console.log(w.identify());return F}};return w},zJ$={initialize:5,serialize:4,build:3,finalizeRequest:2,deserialize:1},jJ$={high:3,normal:2,low:1},vW6=($)=>()=>{throw Error($)},yW6=($)=>()=>Promise.reject($),NN0=()=>{let $=new WeakSet;return(Z,G)=>{if(typeof G==="object"&&G!==null){if($.has(G))return"[Circular]";$.add(G)}return G}},gW6=($)=>{return new Promise((Z)=>setTimeout(Z,$*1000))},TJ$={minDelay:2,maxDelay:120},cW;(function($){$.ABORTED="ABORTED",$.FAILURE="FAILURE",$.SUCCESS="SUCCESS",$.RETRY="RETRY",$.TIMEOUT="TIMEOUT"})(cW||(cW={}));var hW6=($)=>{if($.state===cW.ABORTED){let Z=Error(`${JSON.stringify({...$,reason:"Request was aborted"},NN0())}`);throw Z.name="AbortError",Z}else if($.state===cW.TIMEOUT){let Z=Error(`${JSON.stringify({...$,reason:"Waiter has timed out"},NN0())}`);throw Z.name="TimeoutError",Z}else if($.state!==cW.SUCCESS)throw Error(`${JSON.stringify($,NN0())}`);return $},cW6=async({minDelay:$,maxDelay:Z,maxWaitTime:G,abortController:X,client:Y,abortSignal:Q},J,W)=>{let K={},[U,w]=[$*1000,Z*1000],F=0,H=Date.now()+G*1000,N=Date.now()+60000,B=!1;while(!0){if(F>0){let L=lW6(U,w,F,H);if(X?.signal?.aborted||Q?.aborted)return K["AbortController signal aborted."]|=0,K["AbortController signal aborted."]+=1,{state:cW.ABORTED,observedResponses:K};if(Date.now()+L>H)return{state:cW.TIMEOUT,observedResponses:K};await gW6(L/1000)}let{state:E,reason:D}=await W(Y,J);if(D){let L=dW6(D);K[L]|=0,K[L]+=1}if(E!==cW.RETRY)return{state:E,reason:D,final:D,observedResponses:K};if(F+=1,!B&&Date.now()>=N)uW6(K,Y),B=!0}},uW6=($={},Z)=>{let G=Object.keys($),X=0;for(let J of G){let W=$[J]|0;if(J.startsWith("403:"))X+=W}let Y=Z?.config?.logger,Q=typeof Y?.warn==="function"&&!Y.constructor?.name?.includes?.("NoOpLogger")?Y:console;if(X>=3||G[G.length-1]?.startsWith("403:"))Q.warn("@smithy/util-waiter WARN - 403 status code encountered during waiter polling.")},dW6=($)=>{let Z=$?.$response?.statusCode??$?.$metadata?.httpStatusCode;if($?.$responseBodyText)return`${Z?Z+": ":""}Deserialization error for body: ${$.$responseBodyText}`;if(Z){if($?.$response||$?.message)return`${Z??"Unknown"}: ${$?.message}`;return`${Z}: OK`}return String($?.message??JSON.stringify($,NN0())??"Unknown")},lW6=($,Z,G,X)=>{let Y=Math.log(Z/$)/Math.log(2)+1;if(G>Y)return Z;let Q=$*2**(G-1),J=Math.min(Q,Z),W=mW6($,J);if(Date.now()+W>X){let K=X-Date.now();return Math.max(0,K-500)}return W},mW6=($,Z)=>$+Math.random()*(Z-$),iW6=($)=>{if($.maxWaitTime<=0)throw Error("WaiterConfiguration.maxWaitTime must be greater than 0");else if($.minDelay<=0)throw Error("WaiterConfiguration.minDelay must be greater than 0");else if($.maxDelay<=0)throw Error("WaiterConfiguration.maxDelay must be greater than 0");else if($.maxWaitTime<=$.minDelay)throw Error(`WaiterConfiguration.maxWaitTime [${$.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${$.minDelay}] for this waiter`);else if($.maxDelay<$.minDelay)throw Error(`WaiterConfiguration.maxDelay [${$.maxDelay}] must be greater than WaiterConfiguration.minDelay [${$.minDelay}] for this waiter`)},PJ$=($)=>{let Z,G=new Promise((X)=>{if(Z=()=>X({state:cW.ABORTED}),typeof $.addEventListener==="function")$.addEventListener("abort",Z);else $.onabort=Z});return{clearListener(){if(typeof $.removeEventListener==="function")$.removeEventListener("abort",Z)},aborted:G}},nW6=async($,Z,G)=>{let X={...TJ$,...$};iW6(X);let Y=[cW6(X,Z,G)],Q=[];if($.abortSignal){let{aborted:J,clearListener:W}=PJ$($.abortSignal);Q.push(W),Y.push(J)}if($.abortController?.signal){let{aborted:J,clearListener:W}=PJ$($.abortController.signal);Q.push(W),Y.push(J)}return Promise.race(Y).then((J)=>{for(let W of Q)W();return J})};class IJ${config;middlewareStack=Rn();initConfig;handlers;constructor($){this.config=$;let{protocol:Z,protocolSettings:G}=$;if(G){if(typeof Z==="function")$.protocol=new Z(G)}}send($,Z,G){let X=typeof Z!=="function"?Z:void 0,Y=typeof Z==="function"?Z:G,Q=X===void 0&&this.config.cacheMiddleware===!0,J;if(Q){if(!this.handlers)this.handlers=new WeakMap;let W=this.handlers;if(W.has($.constructor))J=W.get($.constructor);else J=$.resolveMiddleware(this.middlewareStack,this.config,X),W.set($.constructor,J)}else delete this.handlers,J=$.resolveMiddleware(this.middlewareStack,this.config,X);if(Y)J($).then((W)=>Y(null,W.output),(W)=>Y(W)).catch(()=>{});else return J($).then((W)=>W.output)}destroy(){this.config?.requestHandler?.destroy?.(),delete this.handlers}}var Dp0="***SensitiveInformation***";function ON0($,Z){if(Z==null)return Z;let G=xW6.of($);if(G.getMergedTraits().sensitive)return Dp0;if(G.isListSchema()){if(!!G.getValueSchema().getMergedTraits().sensitive)return Dp0}else if(G.isMapSchema()){if(!!G.getKeySchema().getMergedTraits().sensitive||!!G.getValueSchema().getMergedTraits().sensitive)return Dp0}else if(G.isStructSchema()&&typeof Z==="object"){let X=Z,Y={};for(let[Q,J]of G.structIterator())if(X[Q]!=null)Y[Q]=ON0(J,X[Q]);return Y}return Z}class zp0{middlewareStack=Rn();schema;static classBuilder(){return new RJ$}resolveMiddlewareWithContext($,Z,G,{middlewareFn:X,clientName:Y,commandName:Q,inputFilterSensitiveLog:J,outputFilterSensitiveLog:W,smithyContext:K,additionalContext:U,CommandCtor:w}){for(let D of X.bind(this)(w,$,Z,G))this.middlewareStack.use(D);let F=$.concat(this.middlewareStack),{logger:H}=Z,N={logger:H,clientName:Y,commandName:Q,inputFilterSensitiveLog:J,outputFilterSensitiveLog:W,[fW6]:{commandInstance:this,...K},...U},{requestHandler:B}=Z,E=G??{};if(K.eventStream)E={isEventStream:!0,...E};return F.resolve((D)=>B.handle(D.request,E),N)}}class RJ${_init=()=>{};_ep={};_middlewareFn=()=>[];_commandName="";_clientName="";_additionalContext={};_smithyContext={};_inputFilterSensitiveLog=void 0;_outputFilterSensitiveLog=void 0;_serializer=null;_deserializer=null;_operationSchema;init($){this._init=$}ep($){return this._ep=$,this}m($){return this._middlewareFn=$,this}s($,Z,G={}){return this._smithyContext={service:$,operation:Z,...G},this}c($={}){return this._additionalContext=$,this}n($,Z){return this._clientName=$,this._commandName=Z,this}f($=(G)=>G,Z=(G)=>G){return this._inputFilterSensitiveLog=$,this._outputFilterSensitiveLog=Z,this}ser($){return this._serializer=$,this}de($){return this._deserializer=$,this}sc($){return this._operationSchema=$,this._smithyContext.operationSchema=$,this}build(){let $=this,Z;return Z=class extends zp0{input;static getEndpointParameterInstructions(){return $._ep}constructor(...[G]){super();this.input=G??{},$._init(this),this.schema=$._operationSchema}resolveMiddleware(G,X,Y){let Q=$._operationSchema,J=Q?.[4]??Q?.input,W=Q?.[5]??Q?.output;return this.resolveMiddlewareWithContext(G,X,Y,{CommandCtor:Z,middlewareFn:$._middlewareFn,clientName:$._clientName,commandName:$._commandName,inputFilterSensitiveLog:$._inputFilterSensitiveLog??(Q?ON0.bind(null,J):(K)=>K),outputFilterSensitiveLog:$._outputFilterSensitiveLog??(Q?ON0.bind(null,W):(K)=>K),smithyContext:$._smithyContext,additionalContext:$._additionalContext})}serialize=$._serializer;deserialize=$._deserializer}}}var pW6="***SensitiveInformation***",tW6=($,Z,G)=>{for(let[Q,J]of Object.entries($)){let W=async function(U,w,F){let H=new J(U);if(typeof w==="function")this.send(H,w);else if(typeof F==="function"){if(typeof w!=="object")throw Error(`Expected http options but got ${typeof w}`);this.send(H,w||{},F)}else return this.send(H,w)},K=(Q[0].toLowerCase()+Q.slice(1)).replace(/Command$/,"");Z.prototype[K]=W}let{paginators:X={},waiters:Y={}}=G??{};for(let[Q,J]of Object.entries(X))if(Z.prototype[Q]===void 0)Z.prototype[Q]=function(W={},K,...U){return J({...K,client:this},W,...U)};for(let[Q,J]of Object.entries(Y))if(Z.prototype[Q]===void 0)Z.prototype[Q]=async function(W={},K,...U){let w=K;if(typeof K==="number")w={maxWaitTime:K};return J({...w,client:this},W,...U)}};class Rv extends Error{$fault;$response;$retryable;$metadata;constructor($){super($.message);Object.setPrototypeOf(this,Object.getPrototypeOf(this).constructor.prototype),this.name=$.name,this.$fault=$.$fault,this.$metadata=$.$metadata}static isInstance($){if(!$)return!1;let Z=$;return Rv.prototype.isPrototypeOf(Z)||Boolean(Z.$fault)&&Boolean(Z.$metadata)&&(Z.$fault==="client"||Z.$fault==="server")}static[Symbol.hasInstance]($){if(!$)return!1;let Z=$;if(this===Rv)return Rv.isInstance($);if(Rv.isInstance($)){if(Z.name&&this.name)return this.prototype.isPrototypeOf($)||Z.name===this.name;return this.prototype.isPrototypeOf($)}return!1}}var qJ$=($,Z={})=>{Object.entries(Z).filter(([,X])=>X!==void 0).forEach(([X,Y])=>{if($[X]==null||$[X]==="")$[X]=Y});let G=$.message||$.Message||"UnknownError";return $.message=G,delete $.Message,$},MJ$=({output:$,parsedBody:Z,exceptionCtor:G,errorCode:X})=>{let Y=oW6($),Q=Y.httpStatusCode?Y.httpStatusCode+"":void 0,J=new G({name:Z?.code||Z?.Code||X||Q||"UnknownError",$fault:"client",$metadata:Y});throw qJ$(J,Z)},rW6=($)=>{return({output:Z,parsedBody:G,errorCode:X})=>{MJ$({output:Z,parsedBody:G,exceptionCtor:$,errorCode:X})}},oW6=($)=>({httpStatusCode:$.statusCode,requestId:$.headers["x-amzn-requestid"]??$.headers["x-amzn-request-id"]??$.headers["x-amz-request-id"],extendedRequestId:$.headers["x-amz-id-2"],cfId:$.headers["x-amz-cf-id"]}),aW6=($)=>{switch($){case"standard":return{retryMode:"standard",connectionTimeout:3100};case"in-region":return{retryMode:"standard",connectionTimeout:1100};case"cross-region":return{retryMode:"standard",connectionTimeout:3100};case"mobile":return{retryMode:"standard",connectionTimeout:30000};default:return{}}},AJ$=!1,sW6=($)=>{if($&&!AJ$&&parseInt($.substring(1,$.indexOf(".")))<16)AJ$=!0},kJ$=Object.values(BN0),SJ$=($)=>{let Z=[];for(let G in BN0){let X=BN0[G];if($[X]===void 0)continue;Z.push({algorithmId:()=>X,checksumConstructor:()=>$[X]})}for(let[G,X]of Object.entries($.checksumAlgorithms??{}))Z.push({algorithmId:()=>G,checksumConstructor:()=>X});return{addChecksumAlgorithm(G){$.checksumAlgorithms=$.checksumAlgorithms??{};let X=G.algorithmId(),Y=G.checksumConstructor();if(kJ$.includes(X))$.checksumAlgorithms[X.toUpperCase()]=Y;else $.checksumAlgorithms[X]=Y;Z.push(G)},checksumAlgorithms(){return Z}}},VJ$=($)=>{let Z={};return $.checksumAlgorithms().forEach((G)=>{let X=G.algorithmId();if(kJ$.includes(X))Z[X]=G.checksumConstructor()}),Z},CJ$=($)=>{return{setRetryStrategy(Z){$.retryStrategy=Z},retryStrategy(){return $.retryStrategy}}},bJ$=($)=>{let Z={};return Z.retryStrategy=$.retryStrategy(),Z},_J$=($)=>{return Object.assign(SJ$($),CJ$($))},eW6=_J$,$K6=($)=>{return Object.assign(VJ$($),bJ$($))},ZK6=($)=>Array.isArray($)?$:[$],fJ$=($)=>{for(let G in $)if(Object.prototype.hasOwnProperty.call($,G)&&$[G]["#text"]!==void 0)$[G]=$[G]["#text"];else if(typeof $[G]==="object"&&$[G]!==null)$[G]=fJ$($[G]);return $},GK6=($)=>{return $!=null};class xJ${trace(){}debug(){}info(){}warn(){}error(){}}function vJ$($,Z,G){let X,Y,Q;if(typeof Z>"u"&&typeof G>"u")X={},Q=$;else if(X=$,typeof Z==="function")return Y=Z,Q=G,QK6(X,Y,Q);else Q=Z;for(let J of Object.keys(Q)){if(!Array.isArray(Q[J])){X[J]=Q[J];continue}yJ$(X,null,Q,J)}return X}var XK6=($)=>{let Z={};for(let[G,X]of Object.entries($||{}))Z[G]=[,X];return Z},YK6=($,Z)=>{let G={};for(let X in Z)yJ$(G,$,Z,X);return G},QK6=($,Z,G)=>{return vJ$($,Object.entries(G).reduce((X,[Y,Q])=>{if(Array.isArray(Q))X[Y]=Q;else if(typeof Q==="function")X[Y]=[Z,Q()];else X[Y]=[Z,Q];return X},{}))},yJ$=($,Z,G,X)=>{if(Z!==null){let J=G[X];if(typeof J==="function")J=[,J];let[W=JK6,K=WK6,U=X]=J;if(typeof W==="function"&&W(Z[U])||typeof W!=="function"&&!!W)$[X]=K(Z[U]);return}let[Y,Q]=G[X];if(typeof Q==="function"){let J,W=Y===void 0&&(J=Q())!=null,K=typeof Y==="function"&&!!Y(void 0)||typeof Y!=="function"&&!!Y;if(W)$[X]=J;else if(K)$[X]=Q()}else{let J=Y===void 0&&Q!=null,W=typeof Y==="function"&&!!Y(Q)||typeof Y!=="function"&&!!Y;if(J||W)$[X]=Q}},JK6=($)=>$!=null,WK6=($)=>$,KK6=($)=>{if($!==$)return"NaN";switch($){case 1/0:return"Infinity";case-1/0:return"-Infinity";default:return $}},UK6=($)=>$.toISOString().replace(".000Z","Z"),Lp0=($)=>{if($==null)return{};if(Array.isArray($))return $.filter((Z)=>Z!=null).map(Lp0);if(typeof $==="object"){let Z={};for(let G of Object.keys($)){if($[G]==null)continue;Z[G]=Lp0($[G])}return Z}return $};wK6.Client=IJ$;wK6.Command=zp0;wK6.NoOpLogger=xJ$;wK6.SENSITIVE_STRING=pW6;wK6.ServiceException=Rv;wK6.WaiterState=cW;wK6._json=Lp0;wK6.checkExceptions=hW6;wK6.constructStack=Rn;wK6.convertMap=XK6;wK6.createAggregatedClient=tW6;wK6.createWaiter=nW6;wK6.decorateServiceException=qJ$;wK6.emitWarningIfUnsupportedVersion=sW6;wK6.getArrayIfSingleItem=ZK6;wK6.getChecksumConfiguration=SJ$;wK6.getDefaultClientConfiguration=eW6;wK6.getDefaultExtensionConfiguration=_J$;wK6.getRetryConfiguration=CJ$;wK6.getValueFromTextNode=fJ$;wK6.invalidFunction=vW6;wK6.invalidProvider=yW6;wK6.isSerializableHeaderValue=GK6;wK6.loadConfigsForDefaultMode=aW6;wK6.map=vJ$;wK6.resolveChecksumRuntimeConfig=VJ$;wK6.resolveDefaultRuntimeConfig=$K6;wK6.resolveRetryRuntimeConfig=bJ$;wK6.schemaLogFilter=ON0;wK6.serializeDateTime=UK6;wK6.serializeFloat=KK6;wK6.take=YK6;wK6.throwDefaultError=MJ$;wK6.waiterServiceDefaults=TJ$;wK6.withBaseException=rW6});var a8=b((nU6)=>{var{homedir:rK6}=u0("os"),{sep:oK6,join:qn}=u0("path"),{createHash:aK6}=u0("crypto"),{readFile:lJ$}=u0("fs/promises"),{IniSectionType:EN0}=oS(),{normalizeProvider:DN0}=u4(),{isValidHostLabel:sK6}=hW();class qv extends Error{name="ProviderError";tryNextLink;constructor($,Z=!0){let G,X=!0;if(typeof Z==="boolean")G=void 0,X=Z;else if(Z!=null&&typeof Z==="object")G=Z.logger,X=Z.tryNextLink??!0;super($);this.tryNextLink=X,Object.setPrototypeOf(this,qv.prototype),G?.debug?.(`@smithy/property-provider ${X?"->":"(!)"} ${$}`)}static from($,Z=!0){return Object.assign(new this($.message,Z),$)}}class Mn extends qv{name="CredentialsProviderError";constructor($,Z=!0){super($,Z);Object.setPrototypeOf(this,Mn.prototype)}}class Ip0 extends qv{name="TokenProviderError";constructor($,Z=!0){super($,Z);Object.setPrototypeOf(this,Ip0.prototype)}}var mJ$=(...$)=>async()=>{if($.length===0)throw new qv("No providers in chain");let Z;for(let G of $)try{return await G()}catch(X){if(Z=X,X?.tryNextLink)continue;throw X}throw Z},iJ$=($)=>()=>Promise.resolve($),Rp0=($,Z,G)=>{let X,Y,Q,J=!1,W=async()=>{if(!Y)Y=$();try{X=await Y,Q=!0,J=!1}finally{Y=void 0}return X};if(Z===void 0)return async(K)=>{if(!Q||K?.forceRefresh)X=await W();return X};return async(K)=>{if(!Q||K?.forceRefresh)X=await W();if(J)return X;if(G&&!G(X))return J=!0,X;if(Z(X))return await W(),X;return X}},$w=($,Z,G)=>{if(!(Z in $))return;if($[Z]==="true")return!0;if($[Z]==="false")return!1;throw Error(`Cannot load ${G} "${Z}". Expected "true" or "false", got ${$[Z]}.`)},eK6=($,Z,G)=>{if(!(Z in $))return;let X=parseInt($[Z],10);if(Number.isNaN(X))throw TypeError(`Cannot load ${G} '${Z}'. Expected number, got '${$[Z]}'.`);return X},Q3;(function($){$.ENV="env",$.CONFIG="shared config entry"})(Q3||(Q3={}));var jp0={},$U6=()=>{if(process&&process.geteuid)return`${process.geteuid()}`;return"DEFAULT"},kn=()=>{let{HOME:$,USERPROFILE:Z,HOMEPATH:G,HOMEDRIVE:X=`C:${oK6}`}=process.env;if($)return $;if(Z)return Z;if(G)return`${X}${G}`;let Y=$U6();if(!jp0[Y])jp0[Y]=rK6();return jp0[Y]},nJ$="AWS_PROFILE",pJ$="default",tJ$=($)=>$.profile||process.env[nJ$]||pJ$,rJ$=($)=>{let G=aK6("sha1").update($).digest("hex");return qn(kn(),".aws","sso","cache",`${G}.json`)},LN0={},ZU6=async($)=>{if(LN0[$])return LN0[$];let Z=rJ$($),G=await lJ$(Z,"utf8");return JSON.parse(G)},sS=".",GU6=($)=>Object.entries($).filter(([Z])=>{let G=Z.indexOf(sS);if(G===-1)return!1;return Object.values(EN0).includes(Z.substring(0,G))}).reduce((Z,[G,X])=>{let Y=G.indexOf(sS),Q=G.substring(0,Y)===EN0.PROFILE?G.substring(Y+1):G;return Z[Q]=X,Z},{...$.default&&{default:$.default}}),XU6="AWS_CONFIG_FILE",oJ$=()=>process.env[XU6]||qn(kn(),".aws","config"),YU6="AWS_SHARED_CREDENTIALS_FILE",QU6=()=>process.env[YU6]||qn(kn(),".aws","credentials"),JU6=/^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/,WU6=["__proto__","profile __proto__"],Ap0=($)=>{let Z={},G,X;for(let Y of $.split(/\r?\n/)){let Q=Y.split(/(^|\s)[;#]/)[0].trim();if(Q[0]==="["&&Q[Q.length-1]==="]"){G=void 0,X=void 0;let W=Q.substring(1,Q.length-1),K=JU6.exec(W);if(K){let[,U,,w]=K;if(Object.values(EN0).includes(U))G=[U,w].join(sS)}else G=W;if(WU6.includes(W))throw Error(`Found invalid profile name "${W}"`)}else if(G){let W=Q.indexOf("=");if(![0,-1].includes(W)){let[K,U]=[Q.substring(0,W).trim(),Q.substring(W+1).trim()];if(U==="")X=K;else{if(X&&Y.trimStart()===Y)X=void 0;Z[G]=Z[G]||{};let w=X?[X,K].join(sS):K;Z[G][w]=U}}}}return Z},Pp0={},zN0={},jN0=($,Z)=>{if(zN0[$]!==void 0)return zN0[$];if(!Pp0[$]||Z?.ignoreCache)Pp0[$]=lJ$($,"utf8");return Pp0[$]},gJ$=()=>({}),qp0=async($={})=>{let{filepath:Z=QU6(),configFilepath:G=oJ$()}=$,X=kn(),Y="~/",Q=Z;if(Z.startsWith("~/"))Q=qn(X,Z.slice(2));let J=G;if(G.startsWith("~/"))J=qn(X,G.slice(2));let W=await Promise.all([jN0(J,{ignoreCache:$.ignoreCache}).then(Ap0).then(GU6).catch(gJ$),jN0(Q,{ignoreCache:$.ignoreCache}).then(Ap0).catch(gJ$)]);return{configFile:W[0],credentialsFile:W[1]}},KU6=($)=>Object.entries($).filter(([Z])=>Z.startsWith(EN0.SSO_SESSION+sS)).reduce((Z,[G,X])=>({...Z,[G.substring(G.indexOf(sS)+1)]:X}),{}),UU6=()=>({}),wU6=async($={})=>jN0($.configFilepath??oJ$()).then(Ap0).then(KU6).catch(UU6),FU6=(...$)=>{let Z={};for(let G of $)for(let[X,Y]of Object.entries(G))if(Z[X]!==void 0)Object.assign(Z[X],Y);else Z[X]=Y;return Z},HU6=async($)=>{let Z=await qp0($);return FU6(Z.configFile,Z.credentialsFile)},NU6={getFileRecord(){return zN0},interceptFile($,Z){zN0[$]=Promise.resolve(Z)},getTokenRecord(){return LN0},interceptToken($,Z){LN0[$]=Z}};function aJ$($){try{let Z=new Set(Array.from($.match(/([A-Z_]){3,}/g)??[]));return Z.delete("CONFIG"),Z.delete("CONFIG_PREFIX_SEPARATOR"),Z.delete("ENV"),[...Z].join(", ")}catch(Z){return $}}var BU6=($,Z)=>async()=>{try{let G=$(process.env,Z);if(G===void 0)throw Error();return G}catch(G){throw new Mn(G.message||`Not found in ENV: ${aJ$($.toString())}`,{logger:Z?.logger})}},OU6=($,{preferredFile:Z="config",...G}={})=>async()=>{let X=tJ$(G),{configFile:Y,credentialsFile:Q}=await qp0(G),J=Q[X]||{},W=Y[X]||{},K=Z==="config"?{...J,...W}:{...W,...J};try{let w=$(K,Z==="config"?Y:Q);if(w===void 0)throw Error();return w}catch(U){throw new Mn(U.message||`Not found in config files w/ profile [${X}]: ${aJ$($.toString())}`,{logger:G.logger})}},EU6=($)=>typeof $==="function",sJ$=($)=>EU6($)?async()=>await $():iJ$($),Tp0=({environmentVariableSelector:$,configFileSelector:Z,default:G},X={})=>{let{signingName:Y,logger:Q}=X;return Rp0(mJ$(BU6($,{signingName:Y,logger:Q}),OU6(Z,X),sJ$(G)))},Mp0="AWS_USE_DUALSTACK_ENDPOINT",kp0="use_dualstack_endpoint",DU6=!1,LU6={environmentVariableSelector:($)=>$w($,Mp0,Q3.ENV),configFileSelector:($)=>$w($,kp0,Q3.CONFIG),default:!1},zU6={environmentVariableSelector:($)=>$w($,Mp0,Q3.ENV),configFileSelector:($)=>$w($,kp0,Q3.CONFIG),default:void 0},Sp0="AWS_USE_FIPS_ENDPOINT",Vp0="use_fips_endpoint",jU6=!1,PU6={environmentVariableSelector:($)=>$w($,Sp0,Q3.ENV),configFileSelector:($)=>$w($,Vp0,Q3.CONFIG),default:!1},AU6={environmentVariableSelector:($)=>$w($,Sp0,Q3.ENV),configFileSelector:($)=>$w($,Vp0,Q3.CONFIG),default:void 0},TU6=($)=>{let{tls:Z,endpoint:G,urlParser:X,useDualstackEndpoint:Y}=$;return Object.assign($,{tls:Z??!0,endpoint:DN0(typeof G==="string"?X(G):G),isCustomEndpoint:!0,useDualstackEndpoint:DN0(Y??!1)})},IU6=async($)=>{let{tls:Z=!0}=$,G=await $.region();if(!new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/).test(G))throw Error("Invalid region in client config");let Y=await $.useDualstackEndpoint(),Q=await $.useFipsEndpoint(),{hostname:J}=await $.regionInfoProvider(G,{useDualstackEndpoint:Y,useFipsEndpoint:Q})??{};if(!J)throw Error("Cannot resolve hostname from client config");return $.urlParser(`${Z?"https:":"http:"}//${J}`)},RU6=($)=>{let Z=DN0($.useDualstackEndpoint??!1),{endpoint:G,useFipsEndpoint:X,urlParser:Y,tls:Q}=$;return Object.assign($,{tls:Q??!0,endpoint:G?DN0(typeof G==="string"?Y(G):G):()=>IU6({...$,useDualstackEndpoint:Z,useFipsEndpoint:X}),isCustomEndpoint:!!G,useDualstackEndpoint:Z})},eJ$="AWS_REGION",$3$="region",Z3$={environmentVariableSelector:($)=>$[eJ$],configFileSelector:($)=>$[$3$],default:()=>{throw Error("Region is missing")}},qU6={preferredFile:"credentials"},hJ$=new Set,MU6=($,Z=sK6)=>{if(!hJ$.has($)&&!Z($))if($==="*")console.warn('@smithy/config-resolver WARN - Please use the caller region instead of "*". See "sigv4a" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.');else throw Error(`Region not accepted: region="${$}" is not a valid hostname component.`);else hJ$.add($)},G3$=($)=>typeof $==="string"&&($.startsWith("fips-")||$.endsWith("-fips")),kU6=($)=>G3$($)?["fips-aws-global","aws-fips"].includes($)?"us-east-1":$.replace(/fips-(dkr-|prod-)?|-fips/,""):$,SU6=($)=>{let{region:Z,useFipsEndpoint:G}=$;if(!Z)throw Error("Region is missing");return Object.assign($,{region:async()=>{let X=typeof Z==="function"?await Z():Z,Y=kU6(X);return MU6(Y),Y},useFipsEndpoint:async()=>{let X=typeof Z==="string"?Z:await Z();if(G3$(X))return!0;return typeof G!=="function"?Promise.resolve(!!G):G()}})},cJ$=($=[],{useFipsEndpoint:Z,useDualstackEndpoint:G})=>$.find(({tags:X})=>Z===X.includes("fips")&&G===X.includes("dualstack"))?.hostname,VU6=($,{regionHostname:Z,partitionHostname:G})=>Z?Z:G?G.replace("{region}",$):void 0,CU6=($,{partitionHash:Z})=>Object.keys(Z||{}).find((G)=>Z[G].regions.includes($))??"aws",bU6=($,{signingRegion:Z,regionRegex:G,useFipsEndpoint:X})=>{if(Z)return Z;else if(X){let Y=G.replace("\\\\","\\").replace(/^\^/g,"\\.").replace(/\$$/g,"\\."),Q=$.match(Y);if(Q)return Q[0].slice(1,-1)}},_U6=($,{useFipsEndpoint:Z=!1,useDualstackEndpoint:G=!1,signingService:X,regionHash:Y,partitionHash:Q})=>{let J=CU6($,{partitionHash:Q}),W=$ in Y?$:Q[J]?.endpoint??$,K={useFipsEndpoint:Z,useDualstackEndpoint:G},U=cJ$(Y[W]?.variants,K),w=cJ$(Q[J]?.variants,K),F=VU6(W,{regionHostname:U,partitionHostname:w});if(F===void 0)throw Error(`Endpoint resolution failed for: ${{resolvedRegion:W,useFipsEndpoint:Z,useDualstackEndpoint:G}}`);let H=bU6(F,{signingRegion:Y[W]?.signingRegion,regionRegex:Q[J].regionRegex,useFipsEndpoint:Z});return{partition:J,signingService:X,hostname:F,...H&&{signingRegion:H},...Y[W]?.signingService&&{signingService:Y[W].signingService}}},fU6="AWS_EXECUTION_ENV",uJ$="AWS_REGION",dJ$="AWS_DEFAULT_REGION",xU6="AWS_EC2_METADATA_DISABLED",vU6=["in-region","cross-region","mobile","standard","legacy"],yU6="/latest/meta-data/placement/region",gU6="AWS_DEFAULTS_MODE",hU6="defaults_mode",cU6={environmentVariableSelector:($)=>{return $[gU6]},configFileSelector:($)=>{return $[hU6]},default:"legacy"},uU6=({region:$=Tp0(Z3$),defaultsMode:Z=Tp0(cU6)}={})=>Rp0(async()=>{let G=typeof Z==="function"?await Z():Z;switch(G?.toLowerCase()){case"auto":return dU6($);case"in-region":case"cross-region":case"mobile":case"standard":case"legacy":return Promise.resolve(G?.toLocaleLowerCase());case void 0:return Promise.resolve("legacy");default:throw Error(`Invalid parameter for "defaultsMode", expect ${vU6.join(", ")}, got ${G}`)}}),dU6=async($)=>{if($){let Z=typeof $==="function"?await $():$,G=await lU6();if(!G)return"standard";if(Z===G)return"in-region";else return"cross-region"}return"standard"},lU6=async()=>{if(process.env[fU6]&&(process.env[uJ$]||process.env[dJ$]))return process.env[uJ$]??process.env[dJ$];if(!process.env[xU6])try{let $=await mU6();return(await iU6({hostname:$.hostname,path:yU6})).toString()}catch($){}},mU6=async()=>{let $=process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT;if($){let G=new URL($);return{hostname:G.hostname,path:G.pathname}}if(process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE==="IPv6")return{hostname:"fd00:ec2::254",path:"/"};return{hostname:"169.254.169.254",path:"/"}},iU6=async({hostname:$,path:Z})=>{let{request:G}=u0("http");return new Promise((X,Y)=>{let Q=G({method:"GET",hostname:$.replace(/^\[(.+)]$/,"$1"),path:Z,timeout:1000,signal:AbortSignal.timeout(1000)});Q.on("error",(J)=>{Y(J),Q.destroy()}),Q.on("timeout",()=>{Y(Error("TimeoutError from instance metadata service")),Q.destroy()}),Q.on("response",(J)=>{let{statusCode:W=400}=J;if(W<200||300<=W){Y(Object.assign(Error("Error response received from instance metadata service"),{statusCode:W})),Q.destroy();return}let K=[];J.on("data",(U)=>K.push(U)),J.on("end",()=>{X(Buffer.concat(K)),Q.destroy()})}),Q.end()})};nU6.CONFIG_PREFIX_SEPARATOR=sS;nU6.CONFIG_USE_DUALSTACK_ENDPOINT=kp0;nU6.CONFIG_USE_FIPS_ENDPOINT=Vp0;nU6.CredentialsProviderError=Mn;nU6.DEFAULT_PROFILE=pJ$;nU6.DEFAULT_USE_DUALSTACK_ENDPOINT=DU6;nU6.DEFAULT_USE_FIPS_ENDPOINT=jU6;nU6.ENV_PROFILE=nJ$;nU6.ENV_USE_DUALSTACK_ENDPOINT=Mp0;nU6.ENV_USE_FIPS_ENDPOINT=Sp0;nU6.NODE_REGION_CONFIG_FILE_OPTIONS=qU6;nU6.NODE_REGION_CONFIG_OPTIONS=Z3$;nU6.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS=LU6;nU6.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS=PU6;nU6.ProviderError=qv;nU6.REGION_ENV_NAME=eJ$;nU6.REGION_INI_NAME=$3$;nU6.SelectorType=Q3;nU6.TokenProviderError=Ip0;nU6.booleanSelector=$w;nU6.chain=mJ$;nU6.externalDataInterceptor=NU6;nU6.fromStatic=sJ$;nU6.fromValue=iJ$;nU6.getHomeDir=kn;nU6.getProfileName=tJ$;nU6.getRegionInfo=_U6;nU6.getSSOTokenFilepath=rJ$;nU6.getSSOTokenFromFile=ZU6;nU6.loadConfig=Tp0;nU6.loadSharedConfigFiles=qp0;nU6.loadSsoSessionData=wU6;nU6.memoize=Rp0;nU6.nodeDualstackConfigSelectors=zU6;nU6.nodeFipsConfigSelectors=AU6;nU6.numberSelector=eK6;nU6.parseKnownFiles=HU6;nU6.readFile=jN0;nU6.resolveCustomEndpointsConfig=TU6;nU6.resolveDefaultsModeConfig=uU6;nU6.resolveEndpointsConfig=RU6;nU6.resolveRegionConfig=SU6});var x5=b((zF6)=>{var{CONFIG_PREFIX_SEPARATOR:X3$,loadConfig:xw6}=a8(),{toEndpointV1:PN0,getSmithyContext:vw6,normalizeProvider:Cp0,isValidHostLabel:J3$}=hW();zF6.isValidHostLabel=J3$;zF6.middlewareEndpointToEndpointV1=PN0;zF6.toEndpointV1=PN0;var{EndpointURLScheme:fp0}=oS(),Y3$="AWS_ENDPOINT_URL",Q3$="endpoint_url",yw6=($)=>({environmentVariableSelector:(Z)=>{let G=$.split(" ").map((Q)=>Q.toUpperCase()),X=Z[[Y3$,...G].join("_")];if(X)return X;let Y=Z[Y3$];if(Y)return Y;return},configFileSelector:(Z,G)=>{if(G&&Z.services){let Y=G[["services",Z.services].join(X3$)];if(Y){let Q=$.split(" ").map((W)=>W.toLowerCase()),J=Y[[Q.join("_"),Q3$].join(X3$)];if(J)return J}}let X=Z[Q3$];if(X)return X;return},default:void 0}),AN0=async($)=>xw6(yw6($??""))(),gw6=async($)=>{let Z=$?.Bucket||"";if(typeof $.Bucket==="string")$.Bucket=Z.replace(/#/g,encodeURIComponent("#")).replace(/\?/g,encodeURIComponent("?"));if(lw6(Z)){if($.ForcePathStyle===!0)throw Error("Path-style addressing cannot be used with ARN buckets")}else if(!dw6(Z)||Z.indexOf(".")!==-1&&!String($.Endpoint).startsWith("http:")||Z.toLowerCase()!==Z||Z.length<3)$.ForcePathStyle=!0;if($.DisableMultiRegionAccessPoints)$.disableMultiRegionAccessPoints=!0,$.DisableMRAP=!0;return $},hw6=/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/,cw6=/(\d+\.){3}\d+/,uw6=/\.\./,dw6=($)=>hw6.test($)&&!cw6.test($)&&!uw6.test($),lw6=($)=>{let[Z,G,X,,,Y]=$.split(":"),Q=Z==="arn"&&$.split(":").length>=6,J=Boolean(Q&&G&&X&&Y);if(Q&&!J)throw Error(`Invalid ARN: ${$} was an invalid ARN.`);return J},mw6=($,Z,G,X=!1)=>{let Y=async()=>{let Q;if(X)Q=G.clientContextParams?.[$]??G[$]??G[Z];else Q=G[$]??G[Z];if(typeof Q==="function")return Q();return Q};if($==="credentialScope"||Z==="CredentialScope")return async()=>{let Q=typeof G.credentials==="function"?await G.credentials():G.credentials;return Q?.credentialScope??Q?.CredentialScope};if($==="accountId"||Z==="AccountId")return async()=>{let Q=typeof G.credentials==="function"?await G.credentials():G.credentials;return Q?.accountId??Q?.AccountId};if($==="endpoint"||Z==="endpoint")return async()=>{if(G.isCustomEndpoint===!1)return;let Q=await Y();if(Q&&typeof Q==="object"){if("url"in Q)return Q.url.href;if("hostname"in Q){let{protocol:J,hostname:W,port:K,path:U}=Q;return`${J}//${W}${K?":"+K:""}${U}`}}return Q};return Y};function W3$($){return async(Z,G,X,Y)=>{if(!X.isCustomEndpoint){let W;if(X.serviceConfiguredEndpoint)W=await X.serviceConfiguredEndpoint();else W=await $(X.serviceId);if(W)X.endpoint=()=>Promise.resolve(PN0(W)),X.isCustomEndpoint=!0}let Q=await K3$(Z,G,X);if(typeof X.endpointProvider!=="function")throw Error("config.endpointProvider is not set.");let J=X.endpointProvider(Q,Y);if(X.isCustomEndpoint&&X.endpoint){let W=await X.endpoint();if(W?.headers){J.headers??={};for(let[K,U]of Object.entries(W.headers))J.headers[K]=Array.isArray(U)?U:[U]}}return J}}var K3$=async($,Z,G)=>{let X={},Y=Z?.getEndpointParameterInstructions?.()||{};for(let[Q,J]of Object.entries(Y))switch(J.type){case"staticContextParams":X[Q]=J.value;break;case"contextParams":X[Q]=$[J.name];break;case"clientContextParams":case"builtInParams":X[Q]=await mw6(J.name,Q,G,J.type!=="builtInParams")();break;case"operationContextParams":X[Q]=J.get($);break;default:throw Error("Unrecognized endpoint parameter instruction: "+JSON.stringify(J))}if(Object.keys(Y).length===0)Object.assign(X,G);if(String(G.serviceId).toLowerCase()==="s3")await gw6(X);return X};function iw6($,Z,G){if(!$.__smithy_context)$.__smithy_context={features:{}};else if(!$.__smithy_context.features)$.__smithy_context.features={};$.__smithy_context.features[Z]=G}function U3$($){let Z=W3$($);return({config:G,instructions:X})=>{return(Y,Q)=>async(J)=>{if(G.isCustomEndpoint)iw6(Q,"ENDPOINT_OVERRIDE","N");let W=await Z(J.input,{getEndpointParameterInstructions(){return X}},{...G},Q);Q.endpointV2=W,Q.authSchemes=W.properties?.authSchemes;let K=Q.authSchemes?.[0];if(K){Q.signing_region=K.signingRegion,Q.signing_service=K.signingName;let w=vw6(Q)?.selectedHttpAuthScheme?.httpAuthOption;if(w)w.signingProperties=Object.assign(w.signingProperties||{},{signing_region:K.signingRegion,signingRegion:K.signingRegion,signing_service:K.signingName,signingName:K.signingName,signingRegionSet:K.signingRegionSet},K.properties)}return Y({...J})}}}var nw6={name:"serializerMiddleware"},w3$={step:"serialize",tags:["ENDPOINT_PARAMETERS","ENDPOINT_V2","ENDPOINT"],name:"endpointV2Middleware",override:!0,relation:"before",toMiddleware:nw6.name};function pw6($){let Z=U3$($);return(G,X)=>({applyToStack:(Y)=>{Y.addRelativeTo(Z({config:G,instructions:X}),w3$)}})}function tw6($){return(Z)=>{let G=Z.tls??!0,{endpoint:X,useDualstackEndpoint:Y,useFipsEndpoint:Q}=Z,J=X!=null?async()=>PN0(await Cp0(X)()):void 0,K=Object.assign(Z,{endpoint:J,tls:G,isCustomEndpoint:!!X,useDualstackEndpoint:Cp0(Y??!1),useFipsEndpoint:Cp0(Q??!1)}),U=void 0;return K.serviceConfiguredEndpoint=async()=>{if(Z.serviceId&&!U)U=$(Z.serviceId);return U},K}}class xp0{nodes;root;conditions;results;constructor($,Z,G,X){this.nodes=$,this.root=Z,this.conditions=G,this.results=X}static from($,Z,G,X){return new xp0($,Z,G,X)}}class F3${capacity;data=new Map;parameters=[];constructor({size:$,params:Z}){if(this.capacity=$??50,Z)this.parameters=Z}get($,Z){let G=this.hash($);if(G===!1)return Z();if(!this.data.has(G)){if(this.data.size>this.capacity+10){let X=this.data.keys(),Y=0;while(!0){let{value:Q,done:J}=X.next();if(this.data.delete(Q),J||++Y>10)break}}this.data.set(G,Z())}return this.data.get(G)}size(){return this.data.size}hash($){let Z="",{parameters:G}=this;if(G.length===0)return!1;for(let X of G){let Y=String($[X]??"");if(Y.includes("|;"))return!1;Z+=Y+"|;"}return Z}}class WG extends Error{constructor($){super($);this.name="EndpointError"}}var Sn="endpoints";function MN($){if(typeof $!=="object"||$==null)return $;if("ref"in $)return`$${MN($.ref)}`;if("fn"in $)return`${$.fn}(${($.argv||[]).map(MN).join(", ")})`;return JSON.stringify($,null,2)}var H3$={},rw6=($,Z)=>$===Z;function ow6(...$){for(let Z of $)if(Z!=null)return Z;return}var aw6=($)=>{let Z=$.split("."),G=[];for(let X of Z){let Y=X.indexOf("[");if(Y!==-1){if(X.indexOf("]")!==X.length-1)throw new WG(`Path: '${$}' does not end with ']'`);let Q=X.slice(Y+1,-1);if(Number.isNaN(parseInt(Q)))throw new WG(`Invalid array index: '${Q}' in path: '${$}'`);if(Y!==0)G.push(X.slice(0,Y));G.push(Q)}else G.push(X)}return G},N3$=($,Z)=>aw6(Z).reduce((G,X)=>{if(typeof G!=="object")throw new WG(`Index '${X}' in '${Z}' not found in '${JSON.stringify($)}'`);else if(Array.isArray(G)){let Y=parseInt(X);return G[Y<0?G.length+Y:Y]}return G[X]},$),sw6=($)=>$!=null;function ew6($,Z,G){return $?Z:G}var $F6=($)=>!$,ZF6=new RegExp("^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$"),B3$=($)=>ZF6.test($)||$.startsWith("[")&&$.endsWith("]"),bp0={[fp0.HTTP]:80,[fp0.HTTPS]:443},GF6=($)=>{let Z=(()=>{try{if($ instanceof URL)return $;if(typeof $==="object"&&"hostname"in $){let{hostname:H,port:N,protocol:B="",path:E="",query:D={}}=$,L=new URL(`${B}//${H}${N?`:${N}`:""}${E}`);return L.search=Object.entries(D).map(([z,j])=>`${z}=${j}`).join("&"),L}return new URL($)}catch(H){return null}})();if(!Z)return console.error(`Unable to parse ${JSON.stringify($)} as a whatwg URL.`),null;let G=Z.href,{host:X,hostname:Y,pathname:Q,protocol:J,search:W}=Z;if(W)return null;let K=J.slice(0,-1);if(!Object.values(fp0).includes(K))return null;let U=B3$(Y),w=G.includes(`${X}:${bp0[K]}`)||typeof $==="string"&&$.includes(`${X}:${bp0[K]}`),F=`${X}${w?`:${bp0[K]}`:""}`;return{scheme:K,authority:F,path:Q,normalizedPath:Q.endsWith("/")?Q:`${Q}/`,isIp:U}};function XF6($,Z,G){if(G===1)return[$];if($==="")return[""];let X=$.split(Z);if(G===0)return X;return X.slice(0,G-1).concat(X.slice(1).join(Z))}var YF6=($,Z)=>$===Z,QF6=($,Z,G,X)=>{if($==null||Z>=G||$.length<G||/[^\u0000-\u007f]/.test($))return null;if(!X)return $.substring(Z,G);return $.substring($.length-G,$.length-Z)},JF6=($)=>encodeURIComponent($).replace(/[!*'()]/g,(Z)=>`%${Z.charCodeAt(0).toString(16).toUpperCase()}`),WF6={booleanEquals:rw6,coalesce:ow6,getAttr:N3$,isSet:sw6,isValidHostLabel:J3$,ite:ew6,not:$F6,parseURL:GF6,split:XF6,stringEquals:YF6,substring:QF6,uriEncode:JF6},O3$=($,Z)=>{let G=[],{referenceRecord:X,endpointParams:Y}=Z,Q=0;while(Q<$.length){let J=$.indexOf("{",Q);if(J===-1){G.push($.slice(Q));break}G.push($.slice(Q,J));let W=$.indexOf("}",J);if(W===-1){G.push($.slice(J));break}if($[J+1]==="{"&&$[W+1]==="}")G.push($.slice(J+1,W)),Q=W+2;let K=$.substring(J+1,W);if(K.includes("#")){let[U,w]=K.split("#");G.push(N3$(X[U]??Y[U],w))}else G.push(X[K]??Y[K]);Q=W+1}return G.join("")},KF6=({ref:$},Z)=>{return Z.referenceRecord[$]??Z.endpointParams[$]},Vn=($,Z,G)=>{if(typeof $==="string")return O3$($,G);else if($.fn)return D3$.callFunction($,G);else if($.ref)return KF6($,G);throw new WG(`'${Z}': ${String($)} is not a string, function or reference.`)},E3$=({fn:$,argv:Z},G)=>{let X=Array(Z.length);for(let J=0;J<X.length;++J){let W=Z[J];if(typeof W==="boolean"||typeof W==="number")X[J]=W;else X[J]=D3$.evaluateExpression(W,"arg",G)}let Y=$.indexOf(".");if(Y!==-1){let W=H3$[$.slice(0,Y)]?.[$.slice(Y+1)];if(typeof W==="function")return W(...X)}let Q=WF6[$];if(typeof Q==="function")return Q(...X);throw Error(`function ${$} not loaded in endpointFunctions.`)},D3$={evaluateExpression:Vn,callFunction:E3$},L3$=($,Z)=>{let{assign:G}=$;if(G&&G in Z.referenceRecord)throw new WG(`'${G}' is already defined in Reference Record.`);let X=E3$($,Z);Z.logger?.debug?.(`${Sn} evaluateCondition: ${MN($)} = ${MN(X)}`);let Y=X===""?!0:!!X;if(G!=null)return{result:Y,toAssign:{name:G,value:X}};return{result:Y}},z3$=($,Z)=>Object.entries($??{}).reduce((G,[X,Y])=>{return G[X]=Y.map((Q)=>{let J=Vn(Q,"Header value entry",Z);if(typeof J!=="string")throw new WG(`Header '${X}' value '${J}' is not a string`);return J}),G},{}),vp0=($,Z)=>Object.entries($).reduce((G,[X,Y])=>{return G[X]=P3$.getEndpointProperty(Y,Z),G},{}),j3$=($,Z)=>{if(Array.isArray($))return $.map((G)=>j3$(G,Z));switch(typeof $){case"string":return O3$($,Z);case"object":if($===null)throw new WG(`Unexpected endpoint property: ${$}`);return P3$.getEndpointProperties($,Z);case"boolean":return $;default:throw new WG(`Unexpected endpoint property type: ${typeof $}`)}},P3$={getEndpointProperty:j3$,getEndpointProperties:vp0},A3$=($,Z)=>{let G=Vn($,"Endpoint URL",Z);if(typeof G==="string")try{return new URL(G)}catch(X){throw console.error(`Failed to construct URL with ${G}`,X),X}throw new WG(`Endpoint URL must be a string, got ${typeof G}`)},_p0=1e8,UF6=($,Z)=>{let{nodes:G,root:X,results:Y,conditions:Q}=$,J=X,W={},K={referenceRecord:W,endpointParams:Z.endpointParams,logger:Z.logger};while(J!==1&&J!==-1&&J<_p0){let U=3*(Math.abs(J)-1),[w,F,H]=[G[U],G[U+1],G[U+2]],[N,B,E]=Q[w],D=L3$({fn:N,assign:E,argv:B},K);if(D.toAssign){let{name:L,value:z}=D.toAssign;W[L]=z}J=J>=0===D.result?F:H}if(J>=_p0){let U=Y[J-_p0];if(U[0]===-1){let[,N]=U;throw new WG(Vn(N,"Error",K))}let[w,F,H]=U;return{url:A3$(w,K),properties:vp0(F,K),headers:z3$(H??{},K)}}throw new WG("No matching endpoint.")},yp0=($=[],Z)=>{let G={},X={...Z,referenceRecord:{...Z.referenceRecord}},Y=!1;for(let Q of $){let{result:J,toAssign:W}=L3$(Q,X);if(!J)return{result:J};if(W)Y=!0,G[W.name]=W.value,X.referenceRecord[W.name]=W.value,Z.logger?.debug?.(`${Sn} assign: ${W.name} := ${MN(W.value)}`)}if(Y)return{result:!0,referenceRecord:G};return{result:!0}},wF6=($,Z)=>{let{conditions:G,endpoint:X}=$,{result:Y,referenceRecord:Q}=yp0(G,Z);if(!Y)return;let J=Q?{...Z,referenceRecord:{...Z.referenceRecord,...Q}}:Z,{url:W,properties:K,headers:U}=X;Z.logger?.debug?.(`${Sn} Resolving endpoint from template: ${MN(X)}`);let w={url:A3$(W,J)};if(U!=null)w.headers=z3$(U,J);if(K!=null)w.properties=vp0(K,J);return w},FF6=($,Z)=>{let{conditions:G,error:X}=$,{result:Y,referenceRecord:Q}=yp0(G,Z);if(!Y)return;let J=Q?{...Z,referenceRecord:{...Z.referenceRecord,...Q}}:Z;throw new WG(Vn(X,"Error",J))},T3$=($,Z)=>{for(let G of $)if(G.type==="endpoint"){let X=wF6(G,Z);if(X)return X}else if(G.type==="error")FF6(G,Z);else if(G.type==="tree"){let X=I3$.evaluateTreeRule(G,Z);if(X)return X}else throw new WG(`Unknown endpoint rule: ${G}`);throw new WG("Rules evaluation failed")},HF6=($,Z)=>{let{conditions:G,rules:X}=$,{result:Y,referenceRecord:Q}=yp0(G,Z);if(!Y)return;let J=Q?{...Z,referenceRecord:{...Z.referenceRecord,...Q}}:Z;return I3$.evaluateRules(X,J)},I3$={evaluateRules:T3$,evaluateTreeRule:HF6},NF6=($,Z)=>{let{endpointParams:G,logger:X}=Z,{parameters:Y,rules:Q}=$;Z.logger?.debug?.(`${Sn} Initial EndpointParams: ${MN(G)}`);for(let W in Y){let K=Y[W],U=G[W];if(U==null&&K.default!=null){G[W]=K.default;continue}if(K.required&&U==null)throw new WG(`Missing required parameter: '${W}'`)}let J=T3$(Q,{endpointParams:G,logger:X,referenceRecord:{}});return Z.logger?.debug?.(`${Sn} Resolved endpoint: ${MN(J)}`),J},BF6=($)=>{let{endpoint:Z}=$;if(Z===void 0)$.endpoint=async()=>{throw Error("@smithy/middleware-endpoint: (default endpointRuleSet) endpoint is not set - you must configure an endpoint.")};return $},OF6=W3$(AN0),EF6=tw6(AN0),DF6=U3$(AN0),LF6=pw6(AN0);zF6.BinaryDecisionDiagram=xp0;zF6.EndpointCache=F3$;zF6.EndpointError=WG;zF6.customEndpointFunctions=H3$;zF6.decideEndpoint=UF6;zF6.endpointMiddleware=DF6;zF6.endpointMiddlewareOptions=w3$;zF6.getEndpointFromInstructions=OF6;zF6.getEndpointPlugin=LF6;zF6.isIpAddress=B3$;zF6.resolveEndpoint=NF6;zF6.resolveEndpointConfig=EF6;zF6.resolveEndpointRequiredConfig=BF6;zF6.resolveParams=K3$});var V7=b((zN6)=>{var{createHmac:yF6,createHash:gF6,getRandomValues:hF6}=u0("crypto"),{ReadStream:cF6,lstatSync:uF6,fstatSync:dF6}=u0("fs"),{HttpResponse:lF6}=hW(),{toEndpointV1:mF6}=x5(),{Duplex:iF6,Readable:Cn,Writable:b3$,PassThrough:R3$}=u0("stream"),_3$=($)=>typeof ArrayBuffer==="function"&&$ instanceof ArrayBuffer||Object.prototype.toString.call($)==="[object ArrayBuffer]",Sv=($,Z=0,G=$.byteLength-Z)=>{if(!_3$($))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof $} (${$})`);return Buffer.from($,Z,G)},qN0=($,Z)=>{if(typeof $!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof $} (${$})`);return Z?Buffer.from($,Z):Buffer.from($)},nF6=/^[A-Za-z0-9+/]*={0,2}$/,f3$=($)=>{if($.length*3%4!==0)throw TypeError("Incorrect padding on base64 string.");if(!nF6.exec($))throw TypeError("Invalid base64 string.");let Z=qN0($,"base64");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength)},MN0=($)=>{let Z=qN0($,"utf8");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength/Uint8Array.BYTES_PER_ELEMENT)},mp0=($)=>{let Z;if(typeof $==="string")Z=MN0($);else Z=$;if(typeof Z!=="object"||typeof Z.byteOffset!=="number"||typeof Z.byteLength!=="number")throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return Sv(Z.buffer,Z.byteOffset,Z.byteLength).toString("base64")};function pF6($,Z,G,X){return class Y extends Uint8Array{static fromString(Q,J="utf-8"){if(typeof Q==="string"){if(J==="base64")return Y.mutate(X(Q));return Y.mutate(Z(Q))}throw Error(`Unsupported conversion from ${typeof Q} to Uint8ArrayBlobAdapter.`)}static mutate(Q){return Object.setPrototypeOf(Q,Y.prototype),Q}transformToString(Q="utf-8"){if(Q==="base64")return G(this);return $(this)}}}var x3$=($)=>{if(typeof $==="string")return $;if(typeof $!=="object"||typeof $.byteOffset!=="number"||typeof $.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return Sv($.buffer,$.byteOffset,$.byteLength).toString("utf8")},tG=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function tF6($){if(typeof crypto<"u"&&typeof crypto.randomUUID==="function")return()=>crypto.randomUUID();return()=>{let Z=new Uint8Array(16);return $(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128,tG[Z[0]]+tG[Z[1]]+tG[Z[2]]+tG[Z[3]]+"-"+tG[Z[4]]+tG[Z[5]]+"-"+tG[Z[6]]+tG[Z[7]]+"-"+tG[Z[8]]+tG[Z[9]]+"-"+tG[Z[10]]+tG[Z[11]]+tG[Z[12]]+tG[Z[13]]+tG[Z[14]]+tG[Z[15]]}}var rF6=($,Z,G=(X)=>X)=>$,oF6=($)=>{switch($){case"true":return!0;case"false":return!1;default:throw Error(`Unable to parse boolean value "${$}"`)}},aF6=($)=>{if($===null||$===void 0)return;if(typeof $==="number"){if($===0||$===1)vn.warn(IN0(`Expected boolean, got ${typeof $}: ${$}`));if($===0)return!1;if($===1)return!0}if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="false"||Z==="true")vn.warn(IN0(`Expected boolean, got ${typeof $}: ${$}`));if(Z==="false")return!1;if(Z==="true")return!0}if(typeof $==="boolean")return $;throw TypeError(`Expected boolean, got ${typeof $}: ${$}`)},fn=($)=>{if($===null||$===void 0)return;if(typeof $==="string"){let Z=parseFloat($);if(!Number.isNaN(Z)){if(String(Z)!==String($))vn.warn(IN0(`Expected number but observed string: ${$}`));return Z}}if(typeof $==="number")return $;throw TypeError(`Expected number, got ${typeof $}: ${$}`)},sF6=Math.ceil(340282346638528860000000000000000000000),TN0=($)=>{let Z=fn($);if(Z!==void 0&&!Number.isNaN(Z)&&Z!==1/0&&Z!==-1/0){if(Math.abs(Z)>sF6)throw TypeError(`Expected 32-bit float, got ${$}`)}return Z},xn=($)=>{if($===null||$===void 0)return;if(Number.isInteger($)&&!Number.isNaN($))return $;throw TypeError(`Expected integer, got ${typeof $}: ${$}`)},eF6=xn,cp0=($)=>ip0($,32),up0=($)=>ip0($,16),dp0=($)=>ip0($,8),ip0=($,Z)=>{let G=xn($);if(G!==void 0&&$H6(G,Z)!==G)throw TypeError(`Expected ${Z}-bit integer, got ${$}`);return G},$H6=($,Z)=>{switch(Z){case 32:return Int32Array.of($)[0];case 16:return Int16Array.of($)[0];case 8:return Int8Array.of($)[0]}},ZH6=($,Z)=>{if($===null||$===void 0){if(Z)throw TypeError(`Expected a non-null value for ${Z}`);throw TypeError("Expected a non-null value")}return $},v3$=($)=>{if($===null||$===void 0)return;if(typeof $==="object"&&!Array.isArray($))return $;let Z=Array.isArray($)?"array":typeof $;throw TypeError(`Expected object, got ${Z}: ${$}`)},GH6=($)=>{if($===null||$===void 0)return;if(typeof $==="string")return $;if(["boolean","number","bigint"].includes(typeof $))return vn.warn(IN0(`Expected string, got ${typeof $}: ${$}`)),String($);throw TypeError(`Expected string, got ${typeof $}: ${$}`)},XH6=($)=>{if($===null||$===void 0)return;let Z=v3$($),G=[];for(let X in Z)if(Z[X]!=null)G.push(X);if(G.length===0)throw TypeError("Unions must have exactly one non-null member. None were found.");if(G.length>1)throw TypeError(`Unions must have exactly one non-null member. Keys ${G} were not null.`);return Z},np0=($)=>{if(typeof $=="string")return fn(bv($));return fn($)},YH6=np0,y3$=($)=>{if(typeof $=="string")return TN0(bv($));return TN0($)},QH6=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,bv=($)=>{let Z=$.match(QH6);if(Z===null||Z[0].length!==$.length)throw TypeError("Expected real number, got implicit NaN");return parseFloat($)},pp0=($)=>{if(typeof $=="string")return g3$($);return fn($)},JH6=pp0,WH6=pp0,KH6=($)=>{if(typeof $=="string")return g3$($);return TN0($)},g3$=($)=>{switch($){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw Error(`Unable to parse float value: ${$}`)}},h3$=($)=>{if(typeof $==="string")return xn(bv($));return xn($)},UH6=h3$,wH6=($)=>{if(typeof $==="string")return cp0(bv($));return cp0($)},Vv=($)=>{if(typeof $==="string")return up0(bv($));return up0($)},c3$=($)=>{if(typeof $==="string")return dp0(bv($));return dp0($)},IN0=($)=>{return String(TypeError($).stack||$).split(`
1431
1431
  `).slice(0,5).filter((Z)=>!Z.includes("stackTraceWarning")).join(`
1432
1432
  `)},vn={warn:console.warn},FH6=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],tp0=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function HH6($){let Z=$.getUTCFullYear(),G=$.getUTCMonth(),X=$.getUTCDay(),Y=$.getUTCDate(),Q=$.getUTCHours(),J=$.getUTCMinutes(),W=$.getUTCSeconds(),K=Y<10?`0${Y}`:`${Y}`,U=Q<10?`0${Q}`:`${Q}`,w=J<10?`0${J}`:`${J}`,F=W<10?`0${W}`:`${W}`;return`${FH6[X]}, ${K} ${tp0[G]} ${Z} ${U}:${w}:${F} GMT`}var NH6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/),BH6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=NH6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[G,X,Y,Q,J,W,K,U]=Z,w=Vv(Cv(X)),F=uW(Y,"month",1,12),H=uW(Q,"day",1,31);return bn(w,F,H,{hours:J,minutes:W,seconds:K,fractionalMilliseconds:U})},OH6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/),EH6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=OH6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[G,X,Y,Q,J,W,K,U,w]=Z,F=Vv(Cv(X)),H=uW(Y,"month",1,12),N=uW(Q,"day",1,31),B=bn(F,H,N,{hours:J,minutes:W,seconds:K,fractionalMilliseconds:U});if(w.toUpperCase()!="Z")B.setTime(B.getTime()-SH6(w));return B},DH6=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),LH6=new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),zH6=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/),jH6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-7231 date-times must be expressed as strings");let Z=DH6.exec($);if(Z){let[G,X,Y,Q,J,W,K,U]=Z;return bn(Vv(Cv(Q)),gp0(Y),uW(X,"day",1,31),{hours:J,minutes:W,seconds:K,fractionalMilliseconds:U})}if(Z=LH6.exec($),Z){let[G,X,Y,Q,J,W,K,U]=Z;return IH6(bn(AH6(Q),gp0(Y),uW(X,"day",1,31),{hours:J,minutes:W,seconds:K,fractionalMilliseconds:U}))}if(Z=zH6.exec($),Z){let[G,X,Y,Q,J,W,K,U]=Z;return bn(Vv(Cv(U)),gp0(X),uW(Y.trimLeft(),"day",1,31),{hours:Q,minutes:J,seconds:W,fractionalMilliseconds:K})}throw TypeError("Invalid RFC-7231 date-time value")},PH6=($)=>{if($===null||$===void 0)return;let Z;if(typeof $==="number")Z=$;else if(typeof $==="string")Z=np0($);else if(typeof $==="object"&&$.tag===1)Z=$.value;else throw TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation");if(Number.isNaN(Z)||Z===1/0||Z===-1/0)throw TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics");return new Date(Math.round(Z*1000))},bn=($,Z,G,X)=>{let Y=Z-1;return qH6($,Y,G),new Date(Date.UTC($,Y,G,uW(X.hours,"hour",0,23),uW(X.minutes,"minute",0,59),uW(X.seconds,"seconds",0,60),kH6(X.fractionalMilliseconds)))},AH6=($)=>{let Z=new Date().getUTCFullYear(),G=Math.floor(Z/100)*100+Vv(Cv($));if(G<Z)return G+100;return G},TH6=1576800000000,IH6=($)=>{if($.getTime()-new Date().getTime()>TH6)return new Date(Date.UTC($.getUTCFullYear()-100,$.getUTCMonth(),$.getUTCDate(),$.getUTCHours(),$.getUTCMinutes(),$.getUTCSeconds(),$.getUTCMilliseconds()));return $},gp0=($)=>{let Z=tp0.indexOf($);if(Z<0)throw TypeError(`Invalid month: ${$}`);return Z+1},RH6=[31,28,31,30,31,30,31,31,30,31,30,31],qH6=($,Z,G)=>{let X=RH6[Z];if(Z===1&&MH6($))X=29;if(G>X)throw TypeError(`Invalid day for ${tp0[Z]} in ${$}: ${G}`)},MH6=($)=>{return $%4===0&&($%100!==0||$%400===0)},uW=($,Z,G,X)=>{let Y=c3$(Cv($));if(Y<G||Y>X)throw TypeError(`${Z} must be between ${G} and ${X}, inclusive`);return Y},kH6=($)=>{if($===null||$===void 0)return 0;return y3$("0."+$)*1000},SH6=($)=>{let Z=$[0],G=1;if(Z=="+")G=1;else if(Z=="-")G=-1;else throw TypeError(`Offset direction, ${Z}, must be "+" or "-"`);let X=Number($.substring(1,3)),Y=Number($.substring(4,6));return G*(X*60+Y)*60*1000},Cv=($)=>{let Z=0;while(Z<$.length-1&&$.charAt(Z)==="0")Z++;if(Z===0)return $;return $.slice(Z)},eS=function(Z){return Object.assign(new String(Z),{deserializeJSON(){return JSON.parse(String(Z))},toString(){return String(Z)},toJSON(){return String(Z)}})};eS.from=($)=>{if($&&typeof $==="object"&&($ instanceof eS||("deserializeJSON"in $)))return $;else if(typeof $==="string"||Object.getPrototypeOf($)===String.prototype)return eS(String($));return eS(JSON.stringify($))};eS.fromObject=eS.from;function VH6($){if($.includes(",")||$.includes('"'))$=`"${$.replace(/"/g,"\\\"")}"`;return $}var rp0="(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?",op0="(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)",ap0="(\\d?\\d):(\\d{2}):(\\d{2})(?:\\.(\\d+))?",u3$="(\\d?\\d)",d3$="(\\d{4})",CH6=new RegExp(/^(\d{4})-(\d\d)-(\d\d)[tT](\d\d):(\d\d):(\d\d)(\.(\d+))?(([-+]\d\d:\d\d)|[zZ])$/),bH6=new RegExp(`^${rp0}, ${u3$} ${op0} ${d3$} ${ap0} GMT$`),_H6=new RegExp(`^${rp0}, ${u3$}-${op0}-(\\d\\d) ${ap0} GMT$`),fH6=new RegExp(`^${rp0} ${op0} ( [1-9]|\\d\\d) ${ap0} ${d3$}$`),xH6=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vH6=($)=>{if($==null)return;let Z=NaN;if(typeof $==="number")Z=$;else if(typeof $==="string"){if(!/^-?\d*\.?\d+$/.test($))throw TypeError("parseEpochTimestamp - numeric string invalid.");Z=Number.parseFloat($)}else if(typeof $==="object"&&$.tag===1)Z=$.value;if(isNaN(Z)||Math.abs(Z)===1/0)throw TypeError("Epoch timestamps must be valid finite numbers.");return new Date(Math.round(Z*1000))},yH6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC3339 timestamps must be strings");let Z=CH6.exec($);if(!Z)throw TypeError(`Invalid RFC3339 timestamp format ${$}`);let[,G,X,Y,Q,J,W,,K,U]=Z;Zw(X,1,12),Zw(Y,1,31),Zw(Q,0,23),Zw(J,0,59),Zw(W,0,60);let w=new Date(Date.UTC(Number(G),Number(X)-1,Number(Y),Number(Q),Number(J),Number(W),Number(K)?Math.round(parseFloat(`0.${K}`)*1000):0));if(w.setUTCFullYear(Number(G)),U.toUpperCase()!="Z"){let[,F,H,N]=/([+-])(\d\d):(\d\d)/.exec(U)||[void 0,"+",0,0],B=F==="-"?1:-1;w.setTime(w.getTime()+B*(Number(H)*60*60*1000+Number(N)*60*1000))}return w},gH6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC7231 timestamps must be strings.");let Z,G,X,Y,Q,J,W,K;if(K=bH6.exec($))[,Z,G,X,Y,Q,J,W]=K;else if(K=_H6.exec($))[,Z,G,X,Y,Q,J,W]=K,X=(Number(X)+1900).toString();else if(K=fH6.exec($))[,G,Z,Y,Q,J,W,X]=K;if(X&&J){let U=Date.UTC(Number(X),xH6.indexOf(G),Number(Z),Number(Y),Number(Q),Number(J),W?Math.round(parseFloat(`0.${W}`)*1000):0);Zw(Z,1,31),Zw(Y,0,23),Zw(Q,0,59),Zw(J,0,60);let w=new Date(U);return w.setUTCFullYear(Number(X)),w}throw TypeError(`Invalid RFC7231 date-time value ${$}.`)};function Zw($,Z,G){let X=Number($);if(X<Z||X>G)throw Error(`Value ${X} out of range [${Z}, ${G}]`)}function hH6($,Z,G){if(G<=0||!Number.isInteger(G))throw Error("Invalid number of delimiters ("+G+") for splitEvery.");let X=$.split(Z);if(G===1)return X;let Y=[],Q="";for(let J=0;J<X.length;J++){if(Q==="")Q=X[J];else Q+=Z+X[J];if((J+1)%G===0)Y.push(Q),Q=""}if(Q!=="")Y.push(Q);return Y}var cH6=($)=>{let Z=$.length,G=[],X=!1,Y=void 0,Q=0;for(let J=0;J<Z;++J){let W=$[J];switch(W){case'"':if(Y!=="\\")X=!X;break;case",":if(!X)G.push($.slice(Q,J)),Q=J+1;break}Y=W}return G.push($.slice(Q)),G.map((J)=>{J=J.trim();let W=J.length;if(W<2)return J;if(J[0]==='"'&&J[W-1]==='"')J=J.slice(1,W-1);return J.replace(/\\"/g,'"')})},q3$=/^-?\d*(\.\d+)?$/;class kN0{string;type;constructor($,Z){if(this.string=$,this.type=Z,!q3$.test($))throw Error('@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point ".", and an optional negation prefix "-".')}toString(){return this.string}static[Symbol.hasInstance]($){if(!$||typeof $!=="object")return!1;let Z=$;return kN0.prototype.isPrototypeOf($)||Z.type==="bigDecimal"&&q3$.test(Z.string)}}function uH6($){return new kN0(String($),"bigDecimal")}var l3$={},lp0={};for(let $=0;$<256;$++){let Z=$.toString(16).toLowerCase();if(Z.length===1)Z=`0${Z}`;l3$[$]=Z,lp0[Z]=$}function dH6($){if($.length%2!==0)throw Error("Hex encoded strings must have an even number length");let Z=new Uint8Array($.length/2);for(let G=0;G<$.length;G+=2){let X=$.slice(G,G+2).toLowerCase();if(X in lp0)Z[G/2]=lp0[X];else throw Error(`Cannot decode unrecognized sequence ${X} as hexadecimal`)}return Z}function m3$($){let Z="";for(let G=0;G<$.byteLength;G++)Z+=l3$[$[G]];return Z}var lH6=($)=>{if(!$)return 0;if(typeof $==="string")return Buffer.byteLength($);else if(typeof $.byteLength==="number")return $.byteLength;else if(typeof $.size==="number")return $.size;else if(typeof $.start==="number"&&typeof $.end==="number")return $.end+1-$.start;else if($ instanceof cF6){if($.path!=null)return uF6($.path).size;else if(typeof $.fd==="number")return dF6($.fd).size}throw Error(`Body Length computation failed for ${$}`)},i3$=($)=>{if(typeof $==="string")return MN0($);if(ArrayBuffer.isView($))return new Uint8Array($.buffer,$.byteOffset,$.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array($)},n3$=($,Z)=>(G,X)=>async(Y)=>{let{response:Q}=await G(Y);try{let J=await Z(Q,$);return{response:Q,output:J}}catch(J){if(Object.defineProperty(J,"$response",{value:Q,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in J)){try{J.message+=`
@@ -2416,7 +2416,7 @@ Hint: Configure a valid Google account email in Monitor Configuration > Contexto
2416
2416
  AND "organizationId" NOT IN (
2417
2417
  SELECT "organizationId" FROM "member" WHERE "userId" = ${K.id}
2418
2418
  )
2419
- `.execute(U),await kp`DELETE FROM "member" WHERE "userId" = ${Z.id}`.execute(U),await kp`DELETE FROM "user" WHERE "id" = ${Z.id}`.execute(U)})}catch(U){console.error("[SSO] Failed to merge duplicate user:",U)}}var mv6=($)=>{return{trustEmailVerified:!0,provisionUser:nv6,defaultSSO:[{domain:$.domain,providerId:$.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:$.MS_CLIENT_ID,clientSecret:$.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:$.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified",oid:"oid"}}}}]}},iv6=($)=>{return{trustEmailVerified:!0,defaultSSO:[{domain:$.domain,providerId:$.providerId,oidcConfig:{issuer:"https://accounts.google.com",pkce:!0,clientId:$.GOOGLE_CLIENT_ID,clientSecret:$.GOOGLE_CLIENT_SECRET,discoveryEndpoint:"https://accounts.google.com/.well-known/openid-configuration",authorizationEndpoint:"https://accounts.google.com/o/oauth2/v2/auth",tokenEndpoint:"https://oauth2.googleapis.com/token",jwksEndpoint:"https://www.googleapis.com/oauth2/v3/certs",userInfoEndpoint:"https://openidconnect.googleapis.com/v1/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:$.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified",hd:"hd"}}}}]}},gj$=($)=>{if($.providerId==="microsoft")return mv6($);if($.providerId==="google")return iv6($);throw Error(`Unsupported provider: ${$.providerId}`)};var hj$=O(()=>{DJ()});function na0($){let[Z,G,...X]=$.trim().split("@");if(!Z||!G||X.length>0)return null;return G.toLowerCase()}function pv6($){let Z=$.trim().toLowerCase();return Z.length>0&&!iJ.has(Z)}function pa0($){let Z=na0($.email);return $.emailVerified===!0&&!!Z&&pv6(Z)}function ta0($){return $.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function cj$($){let[Z=""]=$.trim().toLowerCase().split(".");return Z.split(/[^a-z0-9]+/).filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")||"Workspace"}function uj$($){let Z=$.name?.trim().split(/\s+/)[0];if(Z)return Z;let[G]=$.email.trim().split("@");return G||"Workspace"}function pO0($){return $.verificationStatus==="verified"&&$.joinMode!=="off"}var iJ;var tO0=O(()=>{iJ=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","live.com","yahoo.com","yahoo.co.uk","icloud.com","me.com","mac.com","aol.com","protonmail.com","proton.me","zoho.com","yandex.com","mail.com","gmx.com","gmx.net","tutanota.com","fastmail.com"])});import{sql as pj$}from"kysely";async function rO0($){let{db:Z,authApi:G,user:X,allowCreate:Y,createdVia:Q}=$,J=na0(X.email);return Z.transaction().execute(async(W)=>{await pj$`select pg_advisory_xact_lock(hashtext(${`user-org:${X.id}`})::bigint)`.execute(W);let K=await sv6(W,X.id);if(K)return await av6(W,X,J,K),{status:"already_has_organization",organization:K,domain:J};return ov6({db:W,authApi:G,user:X,allowCreate:Y,createdVia:Q,domain:J})})}async function ov6($){let{db:Z,authApi:G,user:X,allowCreate:Y,createdVia:Q,domain:J}=$;if(pa0(X)&&J){let F=await new ZY(Z).getAllByDomain(J),H=await mj$(Z,F);if(H.length===1&&H[0]?.joinMode==="auto"){let z=H[0];return await ij$(G,X.id,z.id),{status:"joined",organization:z,domain:J,createdVia:Q}}if(H.length>0)return{status:"ambiguous",domain:J,organizations:H};if(!Y)return{status:"skipped",reason:"auto-create-disabled",domain:J};await pj$`select pg_advisory_xact_lock(hashtext(${J})::bigint)`.execute(Z);let N=new ZY(Z),B=await N.getAllByDomain(J),E=await mj$(Z,B);if(E.length===1&&E[0]?.joinMode==="auto"){let z=E[0];return await ij$(G,X.id,z.id),{status:"joined",organization:z,domain:J,createdVia:Q}}if(E.length>0)return{status:"ambiguous",domain:J,organizations:E};let D=await nj$(G,{name:cj$(J),baseSlug:ta0(J),userId:X.id});await N.add(D.id,J,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"});let L=await lj$(Z,D.id);if(!L)throw Error("Created organization could not be loaded");return{status:"created",organization:L,domain:J,createdVia:Q}}if(!Y)return{status:"skipped",reason:"auto-create-disabled",domain:J};let W=`${uj$(X)} ${$y6()}`,K=await nj$(G,{name:W,baseSlug:ev6(W),userId:X.id}),U=await lj$(Z,K.id);if(!U)throw Error("Created organization could not be loaded");return{status:"created",organization:U,domain:J,createdVia:Q}}async function av6($,Z,G,X){if(!G||!pa0(Z))return;if(X.slug!==ta0(G))return;let Y=new ZY($);if((await Y.getAllByDomain(G)).length>0)return;await Y.add(X.id,G,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"})}async function sv6($,Z){let X=(await $.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.name as name","organization.slug as slug","organization.logo as logo","organization.metadata as metadata"]).where("member.userId","=",Z).orderBy("member.createdAt","asc").execute()).find((J)=>!L7(J));if(!X)return null;let{metadata:Y,...Q}=X;return Q}function ev6($){return $.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function $y6(){let $=Math.random()<0.5?tv6:rv6;return $[Math.floor(Math.random()*$.length)]}function Zy6($){if($&&typeof $==="object"&&"id"in $&&typeof $.id==="string")return{id:$.id};throw Error("Failed to create organization")}function Gy6($){return $ instanceof Error&&"body"in $&&$.body?.code==="ORGANIZATION_ALREADY_EXISTS"}async function lj$($,Z){return await $.selectFrom("organization").select(["id","name","slug","logo"]).where("id","=",Z).executeTakeFirst()??null}async function mj$($,Z){let G=Z.filter((Q)=>pO0(Q));if(G.length===0)return[];let X=await $.selectFrom("organization").select(["id","name","slug","logo","metadata"]).where("id","in",G.map((Q)=>Q.organizationId)).execute(),Y=new Map(X.map((Q)=>[Q.id,Q]));return G.flatMap((Q)=>{let J=Y.get(Q.organizationId);if(!J)return[];if(L7(J))return[];let{metadata:W,...K}=J;return[{...K,joinMode:Q.joinMode}]})}async function ij$($,Z,G){try{await $.addMember({body:{userId:Z,role:"user",organizationId:G}})}catch(X){if(!(X instanceof Error?X.message.toLowerCase():"").includes("already a member"))throw X}}async function nj$($,Z){for(let G=0;G<dj$;G++){let X=G===0?"":`-${Math.random().toString(36).slice(2,6)}`;try{return Zy6(await $.createOrganization({body:{name:Z.name,slug:`${Z.baseSlug}${X}`,userId:Z.userId}}))}catch(Y){if(!Gy6(Y)||G===dj$-1)throw Y}}throw Error("Failed to create organization")}var dj$=5,tv6,rv6;var ra0=O(()=>{tO0();tv6=["labs","agent","studio","workspace","systems","core","cloud","works"],rv6=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"]});var sj$={};n8(sj$,{resetPasswordEnabled:()=>aO0,authConfig:()=>l8,auth:()=>s6,GENERIC_EMAIL_DOMAINS:()=>iJ});import{sso as Xy6}from"@better-auth/sso";import{organization as Yy6}from"@decocms/better-auth/plugins";import{betterAuth as Qy6}from"better-auth";import{admin as Jy6,apiKey as Wy6,jwt as Ky6,magicLink as Uy6,mcp as wy6,openAPI as Fy6}from"better-auth/plugins";import{emailOTP as Hy6}from"better-auth/plugins/email-otp";import{APIError as Ny6}from"better-auth/api";import{adminAc as By6,defaultRoles as Oy6}from"better-auth/plugins/admin/access";import{defaultStatements as Ey6}from"@decocms/better-auth/plugins/organization/access";import{createAccessControl as Dy6}from"@decocms/better-auth/plugins/access";function Ry6(){let $=[Sp];try{let Z=new URL(Sp);if(Z.hostname==="localhost")$.push(Sp.replace("localhost","127.0.0.1"));else if(Z.hostname==="127.0.0.1")$.push(Sp.replace("127.0.0.1","localhost"))}catch{}return $}var oj$,Ly6,oO0,aa0,zy6,jy6,Py6,tj$,l8,aj$=void 0,oa0=void 0,aO0=!1,Ay6,Ty6,Iy6,Sp,rj$,qy6=262144,s6;var kU=O(()=>{y8();Y_();Mb0();f4();m7();DJ();g_1();Eu();c_1();fj$();vj$();yj$();XW();xv0();hj$();tO0();ra0();oj$=Object.values(TO()).map(($)=>$.map((Z)=>Z.name)).flat(),Ly6={...Ey6,self:["*",...oj$]},oO0=Dy6(Ly6),aa0=fv0(oj$),zy6=oO0.newRole(aa0.user),jy6=oO0.newRole(aa0.admin),Py6=oO0.newRole(aa0.owner),tj$=Object.values(TO()).map(($)=>$.map((Z)=>`self:${Z.name}`)).flat(),l8=IO().auth;if(l8.inviteEmailProviderId&&l8.emailProviders&&l8.emailProviders.length>0){let $=ZU(l8.emailProviders,l8.inviteEmailProviderId);if($){let Z=$U($);aj$=async(G)=>{let X=G.inviter.user?.name||G.inviter.user?.email,Y=`${OZ()}/auth/accept-invitation?invitationId=${G.invitation.id}&redirectTo=/${G.organization.slug}`;await Z({to:G.email,subject:`You've been invited to join ${G.organization.name}`,html:GU({preheader:`${X} has invited you to join ${G.organization.name} on deco Studio.`,heading:"You've been invited",subheading:`<strong>${X}</strong> has invited you to join <strong>${G.organization.name}</strong> on deco Studio.`,body:SO("Accept invitation",Y),footnote:"If you weren\u2019t expecting an invitation, you can safely ignore this email."})})}}}if(l8.resetPasswordEmailProviderId&&l8.emailProviders&&l8.emailProviders.length>0){let $=ZU(l8.emailProviders,l8.resetPasswordEmailProviderId);if($){let Z=$U($);aO0=!0,oa0=async({user:G,url:X})=>{await Z({to:G.email,subject:"Reset your password",html:GU({preheader:"We received a request to reset the password on your deco Studio account.",heading:"Reset your password",subheading:"We received a password reset request for your account. Click the button below to choose a new password.",body:SO("Reset password",X)+S10("This link expires in 24\xA0hours. If you didn\u2019t request a password reset, no action is needed.",!0),footnote:"If you didn\u2019t request a password reset, you can safely ignore this email."})})}}}Ay6=[Yy6({organizationCreation:{afterCreate:async($)=>{await _j$($.organization.id,$.member.userId)}},organizationHooks:{beforeUpdateOrganization:async({organization:$,member:Z})=>{let G=$.logo;if(typeof G!=="string"||!G.startsWith("data:"))return;let X=await xj$(Z.organizationId,G);if(X===G)return;return{data:{...$,logo:X}}}},ac:oO0,creatorRole:"owner",allowUserToCreateOrganization:!0,dynamicAccessControl:{enabled:!0,maximumRolesPerOrganization:500,enableCustomResources:!0,allowedRolesToCreateResources:sY,resourceNameValidation:($)=>{return{valid:/^[a-zA-Z0-9-_]+$/.test($)}}},roles:{user:zy6,admin:jy6,owner:Py6},sendInvitationEmail:aj$}),wy6({loginPage:"/login",oidcConfig:{scopes:tj$,metadata:{scopes_supported:tj$},loginPage:"/login"}}),Wy6({enableMetadata:!0,maximumNameLength:64,keyExpiration:{minExpiresIn:0.003472222222222222},enableSessionForAPIKeys:!0,customAPIKeyGetter:($)=>{if($.headers?.get("X-MCP-Session-Auth")==="true")return null;let G=$.headers?.get("Authorization");if(G?.startsWith("Bearer "))return G.replace("Bearer ","").trim();return null},rateLimit:{enabled:!1}}),Jy6({defaultRole:"user",adminRoles:["admin","owner"],roles:{...Oy6,owner:By6}}),Fy6(),Ky6({jwt:{expirationTime:"5m",definePayload:({user:$})=>({id:$.id,email:$.email,name:$.name,role:$.role})}}),Xy6(l8.ssoConfig?gj$(l8.ssoConfig):void 0),...l8.magicLinkConfig?.enabled&&l8.emailProviders&&l8.emailProviders.length>0?[Uy6(h_1(l8.magicLinkConfig,l8.emailProviders))]:[],...l8.emailOtpConfig?.enabled&&l8.emailProviders&&l8.emailProviders.length>0?[Hy6(y_1(l8.emailOtpConfig,l8.emailProviders))]:[]],Ty6=Ou(),Iy6=f_1(Ty6),Sp=OZ();rj$=z1(),s6=Qy6({secret:rj$.betterAuthSecret||"deco-default-secret-k7x9m2p4q8w3n5v6",logger:{log:($,Z,...G)=>{if($==="error"&&Z.includes("validate API key"))return;if($==="error"&&G.some((Y)=>{let Q=Y?.statusCode;return typeof Q==="number"&&Q>=300&&Q<400}))return;let X=`${new Date().toISOString()} ${$.toUpperCase()} [Better Auth]: ${Z}`;if($==="error")console.error(X,...G);else if($==="warn")console.warn(X,...G);else console.log(X,...G)}},baseURL:Sp,trustedOrigins:Ry6(),database:Iy6,socialProviders:l8.socialProviders,...l8.ssoConfig&&{account:{accountLinking:{trustedProviders:[l8.ssoConfig.providerId]}}},emailAndPassword:{enabled:l8.emailAndPassword.enabled,...oa0&&{sendResetPassword:oa0}},rateLimit:{enabled:!rj$.disableRateLimit,window:60,max:1e4},plugins:Ay6,databaseHooks:{user:{create:{after:async($)=>{ia0({id:$.id,email:$.email,name:$.name??null,emailVerified:!!$.emailVerified}),p1.capture({distinctId:$.id,event:"user_signed_up",properties:{email:$.email,email_domain:$.email?.split("@")[1]?.toLowerCase()??null,email_verified:!!$.emailVerified,has_name:!!$.name}});let Z=IO().autoCreateOrganizationOnSignup!==!1;try{let G=await rO0({db:h6().db,authApi:s6.api,user:{id:$.id,email:$.email,name:$.name??null,emailVerified:!!$.emailVerified},allowCreate:Z,createdVia:"signup"});if(G.status==="created")p1.groupIdentify({groupType:"organization",groupKey:G.organization.id,properties:{name:G.organization.name,slug:G.organization.slug,created_at:new Date().toISOString(),created_via:G.createdVia,email_domain:G.domain}}),p1.capture({distinctId:$.id,event:"organization_created",groups:{organization:G.organization.id},properties:{organization_id:G.organization.id,organization_slug:G.organization.slug,name:G.organization.name,created_via:G.createdVia,email_domain:G.domain}});if(G.status==="joined")p1.capture({distinctId:$.id,event:"organization_domain_joined",groups:{organization:G.organization.id},properties:{organization_id:G.organization.id,organization_slug:G.organization.slug,email_domain:G.domain,joined_via:G.createdVia}})}catch(G){p1.captureException(G,$.id),console.error("Failed to ensure organization on signup:",G)}}},update:{before:async($)=>{let Z=$.image;if(typeof Z==="string"&&Z.startsWith("data:")&&Z.length>qy6)throw new Ny6("PAYLOAD_TOO_LARGE",{message:"Avatar image is too large. Upload an image smaller than 5MB."})}}},session:{create:{after:async($)=>{let Z=await h6().db.selectFrom("user").select(["id","email","name","emailVerified"]).where("id","=",$.userId).executeTakeFirst();if(!Z)return;ia0({id:Z.id,email:Z.email,name:Z.name??null,emailVerified:!!Z.emailVerified})}}}}})});function sa0($,Z){return`${$}:${Z}`}function ej$($){let Z=$?.ttlMs??120000,G=$?.maxSize??1e4,X=new Map;function Y(){if(X.size<=G)return;let Q=Date.now();for(let[J,W]of X)if(W.expiresAt<=Q)X.delete(J);if(X.size>G){let J=X.size-G,W=0;for(let K of X.keys()){if(W>=J)break;X.delete(K),W++}}}return{get(Q,J){let W=sa0(Q,J),K=X.get(W);if(!K)return;if(K.expiresAt<=Date.now()){X.delete(W);return}return K.role},set(Q,J,W){let K=sa0(Q,J);X.set(K,{role:W,expiresAt:Date.now()+Z,organizationId:J}),Y()},invalidate(Q,J){X.delete(sa0(Q,J))},invalidateOrg(Q){for(let[J,W]of X)if(W.organizationId===Q)X.delete(J)}}}class ea0{options;sub=null;localEmit=null;originId=crypto.randomUUID();encoder=new TextEncoder;constructor($){this.options=$}async start($){if($)this.localEmit=$;if(this.sub)return;if(!this.localEmit)return;let Z=this.options.getConnection();if(!Z)return;this.sub=Z.subscribe("mesh.sse.broadcast");let G=new TextDecoder;(async()=>{for await(let X of this.sub)try{let Y=JSON.parse(G.decode(X.data));if(typeof Y?.originId!=="string"||typeof Y?.organizationId!=="string"||typeof Y?.event?.id!=="string"||typeof Y?.event?.type!=="string")continue;if(Y.originId===this.originId)continue;this.localEmit?.(Y.organizationId,Y.event)}catch{}})().catch((X)=>{console.error("[NatsSSEBroadcast] Subscription error:",X)})}broadcast($,Z){this.localEmit?.($,Z);let G={originId:this.originId,organizationId:$,event:Z};try{let X=this.options.getConnection();if(!X)return;X.publish("mesh.sse.broadcast",this.encoder.encode(JSON.stringify(G)))}catch(X){console.warn("[NatsSSEBroadcast] Publish failed (non-critical):",X)}}async stop(){this.sub?.unsubscribe(),this.sub=null,this.localEmit=null}}class GP${listeners=new Map;totalCount=0;strategy=null;started=!1;async start($){if(this.started){if(!$)return;await this.stop()}this.strategy=$,await this.strategy.start((Z,G)=>this.localEmit(Z,G)),this.started=!0}async stop(){if(!this.started||!this.strategy)return;await this.strategy.stop(),this.started=!1}add($){if(this.totalCount>=ZP$)return console.warn(`[SSEHub] Total connection limit reached (${ZP$})`),null;let Z=this.listeners.get($.organizationId);if(!Z)Z=new Map,this.listeners.set($.organizationId,Z);if(Z.size>=$P$)return console.warn(`[SSEHub] Per-org connection limit reached for ${$.organizationId} (${$P$})`),null;return Z.set($.id,$),this.totalCount++,$.id}remove($,Z){let G=this.listeners.get($);if(!G)return;if(G.delete(Z)){if(this.totalCount--,G.size===0)this.listeners.delete($)}}emit($,Z){if(this.strategy)this.strategy.broadcast($,Z);else this.localEmit($,Z)}countForOrg($){return this.listeners.get($)?.size??0}get count(){return this.totalCount}localEmit($,Z){let G=this.listeners.get($);if(!G||G.size===0)return;for(let X of G.values()){if(X.typePatterns&&!My6(Z.type,X.typePatterns))continue;try{X.push(Z)}catch{this.remove($,X.id)}}}}function My6($,Z){for(let G of Z){if(G===$)return!0;if(G.endsWith(".*")){let X=G.slice(0,-1);if($.startsWith(X))return!0}}return!1}var $P$=50,ZP$=500,YZ;var $s0=O(()=>{H5();YZ=new GP$;L8.createObservableGauge("sse_hub.connections",{description:"Active SSE listeners held by this pod",unit:"{connections}"}).addCallback(($)=>$.observe(YZ.count))});async function ky6($,Z,G=5){try{await eN(Z,{maxAttempts:G,minTimeout:1000,maxTimeout:1e4,jitter:0})}catch(X){console.error(`${$} Deferred start failed:`,X instanceof KK?X.cause:X)}}function XP$($){let Z=new ea0({getConnection:()=>$.getConnection()});YZ.start(Z).catch((G)=>{console.error("[SSEHub] Failed to start broadcast strategy:",G)}),$.onReady(()=>{ky6("[NatsSSEBroadcast]",()=>Z.start())})}var Zs0=O(()=>{f7();$s0();$s0()});var YP$=()=>{};var Gs0=()=>{};var QP$=()=>{};var Sy6,Xc9;var JP$=O(()=>{YP$();Gs0();RF();QP$();Sy6={br:".br",zstd:".zst",gzip:".gz"},Xc9=Object.keys(Sy6)});var WP$=O(()=>{JP$()});var KP$=()=>{};var UP$=O(()=>{KP$()});var wP$=()=>{};var FP$=O(()=>{Nb0()});var Xs0=O(()=>{qF();FP$()});var Ys0="x-hono-disable-ssg",Ac9;var Qs0=O(()=>{Xs0();Ac9=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Ys0]:"true"}})}catch{return null}})()});var HP$=O(()=>{s00()});var Js0=O(()=>{HP$()});var NP$=O(()=>{UP$();wP$();Gs0();Qs0();Js0();Xs0()});var BP$=O(()=>{Qs0();Js0();NP$()});var Yu9;var OP$=O(()=>{BP$();({write:Yu9}=Bun)});var by6=class{#$;constructor($){this.#$=$,this.raw=$.raw,this.url=$.url?new URL($.url):null,this.protocol=$.protocol??null}send($,Z){this.#$.send($,Z??{})}raw;binaryType="arraybuffer";get readyState(){return this.#$.readyState}url;protocol;close($,Z){this.#$.close($,Z)}},EP$=($)=>{return(...Z)=>{if(typeof Z[0]==="function"){let[G,X]=Z;return async function(Q,J){let W=await G(Q),K=await $(Q,W,X);if(K)return K;await J()}}else{let[G,X,Y]=Z;return(async()=>{let Q=await $(G,X,Y);if(!Q)throw Error("Failed to upgrade WebSocket");return Q})()}}};var DP$=()=>{};var Vp=($)=>("server"in $.env)?$.env.server:$.env;var sO0=()=>{};var _y6;var LP$=O(()=>{DP$();sO0();_y6=EP$(($,Z)=>{let G=Vp($);if(!G)throw TypeError("env has to include the 2nd argument of fetch.");if(G.upgrade($.req.raw,{data:{events:Z,url:new URL($.req.url),protocol:$.req.url}}))return new Response(null);return})});var Ws0=($)=>{let Z=Vp($);if(!Z)throw TypeError("env has to include the 2nd argument of fetch.");if(typeof Z.requestIP!=="function")throw TypeError("server.requestIP is not a function.");let G=Z.requestIP($.req.raw);if(!G)return{remote:{}};return{remote:{address:G.address,addressType:G.family==="IPv6"||G.family==="IPv4"?G.family:void 0,port:G.port}}};var zP$=O(()=>{sO0()});var jP$=O(()=>{WP$();OP$();LP$();zP$();sO0()});var PP$;var AP$=O(()=>{PP$={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/decocms/e02ce92e-6684-41a6-acfc-432977eb4878/github.png"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});function TP$(){let $=Object.keys(l8.socialProviders??{}),Z=$.length>0,G=$.map((Y)=>({name:Y,icon:PP$[Y].icon})),X=z1().localMode;return{emailAndPassword:{enabled:l8.emailAndPassword?.enabled??!1},magicLink:{enabled:l8.magicLinkConfig?.enabled??!1},emailOtp:{enabled:l8.emailOtpConfig?.enabled??!1},resetPassword:{enabled:aO0},socialProviders:{enabled:Z,providers:G},sso:l8.ssoConfig?{enabled:!0,providerId:l8.ssoConfig.providerId}:{enabled:!1},stdioEnabled:X,localMode:zQ()}}async function fy6($,Z,G){try{if(!l8.inviteEmailProviderId||!l8.emailProviders||l8.emailProviders.length===0)return;let X=ZU(l8.emailProviders,l8.inviteEmailProviderId);if(!X)return;let Y=await $.selectFrom("member").innerJoin("user","user.id","member.userId").select(["user.email as email","member.role as role"]).where("member.organizationId","=",Z.id).execute(),Q=sY,J=Y.filter((U)=>(U.role??"").split(",").map((w)=>w.trim()).some((w)=>Q.includes(w)));if(J.length===0)return;let W=$U(X),K=`${OZ()}/${Z.slug}/settings/members`;await Promise.allSettled(J.map((U)=>W({to:U.email,subject:`New request to join ${Z.name}`,html:GU({preheader:`${G} requested to join ${Z.name}.`,heading:"New join request",subheading:`<strong>${G}</strong> requested to join <strong>${Z.name}</strong> on deco Studio.`,body:SO("Review request",K),footnote:"You can approve or deny this request from your members settings."})})))}catch(X){console.error("[Auth] Failed to notify admins of join request:",X)}}var Ww,IP$;var Ks0=O(()=>{g6();jP$();f4();y8();kU();DJ();ra0();Yu0();tO0();Eu();XW();m7();Nv0();AP$();jN();Y_();Ww=new x1;Ww.post("/local-session",async($)=>{if(!zQ())return $.json({success:!1,error:"Local mode is not active"},403);let Z;try{Z=Ws0($).remote.address}catch{}if(!(Z==="127.0.0.1"||Z==="::1"||Z==="::ffff:127.0.0.1"))return $.json({success:!1,error:"Forbidden"},403);try{let{waitForSeed:X}=await Promise.resolve().then(() => (jN(),TH0));await X();let{auth:Y}=await Promise.resolve().then(() => (kU(),sj$)),Q=await Wn();if(!Q)return $.json({success:!1,error:"Local admin user not found"},500);let J=await AH0();return await Y.api.signInEmail({body:{email:Q.email,password:J},asResponse:!0})}catch(X){return console.error("Failed to create local session:",X),$.json({success:!1,error:X instanceof Error?X.message:"Failed to create local session"},500)}});Ww.get("/my-capabilities/:slug",async($)=>{let Z=$.req.param("slug"),G=await s6.api.getSession({headers:$.req.raw.headers});if(!G?.user)return $.json({error:"Authentication required"},401);let X=h6().db,Y=await X.selectFrom("organization").select(["id"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({role:null,capabilities:{}});let J=(await X.selectFrom("member").select(["role"]).where("userId","=",G.user.id).where("organizationId","=",Y.id).executeTakeFirst())?.role??null;if(!J)return $.json({role:null,capabilities:{}});if(J==="owner"||J==="admin")return $.json({role:J,capabilities:OC1()});if(J==="user")return $.json({role:J,capabilities:Ib0({self:[...K10]})});let W=await X.selectFrom("organizationRole").select(["permission"]).where("role","=",J).where("organizationId","=",Y.id).executeTakeFirst(),K={},U=W?.permission;if(typeof U==="string")try{let w=JSON.parse(U);if(w&&typeof w==="object"&&!Array.isArray(w))K=w}catch{K={}}return $.json({role:J,capabilities:Ib0(K)})});Ww.get("/domain-lookup",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({found:!1,organizations:[]});let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({found:!1,organizations:[]});try{let Y=(await new ZY(h6().db).getAllByDomain(G)).filter(pO0);if(Y.length===0)return $.json({found:!1,organizations:[]});let Q=await h6().db.selectFrom("organization").select(["id","name","slug","logo","metadata"]).where("id","in",Y.map((K)=>K.organizationId)).execute(),J=new Map(Q.map((K)=>[K.id,K])),W=Y.map((K)=>{let U=J.get(K.organizationId);if(!U)return null;if(L7(U))return null;return{id:U.id,name:U.name,slug:U.slug,logo:U.logo,joinMode:K.joinMode}}).filter((K)=>K!==null);return $.json({found:W.length>0,organizations:W})}catch(X){return console.error("[Auth] Domain lookup failed:",X),$.json({success:!1,error:"Domain lookup failed"},500)}});Ww.post("/domain-join",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to join"},403);let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({success:!1,error:"Generic email domains cannot auto-join"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;try{let Q=h6().db,K=(await new ZY(Q).getAllByDomain(G)).filter((N)=>N.verificationStatus==="verified"&&N.joinMode==="auto");if(K.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let U=await Q.selectFrom("organization").select(["id","slug","metadata"]).where("id","in",K.map((N)=>N.organizationId)).execute(),w=new Map(U.filter((N)=>!L7(N)).map((N)=>[N.id,{id:N.id,slug:N.slug}])),F=K.flatMap((N)=>{let B=w.get(N.organizationId);return B?[B]:[]});if(F.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let H;if(Y){let N=F.find((B)=>B.slug===Y);if(!N)return $.json({success:!1,error:"This organization is not available for auto-join with your email domain."},403);H=N}else if(F.length===1)H=F[0];else return $.json({success:!1,error:"Multiple organizations match this domain. Please pick one.",requiresSelection:!0},409);try{await s6.api.addMember({body:{userId:Z.user.id,role:"user",organizationId:H.id}})}catch(N){if(!(N instanceof Error?N.message.toLowerCase():"").includes("already a member"))return console.error("[Auth] Domain join addMember failed:",N),$.json({success:!1,error:"Failed to join organization"},500)}return p1.capture({distinctId:Z.user.id,event:"organization_domain_joined",groups:{organization:H.id},properties:{organization_id:H.id,organization_slug:H.slug,email_domain:G}}),$.json({success:!0,slug:H.slug})}catch(Q){return p1.captureException(Q,Z.user.id),console.error("[Auth] Domain join failed:",Q),$.json({success:!1,error:"Failed to join organization"},500)}});Ww.post("/domain-setup",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified"},403);let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({success:!1,error:"Corporate email required"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.name==="string"&&X.name.trim().length>0?X.name.trim():null,Q=typeof X.logo==="string"&&X.logo.length>0?X.logo:null,J=X.claimDomain!==!1;try{let W=h6().db,K=new ZY(W),U=await K.getAllByDomain(G);if(U.length>0){let j=await W.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.slug"]).where("member.userId","=",Z.user.id).where("member.organizationId","in",U.map((P)=>P.organizationId)).executeTakeFirst();if(j)return $.json({success:!0,slug:j.slug,alreadyExists:!0})}let w=G.split(".")[0]??G,F=Y??w.charAt(0).toUpperCase()+w.slice(1),H=(Y??w).toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")||w.toLowerCase().replace(/[^a-z0-9-]/g,""),N=null;for(let P=0;P<3;P++){let A=P===0?"":`-${Math.random().toString(36).slice(2,6)}`,M=P===0?F:`${F}${A}`,S=`${H}${A}`;try{N=await s6.api.createOrganization({body:{name:M,slug:S,userId:Z.user.id}});break}catch(q){if(!(q instanceof Error&&("body"in q)&&q.body?.code==="ORGANIZATION_ALREADY_EXISTS")||P===2)throw q}}if(!N?.id)throw Error("Failed to create organization");let B=N.id;if(J)await K.add(B,G,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"});let E=!1,D=null,L=null;try{let j=z1().firecrawlApiKey;if(j){let P=await k40(G,j,F);if(P){let A=new Gl(h6().db),M=await A.create(B,P);if(await A.setDefault(M.id,B),E=!0,P.name&&P.name!==F)D=P.name;L=P.favicon??P.logo??null}}}catch(j){console.error("[Auth] Brand extraction failed (non-fatal):",j)}let z={};if(!Y&&D)z.name=D;if(Q)z.logo=Q;else if(L)z.logo=L;if(Object.keys(z).length>0)try{await s6.api.updateOrganization({headers:$.req.raw.headers,body:{organizationId:B,data:z}})}catch(j){console.error("[Auth] Org update failed (non-fatal):",j)}return p1.identify({distinctId:Z.user.id,properties:{email:Z.user.email,$set:{email:Z.user.email},$set_once:{first_organization_created_at:new Date().toISOString()}}}),p1.groupIdentify({groupType:"organization",groupKey:B,properties:{name:N.slug??H,slug:N.slug??H,email_domain:G,brand_extracted:E,created_at:new Date().toISOString()}}),p1.capture({distinctId:Z.user.id,event:"organization_created",groups:{organization:B},properties:{organization_id:B,organization_slug:N.slug??H,email_domain:G,brand_extracted:E}}),$.json({success:!0,slug:N.slug??H,brandExtracted:E})}catch(W){return p1.captureException(W,Z.user?.id),console.error("[Auth] Domain setup failed:",W),$.json({success:!1,error:"Failed to set up organization"},500)}});Ww.get("/org-access-status/:slug",async($)=>{let Z=$.req.param("slug"),G=await s6.api.getSession({headers:$.req.raw.headers});if(!G?.user)return $.json({success:!1,error:"Authentication required"},401);let X=h6().db,Y=await X.selectFrom("organization").select(["id","name","slug","logo"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({status:"not-found"});let Q={id:Y.id,name:Y.name,slug:Y.slug,logo:Y.logo};if(await X.selectFrom("member").select(["id"]).where("userId","=",G.user.id).where("organizationId","=",Y.id).executeTakeFirst())return $.json({status:"member",organization:Q});try{let W=await s6.api.listUserInvitations({headers:$.req.raw.headers}),K=Date.now(),U=W.find((w)=>w.organizationId===Y.id&&w.status==="pending"&&new Date(w.expiresAt).getTime()>K);if(U)return $.json({status:"pending-invite",invitation:{id:U.id},organization:Q})}catch(W){console.error("[Auth] listUserInvitations failed:",W)}if(G.user.emailVerified){let W=G.user.email?.split("@")[1]?.toLowerCase();if(W&&!iJ.has(W)){let K=await new ZY(X).getByOrgAndDomain(Y.id,W);if(K?.verificationStatus==="verified"){if(K.joinMode==="auto")return $.json({status:"auto-domain-join",organization:{...Q,domain:W}});if(K.joinMode==="request"){let U=await new Tf(X).getPending(Y.id,G.user.id);return $.json({status:U?"request-pending":"can-request",organization:{...Q,domain:W}})}}}}return $.json({status:"no-access",organization:Q})});Ww.post("/domain-request-join",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to request access"},403);let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({success:!1,error:"Generic email domains cannot request access"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;if(!Y)return $.json({success:!1,error:"organizationSlug is required"},400);try{let Q=h6().db,J=await Q.selectFrom("organization").select(["id","slug","name"]).where("slug","=",Y).executeTakeFirst();if(!J)return $.json({success:!1,error:"Organization not found"},404);let W=await new ZY(Q).getByOrgAndDomain(J.id,G);if(!W||W.verificationStatus!=="verified"||W.joinMode!=="request")return $.json({success:!1,error:"This organization is not accepting requests for your domain."},403);if(await Q.selectFrom("member").select(["id"]).where("userId","=",Z.user.id).where("organizationId","=",J.id).executeTakeFirst())return $.json({success:!0,slug:J.slug,alreadyMember:!0});return await new Tf(Q).create(J.id,Z.user.id),await fy6(Q,J,Z.user.email),p1.capture({distinctId:Z.user.id,event:"organization_join_requested",groups:{organization:J.id},properties:{organization_id:J.id,organization_slug:J.slug,email_domain:G}}),$.json({success:!0,status:"pending"})}catch(Q){return p1.captureException(Q,Z.user.id),console.error("[Auth] Domain request-join failed:",Q),$.json({success:!1,error:"Failed to request access"},500)}});Ww.post("/ensure-organization",async($)=>{let Z=null;try{if(Z=await s6.api.getSession({headers:$.req.raw.headers}),!Z?.user)return $.json({success:!1,error:"Authentication required"},401);let G=await rO0({db:h6().db,authApi:s6.api,user:{id:Z.user.id,email:Z.user.email,name:Z.user.name??null,emailVerified:!!Z.user.emailVerified},allowCreate:!0,createdVia:"commerce_onboarding_recovery"});if(G.status==="ambiguous")return $.json({success:!1,status:G.status,domain:G.domain,organizations:G.organizations});if(G.status==="skipped")return $.json({success:!1,status:G.status,reason:G.reason,domain:G.domain,error:"Organization creation is not available."},409);if(G.status==="already_has_organization")return $.json({success:!0,status:G.status,organization:G.organization,domain:G.domain});return $.json({success:!0,status:G.status,organization:G.organization,domain:G.domain})}catch(G){let X=Z?.user?.id;if(X)p1.captureException(G,X);return console.error("[Auth] ensure organization failed:",G),$.json({success:!1,error:"Failed to ensure organization"},500)}});IP$=Ww});import*as $E0 from"jose";function xy6($){$.get("/status",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!await ws0(G,G.auth.user.id,X))return Z.json({error:"Not a member of this organization"},403);let Q=await G.storage.orgSsoConfig.getByOrgId(X);if(!Q||!Q.enforced)return Z.json({ssoRequired:!1});let J=await G.storage.orgSsoSessions.isValid(G.auth.user.id,X);return Z.json({ssoRequired:!0,authenticated:J,issuer:Q.issuer,domain:Q.domain})}),$.get("/authorize",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!await ws0(G,G.auth.user.id,X))return Z.json({error:"Not a member of this organization"},403);let Q=await G.storage.orgSsoConfig.getByOrgId(X);if(!Q)return Z.json({error:"SSO not configured for this organization"},404);let J=await Us0(Q.issuer,Q.discoveryEndpoint),W=vy6(),K=await yy6(W),U=crypto.randomUUID(),w=JSON.stringify({state:U,codeVerifier:W,orgId:X,userId:G.auth.user.id});Xu(Z,"org_sso_state",w,{httpOnly:!0,secure:!0,sameSite:"Lax",path:"/api/org-sso/callback",maxAge:600});let F=new URLSearchParams({response_type:"code",client_id:Q.clientId,redirect_uri:`${G.baseUrl}/api/org-sso/callback`,scope:Q.scopes.join(" "),state:U,code_challenge:K,code_challenge_method:"S256"}),H=`${J.authorization_endpoint}?${F.toString()}`;return Z.redirect(H)}),$.get("/callback",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.query("code"),Y=Z.req.query("state"),Q=Z.req.query("error");if(Q)return Z.redirect(`/?sso_error=${encodeURIComponent(Q)}`);if(!X||!Y)return Z.redirect("/?sso_error=missing_code_or_state");let J=X_(Z,"org_sso_state");if(!J)return Z.redirect("/?sso_error=state_expired");Xu(Z,"org_sso_state","",{httpOnly:!0,secure:!0,sameSite:"Lax",path:"/api/org-sso/callback",maxAge:0});let W;try{W=JSON.parse(J)}catch{return Z.redirect("/?sso_error=invalid_state")}if(W.state!==Y)return Z.redirect("/?sso_error=state_mismatch");if(!G.auth.user||G.auth.user.id!==W.userId)return Z.redirect("/?sso_error=session_expired");let K=await G.storage.orgSsoConfig.getByOrgId(W.orgId);if(!K)return Z.redirect("/?sso_error=sso_not_configured");let U=await Us0(K.issuer,K.discoveryEndpoint),w=await fetch(U.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:X,redirect_uri:`${G.baseUrl}/api/org-sso/callback`,client_id:K.clientId,client_secret:K.clientSecret,code_verifier:W.codeVerifier})});if(!w.ok)return console.error("[org-sso] Token exchange failed:",await w.text()),Z.redirect("/?sso_error=token_exchange_failed");let F=await w.json();if(!F.id_token)return Z.redirect("/?sso_error=no_id_token");try{let B=$E0.createRemoteJWKSet(new URL(U.jwks_uri)),{payload:E}=await $E0.jwtVerify(F.id_token,B,{issuer:K.issuer,audience:K.clientId}),D=E.email?.toLowerCase(),L=G.auth.user.email?.toLowerCase();if(!D||D!==L)return console.error(`[org-sso] Email mismatch: token=${D}, user=${L}`),Z.redirect("/?sso_error=email_mismatch")}catch(B){return console.error("[org-sso] ID token verification failed:",B),Z.redirect("/?sso_error=token_verification_failed")}let H=await ws0(G,G.auth.user.id,W.orgId);if(!H)return Z.redirect("/?sso_error=not_a_member");await G.storage.orgSsoSessions.upsert(G.auth.user.id,W.orgId);let N=H.orgSlug?`/${H.orgSlug}`:"/";return Z.redirect(N)}),$.get("/config",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!gy6(G))return Z.json({error:"Admin role required"},403);let Y=await G.storage.orgSsoConfig.getByOrgId(X);if(!Y)return Z.json({configured:!1});return Z.json({configured:!0,config:G.storage.orgSsoConfig.toPublic(Y)})}),$.post("/config",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!Fs0(G))return Z.json({error:"Owner role required"},403);let Y=await Z.req.json();if(!Y.issuer||!Y.clientId||!Y.domain)return Z.json({error:"issuer, clientId, and domain are required"},400);let Q=await G.storage.orgSsoConfig.getByOrgId(X);if(!Q&&!Y.clientSecret)return Z.json({error:"clientSecret is required for initial SSO setup"},400);let J=Y.clientSecret||Q?.clientSecret||"";try{await Us0(Y.issuer,Y.discoveryEndpoint)}catch(K){return Z.json({error:"Failed to reach OIDC discovery endpoint",details:K instanceof Error?K.message:String(K)},400)}let W=await G.storage.orgSsoConfig.upsert(X,{issuer:Y.issuer,clientId:Y.clientId,clientSecret:J,discoveryEndpoint:Y.discoveryEndpoint,scopes:Y.scopes,domain:Y.domain,enforced:Y.enforced});return Z.json({success:!0,config:G.storage.orgSsoConfig.toPublic(W)})}),$.post("/config/enforce",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!Fs0(G))return Z.json({error:"Owner role required"},403);let Y=await Z.req.json();if(!await G.storage.orgSsoConfig.getByOrgId(X))return Z.json({error:"SSO must be configured before enforcing"},400);return await G.storage.orgSsoConfig.setEnforced(X,Y.enforced),Z.json({success:!0,enforced:Y.enforced})}),$.delete("/config",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!Fs0(G))return Z.json({error:"Owner role required"},403);return await G.storage.orgSsoConfig.delete(X),Z.json({success:!0})})}function eO0($){let Z;try{Z=new URL($)}catch{throw Error(`Invalid URL: ${$}`)}let G=z1().localMode;if(Z.protocol!=="https:"&&!(G&&Z.protocol==="http:"))throw Error(`OIDC URL must use HTTPS: ${$}`);let X=Z.hostname,Y=[/^127\./,/^10\./,/^172\.(1[6-9]|2\d|3[01])\./,/^192\.168\./,/^169\.254\./,/^0\./,/^\[::1\]$/,/^\[fd/,/^\[fe80:/,/^localhost$/i],Q=/^127\.|^\[::1\]$|^localhost$/i.test(X);if(G&&Q)return;for(let J of Y)if(J.test(X))throw Error(`OIDC URL must not point to a private network address: ${X}`)}async function Us0($,Z){let G=Z||$,X=RP$.get(G);if(X&&X.expiresAt>Date.now())return X.doc;let Y=Z||`${$.replace(/\/$/,"")}/.well-known/openid-configuration`;eO0(Y);let Q=await fetch(Y);if(!Q.ok)throw Error(`OIDC discovery failed: ${Q.status} ${Q.statusText}`);let J=await Q.json();if(!J.authorization_endpoint||!J.token_endpoint||!J.jwks_uri)throw Error("OIDC discovery document missing required endpoints");return eO0(J.authorization_endpoint),eO0(J.token_endpoint),eO0(J.jwks_uri),RP$.set(G,{doc:J,expiresAt:Date.now()+3600000}),J}function vy6(){let $=new Uint8Array(32);return crypto.getRandomValues($),btoa(String.fromCharCode(...$)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function yy6($){let G=new TextEncoder().encode($),X=await crypto.subtle.digest("SHA-256",G);return btoa(String.fromCharCode(...new Uint8Array(X))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function ws0($,Z,G){return await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.slug as orgSlug","member.role"]).where("member.userId","=",Z).where("member.organizationId","=",G).executeTakeFirst()??null}function gy6($){let Z=$.auth.user?.role;if(!Z)return!1;return sY.includes(Z)}function Fs0($){return $.auth.user?.role==="owner"}var ZE0=()=>{let $=new x1;return xy6($),$},RP$;var Hs0=O(()=>{g6();J10();y8();XW();RP$=new Map});function uy6($){if($==="claude-code")return hy6;if($==="codex")return cy6;return null}function qP$($,Z){return uy6($)?.[Z]??null}var hy6,cy6;var MP$=O(()=>{hy6={fast:{modelId:"claude-code:haiku",label:"Haiku 4.5"},smart:{modelId:"claude-code:sonnet",label:"Sonnet 4.6"},thinking:{modelId:"claude-code:opus-1m",label:"Opus 4.8 1M"}},cy6={fast:{modelId:"codex:gpt-5.4-mini",label:"GPT-5.4 Mini"},smart:{modelId:"codex:gpt-5.4",label:"GPT-5.4"},thinking:{modelId:"codex:gpt-5.5",label:"GPT-5.5"}}});var kP$=O(()=>{MP$()});function SP$($){return $.type==="tool-call"&&$.toolName==="todo_write"&&typeof $.toolCallId==="string"}function dy6($){return $.type==="tool-result"&&$.toolName==="todo_write"&&typeof $.toolCallId==="string"}function VP$($){let Z=null;for(let X=$.length-1;X>=0&&Z===null;X--){let Q=$[X].content;if(!Array.isArray(Q))continue;for(let J=Q.length-1;J>=0;J--){let W=Q[J];if(SP$(W)){Z=W.toolCallId;break}}}if(Z===null)return $;let G=Z;return $.map((X)=>{let Y=X.content;if(!Array.isArray(Y))return X;let Q=Y.filter((J)=>{if(SP$(J))return J.toolCallId===G;if(dy6(J))return J.toolCallId===G;return!0});if(Q.length===Y.length)return X;return{...X,content:Q}})}function ly6($){let Z=!1,G=$.map((X)=>{if(X.role!=="assistant")return X;if(!X.parts.some((Q)=>("state"in Q)&&Q.state==="approval-requested"))return X;return Z=!0,{...X,parts:X.parts.map((Q)=>{if(!("state"in Q)||Q.state!=="approval-requested"||!("approval"in Q)||!Q.approval)return Q;return{...Q,state:"output-denied",approval:{...Q.approval,approved:!1,reason:"User sent a new message without approving this tool call."}}})}});return Z?G:$}function my6($){let[Z,G]=$.reduce((X,Y)=>{if(Y.role==="system")X[0].push(Y);else X[1].push(Y);return X},[[],[]]);return{systemMessages:Z,messages:G}}async function CP$($,Z){let G=$.filter((F)=>F.role!=="assistant"||F.parts&&F.parts.length>0),X=await Ii({messages:G}),Y=ly6(X),Q=await JD(Y,{tools:Z.tools,ignoreIncompleteToolCalls:!0}),{systemMessages:J,messages:W}=my6(Q),K=VP$(W),w=Vd0({messages:K,reasoning:"all",emptyMessages:"remove",toolCalls:"none"}).map((F)=>{if(F.role!=="assistant")return F;let H=Array.isArray(F.content)?F.content.filter((N)=>N.type!=="reasoning"&&N.type!=="thinking"&&N.type!=="redacted-reasoning").map((N)=>{let B=N;if("providerOptions"in B||"providerMetadata"in B){let{providerOptions:E,providerMetadata:D,...L}=B;if(B.type==="tool-call"){let z=D?.google,j=E?.google;return{...L,...z?{providerMetadata:{google:z}}:{},...j?{providerOptions:{google:j}}:{}}}return L}return N}):F.content;return{...F,content:Array.isArray(H)&&H.length===0?[{type:"text",text:""}]:H,providerOptions:void 0,providerMetadata:void 0}});return{systemMessages:J,messages:w,originalMessages:X}}var bP$=O(()=>{f6()});function _P$($){let Z=$.filter((X)=>X.role==="system"),G=$.find((X)=>X.role!=="system");return{systemMessages:Z,requestMessage:G}}var fP$=()=>{};function GE0($){let Z=$.get("meshContext").organization;if(!Z)throw Error("Organization context is required");if((Z.slug??Z.id)!==$.req.param("org"))throw Error("Organization mismatch");return Z}async function XE0($){let Z=$.get("meshContext"),G=Z.auth?.user?.id;if(!G)throw new z$(401,{message:"Unauthorized"});let X=GE0($),Y=$.req.param("threadId");if(!Y)throw new z$(400,{message:"Missing thread ID"});if(/[.*>\s]/.test(Y))throw new z$(400,{message:"Invalid thread ID"});let Q=await Z.storage.threads.get(Y);if(!Q)throw new z$(404,{message:"Thread not found"});return{ctx:Z,organization:X,thread:Q,taskId:Y,userId:G}}async function xP$($){let Z=await XE0($);if(Z.thread.created_by!==Z.userId)throw new z$(403,{message:"Not authorized"});return Z}var vP$=O(()=>{EJ()});import{z as y5}from"zod";var iy6,ny6,yP$;var gP$=O(()=>{MU();DH();iy6=y5.looseObject({id:y5.string().optional(),role:y5.enum(["user","assistant","system"]),parts:y5.array(y5.record(y5.string(),y5.unknown())),metadata:y5.unknown().optional()}),ny6=y5.object({windowSize:y5.number().default(eY),thread_id:y5.string()}),yP$=y5.object({messages:y5.array(iy6).min(1).refine(($)=>$.filter((Z)=>Z.role!=="system").length===1,{message:"Expected exactly one non-system message"}),memory:ny6.optional(),tier:pa1.optional(),agent:y5.object({id:y5.string()}).loose(),stream:y5.boolean().optional(),temperature:y5.number().default(0.5),thread_id:y5.string().optional(),branch:y5.string().nullish(),toolApprovalLevel:y5.enum(["auto","readonly"]).default("auto"),sandboxProviderKind:y5.enum(["agent-sandbox","user-desktop","cluster"]).transform(($)=>$==="cluster"?"agent-sandbox":$).nullish().describe("Pinned on first message. Subsequent messages ignore this field (the thread row carries the pinned value)."),harnessId:y5.enum(["claude-code","codex","decopilot"]).nullish().describe("Pinned on first message. Subsequent messages ignore this field."),mode:y5.enum(["default","plan","web-search","deep-research","gen-image"]).default("default")}).strict()});function YE0($){hP$.set($.id,$)}function cP$($){return hP$.get($)}var hP$;var Ns0=O(()=>{hP$=new Map});function Bs0($,Z,G){let X=cP$($);if(!X)throw Error(`No harness factory registered for id "${$}". Available ids must be registered in apps/mesh/src/harnesses/index.ts.`);return X.create(G).stream(Z)}var Os0=O(()=>{Ns0()});class Es0{ctx;harnessId;constructor($){this.ctx=$.ctx,this.harnessId=$.harnessId}dispatch($){return Bs0(this.harnessId,$,this.ctx)}}var uP$=O(()=>{Os0()});function Hy($,Z){return $N($,Z)}var QE0=O(()=>{EY()});import{z as c0}from"zod";import{existsSync as Yg6}from"fs";import{query as pP$}from"@anthropic-ai/claude-agent-sdk";import{createSdkMcpServer as Vd9,tool as Cd9,SYSTEM_PROMPT_DYNAMIC_BOUNDARY as bd9,InMemorySessionStore as _d9,HOOK_EVENTS as fd9,AbortError as xd9}from"@anthropic-ai/claude-agent-sdk";import{listSessions as yd9,forkSession as gd9,getSessionInfo as hd9,getSessionMessages as cd9,deleteSession as ud9,renameSession as dd9,tagSession as ld9,listSubagents as md9,getSubagentMessages as id9,foldSessionSummary as nd9,importSessionToStore as pd9}from"@anthropic-ai/claude-agent-sdk";import{startup as rd9}from"@anthropic-ai/claude-agent-sdk";import{createSdkMcpServer as ad9,tool as sd9}from"@anthropic-ai/claude-agent-sdk";import"zod";function ty6($){let Z;if($===void 0)Z="";else try{Z=JSON.stringify($)??String($)}catch{Z=String($)}if(Z.length>dP$)return`${Z.slice(0,dP$)}...[truncated]`;return Z}function ry6($){return $.replace(/\s+/g,"")}function oy6($){return typeof $==="string"&&$.trim().toLowerCase().startsWith("image/")}function Ny($,Z){let G=$.trim(),X=ry6(Z.trim());if(!G||!X)return;return{type:"image",source:{type:"base64",media_type:G,data:X}}}function Ps0($){if(typeof $==="string"&&$.trim())return $.trim();return}function ay6($,Z){let G=typeof $.data==="string"?$.data:void 0,X=Ps0($.mimeType??$.mediaType??$.media_type??Z);if(!G||!X)return;return Ny(X,G)}function sy6($,Z){let G=$.trim();if(/^https?:\/\//i.test(G))return{warning:py6};let X=G.match(/^data:([^;]+);base64,(.+)$/i);if(X){let[,Q,J]=X,W=Ny(Q,J);return W?{content:W}:{warning:sW}}let Y=G.match(/^base64:([^,]+),(.+)$/i);if(Y){let[,Q,J]=Y,W=Ny(Q,J);return W?{content:W}:{warning:sW}}if(Z){let Q=Ny(Z,G);if(Q)return{content:Q}}return{warning:sW}}function ey6($){if(!$||typeof $!=="object")return{warning:sW};let Z=$.image,G=Ps0($.mimeType);if(typeof Z==="string")return sy6(Z,G);if(Z&&typeof Z==="object"){let X=ay6(Z,G);return X?{content:X}:{warning:sW}}return{warning:sW}}function $g6($){if(typeof Buffer<"u")return($ instanceof Uint8Array?Buffer.from($):Buffer.from(new Uint8Array($))).toString("base64");if(typeof btoa==="function"){let Z=$ instanceof Uint8Array?$:new Uint8Array($),G="",X=32768;for(let Y=0;Y<Z.length;Y+=X){let Q=Z.subarray(Y,Y+X);G+=String.fromCharCode(...Q)}return btoa(G)}return}function Zg6($){let Z=Ps0($.mediaType??$.mimeType);if(!Z||!oy6(Z))return{};let G=$.data;if(typeof G==="string"){let X=Ny(Z,G);return X?{content:X}:{warning:sW}}if(G instanceof Uint8Array||typeof ArrayBuffer<"u"&&G instanceof ArrayBuffer){let X=$g6(G);if(!X)return{warning:sW};let Y=Ny(Z,X);return Y?{content:Y}:{warning:sW}}return{warning:sW}}function lP$($){let Z=[],G=[],X,Y=[],Q=new Map,J=!1,W=(N)=>{return Y.push({formatted:N}),Y.length-1},K=(N,B)=>{if(J=!0,!Q.has(N))Q.set(N,[]);Q.get(N)?.push(B)};for(let N of $)switch(N.role){case"system":if(X=N.content,typeof N.content==="string"&&N.content.trim().length>0)W(N.content);else W("");break;case"user":if(typeof N.content==="string")Z.push(N.content),W(`Human: ${N.content}`);else{let B=N.content.filter((D)=>D.type==="text").map((D)=>D.text).join(`
2419
+ `.execute(U),await kp`DELETE FROM "member" WHERE "userId" = ${Z.id}`.execute(U),await kp`DELETE FROM "user" WHERE "id" = ${Z.id}`.execute(U)})}catch(U){console.error("[SSO] Failed to merge duplicate user:",U)}}var mv6=($)=>{return{trustEmailVerified:!0,provisionUser:nv6,defaultSSO:[{domain:$.domain,providerId:$.providerId,oidcConfig:{issuer:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/v2.0`,pkce:!0,clientId:$.MS_CLIENT_ID,clientSecret:$.MS_CLIENT_SECRET,discoveryEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/v2.0/.well-known/openid-configuration`,authorizationEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/oauth2/v2.0/authorize`,tokenEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/oauth2/v2.0/token`,jwksEndpoint:`https://login.microsoftonline.com/${$.MS_TENANT_ID}/discovery/v2.0/keys`,userInfoEndpoint:"https://graph.microsoft.com/oidc/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:$.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified",oid:"oid"}}}}]}},iv6=($)=>{return{trustEmailVerified:!0,defaultSSO:[{domain:$.domain,providerId:$.providerId,oidcConfig:{issuer:"https://accounts.google.com",pkce:!0,clientId:$.GOOGLE_CLIENT_ID,clientSecret:$.GOOGLE_CLIENT_SECRET,discoveryEndpoint:"https://accounts.google.com/.well-known/openid-configuration",authorizationEndpoint:"https://accounts.google.com/o/oauth2/v2/auth",tokenEndpoint:"https://oauth2.googleapis.com/token",jwksEndpoint:"https://www.googleapis.com/oauth2/v3/certs",userInfoEndpoint:"https://openidconnect.googleapis.com/v1/userinfo",tokenEndpointAuthentication:"client_secret_post",scopes:$.scopes,mapping:{id:"sub",email:"email",emailVerified:"email_verified",name:"name",image:"picture",extraFields:{emailVerified:"email_verified",hd:"hd"}}}}]}},gj$=($)=>{if($.providerId==="microsoft")return mv6($);if($.providerId==="google")return iv6($);throw Error(`Unsupported provider: ${$.providerId}`)};var hj$=O(()=>{DJ()});function na0($){let[Z,G,...X]=$.trim().split("@");if(!Z||!G||X.length>0)return null;return G.toLowerCase()}function pv6($){let Z=$.trim().toLowerCase();return Z.length>0&&!iJ.has(Z)}function pa0($){let Z=na0($.email);return $.emailVerified===!0&&!!Z&&pv6(Z)}function ta0($){return $.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function cj$($){let[Z=""]=$.trim().toLowerCase().split(".");return Z.split(/[^a-z0-9]+/).filter(Boolean).map((X)=>X.charAt(0).toUpperCase()+X.slice(1)).join(" ")||"Workspace"}function uj$($){let Z=$.name?.trim().split(/\s+/)[0];if(Z)return Z;let[G]=$.email.trim().split("@");return G||"Workspace"}function pO0($){return $.verificationStatus==="verified"&&$.joinMode!=="off"}var iJ;var tO0=O(()=>{iJ=new Set(["gmail.com","googlemail.com","outlook.com","hotmail.com","live.com","yahoo.com","yahoo.co.uk","icloud.com","me.com","mac.com","aol.com","protonmail.com","proton.me","zoho.com","yandex.com","mail.com","gmx.com","gmx.net","tutanota.com","fastmail.com"])});import{sql as pj$}from"kysely";async function rO0($){let{db:Z,authApi:G,user:X,allowCreate:Y,createdVia:Q}=$,J=na0(X.email);return Z.transaction().execute(async(W)=>{await pj$`select pg_advisory_xact_lock(hashtext(${`user-org:${X.id}`})::bigint)`.execute(W);let K=await sv6(W,X.id);if(K)return await av6(W,X,J,K),{status:"already_has_organization",organization:K,domain:J};return ov6({db:W,authApi:G,user:X,allowCreate:Y,createdVia:Q,domain:J})})}async function ov6($){let{db:Z,authApi:G,user:X,allowCreate:Y,createdVia:Q,domain:J}=$;if(pa0(X)&&J){let F=await new ZY(Z).getAllByDomain(J),H=await mj$(Z,F);if(H.length===1&&H[0]?.joinMode==="auto"){let z=H[0];return await ij$(G,X.id,z.id),{status:"joined",organization:z,domain:J,createdVia:Q}}if(H.length>0)return{status:"ambiguous",domain:J,organizations:H};if(!Y)return{status:"skipped",reason:"auto-create-disabled",domain:J};await pj$`select pg_advisory_xact_lock(hashtext(${J})::bigint)`.execute(Z);let N=new ZY(Z),B=await N.getAllByDomain(J),E=await mj$(Z,B);if(E.length===1&&E[0]?.joinMode==="auto"){let z=E[0];return await ij$(G,X.id,z.id),{status:"joined",organization:z,domain:J,createdVia:Q}}if(E.length>0)return{status:"ambiguous",domain:J,organizations:E};let D=await nj$(G,{name:cj$(J),baseSlug:ta0(J),userId:X.id});await N.add(D.id,J,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"});let L=await lj$(Z,D.id);if(!L)throw Error("Created organization could not be loaded");return{status:"created",organization:L,domain:J,createdVia:Q}}if(!Y)return{status:"skipped",reason:"auto-create-disabled",domain:J};let W=`${uj$(X)} ${$y6()}`,K=await nj$(G,{name:W,baseSlug:ev6(W),userId:X.id}),U=await lj$(Z,K.id);if(!U)throw Error("Created organization could not be loaded");return{status:"created",organization:U,domain:J,createdVia:Q}}async function av6($,Z,G,X){if(!G||!pa0(Z))return;if(X.slug!==ta0(G))return;let Y=new ZY($);if((await Y.getAllByDomain(G)).length>0)return;await Y.add(X.id,G,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"})}async function sv6($,Z){let X=(await $.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.id as id","organization.name as name","organization.slug as slug","organization.logo as logo","organization.metadata as metadata"]).where("member.userId","=",Z).orderBy("member.createdAt","asc").execute()).find((J)=>!L7(J));if(!X)return null;let{metadata:Y,...Q}=X;return Q}function ev6($){return $.toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function $y6(){let $=Math.random()<0.5?tv6:rv6;return $[Math.floor(Math.random()*$.length)]}function Zy6($){if($&&typeof $==="object"&&"id"in $&&typeof $.id==="string")return{id:$.id};throw Error("Failed to create organization")}function Gy6($){return $ instanceof Error&&"body"in $&&$.body?.code==="ORGANIZATION_ALREADY_EXISTS"}async function lj$($,Z){return await $.selectFrom("organization").select(["id","name","slug","logo"]).where("id","=",Z).executeTakeFirst()??null}async function mj$($,Z){let G=Z.filter((Q)=>pO0(Q));if(G.length===0)return[];let X=await $.selectFrom("organization").select(["id","name","slug","logo","metadata"]).where("id","in",G.map((Q)=>Q.organizationId)).execute(),Y=new Map(X.map((Q)=>[Q.id,Q]));return G.flatMap((Q)=>{let J=Y.get(Q.organizationId);if(!J)return[];if(L7(J))return[];let{metadata:W,...K}=J;return[{...K,joinMode:Q.joinMode}]})}async function ij$($,Z,G){try{await $.addMember({body:{userId:Z,role:"user",organizationId:G}})}catch(X){if(!(X instanceof Error?X.message.toLowerCase():"").includes("already a member"))throw X}}async function nj$($,Z){for(let G=0;G<dj$;G++){let X=G===0?"":`-${Math.random().toString(36).slice(2,6)}`;try{return Zy6(await $.createOrganization({body:{name:Z.name,slug:`${Z.baseSlug}${X}`,userId:Z.userId}}))}catch(Y){if(!Gy6(Y)||G===dj$-1)throw Y}}throw Error("Failed to create organization")}var dj$=5,tv6,rv6;var ra0=O(()=>{tO0();tv6=["labs","agent","studio","workspace","systems","core","cloud","works"],rv6=["capybara","guarana","deco","samba","feijoada","capoeira","carnival"]});var sj$={};n8(sj$,{resetPasswordEnabled:()=>aO0,authConfig:()=>l8,auth:()=>s6,GENERIC_EMAIL_DOMAINS:()=>iJ});import{sso as Xy6}from"@better-auth/sso";import{organization as Yy6}from"@decocms/better-auth/plugins";import{betterAuth as Qy6}from"better-auth";import{admin as Jy6,apiKey as Wy6,jwt as Ky6,magicLink as Uy6,mcp as wy6,openAPI as Fy6}from"better-auth/plugins";import{emailOTP as Hy6}from"better-auth/plugins/email-otp";import{APIError as Ny6}from"better-auth/api";import{adminAc as By6,defaultRoles as Oy6}from"better-auth/plugins/admin/access";import{defaultStatements as Ey6}from"@decocms/better-auth/plugins/organization/access";import{createAccessControl as Dy6}from"@decocms/better-auth/plugins/access";function Ry6(){let $=[Sp];try{let Z=new URL(Sp);if(Z.hostname==="localhost")$.push(Sp.replace("localhost","127.0.0.1"));else if(Z.hostname==="127.0.0.1")$.push(Sp.replace("127.0.0.1","localhost"))}catch{}return $}var oj$,Ly6,oO0,aa0,zy6,jy6,Py6,tj$,l8,aj$=void 0,oa0=void 0,aO0=!1,Ay6,Ty6,Iy6,Sp,rj$,qy6=262144,s6;var kU=O(()=>{y8();Y_();Mb0();f4();m7();DJ();g_1();Eu();c_1();fj$();vj$();yj$();XW();xv0();hj$();tO0();ra0();oj$=Object.values(TO()).map(($)=>$.map((Z)=>Z.name)).flat(),Ly6={...Ey6,self:["*",...oj$]},oO0=Dy6(Ly6),aa0=fv0(oj$),zy6=oO0.newRole(aa0.user),jy6=oO0.newRole(aa0.admin),Py6=oO0.newRole(aa0.owner),tj$=Object.values(TO()).map(($)=>$.map((Z)=>`self:${Z.name}`)).flat(),l8=IO().auth;if(l8.inviteEmailProviderId&&l8.emailProviders&&l8.emailProviders.length>0){let $=ZU(l8.emailProviders,l8.inviteEmailProviderId);if($){let Z=$U($);aj$=async(G)=>{let X=G.inviter.user?.name||G.inviter.user?.email,Y=`${OZ()}/auth/accept-invitation?invitationId=${G.invitation.id}&redirectTo=/${G.organization.slug}`;await Z({to:G.email,subject:`You've been invited to join ${G.organization.name}`,html:GU({preheader:`${X} has invited you to join ${G.organization.name} on deco Studio.`,heading:"You've been invited",subheading:`<strong>${X}</strong> has invited you to join <strong>${G.organization.name}</strong> on deco Studio.`,body:SO("Accept invitation",Y),footnote:"If you weren\u2019t expecting an invitation, you can safely ignore this email."})})}}}if(l8.resetPasswordEmailProviderId&&l8.emailProviders&&l8.emailProviders.length>0){let $=ZU(l8.emailProviders,l8.resetPasswordEmailProviderId);if($){let Z=$U($);aO0=!0,oa0=async({user:G,url:X})=>{await Z({to:G.email,subject:"Reset your password",html:GU({preheader:"We received a request to reset the password on your deco Studio account.",heading:"Reset your password",subheading:"We received a password reset request for your account. Click the button below to choose a new password.",body:SO("Reset password",X)+S10("This link expires in 24\xA0hours. If you didn\u2019t request a password reset, no action is needed.",!0),footnote:"If you didn\u2019t request a password reset, you can safely ignore this email."})})}}}Ay6=[Yy6({organizationCreation:{afterCreate:async($)=>{await _j$($.organization.id,$.member.userId)}},organizationHooks:{beforeUpdateOrganization:async({organization:$,member:Z})=>{let G=$.logo;if(typeof G!=="string"||!G.startsWith("data:"))return;let X=await xj$(Z.organizationId,G);if(X===G)return;return{data:{...$,logo:X}}}},ac:oO0,creatorRole:"owner",allowUserToCreateOrganization:!0,dynamicAccessControl:{enabled:!0,maximumRolesPerOrganization:500,enableCustomResources:!0,allowedRolesToCreateResources:sY,resourceNameValidation:($)=>{return{valid:/^[a-zA-Z0-9-_]+$/.test($)}}},roles:{user:zy6,admin:jy6,owner:Py6},sendInvitationEmail:aj$}),wy6({loginPage:"/login",oidcConfig:{scopes:tj$,metadata:{scopes_supported:tj$},loginPage:"/login"}}),Wy6({enableMetadata:!0,maximumNameLength:64,keyExpiration:{minExpiresIn:0.003472222222222222},enableSessionForAPIKeys:!0,customAPIKeyGetter:($)=>{if($.headers?.get("X-MCP-Session-Auth")==="true")return null;let G=$.headers?.get("Authorization");if(G?.startsWith("Bearer "))return G.replace("Bearer ","").trim();return null},rateLimit:{enabled:!1}}),Jy6({defaultRole:"user",adminRoles:["admin","owner"],roles:{...Oy6,owner:By6}}),Fy6(),Ky6({jwt:{expirationTime:"5m",definePayload:({user:$})=>({id:$.id,email:$.email,name:$.name,role:$.role})}}),Xy6(l8.ssoConfig?gj$(l8.ssoConfig):void 0),...l8.magicLinkConfig?.enabled&&l8.emailProviders&&l8.emailProviders.length>0?[Uy6(h_1(l8.magicLinkConfig,l8.emailProviders))]:[],...l8.emailOtpConfig?.enabled&&l8.emailProviders&&l8.emailProviders.length>0?[Hy6(y_1(l8.emailOtpConfig,l8.emailProviders))]:[]],Ty6=Ou(),Iy6=f_1(Ty6),Sp=OZ();rj$=z1(),s6=Qy6({secret:rj$.betterAuthSecret||"deco-default-secret-k7x9m2p4q8w3n5v6",logger:{log:($,Z,...G)=>{if($==="error"&&Z.includes("validate API key"))return;if($==="error"&&G.some((Y)=>{let Q=Y?.statusCode;return typeof Q==="number"&&Q>=300&&Q<400}))return;let X=`${new Date().toISOString()} ${$.toUpperCase()} [Better Auth]: ${Z}`;if($==="error")console.error(X,...G);else if($==="warn")console.warn(X,...G);else console.log(X,...G)}},baseURL:Sp,trustedOrigins:Ry6(),database:Iy6,socialProviders:l8.socialProviders,...l8.ssoConfig&&{account:{accountLinking:{trustedProviders:[l8.ssoConfig.providerId]}}},emailAndPassword:{enabled:l8.emailAndPassword.enabled,...oa0&&{sendResetPassword:oa0}},rateLimit:{enabled:!rj$.disableRateLimit,window:60,max:1e4},plugins:Ay6,databaseHooks:{user:{create:{after:async($)=>{ia0({id:$.id,email:$.email,name:$.name??null,emailVerified:!!$.emailVerified}),p1.capture({distinctId:$.id,event:"user_signed_up",properties:{email:$.email,email_domain:$.email?.split("@")[1]?.toLowerCase()??null,email_verified:!!$.emailVerified,has_name:!!$.name}});let Z=IO().autoCreateOrganizationOnSignup!==!1;try{let G=await rO0({db:h6().db,authApi:s6.api,user:{id:$.id,email:$.email,name:$.name??null,emailVerified:!!$.emailVerified},allowCreate:Z,createdVia:"signup"});if(G.status==="created")p1.groupIdentify({groupType:"organization",groupKey:G.organization.id,properties:{name:G.organization.name,slug:G.organization.slug,created_at:new Date().toISOString(),created_via:G.createdVia,email_domain:G.domain}}),p1.capture({distinctId:$.id,event:"organization_created",groups:{organization:G.organization.id},properties:{organization_id:G.organization.id,organization_slug:G.organization.slug,name:G.organization.name,created_via:G.createdVia,email_domain:G.domain}});if(G.status==="joined")p1.capture({distinctId:$.id,event:"organization_domain_joined",groups:{organization:G.organization.id},properties:{organization_id:G.organization.id,organization_slug:G.organization.slug,email_domain:G.domain,joined_via:G.createdVia}})}catch(G){p1.captureException(G,$.id),console.error("Failed to ensure organization on signup:",G)}}},update:{before:async($)=>{let Z=$.image;if(typeof Z==="string"&&Z.startsWith("data:")&&Z.length>qy6)throw new Ny6("PAYLOAD_TOO_LARGE",{message:"Avatar image is too large. Upload an image smaller than 5MB."})}}},session:{create:{after:async($)=>{let Z=await h6().db.selectFrom("user").select(["id","email","name","emailVerified"]).where("id","=",$.userId).executeTakeFirst();if(!Z)return;ia0({id:Z.id,email:Z.email,name:Z.name??null,emailVerified:!!Z.emailVerified})}}}}})});function sa0($,Z){return`${$}:${Z}`}function ej$($){let Z=$?.ttlMs??120000,G=$?.maxSize??1e4,X=new Map;function Y(){if(X.size<=G)return;let Q=Date.now();for(let[J,W]of X)if(W.expiresAt<=Q)X.delete(J);if(X.size>G){let J=X.size-G,W=0;for(let K of X.keys()){if(W>=J)break;X.delete(K),W++}}}return{get(Q,J){let W=sa0(Q,J),K=X.get(W);if(!K)return;if(K.expiresAt<=Date.now()){X.delete(W);return}return K.role},set(Q,J,W){let K=sa0(Q,J);X.set(K,{role:W,expiresAt:Date.now()+Z,organizationId:J}),Y()},invalidate(Q,J){X.delete(sa0(Q,J))},invalidateOrg(Q){for(let[J,W]of X)if(W.organizationId===Q)X.delete(J)}}}class ea0{options;sub=null;localEmit=null;originId=crypto.randomUUID();encoder=new TextEncoder;constructor($){this.options=$}async start($){if($)this.localEmit=$;if(this.sub)return;if(!this.localEmit)return;let Z=this.options.getConnection();if(!Z)return;this.sub=Z.subscribe("mesh.sse.broadcast");let G=new TextDecoder;(async()=>{for await(let X of this.sub)try{let Y=JSON.parse(G.decode(X.data));if(typeof Y?.originId!=="string"||typeof Y?.organizationId!=="string"||typeof Y?.event?.id!=="string"||typeof Y?.event?.type!=="string")continue;if(Y.originId===this.originId)continue;this.localEmit?.(Y.organizationId,Y.event)}catch{}})().catch((X)=>{console.error("[NatsSSEBroadcast] Subscription error:",X)})}broadcast($,Z){this.localEmit?.($,Z);let G={originId:this.originId,organizationId:$,event:Z};try{let X=this.options.getConnection();if(!X)return;X.publish("mesh.sse.broadcast",this.encoder.encode(JSON.stringify(G)))}catch(X){console.warn("[NatsSSEBroadcast] Publish failed (non-critical):",X)}}async stop(){this.sub?.unsubscribe(),this.sub=null,this.localEmit=null}}class GP${listeners=new Map;totalCount=0;strategy=null;started=!1;async start($){if(this.started){if(!$)return;await this.stop()}this.strategy=$,await this.strategy.start((Z,G)=>this.localEmit(Z,G)),this.started=!0}async stop(){if(!this.started||!this.strategy)return;await this.strategy.stop(),this.started=!1}add($){if(this.totalCount>=ZP$)return console.warn(`[SSEHub] Total connection limit reached (${ZP$})`),null;let Z=this.listeners.get($.organizationId);if(!Z)Z=new Map,this.listeners.set($.organizationId,Z);if(Z.size>=$P$)return console.warn(`[SSEHub] Per-org connection limit reached for ${$.organizationId} (${$P$})`),null;return Z.set($.id,$),this.totalCount++,$.id}remove($,Z){let G=this.listeners.get($);if(!G)return;if(G.delete(Z)){if(this.totalCount--,G.size===0)this.listeners.delete($)}}emit($,Z){if(this.strategy)this.strategy.broadcast($,Z);else this.localEmit($,Z)}countForOrg($){return this.listeners.get($)?.size??0}get count(){return this.totalCount}localEmit($,Z){let G=this.listeners.get($);if(!G||G.size===0)return;for(let X of G.values()){if(X.typePatterns&&!My6(Z.type,X.typePatterns))continue;try{X.push(Z)}catch{this.remove($,X.id)}}}}function My6($,Z){for(let G of Z){if(G===$)return!0;if(G.endsWith(".*")){let X=G.slice(0,-1);if($.startsWith(X))return!0}}return!1}var $P$=50,ZP$=500,YZ;var $s0=O(()=>{H5();YZ=new GP$;L8.createObservableGauge("sse_hub.connections",{description:"Active SSE listeners held by this pod",unit:"{connections}"}).addCallback(($)=>$.observe(YZ.count))});async function ky6($,Z,G=5){try{await eN(Z,{maxAttempts:G,minTimeout:1000,maxTimeout:1e4,jitter:0})}catch(X){console.error(`${$} Deferred start failed:`,X instanceof KK?X.cause:X)}}function XP$($){let Z=new ea0({getConnection:()=>$.getConnection()});YZ.start(Z).catch((G)=>{console.error("[SSEHub] Failed to start broadcast strategy:",G)}),$.onReady(()=>{ky6("[NatsSSEBroadcast]",()=>Z.start())})}var Zs0=O(()=>{f7();$s0();$s0()});var YP$=()=>{};var Gs0=()=>{};var QP$=()=>{};var Sy6,Xc9;var JP$=O(()=>{YP$();Gs0();RF();QP$();Sy6={br:".br",zstd:".zst",gzip:".gz"},Xc9=Object.keys(Sy6)});var WP$=O(()=>{JP$()});var KP$=()=>{};var UP$=O(()=>{KP$()});var wP$=()=>{};var FP$=O(()=>{Nb0()});var Xs0=O(()=>{qF();FP$()});var Ys0="x-hono-disable-ssg",Ac9;var Qs0=O(()=>{Xs0();Ac9=(()=>{try{return new Response("SSG is disabled",{status:404,headers:{[Ys0]:"true"}})}catch{return null}})()});var HP$=O(()=>{s00()});var Js0=O(()=>{HP$()});var NP$=O(()=>{UP$();wP$();Gs0();Qs0();Js0();Xs0()});var BP$=O(()=>{Qs0();Js0();NP$()});var Yu9;var OP$=O(()=>{BP$();({write:Yu9}=Bun)});var by6=class{#$;constructor($){this.#$=$,this.raw=$.raw,this.url=$.url?new URL($.url):null,this.protocol=$.protocol??null}send($,Z){this.#$.send($,Z??{})}raw;binaryType="arraybuffer";get readyState(){return this.#$.readyState}url;protocol;close($,Z){this.#$.close($,Z)}},EP$=($)=>{return(...Z)=>{if(typeof Z[0]==="function"){let[G,X]=Z;return async function(Q,J){let W=await G(Q),K=await $(Q,W,X);if(K)return K;await J()}}else{let[G,X,Y]=Z;return(async()=>{let Q=await $(G,X,Y);if(!Q)throw Error("Failed to upgrade WebSocket");return Q})()}}};var DP$=()=>{};var Vp=($)=>("server"in $.env)?$.env.server:$.env;var sO0=()=>{};var _y6;var LP$=O(()=>{DP$();sO0();_y6=EP$(($,Z)=>{let G=Vp($);if(!G)throw TypeError("env has to include the 2nd argument of fetch.");if(G.upgrade($.req.raw,{data:{events:Z,url:new URL($.req.url),protocol:$.req.url}}))return new Response(null);return})});var Ws0=($)=>{let Z=Vp($);if(!Z)throw TypeError("env has to include the 2nd argument of fetch.");if(typeof Z.requestIP!=="function")throw TypeError("server.requestIP is not a function.");let G=Z.requestIP($.req.raw);if(!G)return{remote:{}};return{remote:{address:G.address,addressType:G.family==="IPv6"||G.family==="IPv4"?G.family:void 0,port:G.port}}};var zP$=O(()=>{sO0()});var jP$=O(()=>{WP$();OP$();LP$();zP$();sO0()});var PP$;var AP$=O(()=>{PP$={google:{name:"Google",icon:"https://assets.decocache.com/webdraw/eb7480aa-a68b-4ce4-98ff-36aa121762a7/google.svg"},github:{name:"GitHub",icon:"https://assets.decocache.com/decocms/e02ce92e-6684-41a6-acfc-432977eb4878/github.png"},microsoft:{name:"Microsoft",icon:"https://assets.decocache.com/mcp/aa6f6e1a-6526-4bca-99cc-82e2ec38b0e4/microsoft.png"}}});function TP$(){let $=Object.keys(l8.socialProviders??{}),Z=$.length>0,G=$.map((Y)=>({name:Y,icon:PP$[Y].icon})),X=z1().localMode;return{emailAndPassword:{enabled:l8.emailAndPassword?.enabled??!1},magicLink:{enabled:l8.magicLinkConfig?.enabled??!1},emailOtp:{enabled:l8.emailOtpConfig?.enabled??!1},resetPassword:{enabled:aO0},socialProviders:{enabled:Z,providers:G},sso:l8.ssoConfig?{enabled:!0,providerId:l8.ssoConfig.providerId}:{enabled:!1},stdioEnabled:X,localMode:zQ()}}async function fy6($,Z,G){try{if(!l8.inviteEmailProviderId||!l8.emailProviders||l8.emailProviders.length===0)return;let X=ZU(l8.emailProviders,l8.inviteEmailProviderId);if(!X)return;let Y=await $.selectFrom("member").innerJoin("user","user.id","member.userId").select(["user.email as email","member.role as role"]).where("member.organizationId","=",Z.id).execute(),Q=sY,J=Y.filter((U)=>(U.role??"").split(",").map((w)=>w.trim()).some((w)=>Q.includes(w)));if(J.length===0)return;let W=$U(X),K=`${OZ()}/${Z.slug}/settings/members`;await Promise.allSettled(J.map((U)=>W({to:U.email,subject:`New request to join ${Z.name}`,html:GU({preheader:`${G} requested to join ${Z.name}.`,heading:"New join request",subheading:`<strong>${G}</strong> requested to join <strong>${Z.name}</strong> on deco Studio.`,body:SO("Review request",K),footnote:"You can approve or deny this request from your members settings."})})))}catch(X){console.error("[Auth] Failed to notify admins of join request:",X)}}var Ww,IP$;var Ks0=O(()=>{g6();jP$();f4();y8();kU();DJ();ra0();Yu0();tO0();Eu();XW();m7();Nv0();AP$();jN();Y_();Ww=new x1;Ww.post("/local-session",async($)=>{if(!zQ())return $.json({success:!1,error:"Local mode is not active"},403);let Z;try{Z=Ws0($).remote.address}catch{}if(!(Z==="127.0.0.1"||Z==="::1"||Z==="::ffff:127.0.0.1"))return $.json({success:!1,error:"Forbidden"},403);try{let{waitForSeed:X}=await Promise.resolve().then(() => (jN(),TH0));await X();let{auth:Y}=await Promise.resolve().then(() => (kU(),sj$)),Q=await Wn();if(!Q)return $.json({success:!1,error:"Local admin user not found"},500);let J=await AH0();return await Y.api.signInEmail({body:{email:Q.email,password:J},asResponse:!0})}catch(X){return console.error("Failed to create local session:",X),$.json({success:!1,error:X instanceof Error?X.message:"Failed to create local session"},500)}});Ww.get("/my-capabilities/:slug",async($)=>{let Z=$.req.param("slug"),G=await s6.api.getSession({headers:$.req.raw.headers});if(!G?.user)return $.json({error:"Authentication required"},401);let X=h6().db,Y=await X.selectFrom("organization").select(["id"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({role:null,capabilities:{}});let J=(await X.selectFrom("member").select(["role"]).where("userId","=",G.user.id).where("organizationId","=",Y.id).executeTakeFirst())?.role??null;if(!J)return $.json({role:null,capabilities:{}});if(J==="owner"||J==="admin")return $.json({role:J,capabilities:OC1()});if(J==="user")return $.json({role:J,capabilities:Ib0({self:[...K10]})});let W=await X.selectFrom("organizationRole").select(["permission"]).where("role","=",J).where("organizationId","=",Y.id).executeTakeFirst(),K={},U=W?.permission;if(typeof U==="string")try{let w=JSON.parse(U);if(w&&typeof w==="object"&&!Array.isArray(w))K=w}catch{K={}}return $.json({role:J,capabilities:Ib0(K)})});Ww.get("/domain-lookup",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({found:!1,organizations:[]});let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({found:!1,organizations:[]});try{let Y=(await new ZY(h6().db).getAllByDomain(G)).filter(pO0);if(Y.length===0)return $.json({found:!1,organizations:[]});let Q=await h6().db.selectFrom("organization").select(["id","name","slug","logo","metadata"]).where("id","in",Y.map((K)=>K.organizationId)).execute(),J=new Map(Q.map((K)=>[K.id,K])),W=Y.map((K)=>{let U=J.get(K.organizationId);if(!U)return null;if(L7(U))return null;return{id:U.id,name:U.name,slug:U.slug,logo:U.logo,joinMode:K.joinMode}}).filter((K)=>K!==null);return $.json({found:W.length>0,organizations:W})}catch(X){return console.error("[Auth] Domain lookup failed:",X),$.json({success:!1,error:"Domain lookup failed"},500)}});Ww.post("/domain-join",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to join"},403);let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({success:!1,error:"Generic email domains cannot auto-join"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;try{let Q=h6().db,K=(await new ZY(Q).getAllByDomain(G)).filter((N)=>N.verificationStatus==="verified"&&N.joinMode==="auto");if(K.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let U=await Q.selectFrom("organization").select(["id","slug","metadata"]).where("id","in",K.map((N)=>N.organizationId)).execute(),w=new Map(U.filter((N)=>!L7(N)).map((N)=>[N.id,{id:N.id,slug:N.slug}])),F=K.flatMap((N)=>{let B=w.get(N.organizationId);return B?[B]:[]});if(F.length===0)return $.json({success:!1,error:"Auto-join is not available for this domain"},403);let H;if(Y){let N=F.find((B)=>B.slug===Y);if(!N)return $.json({success:!1,error:"This organization is not available for auto-join with your email domain."},403);H=N}else if(F.length===1)H=F[0];else return $.json({success:!1,error:"Multiple organizations match this domain. Please pick one.",requiresSelection:!0},409);try{await s6.api.addMember({body:{userId:Z.user.id,role:"user",organizationId:H.id}})}catch(N){if(!(N instanceof Error?N.message.toLowerCase():"").includes("already a member"))return console.error("[Auth] Domain join addMember failed:",N),$.json({success:!1,error:"Failed to join organization"},500)}return p1.capture({distinctId:Z.user.id,event:"organization_domain_joined",groups:{organization:H.id},properties:{organization_id:H.id,organization_slug:H.slug,email_domain:G}}),$.json({success:!0,slug:H.slug})}catch(Q){return p1.captureException(Q,Z.user.id),console.error("[Auth] Domain join failed:",Q),$.json({success:!1,error:"Failed to join organization"},500)}});Ww.post("/domain-setup",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified"},403);let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({success:!1,error:"Corporate email required"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.name==="string"&&X.name.trim().length>0?X.name.trim():null,Q=typeof X.logo==="string"&&X.logo.length>0?X.logo:null,J=X.claimDomain!==!1;try{let W=h6().db,K=new ZY(W),U=await K.getAllByDomain(G);if(U.length>0){let j=await W.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.slug"]).where("member.userId","=",Z.user.id).where("member.organizationId","in",U.map((P)=>P.organizationId)).executeTakeFirst();if(j)return $.json({success:!0,slug:j.slug,alreadyExists:!0})}let w=G.split(".")[0]??G,F=Y??w.charAt(0).toUpperCase()+w.slice(1),H=(Y??w).toLowerCase().trim().replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")||w.toLowerCase().replace(/[^a-z0-9-]/g,""),N=null;for(let P=0;P<3;P++){let A=P===0?"":`-${Math.random().toString(36).slice(2,6)}`,M=P===0?F:`${F}${A}`,S=`${H}${A}`;try{N=await s6.api.createOrganization({body:{name:M,slug:S,userId:Z.user.id}});break}catch(q){if(!(q instanceof Error&&("body"in q)&&q.body?.code==="ORGANIZATION_ALREADY_EXISTS")||P===2)throw q}}if(!N?.id)throw Error("Failed to create organization");let B=N.id;if(J)await K.add(B,G,{joinMode:"auto",verificationStatus:"verified",verificationMethod:"email"});let E=!1,D=null,L=null;try{let j=z1().firecrawlApiKey;if(j){let P=await k40(G,j,F);if(P){let A=new Gl(h6().db),M=await A.create(B,P);if(await A.setDefault(M.id,B),E=!0,P.name&&P.name!==F)D=P.name;L=P.favicon??P.logo??null}}}catch(j){console.error("[Auth] Brand extraction failed (non-fatal):",j)}let z={};if(!Y&&D)z.name=D;if(Q)z.logo=Q;else if(L)z.logo=L;if(Object.keys(z).length>0)try{await s6.api.updateOrganization({headers:$.req.raw.headers,body:{organizationId:B,data:z}})}catch(j){console.error("[Auth] Org update failed (non-fatal):",j)}return p1.identify({distinctId:Z.user.id,properties:{email:Z.user.email,$set:{email:Z.user.email},$set_once:{first_organization_created_at:new Date().toISOString()}}}),p1.groupIdentify({groupType:"organization",groupKey:B,properties:{name:N.slug??H,slug:N.slug??H,email_domain:G,brand_extracted:E,created_at:new Date().toISOString()}}),p1.capture({distinctId:Z.user.id,event:"organization_created",groups:{organization:B},properties:{organization_id:B,organization_slug:N.slug??H,email_domain:G,brand_extracted:E}}),$.json({success:!0,slug:N.slug??H,brandExtracted:E})}catch(W){return p1.captureException(W,Z.user?.id),console.error("[Auth] Domain setup failed:",W),$.json({success:!1,error:"Failed to set up organization"},500)}});Ww.get("/org-access-status/:slug",async($)=>{let Z=$.req.param("slug"),G=await s6.api.getSession({headers:$.req.raw.headers});if(!G?.user)return $.json({success:!1,error:"Authentication required"},401);let X=h6().db,Y=await X.selectFrom("organization").select(["id","name","slug","logo"]).where("slug","=",Z).executeTakeFirst();if(!Y)return $.json({status:"not-found"});let Q={id:Y.id,name:Y.name,slug:Y.slug,logo:Y.logo};if(await X.selectFrom("member").select(["id"]).where("userId","=",G.user.id).where("organizationId","=",Y.id).executeTakeFirst())return $.json({status:"member",organization:Q});try{let W=await s6.api.listUserInvitations({headers:$.req.raw.headers}),K=Date.now(),U=W.find((w)=>w.organizationId===Y.id&&w.status==="pending"&&new Date(w.expiresAt).getTime()>K);if(U)return $.json({status:"pending-invite",invitation:{id:U.id},organization:Q})}catch(W){console.error("[Auth] listUserInvitations failed:",W)}if(G.user.emailVerified){let W=G.user.email?.split("@")[1]?.toLowerCase();if(W&&!iJ.has(W)){let K=await new ZY(X).getByOrgAndDomain(Y.id,W);if(K?.verificationStatus==="verified"){if(K.joinMode==="auto")return $.json({status:"auto-domain-join",organization:{...Q,domain:W}});if(K.joinMode==="request"){let U=await new Tf(X).getPending(Y.id,G.user.id);return $.json({status:U?"request-pending":"can-request",organization:{...Q,domain:W}})}}}}return $.json({status:"no-access",organization:Q})});Ww.post("/domain-request-join",async($)=>{let Z=await s6.api.getSession({headers:$.req.raw.headers});if(!Z?.user)return $.json({success:!1,error:"Authentication required"},401);if(!Z.user.emailVerified)return $.json({success:!1,error:"Email must be verified to request access"},403);let G=Z.user.email?.split("@")[1]?.toLowerCase();if(!G||iJ.has(G))return $.json({success:!1,error:"Generic email domains cannot request access"},403);let X=await $.req.json().catch(()=>({})),Y=typeof X.organizationSlug==="string"&&X.organizationSlug.trim()?X.organizationSlug.trim():null;if(!Y)return $.json({success:!1,error:"organizationSlug is required"},400);try{let Q=h6().db,J=await Q.selectFrom("organization").select(["id","slug","name"]).where("slug","=",Y).executeTakeFirst();if(!J)return $.json({success:!1,error:"Organization not found"},404);let W=await new ZY(Q).getByOrgAndDomain(J.id,G);if(!W||W.verificationStatus!=="verified"||W.joinMode!=="request")return $.json({success:!1,error:"This organization is not accepting requests for your domain."},403);if(await Q.selectFrom("member").select(["id"]).where("userId","=",Z.user.id).where("organizationId","=",J.id).executeTakeFirst())return $.json({success:!0,slug:J.slug,alreadyMember:!0});return await new Tf(Q).create(J.id,Z.user.id),await fy6(Q,J,Z.user.email),p1.capture({distinctId:Z.user.id,event:"organization_join_requested",groups:{organization:J.id},properties:{organization_id:J.id,organization_slug:J.slug,email_domain:G}}),$.json({success:!0,status:"pending"})}catch(Q){return p1.captureException(Q,Z.user.id),console.error("[Auth] Domain request-join failed:",Q),$.json({success:!1,error:"Failed to request access"},500)}});Ww.post("/ensure-organization",async($)=>{let Z=null;try{if(Z=await s6.api.getSession({headers:$.req.raw.headers}),!Z?.user)return $.json({success:!1,error:"Authentication required"},401);let G=await rO0({db:h6().db,authApi:s6.api,user:{id:Z.user.id,email:Z.user.email,name:Z.user.name??null,emailVerified:!!Z.user.emailVerified},allowCreate:!0,createdVia:"commerce_onboarding_recovery"});if(G.status==="ambiguous")return $.json({success:!1,status:G.status,domain:G.domain,organizations:G.organizations});if(G.status==="skipped")return $.json({success:!1,status:G.status,reason:G.reason,domain:G.domain,error:"Organization creation is not available."},409);if(G.status==="already_has_organization")return $.json({success:!0,status:G.status,organization:G.organization,domain:G.domain});return $.json({success:!0,status:G.status,organization:G.organization,domain:G.domain})}catch(G){let X=Z?.user?.id;if(X)p1.captureException(G,X);return console.error("[Auth] ensure organization failed:",G),$.json({success:!1,error:"Failed to ensure organization"},500)}});IP$=Ww});import*as $E0 from"jose";function xy6($){$.get("/status",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!await ws0(G,G.auth.user.id,X))return Z.json({error:"Not a member of this organization"},403);let Q=await G.storage.orgSsoConfig.getByOrgId(X);if(!Q||!Q.enforced)return Z.json({ssoRequired:!1});let J=await G.storage.orgSsoSessions.isValid(G.auth.user.id,X);return Z.json({ssoRequired:!0,authenticated:J,issuer:Q.issuer,domain:Q.domain})}),$.get("/authorize",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!await ws0(G,G.auth.user.id,X))return Z.json({error:"Not a member of this organization"},403);let Q=await G.storage.orgSsoConfig.getByOrgId(X);if(!Q)return Z.json({error:"SSO not configured for this organization"},404);let J=await Us0(Q.issuer,Q.discoveryEndpoint),W=vy6(),K=await yy6(W),U=crypto.randomUUID(),w=JSON.stringify({state:U,codeVerifier:W,orgId:X,userId:G.auth.user.id});Xu(Z,"org_sso_state",w,{httpOnly:!0,secure:!0,sameSite:"Lax",path:"/api/org-sso/callback",maxAge:600});let F=new URLSearchParams({response_type:"code",client_id:Q.clientId,redirect_uri:`${G.baseUrl}/api/org-sso/callback`,scope:Q.scopes.join(" "),state:U,code_challenge:K,code_challenge_method:"S256"}),H=`${J.authorization_endpoint}?${F.toString()}`;return Z.redirect(H)}),$.get("/callback",async(Z)=>{let G=Z.get("meshContext"),X=Z.req.query("code"),Y=Z.req.query("state"),Q=Z.req.query("error");if(Q)return Z.redirect(`/?sso_error=${encodeURIComponent(Q)}`);if(!X||!Y)return Z.redirect("/?sso_error=missing_code_or_state");let J=X_(Z,"org_sso_state");if(!J)return Z.redirect("/?sso_error=state_expired");Xu(Z,"org_sso_state","",{httpOnly:!0,secure:!0,sameSite:"Lax",path:"/api/org-sso/callback",maxAge:0});let W;try{W=JSON.parse(J)}catch{return Z.redirect("/?sso_error=invalid_state")}if(W.state!==Y)return Z.redirect("/?sso_error=state_mismatch");if(!G.auth.user||G.auth.user.id!==W.userId)return Z.redirect("/?sso_error=session_expired");let K=await G.storage.orgSsoConfig.getByOrgId(W.orgId);if(!K)return Z.redirect("/?sso_error=sso_not_configured");let U=await Us0(K.issuer,K.discoveryEndpoint),w=await fetch(U.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:X,redirect_uri:`${G.baseUrl}/api/org-sso/callback`,client_id:K.clientId,client_secret:K.clientSecret,code_verifier:W.codeVerifier})});if(!w.ok)return console.error("[org-sso] Token exchange failed:",await w.text()),Z.redirect("/?sso_error=token_exchange_failed");let F=await w.json();if(!F.id_token)return Z.redirect("/?sso_error=no_id_token");try{let B=$E0.createRemoteJWKSet(new URL(U.jwks_uri)),{payload:E}=await $E0.jwtVerify(F.id_token,B,{issuer:K.issuer,audience:K.clientId}),D=E.email?.toLowerCase(),L=G.auth.user.email?.toLowerCase();if(!D||D!==L)return console.error(`[org-sso] Email mismatch: token=${D}, user=${L}`),Z.redirect("/?sso_error=email_mismatch")}catch(B){return console.error("[org-sso] ID token verification failed:",B),Z.redirect("/?sso_error=token_verification_failed")}let H=await ws0(G,G.auth.user.id,W.orgId);if(!H)return Z.redirect("/?sso_error=not_a_member");await G.storage.orgSsoSessions.upsert(G.auth.user.id,W.orgId);let N=H.orgSlug?`/${H.orgSlug}`:"/";return Z.redirect(N)}),$.get("/config",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!gy6(G))return Z.json({error:"Admin role required"},403);let Y=await G.storage.orgSsoConfig.getByOrgId(X);if(!Y)return Z.json({configured:!1});return Z.json({configured:!0,config:G.storage.orgSsoConfig.toPublic(Y)})}),$.post("/config",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!Fs0(G))return Z.json({error:"Owner role required"},403);let Y=await Z.req.json();if(!Y.issuer||!Y.clientId||!Y.domain)return Z.json({error:"issuer, clientId, and domain are required"},400);let Q=await G.storage.orgSsoConfig.getByOrgId(X);if(!Q&&!Y.clientSecret)return Z.json({error:"clientSecret is required for initial SSO setup"},400);let J=Y.clientSecret||Q?.clientSecret||"";try{await Us0(Y.issuer,Y.discoveryEndpoint)}catch(K){return Z.json({error:"Failed to reach OIDC discovery endpoint",details:K instanceof Error?K.message:String(K)},400)}let W=await G.storage.orgSsoConfig.upsert(X,{issuer:Y.issuer,clientId:Y.clientId,clientSecret:J,discoveryEndpoint:Y.discoveryEndpoint,scopes:Y.scopes,domain:Y.domain,enforced:Y.enforced});return Z.json({success:!0,config:G.storage.orgSsoConfig.toPublic(W)})}),$.post("/config/enforce",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!Fs0(G))return Z.json({error:"Owner role required"},403);let Y=await Z.req.json();if(!await G.storage.orgSsoConfig.getByOrgId(X))return Z.json({error:"SSO must be configured before enforcing"},400);return await G.storage.orgSsoConfig.setEnforced(X,Y.enforced),Z.json({success:!0,enforced:Y.enforced})}),$.delete("/config",async(Z)=>{let G=Z.get("meshContext");if(!G.auth.user)return Z.json({error:"Authentication required"},401);let X=G.organization?.id;if(!X)return Z.json({error:"Organization context required"},400);if(!Fs0(G))return Z.json({error:"Owner role required"},403);return await G.storage.orgSsoConfig.delete(X),Z.json({success:!0})})}function eO0($){let Z;try{Z=new URL($)}catch{throw Error(`Invalid URL: ${$}`)}let G=z1().localMode;if(Z.protocol!=="https:"&&!(G&&Z.protocol==="http:"))throw Error(`OIDC URL must use HTTPS: ${$}`);let X=Z.hostname,Y=[/^127\./,/^10\./,/^172\.(1[6-9]|2\d|3[01])\./,/^192\.168\./,/^169\.254\./,/^0\./,/^\[::1\]$/,/^\[fd/,/^\[fe80:/,/^localhost$/i],Q=/^127\.|^\[::1\]$|^localhost$/i.test(X);if(G&&Q)return;for(let J of Y)if(J.test(X))throw Error(`OIDC URL must not point to a private network address: ${X}`)}async function Us0($,Z){let G=Z||$,X=RP$.get(G);if(X&&X.expiresAt>Date.now())return X.doc;let Y=Z||`${$.replace(/\/$/,"")}/.well-known/openid-configuration`;eO0(Y);let Q=await fetch(Y);if(!Q.ok)throw Error(`OIDC discovery failed: ${Q.status} ${Q.statusText}`);let J=await Q.json();if(!J.authorization_endpoint||!J.token_endpoint||!J.jwks_uri)throw Error("OIDC discovery document missing required endpoints");return eO0(J.authorization_endpoint),eO0(J.token_endpoint),eO0(J.jwks_uri),RP$.set(G,{doc:J,expiresAt:Date.now()+3600000}),J}function vy6(){let $=new Uint8Array(32);return crypto.getRandomValues($),btoa(String.fromCharCode(...$)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function yy6($){let G=new TextEncoder().encode($),X=await crypto.subtle.digest("SHA-256",G);return btoa(String.fromCharCode(...new Uint8Array(X))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function ws0($,Z,G){return await $.db.selectFrom("member").innerJoin("organization","organization.id","member.organizationId").select(["organization.slug as orgSlug","member.role"]).where("member.userId","=",Z).where("member.organizationId","=",G).executeTakeFirst()??null}function gy6($){let Z=$.auth.user?.role;if(!Z)return!1;return sY.includes(Z)}function Fs0($){return $.auth.user?.role==="owner"}var ZE0=()=>{let $=new x1;return xy6($),$},RP$;var Hs0=O(()=>{g6();J10();y8();XW();RP$=new Map});function uy6($){if($==="claude-code")return hy6;if($==="codex")return cy6;return null}function qP$($,Z){return uy6($)?.[Z]??null}var hy6,cy6;var MP$=O(()=>{hy6={fast:{modelId:"claude-code:haiku",label:"Haiku 4.5"},smart:{modelId:"claude-code:sonnet",label:"Sonnet 5"},thinking:{modelId:"claude-code:opus-1m",label:"Opus 4.8 1M"}},cy6={fast:{modelId:"codex:gpt-5.4-mini",label:"GPT-5.4 Mini"},smart:{modelId:"codex:gpt-5.4",label:"GPT-5.4"},thinking:{modelId:"codex:gpt-5.5",label:"GPT-5.5"}}});var kP$=O(()=>{MP$()});function SP$($){return $.type==="tool-call"&&$.toolName==="todo_write"&&typeof $.toolCallId==="string"}function dy6($){return $.type==="tool-result"&&$.toolName==="todo_write"&&typeof $.toolCallId==="string"}function VP$($){let Z=null;for(let X=$.length-1;X>=0&&Z===null;X--){let Q=$[X].content;if(!Array.isArray(Q))continue;for(let J=Q.length-1;J>=0;J--){let W=Q[J];if(SP$(W)){Z=W.toolCallId;break}}}if(Z===null)return $;let G=Z;return $.map((X)=>{let Y=X.content;if(!Array.isArray(Y))return X;let Q=Y.filter((J)=>{if(SP$(J))return J.toolCallId===G;if(dy6(J))return J.toolCallId===G;return!0});if(Q.length===Y.length)return X;return{...X,content:Q}})}function ly6($){let Z=!1,G=$.map((X)=>{if(X.role!=="assistant")return X;if(!X.parts.some((Q)=>("state"in Q)&&Q.state==="approval-requested"))return X;return Z=!0,{...X,parts:X.parts.map((Q)=>{if(!("state"in Q)||Q.state!=="approval-requested"||!("approval"in Q)||!Q.approval)return Q;return{...Q,state:"output-denied",approval:{...Q.approval,approved:!1,reason:"User sent a new message without approving this tool call."}}})}});return Z?G:$}function my6($){let[Z,G]=$.reduce((X,Y)=>{if(Y.role==="system")X[0].push(Y);else X[1].push(Y);return X},[[],[]]);return{systemMessages:Z,messages:G}}async function CP$($,Z){let G=$.filter((F)=>F.role!=="assistant"||F.parts&&F.parts.length>0),X=await Ii({messages:G}),Y=ly6(X),Q=await JD(Y,{tools:Z.tools,ignoreIncompleteToolCalls:!0}),{systemMessages:J,messages:W}=my6(Q),K=VP$(W),w=Vd0({messages:K,reasoning:"all",emptyMessages:"remove",toolCalls:"none"}).map((F)=>{if(F.role!=="assistant")return F;let H=Array.isArray(F.content)?F.content.filter((N)=>N.type!=="reasoning"&&N.type!=="thinking"&&N.type!=="redacted-reasoning").map((N)=>{let B=N;if("providerOptions"in B||"providerMetadata"in B){let{providerOptions:E,providerMetadata:D,...L}=B;if(B.type==="tool-call"){let z=D?.google,j=E?.google;return{...L,...z?{providerMetadata:{google:z}}:{},...j?{providerOptions:{google:j}}:{}}}return L}return N}):F.content;return{...F,content:Array.isArray(H)&&H.length===0?[{type:"text",text:""}]:H,providerOptions:void 0,providerMetadata:void 0}});return{systemMessages:J,messages:w,originalMessages:X}}var bP$=O(()=>{f6()});function _P$($){let Z=$.filter((X)=>X.role==="system"),G=$.find((X)=>X.role!=="system");return{systemMessages:Z,requestMessage:G}}var fP$=()=>{};function GE0($){let Z=$.get("meshContext").organization;if(!Z)throw Error("Organization context is required");if((Z.slug??Z.id)!==$.req.param("org"))throw Error("Organization mismatch");return Z}async function XE0($){let Z=$.get("meshContext"),G=Z.auth?.user?.id;if(!G)throw new z$(401,{message:"Unauthorized"});let X=GE0($),Y=$.req.param("threadId");if(!Y)throw new z$(400,{message:"Missing thread ID"});if(/[.*>\s]/.test(Y))throw new z$(400,{message:"Invalid thread ID"});let Q=await Z.storage.threads.get(Y);if(!Q)throw new z$(404,{message:"Thread not found"});return{ctx:Z,organization:X,thread:Q,taskId:Y,userId:G}}async function xP$($){let Z=await XE0($);if(Z.thread.created_by!==Z.userId)throw new z$(403,{message:"Not authorized"});return Z}var vP$=O(()=>{EJ()});import{z as y5}from"zod";var iy6,ny6,yP$;var gP$=O(()=>{MU();DH();iy6=y5.looseObject({id:y5.string().optional(),role:y5.enum(["user","assistant","system"]),parts:y5.array(y5.record(y5.string(),y5.unknown())),metadata:y5.unknown().optional()}),ny6=y5.object({windowSize:y5.number().default(eY),thread_id:y5.string()}),yP$=y5.object({messages:y5.array(iy6).min(1).refine(($)=>$.filter((Z)=>Z.role!=="system").length===1,{message:"Expected exactly one non-system message"}),memory:ny6.optional(),tier:pa1.optional(),agent:y5.object({id:y5.string()}).loose(),stream:y5.boolean().optional(),temperature:y5.number().default(0.5),thread_id:y5.string().optional(),branch:y5.string().nullish(),toolApprovalLevel:y5.enum(["auto","readonly"]).default("auto"),sandboxProviderKind:y5.enum(["agent-sandbox","user-desktop","cluster"]).transform(($)=>$==="cluster"?"agent-sandbox":$).nullish().describe("Pinned on first message. Subsequent messages ignore this field (the thread row carries the pinned value)."),harnessId:y5.enum(["claude-code","codex","decopilot"]).nullish().describe("Pinned on first message. Subsequent messages ignore this field."),mode:y5.enum(["default","plan","web-search","deep-research","gen-image"]).default("default")}).strict()});function YE0($){hP$.set($.id,$)}function cP$($){return hP$.get($)}var hP$;var Ns0=O(()=>{hP$=new Map});function Bs0($,Z,G){let X=cP$($);if(!X)throw Error(`No harness factory registered for id "${$}". Available ids must be registered in apps/mesh/src/harnesses/index.ts.`);return X.create(G).stream(Z)}var Os0=O(()=>{Ns0()});class Es0{ctx;harnessId;constructor($){this.ctx=$.ctx,this.harnessId=$.harnessId}dispatch($){return Bs0(this.harnessId,$,this.ctx)}}var uP$=O(()=>{Os0()});function Hy($,Z){return $N($,Z)}var QE0=O(()=>{EY()});import{z as c0}from"zod";import{existsSync as Yg6}from"fs";import{query as pP$}from"@anthropic-ai/claude-agent-sdk";import{createSdkMcpServer as Vd9,tool as Cd9,SYSTEM_PROMPT_DYNAMIC_BOUNDARY as bd9,InMemorySessionStore as _d9,HOOK_EVENTS as fd9,AbortError as xd9}from"@anthropic-ai/claude-agent-sdk";import{listSessions as yd9,forkSession as gd9,getSessionInfo as hd9,getSessionMessages as cd9,deleteSession as ud9,renameSession as dd9,tagSession as ld9,listSubagents as md9,getSubagentMessages as id9,foldSessionSummary as nd9,importSessionToStore as pd9}from"@anthropic-ai/claude-agent-sdk";import{startup as rd9}from"@anthropic-ai/claude-agent-sdk";import{createSdkMcpServer as ad9,tool as sd9}from"@anthropic-ai/claude-agent-sdk";import"zod";function ty6($){let Z;if($===void 0)Z="";else try{Z=JSON.stringify($)??String($)}catch{Z=String($)}if(Z.length>dP$)return`${Z.slice(0,dP$)}...[truncated]`;return Z}function ry6($){return $.replace(/\s+/g,"")}function oy6($){return typeof $==="string"&&$.trim().toLowerCase().startsWith("image/")}function Ny($,Z){let G=$.trim(),X=ry6(Z.trim());if(!G||!X)return;return{type:"image",source:{type:"base64",media_type:G,data:X}}}function Ps0($){if(typeof $==="string"&&$.trim())return $.trim();return}function ay6($,Z){let G=typeof $.data==="string"?$.data:void 0,X=Ps0($.mimeType??$.mediaType??$.media_type??Z);if(!G||!X)return;return Ny(X,G)}function sy6($,Z){let G=$.trim();if(/^https?:\/\//i.test(G))return{warning:py6};let X=G.match(/^data:([^;]+);base64,(.+)$/i);if(X){let[,Q,J]=X,W=Ny(Q,J);return W?{content:W}:{warning:sW}}let Y=G.match(/^base64:([^,]+),(.+)$/i);if(Y){let[,Q,J]=Y,W=Ny(Q,J);return W?{content:W}:{warning:sW}}if(Z){let Q=Ny(Z,G);if(Q)return{content:Q}}return{warning:sW}}function ey6($){if(!$||typeof $!=="object")return{warning:sW};let Z=$.image,G=Ps0($.mimeType);if(typeof Z==="string")return sy6(Z,G);if(Z&&typeof Z==="object"){let X=ay6(Z,G);return X?{content:X}:{warning:sW}}return{warning:sW}}function $g6($){if(typeof Buffer<"u")return($ instanceof Uint8Array?Buffer.from($):Buffer.from(new Uint8Array($))).toString("base64");if(typeof btoa==="function"){let Z=$ instanceof Uint8Array?$:new Uint8Array($),G="",X=32768;for(let Y=0;Y<Z.length;Y+=X){let Q=Z.subarray(Y,Y+X);G+=String.fromCharCode(...Q)}return btoa(G)}return}function Zg6($){let Z=Ps0($.mediaType??$.mimeType);if(!Z||!oy6(Z))return{};let G=$.data;if(typeof G==="string"){let X=Ny(Z,G);return X?{content:X}:{warning:sW}}if(G instanceof Uint8Array||typeof ArrayBuffer<"u"&&G instanceof ArrayBuffer){let X=$g6(G);if(!X)return{warning:sW};let Y=Ny(Z,X);return Y?{content:Y}:{warning:sW}}return{warning:sW}}function lP$($){let Z=[],G=[],X,Y=[],Q=new Map,J=!1,W=(N)=>{return Y.push({formatted:N}),Y.length-1},K=(N,B)=>{if(J=!0,!Q.has(N))Q.set(N,[]);Q.get(N)?.push(B)};for(let N of $)switch(N.role){case"system":if(X=N.content,typeof N.content==="string"&&N.content.trim().length>0)W(N.content);else W("");break;case"user":if(typeof N.content==="string")Z.push(N.content),W(`Human: ${N.content}`);else{let B=N.content.filter((D)=>D.type==="text").map((D)=>D.text).join(`
2420
2420
  `),E=W(B?`Human: ${B}`:"");if(B)Z.push(B);for(let D of N.content)if(D.type==="image"){let{content:L,warning:z}=ey6(D);if(L)K(E,L);else if(z)G.push(z)}else if(D.type==="file"){let{content:L,warning:z}=Zg6(D);if(L)K(E,L);else if(z)G.push(z)}}break;case"assistant":{let B="";if(typeof N.content==="string")B=N.content;else{let D=N.content.filter((z)=>z.type==="text").map((z)=>z.text).join(`
2421
2421
  `);if(D)B=D;let L=N.content.filter((z)=>z.type==="tool-call");if(L.length>0){let z=L.map((j)=>`[Tool call: ${j.toolName}(${ty6(j.input)})]`).join(`
2422
2422
  `);B+=B?`
@@ -2435,7 +2435,7 @@ ${z}`;if(Q.has(L))E(),H(L)}),E()}return{messagesPrompt:U,systemPrompt:X,...G.len
2435
2435
  ...[truncated ${$.length-Z} chars]`}if(typeof $!=="object"||$===null)return $;if(Array.isArray($)){let Q=-1,J=0;for(let W=0;W<$.length;W++){let K=$[W];if(typeof K==="string"&&K.length>J)Q=W,J=K.length}if(Q>=0&&J>Z){let W=$[Q].slice(0,Z)+`
2436
2436
  ...[truncated ${J-Z} chars]`,K=[...$];return K[Q]=W,K}return $}let G=$,X=null,Y=0;for(let[Q,J]of Object.entries(G))if(typeof J==="string"&&J.length>Y)X=Q,Y=J.length;if(X&&Y>Z){let Q=G[X].slice(0,Z)+`
2437
2437
  ...[truncated ${Y-Z} chars]`;return{...G,[X]:Q}}return $}function As0($={}){let Z=QA$($.defaultSettings?.logger);if($.defaultSettings){let Y=iP$($.defaultSettings);if(!Y.valid)throw Error(`Invalid default settings: ${Y.errors.join(", ")}`);if(Y.warnings.length>0)Y.warnings.forEach((Q)=>Z.warn(`Claude Code Provider: ${Q}`))}let G=(Y,Q={})=>{let J={...$.defaultSettings,...Q},W=iP$(J);if(!W.valid)throw Error(`Invalid settings: ${W.errors.join(", ")}`);return new _g6({id:Y,settings:J,settingsValidationWarnings:W.warnings})},X=function(Y,Q){if(new.target)throw Error("The Claude Code model function cannot be called with the new keyword.");return G(Y,Q)};return X.languageModel=G,X.chat=G,X.specificationVersion="v3",X.embeddingModel=(Y)=>{throw new j6({modelId:Y,modelType:"embeddingModel"})},X.imageModel=(Y)=>{throw new j6({modelId:Y,modelType:"imageModel"})},X}var py6="Image URLs are not supported by this provider; supply base64/data URLs.",sW="Unable to convert image content; supply base64/data URLs.",dP$=1000,Qg6,Jg6,wg6,Fg6,Hg6,Bg6,Og6,Dg6="3.5.0",Lg6,tP$="Claude Code SDK output ended unexpectedly; returning truncated response from buffered text. Await upstream fix to avoid data loss.",zg6=512,oP$="Structured output was requested (responseFormat with a JSON schema) but the Claude Code CLI returned no structured_output, and the prose response could not be parsed as JSON. This usually means the schema contains constructs the CLI cannot enforce (e.g. complex regex patterns with lookaheads/backreferences), causing it to silently fall back to prose. Simplify the generation schema and validate strictly client-side. See the 'Structured Outputs' section of the ai-sdk-provider-claude-code README for the list of known limitations.",Pg6,Ag6,Tg6,Ig6,Rg6,aP$="Claude Agent SDK features (hooks/MCP/images) require streaming input. Set `streamingInput: 'always'` or provide `canUseTool` (auto streams only when canUseTool is set).",Mg6,kg6,Sg6,Cg6,bg6=1e4,_g6=class ${specificationVersion="v3";defaultObjectGenerationMode="json";supportsImageUrls=!1;supportedUrls={};supportsStructuredOutputs=!0;static UNKNOWN_TOOL_NAME="unknown-tool";static MAX_TOOL_INPUT_SIZE=1048576;static MAX_TOOL_INPUT_WARN=102400;static MAX_DELTA_CALC_SIZE=1e4;static PROMPT_SUGGESTION_DRAIN_TIMEOUT_MS=1e4;modelId;settings;sessionId;modelValidationWarning;settingsValidationWarnings;logger;constructor(Z){this.modelId=Z.id,this.settings=Z.settings??{},this.settingsValidationWarnings=Z.settingsValidationWarnings??[];let G=QA$(this.settings.logger);if(this.logger=Eg6(G,this.settings.verbose??!1),!this.modelId||typeof this.modelId!=="string"||this.modelId.trim()==="")throw new j6({modelId:this.modelId,modelType:"languageModel"});if(this.modelValidationWarning=Wg6(this.modelId),this.modelValidationWarning)this.logger.warn(`Claude Code Model: ${this.modelValidationWarning}`)}get provider(){return"claude-code"}getModel(){return Cg6[this.modelId]??this.modelId}getSanitizedSdkOptions(){if(!this.settings.sdkOptions||typeof this.settings.sdkOptions!=="object")return;let Z={...this.settings.sdkOptions},G=Array.from(Mg6).filter((X)=>(X in Z));if(G.length>0)this.logger.warn(`[claude-code] sdkOptions includes provider-managed fields (${G.join(", ")}); these will be ignored.`),G.forEach((X)=>delete Z[X]);return Z}getEffectiveResume(Z){for(let G of[Z?.resume,this.settings.resume,this.sessionId])if(typeof G==="string"&&!js0(G))return G;return}static sessionIdConflictsWithResumeOrContinue(Z){return(Z.resumePresent||Z.continue)&&!Z.forkSession}applySessionResolution(Z,G){if(js0(Z.resume))Z.resume=G;if(Z.sessionId!==void 0&&$.sessionIdConflictsWithResumeOrContinue({resumePresent:Z.resume!==void 0,continue:Z.continue===!0,forkSession:Z.forkSession===!0}))Z.sessionId=void 0}extractToolUses(Z){return zs0(Z,"tool_use").map((G)=>{let{id:X,name:Y,input:Q,parent_tool_use_id:J}=G;return{id:typeof X==="string"&&X.length>0?X:d1(),name:typeof Y==="string"&&Y.length>0?Y:$.UNKNOWN_TOOL_NAME,input:Q,parentToolUseId:typeof J==="string"?J:null}})}extractToolResults(Z){return zs0(Z,"tool_result").map((G)=>{let{tool_use_id:X,content:Y,is_error:Q,name:J}=G;return{id:typeof X==="string"&&X.length>0?X:d1(),name:typeof J==="string"&&J.length>0?J:void 0,result:Y,isError:Boolean(Q)}})}extractToolErrors(Z){return zs0(Z,"tool_error").map((G)=>{let{tool_use_id:X,error:Y,name:Q}=G;return{id:typeof X==="string"&&X.length>0?X:d1(),name:typeof Q==="string"&&Q.length>0?Q:void 0,error:Y}})}serializeToolInput(Z){if(typeof Z==="string")return this.checkInputSize(Z);if(Z===void 0)return"";try{let G=JSON.stringify(Z);return this.checkInputSize(G)}catch{let G=String(Z);return this.checkInputSize(G)}}checkInputSize(Z){let G=Z.length;if(G>$.MAX_TOOL_INPUT_SIZE)throw Error(`Tool input exceeds maximum size of ${$.MAX_TOOL_INPUT_SIZE} bytes (got ${G} bytes). This may indicate a malformed request or an attempt to process excessively large data.`);if(G>$.MAX_TOOL_INPUT_WARN)this.logger.warn(`[claude-code] Large tool input detected: ${G} bytes. Performance may be impacted. Consider chunking or reducing input size.`);return Z}normalizeToolResult(Z){if(typeof Z==="string")try{return JSON.parse(Z)}catch{return Z}if(Array.isArray(Z)&&Z.length>0){let G=Z.filter((Y)=>Y?.type==="text"&&typeof Y.text==="string").map((Y)=>Y.text);if(G.length!==Z.length)return Z;if(G.length===1)try{return JSON.parse(G[0])}catch{return G[0]}let X=G.join(`
2438
- `);try{return JSON.parse(X)}catch{return X}}return Z}buildToolCallPart(Z,G,X,Y){return{type:"tool-call",toolCallId:Z,toolName:G,input:X,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawInput:X,parentToolCallId:Y??null}}}}buildToolResultPart(Z,G,X,Y,Q){let J=this.normalizeToolResult(X),W=typeof X==="string"?X:X===void 0?"":(()=>{try{return JSON.stringify(X)??String(X)}catch{return String(X)}})(),K=this.settings.maxToolResultSize,U=YA$(J,K),w=YA$(W,K);return{type:"tool-result",toolCallId:Z,toolName:G,result:U??"",isError:Y,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawResult:w,rawResultTruncated:w!==W,parentToolCallId:Q??null}}}}serializeToolError(Z){return typeof Z==="string"?Z:typeof Z==="object"&&Z!==null?(()=>{try{return JSON.stringify(Z)??String(Z)}catch{return String(Z)}})():String(Z)}buildToolErrorPart(Z,G,X,Y){let Q=this.serializeToolError(X);return{type:"tool-error",toolCallId:Z,toolName:G,error:Q,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawError:Q,parentToolCallId:Y??null}}}}buildToolErrorResultPart(Z,G,X,Y){let Q=this.serializeToolError(X);return{type:"tool-result",toolCallId:Z,toolName:G,result:Q,isError:!0,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawError:Q,parentToolCallId:Y??null}}}}isRetractedToolFrame(Z,G,X){if(!G.has(Z))return!1;return this.logger.debug(`[claude-code] Dropping tool ${X} for retracted (superseded) tool ID: ${Z}`),!0}generateAllWarnings(Z,G){let X=[],Y=[];if(Z.temperature!==void 0)Y.push("temperature");if(Z.topP!==void 0)Y.push("topP");if(Z.topK!==void 0)Y.push("topK");if(Z.presencePenalty!==void 0)Y.push("presencePenalty");if(Z.frequencyPenalty!==void 0)Y.push("frequencyPenalty");if(Z.stopSequences!==void 0&&Z.stopSequences.length>0)Y.push("stopSequences");if(Z.seed!==void 0)Y.push("seed");if(Y.length>0)for(let J of Y)X.push({type:"unsupported",feature:J,details:`Claude Code SDK does not support the ${J} parameter. It will be ignored.`});if(Z.tools!==void 0&&Z.tools.length>0)X.push({type:"unsupported",feature:"tools",details:"The Claude Code CLI executes its own tools; AI SDK tools cannot be auto-bridged at the provider layer and will be ignored. To expose custom tools to the CLI, build an in-process MCP server with the createAiSdkMcpServer helper (exported by this package) and pass it via the mcpServers setting (plus allowedTools)."});if(Z.toolChoice!==void 0&&Z.toolChoice.type!=="auto")X.push({type:"unsupported",feature:"toolChoice",details:`Claude Code CLI does not support toolChoice '${Z.toolChoice.type}'. Only automatic tool selection is available; the toolChoice parameter will be ignored.`});if(Z.maxOutputTokens!==void 0)X.push({type:"unsupported",feature:"maxOutputTokens",details:"Claude Code CLI does not accept an output token cap. The maxOutputTokens parameter will be ignored."});if(this.modelValidationWarning)X.push({type:"other",message:this.modelValidationWarning});if(this.settingsValidationWarnings.forEach((J)=>{X.push({type:"other",message:J})}),Z.responseFormat?.type==="json"&&!Z.responseFormat.schema)X.push({type:"unsupported",feature:"responseFormat",details:"JSON response format requires a schema for the Claude Code provider. The JSON responseFormat is ignored and the call is treated as plain text."});let Q=Kg6(G);if(Q)X.push({type:"other",message:Q});return X}createQueryOptions(Z,G,X,Y,Q){let J={model:this.getModel(),abortController:Z,resume:Q,pathToClaudeCodeExecutable:this.settings.pathToClaudeCodeExecutable,maxTurns:this.settings.maxTurns,maxThinkingTokens:this.settings.maxThinkingTokens,thinking:this.settings.thinking,effort:this.settings.effort,promptSuggestions:this.settings.promptSuggestions,cwd:this.settings.cwd,executable:this.settings.executable,executableArgs:this.settings.executableArgs,permissionMode:this.settings.permissionMode,permissionPromptToolName:this.settings.permissionPromptToolName,continue:this.settings.continue,allowedTools:this.settings.allowedTools,disallowedTools:this.settings.disallowedTools,betas:this.settings.betas,allowDangerouslySkipPermissions:this.settings.allowDangerouslySkipPermissions,enableFileCheckpointing:this.settings.enableFileCheckpointing,maxBudgetUsd:this.settings.maxBudgetUsd,plugins:this.settings.plugins,resumeSessionAt:this.settings.resumeSessionAt,sandbox:this.settings.sandbox,tools:this.settings.tools,mcpServers:this.settings.mcpServers,canUseTool:this.settings.canUseTool};if(this.settings.onUserDialog!==void 0)J.onUserDialog=this.settings.onUserDialog;if(this.settings.supportedDialogKinds!==void 0)J.supportedDialogKinds=this.settings.supportedDialogKinds;if(this.settings.systemPrompt!==void 0)J.systemPrompt=this.settings.systemPrompt;else if(this.settings.customSystemPrompt!==void 0)this.logger.warn("[claude-code] 'customSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt' instead (string or { type: 'preset', preset: 'claude_code', append? })."),J.systemPrompt=this.settings.customSystemPrompt;else if(this.settings.appendSystemPrompt!==void 0)this.logger.warn("[claude-code] 'appendSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt: { type: 'preset', preset: 'claude_code', append: <text> }' instead."),J.systemPrompt={type:"preset",preset:"claude_code",append:this.settings.appendSystemPrompt};if(this.settings.settingSources!==void 0)J.settingSources=this.settings.settingSources;else J.settingSources=[];if(this.settings.additionalDirectories!==void 0)J.additionalDirectories=this.settings.additionalDirectories;if(this.settings.agents!==void 0)J.agents=this.settings.agents;if(this.settings.skills!==void 0)J.skills=this.settings.skills;if(this.settings.settings!==void 0)J.settings=this.settings.settings;if(this.settings.managedSettings!==void 0)J.managedSettings=this.settings.managedSettings;if(this.settings.toolAliases!==void 0)J.toolAliases=this.settings.toolAliases;if(this.settings.toolConfig!==void 0)J.toolConfig=this.settings.toolConfig;if(this.settings.planModeInstructions!==void 0)J.planModeInstructions=this.settings.planModeInstructions;if(this.settings.title!==void 0)J.title=this.settings.title;if(this.settings.forwardSubagentText!==void 0)J.forwardSubagentText=this.settings.forwardSubagentText;if(this.settings.agentProgressSummaries!==void 0)J.agentProgressSummaries=this.settings.agentProgressSummaries;if(this.settings.includeHookEvents!==void 0)J.includeHookEvents=this.settings.includeHookEvents;if(this.settings.taskBudget!==void 0)J.taskBudget=this.settings.taskBudget;if(this.settings.sessionStore!==void 0)J.sessionStore=this.settings.sessionStore;if(this.settings.sessionStoreFlush!==void 0)J.sessionStoreFlush=this.settings.sessionStoreFlush;if(this.settings.loadTimeoutMs!==void 0)J.loadTimeoutMs=this.settings.loadTimeoutMs;if(this.settings.includePartialMessages!==void 0)J.includePartialMessages=this.settings.includePartialMessages;if(this.settings.fallbackModel!==void 0)J.fallbackModel=this.settings.fallbackModel;if(this.settings.forkSession!==void 0)J.forkSession=this.settings.forkSession;if(this.settings.strictMcpConfig!==void 0)J.strictMcpConfig=this.settings.strictMcpConfig;if(this.settings.extraArgs!==void 0)J.extraArgs=this.settings.extraArgs;if(this.settings.persistSession!==void 0)J.persistSession=this.settings.persistSession;if(this.settings.spawnClaudeCodeProcess!==void 0)J.spawnClaudeCodeProcess=this.settings.spawnClaudeCodeProcess;if(this.settings.hooks)J.hooks=this.settings.hooks;let W=Y?.forkSession??this.settings.forkSession,K=Y?.continue??this.settings.continue;if(this.settings.sessionId!==void 0&&!$.sessionIdConflictsWithResumeOrContinue({resumePresent:J.resume!==void 0,continue:K===!0,forkSession:W===!0}))J.sessionId=this.settings.sessionId;if(this.settings.debug!==void 0)J.debug=this.settings.debug;if(this.settings.debugFile!==void 0)J.debugFile=this.settings.debugFile;let U=Y?Y:void 0,w=U&&typeof U.env==="object"&&U.env!==null?U.env:void 0,F=U&&typeof U.stderr==="function"?U.stderr:void 0;if(U){let B={...U};delete B.env,delete B.stderr;for(let[E,D]of Object.entries(B))if(D!==void 0)J[E]=D}if(this.applySessionResolution(J,Q),typeof J.fallbackModel==="string"&&J.fallbackModel===J.model)throw Error(`fallbackModel cannot be the same as the model ('${String(J.model)}'). Specify a different model for fallbackModel, or remove it.`);let H=F??this.settings.stderr;if(X||H)J.stderr=(B)=>{if(X)X(B);if(H)H(B)};let N={...qg6(),...this.settings.env,...w};if(!("CLAUDE_AGENT_SDK_CLIENT_APP"in N))N.CLAUDE_AGENT_SDK_CLIENT_APP=Lg6;if(J.env=N,G?.type==="json"&&G.schema){let{schema:B,strippedFormatPaths:E}=Ng6(G.schema);if(E.length>0)this.logger.debug(`[claude-code] Stripped unsupported 'format' keywords from outputFormat schema (hints folded into descriptions; client-side Zod validation still enforces them) at: ${E.join(", ")}`);J.outputFormat={type:"json_schema",schema:B}}return J}handleClaudeCodeError(Z,G,X){if(Ls0(Z))throw Z;if(Z instanceof X8||Z instanceof GY)return Z;let Y=(E)=>{return typeof E==="object"&&E!==null&&"message"in E},Q=(E)=>{return typeof E==="object"&&E!==null},J=["not logged in","authentication","unauthorized","auth failed","please login","claude login","claude auth login","/login","invalid api key","oauth_org_not_allowed"],W=Y(Z)&&Z.message?Z.message.toLowerCase():"",K=jg6(Z),U=Q(Z)&&typeof Z.exitCode==="number"?Z.exitCode:void 0;if(K==="authentication_failed"||K==="oauth_org_not_allowed"||J.some((E)=>W.includes(E))||U===401)return Gg6({message:Y(Z)&&Z.message?Z.message:"Authentication failed. Please ensure Claude Code SDK is properly authenticated."});let F=Q(Z)&&typeof Z.code==="string"?Z.code:"";if(F==="ETIMEDOUT"||W.includes("timeout"))return Xg6({message:Y(Z)&&Z.message?Z.message:"Request timed out",promptExcerpt:G.substring(0,200)});let N=(Q(Z)&&typeof Z.stderr==="string"?Z.stderr:void 0)||X||void 0;if(K==="overloaded"||K==="rate_limit"||W.includes("overloaded"))return Cp({message:Y(Z)&&Z.message?Z.message:"Anthropic API is overloaded. Please retry.",code:F||void 0,exitCode:U,stderr:N,promptExcerpt:G.substring(0,200),isRetryable:!0});if(K==="model_not_found"||W.includes("model_not_found")||W.includes("no such model")){let E=Y(Z)&&Z.message?Z.message:"Model not found";return Cp({message:`${E}. The requested model was not found. Verify the model id passed to the provider (e.g. 'opus', 'sonnet', 'haiku', or a full model name) and that your account has access to it.`,code:F||void 0,exitCode:U,stderr:N,promptExcerpt:G.substring(0,200),isRetryable:!1})}let B=F==="ENOENT"||F==="ECONNREFUSED"||F==="ETIMEDOUT"||F==="ECONNRESET";return Cp({message:Y(Z)&&Z.message?Z.message:"Claude Code SDK error",code:F||void 0,exitCode:U,stderr:N,promptExcerpt:G.substring(0,200),isRetryable:B})}setSessionId(Z){this.sessionId=Z;let G=Ug6(Z);if(G)this.logger.warn(`Claude Code Session: ${G}`)}logMcpConnectionIssues(Z){if(!Array.isArray(Z)||Z.length===0)return;let G=Z.filter((Y)=>{let Q=typeof Y.status==="string"?Y.status.toLowerCase():"";return Q==="failed"||Q==="needs-auth"});if(G.length===0)return;let X=G.map((Y)=>{let Q=typeof Y.name==="string"&&Y.name.trim().length>0?Y.name:"<unknown>",J=typeof Y.status==="string"&&Y.status.trim().length>0?Y.status:"unknown",W=typeof Y.error==="string"&&Y.error.trim().length>0?` (${Y.error})`:"";return`${Q}:${J}${W}`}).join(", ");this.logger.warn(`[claude-code] MCP servers not connected: ${X}`)}handleSystemMessage(Z,G,X){switch(Z.subtype){case"api_retry":G.apiRetries+=1,this.logger.debug(`[claude-code] API retry ${Z.attempt}/${Z.max_retries} in ${Z.retry_delay_ms}ms - Status: ${Z.error_status??"unknown"}, Error: ${Z.error}`);break;case"permission_denied":{let Y=Z.decision_reason??Z.message;G.permissionDenials.push({toolName:Z.tool_name,toolUseId:Z.tool_use_id,...Y!==void 0&&{reason:Y}}),this.logger.warn(`[claude-code] Permission denied - Tool: ${Z.tool_name}${Y?`, Reason: ${Y}`:""}`);break}case"mirror_error":{let Y=Z.error??"unknown error",Q=Z.key?.sessionId??Z.session_id??"unknown";G.mirrorErrors.push({error:Y,sessionId:Q}),this.logger.warn(`[claude-code] SessionStore mirror error (transcript batch dropped) - Session: ${Q}, Error: ${Y}`);break}case"model_refusal_fallback":{this.logger.debug(`[claude-code] Model refusal fallback - ${Z.original_model} -> ${Z.fallback_model} (direction: ${Z.direction})`);let Y=Z.retracted_message_uuids;if(X&&Y&&Y.length>0)this.logger.debug(`[claude-code] Refusal fallback retracts ${Y.length} message uuid(s)`),X(Y);break}case"thinking_tokens":G.estimatedThinkingTokens+=Z.estimated_tokens_delta,this.logger.debug(`[claude-code] Thinking tokens estimate - block total: ${Z.estimated_tokens}, delta: ${Z.estimated_tokens_delta}, accumulated: ${G.estimatedThinkingTokens}`);break;default:if(Sg6.has(Z.subtype))this.logger.debug(`[claude-code] Ignoring informational system message: ${Z.subtype}`);else this.logger.debug(`[claude-code] Unhandled system message subtype: ${Z.subtype}`);break}}mergeResultPermissionDenials(Z,G){for(let X of Z.permission_denials??[])if(!G.permissionDenials.some((Q)=>Q.toolUseId!==void 0&&Q.toolUseId===X.tool_use_id))G.permissionDenials.push({toolName:X.tool_name,toolUseId:X.tool_use_id})}async drainPromptSuggestion(Z,G){let X=Z[Symbol.asyncIterator](),Y,Q=new Promise((J)=>{Y=setTimeout(()=>J("timeout"),$.PROMPT_SUGGESTION_DRAIN_TIMEOUT_MS),Y.unref?.()});try{while(!0){let J=await Promise.race([X.next(),Q]);if(J==="timeout"){this.logger.debug("[claude-code] Post-result drain timed out; closing SDK iterator"),X.return?.().catch(()=>{});break}if(J.done)break;let W=J.value;if(this.logger.debug(`[claude-code] Post-result message type: ${W.type}`),W.type==="prompt_suggestion"){G(W.suggestion),X.return?.().catch(()=>{});break}}}catch(J){this.logger.debug(`[claude-code] Error draining post-result messages: ${J instanceof Error?J.message:String(J)}`)}finally{if(Y!==void 0)clearTimeout(Y)}}async doGenerate(Z){this.logger.debug(`[claude-code] Starting doGenerate request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${Z.responseFormat?.type??"none"}`);let{messagesPrompt:G,warnings:X,streamingContentParts:Y,hasImageParts:Q}=lP$(Z.prompt);this.logger.debug(`[claude-code] Converted ${Z.prompt.length} messages, hasImageParts: ${Q}`);let J=new AbortController,W;if(Z.abortSignal?.aborted)J.abort(Z.abortSignal.reason);let K="",U=(w0)=>{K+=w0},w=this.getSanitizedSdkOptions(),F=this.getEffectiveResume(w),H=this.createQueryOptions(J,Z.responseFormat,U,w,F);if(Z.abortSignal&&!Z.abortSignal.aborted)W=()=>J.abort(Z.abortSignal?.reason),Z.abortSignal.addEventListener("abort",W,{once:!0});let N="",B=[],E=()=>B.filter((w0)=>w0.kind==="text").map((w0)=>w0.text).join(""),D=()=>{let w0=0;for(let Y0=0;Y0<B.length;Y0++){let G0=B[Y0]?.kind;if(G0==="tool-result"||G0==="tool-error")w0=Y0+1}return B.slice(w0).filter((Y0)=>Y0.kind==="text").map((Y0)=>Y0.text).join("")},L=new Map,z=new Set,j=(w0)=>{if(w0.size===0)return;let Y0=sP$(w0,B.filter((G0)=>G0.kind==="tool-call"||G0.kind==="tool-result"||G0.kind==="tool-error").map((G0)=>({toolCallId:G0.toolCallId,uuid:G0.uuid})));for(let G0 of Y0)z.add(G0),L.delete(G0),P.delete(G0);for(let G0=B.length-1;G0>=0;G0--){let k0=B[G0];if(k0===void 0)continue;let i="uuid"in k0?k0.uuid:void 0;if(i!==void 0&&w0.has(i)||(k0.kind==="tool-result"||k0.kind==="tool-error")&&Y0.has(k0.toolCallId))B.splice(G0,1)}},P=new Map,A=()=>{if(P.size===1)return P.keys().next().value??null;return null},M,S=!1,q=ZA$(),V={unified:"stop",raw:void 0},t=!1,f,v,e,o,B0,O0,K0,Q0,a={apiRetries:0,permissionDenials:[],mirrorErrors:[],estimatedThinkingTokens:0},T0=this.generateAllWarnings(Z,G);if(X)X.forEach((w0)=>{T0.push({type:"other",message:w0})});let F0=this.settings.streamingInput??"auto",_0=w?.canUseTool??this.settings.canUseTool,m0=w?.permissionPromptToolName??this.settings.permissionPromptToolName,x0=F0==="always"||F0==="auto"&&!!_0;if(!x0&&Q)T0.push({type:"other",message:aP$});let i0=()=>{},H0=new Promise((w0)=>{i0=()=>w0(void 0)});try{if(_0&&m0)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let w0=x0?XA$(G,H0,F,Y,this.settings.onStreamStart):G;this.logger.debug(`[claude-code] Executing query with streamingInput: ${x0}, session: ${F??"new"}`);let Y0=pP$({prompt:w0,options:H});this.settings.onQueryCreated?.(Y0);let G0,k0=Y0[Symbol.asyncIterator](),i={[Symbol.asyncIterator]:()=>({next:()=>k0.next(),return:()=>{return k0.return?.().catch(()=>{}),Promise.resolve({done:!0,value:void 0})}})};for await(let $0 of i)if(this.logger.debug(`[claude-code] Received message type: ${$0.type}`),$0.type==="assistant"){if(typeof $0.error==="string")G0=$0.error;eP$($0,j,this.logger,"truthy");let p0=typeof $0.uuid==="string"?$0.uuid:void 0,I0=$0.parent_tool_use_id,d=$0.message.content;if(Array.isArray(d))for(let m of d){if(!JA$(m))continue;if(m.type==="text"&&typeof m.text==="string"){if(m.text.length>0)B.push({kind:"text",...p0!==void 0&&{uuid:p0},text:m.text})}else if(m.type==="thinking"&&typeof m.thinking==="string")B.push({kind:"reasoning",...p0!==void 0&&{uuid:p0},text:m.thinking});else if(m.type==="tool_use"){let[S0]=this.extractToolUses([m]);if(!S0)continue;let v0=b7(S0.name)?null:kV(I0,S0.parentToolUseId,A);if(this.logger.debug(`[claude-code] Tool use detected - Tool: ${S0.name}, ID: ${S0.id}, SDK parent: ${I0}, resolved parent: ${v0}`),L.set(S0.id,{name:S0.name,parentToolCallId:v0}),b7(S0.name))P.set(S0.id,{startTime:Date.now()});B.push({kind:"tool-call",...p0!==void 0&&{uuid:p0},toolCallId:S0.id,part:this.buildToolCallPart(S0.id,S0.name,this.serializeToolInput(S0.input),v0)})}}N=E()}else if($0.type==="user"){if(!$0.message?.content){this.logger.warn(`[claude-code] Unexpected user message structure: missing content field. Message type: ${$0.type}. This may indicate an SDK protocol violation.`);continue}let p0=$0.parent_tool_use_id,I0=typeof $0.uuid==="string"?$0.uuid:void 0,d=$0.message.content;for(let m of this.extractToolResults(d)){if(this.isRetractedToolFrame(m.id,z,"result"))continue;let S0=L.get(m.id),v0=m.name??S0?.name??$.UNKNOWN_TOOL_NAME;this.logger.debug(`[claude-code] Tool result received - Tool: ${v0}, ID: ${m.id}`);let r0;if(S0)S0.name=v0,r0=S0.parentToolCallId;else this.logger.warn(`[claude-code] Received tool result for unknown tool ID: ${m.id}`),r0=b7(v0)?null:kV(p0,void 0,A),L.set(m.id,{name:v0,parentToolCallId:r0}),B.push({kind:"tool-call",toolCallId:m.id,part:this.buildToolCallPart(m.id,v0,"",r0)});if(b7(v0))P.delete(m.id);B.push({kind:"tool-result",...I0!==void 0&&{uuid:I0},toolCallId:m.id,part:this.buildToolResultPart(m.id,v0,m.result,m.isError,r0)})}for(let m of this.extractToolErrors(d)){if(this.isRetractedToolFrame(m.id,z,"error"))continue;let S0=L.get(m.id),v0=m.name??S0?.name??$.UNKNOWN_TOOL_NAME;this.logger.debug(`[claude-code] Tool error received - Tool: ${v0}, ID: ${m.id}`);let r0;if(S0)S0.name=v0,r0=S0.parentToolCallId;else this.logger.warn(`[claude-code] Received tool error for unknown tool ID: ${m.id}`),r0=b7(v0)?null:kV(p0,void 0,A),L.set(m.id,{name:v0,parentToolCallId:r0}),B.push({kind:"tool-call",toolCallId:m.id,part:this.buildToolCallPart(m.id,v0,"",r0)});if(b7(v0))P.delete(m.id);B.push({kind:"tool-error",...I0!==void 0&&{uuid:I0},toolCallId:m.id,part:this.buildToolErrorResultPart(m.id,v0,m.error,r0)})}}else if($0.type==="result"){if(i0(),S=!0,this.setSessionId($0.session_id),f=$0.total_cost_usd,v=$0.duration_ms,e=$0.modelUsage,"ttft_ms"in $0)o=$0.ttft_ms;if("ttft_stream_ms"in $0)B0=$0.ttft_stream_ms;if("time_to_request_ms"in $0)O0=$0.time_to_request_ms;if("warm_spare_claimed"in $0)K0=$0.warm_spare_claimed;if(Q0=$0.terminal_reason,this.mergeResultPermissionDenials($0,a),"is_error"in $0&&$0.is_error===!0){let d="result"in $0&&typeof $0.result==="string"?$0.result:void 0,m="errors"in $0&&Array.isArray($0.errors)?$0.errors.filter((v0)=>typeof v0==="string").join("; "):"";throw Object.assign(Error(d??(m||"Claude Code CLI returned an error")),{exitCode:1,errorKind:G0})}if($0.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if("structured_output"in $0&&$0.structured_output!==void 0)M=$0.structured_output,this.logger.debug("[claude-code] Received structured output from SDK");if(this.logger.info(`[claude-code] Request completed - Session: ${$0.session_id}, Cost: $${f?.toFixed(4)??"N/A"}, Duration: ${v??"N/A"}ms`),"usage"in $0)q=GA$($0.usage),this.logger.debug(`[claude-code] Token usage - Input: ${q.inputTokens.total}, Output: ${q.outputTokens.total}`);let p0="stop_reason"in $0?$0.stop_reason:void 0;V=mP$($0.subtype,p0),this.logger.debug(`[claude-code] Finish reason: ${V.unified}`);let I0=w?.promptSuggestions??this.settings.promptSuggestions;if(this.settings.onPromptSuggestion&&I0!==!1)await this.drainPromptSuggestion(Y0,this.settings.onPromptSuggestion);break}else if($0.type==="system"&&$0.subtype==="init")this.logMcpConnectionIssues($0.mcp_servers),this.setSessionId($0.session_id),this.logger.info(`[claude-code] Session initialized: ${$0.session_id}`);else if($0.type==="system")this.handleSystemMessage($0,a,$A$(j))}catch(w0){if(i0(),this.logger.debug(`[claude-code] Error during doGenerate: ${w0 instanceof Error?w0.message:String(w0)}`),Ls0(w0))throw this.logger.debug("[claude-code] Request aborted by user"),Z.abortSignal?.aborted?Z.abortSignal.reason:w0;if(rP$(w0,N))this.logger.warn(`[claude-code] Detected truncated response, returning ${N.length} characters of buffered text`),t=!0,V={unified:"length",raw:"truncation"},T0.push({type:"other",message:tP$});else throw this.handleClaudeCodeError(w0,G,K)}finally{if(Z.abortSignal&&W)Z.abortSignal.removeEventListener("abort",W)}if(Z.responseFormat?.type==="json"&&Z.responseFormat.schema!==void 0&&S&&M===void 0&&!t&&V.unified==="stop"){let w0=Ds0(D())??Ds0(E());if(w0!==void 0)this.logger.warn("[claude-code] outputFormat was requested but the CLI returned no structured_output; recovered JSON by parsing the prose response. The schema likely contains constructs the CLI cannot enforce - see the README structured-output limitations."),M=JSON.parse(w0);else throw Cp({message:oP$,promptExcerpt:G.substring(0,200),isRetryable:!1})}let V0=B.filter((w0)=>w0.kind==="reasoning").map((w0)=>w0.text),R0=[];for(let w0 of B)if(w0.kind==="reasoning")R0.push({type:"reasoning",text:w0.text});else if(w0.kind==="text"){if(M!==void 0)continue;let Y0=R0[R0.length-1];if(Y0!==void 0&&Y0.type==="text")Y0.text+=w0.text;else R0.push({type:"text",text:w0.text})}else R0.push(w0.part);if(M!==void 0)R0.push({type:"text",text:JSON.stringify(M)});else if(!R0.some((w0)=>w0.type==="text"))R0.push({type:"text",text:""});return{content:R0,usage:q,finishReason:V,warnings:T0,response:{id:d1(),timestamp:new Date,modelId:this.modelId},request:{body:G},providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},...f!==void 0&&{costUsd:f},...v!==void 0&&{durationMs:v},...e!==void 0&&{modelUsage:e},...o!==void 0&&{ttftMs:o},...B0!==void 0&&{ttftStreamMs:B0},...O0!==void 0&&{timeToRequestMs:O0},...K0!==void 0&&{warmSpareClaimed:K0},...Q0!==void 0&&{terminalReason:Q0},...a.apiRetries>0&&{apiRetries:a.apiRetries},...a.permissionDenials.length>0&&{permissionDenials:a.permissionDenials},...a.mirrorErrors.length>0&&{mirrorErrors:a.mirrorErrors},...a.estimatedThinkingTokens>0&&{estimatedThinkingTokens:a.estimatedThinkingTokens},...t&&{truncated:!0},...V0.length>0&&{thinkingTraces:V0}}}}}async doStream(Z){this.logger.debug(`[claude-code] Starting doStream request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${Z.responseFormat?.type??"none"}`);let{messagesPrompt:G,warnings:X,streamingContentParts:Y,hasImageParts:Q}=lP$(Z.prompt);this.logger.debug(`[claude-code] Converted ${Z.prompt.length} messages for streaming, hasImageParts: ${Q}`);let J=new AbortController,W;if(Z.abortSignal?.aborted)J.abort(Z.abortSignal.reason);let K="",U=(j)=>{K+=j},w=this.getSanitizedSdkOptions(),F=this.getEffectiveResume(w),H=this.createQueryOptions(J,Z.responseFormat,U,w,F);if(Z.abortSignal&&!Z.abortSignal.aborted)W=()=>J.abort(Z.abortSignal?.reason),Z.abortSignal.addEventListener("abort",W,{once:!0});if(H.includePartialMessages===void 0)H.includePartialMessages=!0;let N=this.generateAllWarnings(Z,G);if(X)X.forEach((j)=>{N.push({type:"other",message:j})});let B=this.settings.streamingInput??"auto",E=w?.canUseTool??this.settings.canUseTool,D=w?.permissionPromptToolName??this.settings.permissionPromptToolName,L=B==="always"||B==="auto"&&!!E;if(!L&&Q)N.push({type:"other",message:aP$});return{stream:new ReadableStream({start:async(j)=>{let P=()=>{},A=new Promise((G0)=>{P=()=>G0(void 0)}),M=new Map,S=new Set,q=new Map,V=()=>{if(q.size===1)return q.keys().next().value??null;return null},t=[],f=(G0,k0)=>{if(!k0.inputClosed&&k0.inputStarted)j.enqueue({type:"tool-input-end",id:G0}),k0.inputClosed=!0},v=(G0,k0)=>{if(k0.callEmitted)return;f(G0,k0),j.enqueue(this.buildToolCallPart(G0,k0.name,k0.lastSerializedInput??"",k0.parentToolCallId)),k0.callEmitted=!0},e=()=>{for(let[G0,k0]of M)v(G0,k0);M.clear()},o=ZA$(),B0="",O0=[],K0,Q0=0,a="",T0=!1,F0=!1,_0,m0={apiRetries:0,permissionDenials:[],mirrorErrors:[],estimatedThinkingTokens:0},x0=new Map,i0=new Map,H0=new Map,V0=!1,R0=new Map,w0,Y0=(G0)=>{if(G0.size===0)return;for(let i=O0.length-1;i>=0;i--){let $0=O0[i]?.uuid;if($0!==void 0&&G0.has($0))O0.splice(i,1)}B0=O0.map((i)=>i.text).join("");let k0=sP$(G0,[...M].map(([i,$0])=>({toolCallId:i,uuid:$0.messageUuid})));for(let i of k0){let $0=M.get(i);if(!$0)continue;if(q.delete(i),!$0.callEmitted){f(i,$0),M.delete(i),S.add(i),i0.delete(i);for(let[p0,I0]of x0)if(I0===i)x0.delete(p0);this.logger.debug(`[claude-code] Retracted pending tool call from superseded message - ID: ${i}`)}}};try{if(j.enqueue({type:"stream-start",warnings:N}),E&&D)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let G0=L?XA$(G,A,F,Y,this.settings.onStreamStart):G;this.logger.debug(`[claude-code] Starting stream query with streamingInput: ${L}, session: ${F??"new"}`);let k0=pP$({prompt:G0,options:H});this.settings.onQueryCreated?.(k0);for await(let i of k0){if(this.logger.debug(`[claude-code] Stream received message type: ${i.type}`),i.type==="stream_event"){let p0=i.event;if(p0.type==="content_block_delta"&&p0.delta.type==="text_delta"&&"text"in p0.delta&&p0.delta.text){let I0=p0.delta.text;if(T0=!0,Z.responseFormat?.type==="json"){B0+=I0,Q0+=I0.length;continue}if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:I0}),B0+=I0,Q0+=I0.length,a+=I0}if(p0.type==="content_block_delta"&&p0.delta.type==="input_json_delta"&&"partial_json"in p0.delta&&p0.delta.partial_json){let I0=p0.delta.partial_json;T0=!0;let d="index"in p0?p0.index:-1;if(Z.responseFormat?.type==="json"){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:I0}),B0+=I0,Q0+=I0.length,F0=!0;continue}let m=x0.get(d);if(m){let S0=(i0.get(m)??"")+I0;i0.set(m,S0),j.enqueue({type:"tool-input-delta",id:m,delta:I0});continue}}if(p0.type==="content_block_start"&&"content_block"in p0&&p0.content_block?.type==="tool_use"){let I0="index"in p0?p0.index:-1,d=p0.content_block,m=typeof d.id==="string"&&d.id.length>0?d.id:d1(),S0=typeof d.name==="string"&&d.name.length>0?d.name:$.UNKNOWN_TOOL_NAME;if(T0=!0,K0){let r0=K0;j.enqueue({type:"text-end",id:r0}),K0=void 0;for(let[s0,v1]of H0)if(v1===r0){H0.delete(s0);break}}x0.set(I0,m),i0.set(m,"");let v0=M.get(m);if(!v0){let r0=i.parent_tool_use_id,s0=b7(S0)?null:kV(r0,void 0,V),v1=i.uuid;v0={name:S0,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:s0,...typeof v1==="string"&&{messageUuid:v1}},M.set(m,v0)}if(!v0.inputStarted){if(this.logger.debug(`[claude-code] Tool input started (content_block) - Tool: ${S0}, ID: ${m}, parent: ${v0.parentToolCallId}`),j.enqueue({type:"tool-input-start",id:m,toolName:S0,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:v0.parentToolCallId??null}}}),b7(S0))q.set(m,{startTime:Date.now()});v0.inputStarted=!0}continue}if(p0.type==="content_block_start"&&"content_block"in p0&&p0.content_block?.type==="text"){let I0="index"in p0?p0.index:-1;T0=!0;let d=d1();H0.set(I0,d),K0=d,this.logger.debug(`[claude-code] Text content block started - Index: ${I0}, ID: ${d}`),j.enqueue({type:"text-start",id:d}),V0=!0;continue}if(p0.type==="content_block_start"&&"content_block"in p0&&p0.content_block?.type==="thinking"){let I0="index"in p0?p0.index:-1;if(T0=!0,K0){let m=K0;j.enqueue({type:"text-end",id:m}),K0=void 0;for(let[S0,v0]of H0)if(v0===m){H0.delete(S0);break}}let d=d1();R0.set(I0,d),w0=d,this.logger.debug(`[claude-code] Reasoning started (content_block) - ID: ${d}`),j.enqueue({type:"reasoning-start",id:d});continue}if(p0.type==="content_block_delta"&&p0.delta.type==="thinking_delta"&&"thinking"in p0.delta&&p0.delta.thinking){let I0="index"in p0?p0.index:-1,d=R0.get(I0)??w0;if(T0=!0,d)j.enqueue({type:"reasoning-delta",id:d,delta:p0.delta.thinking});continue}if(p0.type==="content_block_stop"){let I0="index"in p0?p0.index:-1;T0=!0;let d=x0.get(I0);if(d){let v0=M.get(d);if(v0&&!v0.inputClosed){let r0=i0.get(d)??"";this.logger.debug(`[claude-code] Tool content block stopped - Index: ${I0}, Tool: ${v0.name}, ID: ${d}`),j.enqueue({type:"tool-input-end",id:d}),v0.inputClosed=!0;let s0=r0||v0.lastSerializedInput||"";if(v0.lastSerializedInput=s0,!v0.callEmitted)j.enqueue(this.buildToolCallPart(d,v0.name,s0,v0.parentToolCallId)),v0.callEmitted=!0}x0.delete(I0),i0.delete(d);continue}let m=H0.get(I0);if(m){if(this.logger.debug(`[claude-code] Text content block stopped - Index: ${I0}, ID: ${m}`),j.enqueue({type:"text-end",id:m}),H0.delete(I0),K0===m)K0=void 0;continue}let S0=R0.get(I0);if(S0){if(this.logger.debug(`[claude-code] Reasoning ended (content_block) - ID: ${S0}`),j.enqueue({type:"reasoning-end",id:S0}),R0.delete(I0),w0===S0)w0=void 0;continue}}continue}if(i.type==="assistant"){if(typeof i.error==="string")_0=i.error;let $0=eP$(i,Y0,this.logger);if(!i.message?.content){this.logger.warn(`[claude-code] Unexpected assistant message structure: missing content field. Message type: ${i.type}. This may indicate an SDK protocol violation.`);continue}let p0=i.parent_tool_use_id,I0=i.message.content,d=this.extractToolUses(I0);if(K0&&d.length>0){let S0=K0;j.enqueue({type:"text-end",id:S0}),K0=void 0;for(let[v0,r0]of H0)if(r0===S0){H0.delete(v0);break}}for(let S0 of d){let v0=S0.id,r0=M.get(v0);if(!r0){let v1=b7(S0.name)?null:kV(p0,S0.parentToolUseId,V);r0={name:S0.name,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:v1,...typeof i.uuid==="string"&&{messageUuid:i.uuid}},M.set(v0,r0),this.logger.debug(`[claude-code] New tool use detected - Tool: ${S0.name}, ID: ${v0}, SDK parent: ${p0}, resolved parent: ${v1}`)}else if(!r0.parentToolCallId&&p0&&!b7(S0.name))r0.parentToolCallId=p0,this.logger.debug(`[claude-code] Retroactive parent context - Tool: ${S0.name}, ID: ${v0}, parent: ${p0}`);if(r0.name=S0.name,!r0.inputStarted){if(this.logger.debug(`[claude-code] Tool input started - Tool: ${S0.name}, ID: ${v0}`),j.enqueue({type:"tool-input-start",id:v0,toolName:S0.name,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:r0.parentToolCallId??null}}}),b7(S0.name))q.set(v0,{startTime:Date.now()});r0.inputStarted=!0}let s0=this.serializeToolInput(S0.input);if(s0){let v1="";if(r0.lastSerializedInput===void 0){if(s0.length<=$.MAX_DELTA_CALC_SIZE)v1=s0}else if(s0.length<=$.MAX_DELTA_CALC_SIZE&&r0.lastSerializedInput.length<=$.MAX_DELTA_CALC_SIZE&&s0.startsWith(r0.lastSerializedInput))v1=s0.slice(r0.lastSerializedInput.length);else if(s0!==r0.lastSerializedInput)v1="";if(v1)j.enqueue({type:"tool-input-delta",id:v0,delta:v1});r0.lastSerializedInput=s0}}let m=I0.map((S0)=>S0.type==="text"?S0.text:"").join("");if(m){if($0){if(O0.push({...typeof i.uuid==="string"&&{uuid:i.uuid},text:m}),B0=O0.map((S0)=>S0.text).join(""),a===m)Q0=Math.max(Q0,m.length),this.logger.debug("[claude-code] Skipping text emission for superseding assistant message (replacement already streamed)");else if(a.length>0&&m.startsWith(a)){if(Z.responseFormat?.type!=="json"){let S0=m.slice(a.length);if(S0){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:S0}),a=m}}Q0=Math.max(Q0,m.length),this.logger.debug("[claude-code] Emitted unstreamed suffix of superseding assistant message")}else if(Z.responseFormat?.type!=="json"){if(K0){let S0=K0;j.enqueue({type:"text-end",id:S0}),K0=void 0;for(let[v0,r0]of H0)if(r0===S0){H0.delete(v0);break}}K0=d1(),j.enqueue({type:"text-start",id:K0}),j.enqueue({type:"text-delta",id:K0,delta:m}),Q0=Math.max(Q0,m.length),this.logger.debug("[claude-code] Emitted superseding assistant message as a new text part (canonical replacement)")}}else if(T0){let S0=Q0,v0=m.length>S0?m.slice(S0):"";if(B0=m,O0.length=0,O0.push({...typeof i.uuid==="string"&&{uuid:i.uuid},text:m}),Z.responseFormat?.type!=="json"&&v0){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:v0})}Q0=m.length}else if(B0+=m,O0.push({...typeof i.uuid==="string"&&{uuid:i.uuid},text:m}),Z.responseFormat?.type!=="json"){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:m})}}a=""}else if(i.type==="user"){if(!i.message?.content){this.logger.warn(`[claude-code] Unexpected user message structure: missing content field. Message type: ${i.type}. This may indicate an SDK protocol violation.`);continue}if(K0){let I0=K0;j.enqueue({type:"text-end",id:I0}),K0=void 0;for(let[d,m]of H0)if(m===I0){H0.delete(d);break}this.logger.debug("[claude-code] Closed text part due to user message")}B0="",O0.length=0,Q0=0,a="";let $0=i.parent_tool_use_id,p0=i.message.content;for(let I0 of this.extractToolResults(p0)){if(this.isRetractedToolFrame(I0.id,S,"result"))continue;let d=M.get(I0.id),m=I0.name??d?.name??$.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool result received - Tool: ${m}, ID: ${I0.id}`),!d){this.logger.warn(`[claude-code] Received tool result for unknown tool ID: ${I0.id}`);let S0=b7(m)?null:kV($0,void 0,V);if(d={name:m,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:S0},M.set(I0.id,d),!d.inputStarted)j.enqueue({type:"tool-input-start",id:I0.id,toolName:m,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:d.parentToolCallId??null}}}),d.inputStarted=!0;if(!d.inputClosed)j.enqueue({type:"tool-input-end",id:I0.id}),d.inputClosed=!0}if(d.name=m,v(I0.id,d),b7(m))q.delete(I0.id);j.enqueue(this.buildToolResultPart(I0.id,m,I0.result,I0.isError,d.parentToolCallId))}for(let I0 of this.extractToolErrors(p0)){if(this.isRetractedToolFrame(I0.id,S,"error"))continue;let d=M.get(I0.id),m=I0.name??d?.name??$.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool error received - Tool: ${m}, ID: ${I0.id}`),!d){this.logger.warn(`[claude-code] Received tool error for unknown tool ID: ${I0.id}`);let S0=b7(m)?null:kV($0,void 0,V);d={name:m,inputStarted:!0,inputClosed:!0,callEmitted:!1,parentToolCallId:S0},M.set(I0.id,d)}if(v(I0.id,d),b7(m))q.delete(I0.id);j.enqueue(this.buildToolErrorPart(I0.id,m,I0.error,d.parentToolCallId))}}else if(i.type==="result"){if(P(),this.mergeResultPermissionDenials(i,m0),"is_error"in i&&i.is_error===!0){let v0="result"in i&&typeof i.result==="string"?i.result:void 0,r0="errors"in i&&Array.isArray(i.errors)?i.errors.filter((v1)=>typeof v1==="string").join("; "):"";throw Object.assign(Error(v0??(r0||"Claude Code CLI returned an error")),{exitCode:1,errorKind:_0})}if(i.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if(this.logger.info(`[claude-code] Stream completed - Session: ${i.session_id}, Cost: $${i.total_cost_usd?.toFixed(4)??"N/A"}, Duration: ${i.duration_ms??"N/A"}ms`),"usage"in i)o=GA$(i.usage),this.logger.debug(`[claude-code] Stream token usage - Input: ${o.inputTokens.total}, Output: ${o.outputTokens.total}`);let $0="stop_reason"in i?i.stop_reason:void 0,p0=mP$(i.subtype,$0);this.logger.debug(`[claude-code] Stream finish reason: ${p0.unified}`),this.setSessionId(i.session_id);let I0="structured_output"in i?i.structured_output:void 0;if(F0&&Z.responseFormat?.type==="json"&&T0){if(K0)j.enqueue({type:"text-end",id:K0})}else if(I0!==void 0){let v0=d1(),r0=JSON.stringify(I0);j.enqueue({type:"text-start",id:v0}),j.enqueue({type:"text-delta",id:v0,delta:r0}),j.enqueue({type:"text-end",id:v0})}else if(Z.responseFormat?.type==="json"&&Z.responseFormat.schema!==void 0&&p0.unified==="stop"){let v0=Ds0(B0);if(v0===void 0)throw Cp({message:oP$,promptExcerpt:G.substring(0,200),isRetryable:!1});if(this.logger.warn("[claude-code] outputFormat was requested but the CLI returned no structured_output; recovered JSON by parsing the prose response. The schema likely contains constructs the CLI cannot enforce - see the README structured-output limitations."),K0)j.enqueue({type:"text-end",id:K0});let r0=d1();j.enqueue({type:"text-start",id:r0}),j.enqueue({type:"text-delta",id:r0,delta:v0}),j.enqueue({type:"text-end",id:r0})}else if(K0)j.enqueue({type:"text-end",id:K0});else if(B0&&!V0){let v0=d1();j.enqueue({type:"text-start",id:v0}),j.enqueue({type:"text-delta",id:v0,delta:B0}),j.enqueue({type:"text-end",id:v0})}e();let m=this.serializeWarningsForMetadata(t);j.enqueue({type:"finish",finishReason:p0,usage:o,providerMetadata:{"claude-code":{sessionId:i.session_id,...i.total_cost_usd!==void 0&&{costUsd:i.total_cost_usd},...i.duration_ms!==void 0&&{durationMs:i.duration_ms},...i.modelUsage!==void 0&&{modelUsage:i.modelUsage},..."ttft_ms"in i&&i.ttft_ms!==void 0&&{ttftMs:i.ttft_ms},..."ttft_stream_ms"in i&&i.ttft_stream_ms!==void 0&&{ttftStreamMs:i.ttft_stream_ms},..."time_to_request_ms"in i&&i.time_to_request_ms!==void 0&&{timeToRequestMs:i.time_to_request_ms},..."warm_spare_claimed"in i&&i.warm_spare_claimed!==void 0&&{warmSpareClaimed:i.warm_spare_claimed},...i.terminal_reason!==void 0&&{terminalReason:i.terminal_reason},...m0.apiRetries>0&&{apiRetries:m0.apiRetries},...m0.permissionDenials.length>0&&{permissionDenials:m0.permissionDenials},...m0.mirrorErrors.length>0&&{mirrorErrors:m0.mirrorErrors},...m0.estimatedThinkingTokens>0&&{estimatedThinkingTokens:m0.estimatedThinkingTokens},...t.length>0&&{warnings:m}}}}),j.close();let S0=w?.promptSuggestions??this.settings.promptSuggestions;if(this.settings.onPromptSuggestion&&S0!==!1)await this.drainPromptSuggestion(k0,this.settings.onPromptSuggestion);return}else if(i.type==="system"&&i.subtype==="init")this.logMcpConnectionIssues(i.mcp_servers),this.setSessionId(i.session_id),this.logger.info(`[claude-code] Stream session initialized: ${i.session_id}`),j.enqueue({type:"response-metadata",id:i.session_id,timestamp:new Date,modelId:this.modelId});else if(i.type==="system")this.handleSystemMessage(i,m0,$A$(Y0));else if(i.type==="prompt_suggestion")this.logger.debug("[claude-code] Received prompt suggestion"),this.settings.onPromptSuggestion?.(i.suggestion)}e(),this.logger.debug("[claude-code] Stream finalized, closing stream"),j.close()}catch(G0){if(P(),this.logger.debug(`[claude-code] Error during doStream: ${G0 instanceof Error?G0.message:String(G0)}`),rP$(G0,B0)){this.logger.warn(`[claude-code] Detected truncated stream response, returning ${B0.length} characters of buffered text`);let i={type:"other",message:tP$};if(t.push(i),K0)j.enqueue({type:"text-end",id:K0});else if(B0&&!V0){let p0=d1();j.enqueue({type:"text-start",id:p0}),j.enqueue({type:"text-delta",id:p0,delta:B0}),j.enqueue({type:"text-end",id:p0})}e();let $0=this.serializeWarningsForMetadata(t);j.enqueue({type:"finish",finishReason:{unified:"length",raw:"truncation"},usage:o,providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},truncated:!0,...m0.apiRetries>0&&{apiRetries:m0.apiRetries},...m0.permissionDenials.length>0&&{permissionDenials:m0.permissionDenials},...m0.mirrorErrors.length>0&&{mirrorErrors:m0.mirrorErrors},...m0.estimatedThinkingTokens>0&&{estimatedThinkingTokens:m0.estimatedThinkingTokens},...t.length>0&&{warnings:$0}}}}),j.close();return}e();let k0;if(Ls0(G0))k0=Z.abortSignal?.aborted?Z.abortSignal.reason:G0;else k0=this.handleClaudeCodeError(G0,G,K);j.enqueue({type:"error",error:k0}),j.close()}finally{if(Z.abortSignal&&W)Z.abortSignal.removeEventListener("abort",W)}},cancel:()=>{if(Z.abortSignal&&W)Z.abortSignal.removeEventListener("abort",W)}}),request:{body:G}}}serializeWarningsForMetadata(Z){return Z.map((X)=>{let Y={type:X.type};if("message"in X){let Q=X.message;if(Q!==void 0)Y.message=String(Q)}if(X.type==="unsupported"||X.type==="compatibility"){let Q=X.feature;if(Q!==void 0)Y.feature=String(Q);if("details"in X){let J=X.details;if(J!==void 0)Y.details=String(J)}}return Y})}},kd9;var WA$=O(()=>{m1();m1();$1();m1();Qg6=c0.object({debug:c0.any().refine(($)=>typeof $==="function",{message:"debug must be a function"}),info:c0.any().refine(($)=>typeof $==="function",{message:"info must be a function"}),warn:c0.any().refine(($)=>typeof $==="function",{message:"warn must be a function"}),error:c0.any().refine(($)=>typeof $==="function",{message:"error must be a function"})}),Jg6=c0.object({pathToClaudeCodeExecutable:c0.string().optional(),customSystemPrompt:c0.string().optional(),appendSystemPrompt:c0.string().optional(),systemPrompt:c0.union([c0.string(),c0.array(c0.string()),c0.object({type:c0.literal("preset"),preset:c0.literal("claude_code"),append:c0.string().optional(),excludeDynamicSections:c0.boolean().optional()})]).optional(),maxTurns:c0.number().int().min(1).max(100).optional(),maxThinkingTokens:c0.number().int().positive().max(1e5).optional(),thinking:c0.union([c0.object({type:c0.literal("adaptive"),display:c0.enum(["summarized","omitted"]).optional()}).strict(),c0.object({type:c0.literal("enabled"),budgetTokens:c0.number().int().positive().optional(),display:c0.enum(["summarized","omitted"]).optional()}).strict(),c0.object({type:c0.literal("disabled")}).strict()]).optional(),effort:c0.enum(["low","medium","high","xhigh","max"]).optional(),promptSuggestions:c0.boolean().optional(),cwd:c0.string().refine(($)=>{if(typeof process>"u"||!process.versions?.node)return!0;return!$||Yg6($)},{message:"Working directory must exist"}).optional(),executable:c0.enum(["bun","deno","node"]).optional(),executableArgs:c0.array(c0.string()).optional(),permissionMode:c0.enum(["default","acceptEdits","bypassPermissions","plan","dontAsk","auto"]).optional(),permissionPromptToolName:c0.string().optional(),continue:c0.boolean().optional(),resume:c0.string().optional(),sessionId:c0.string().refine(($)=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test($),{message:"sessionId must be a valid UUID (the CLI rejects non-UUID session IDs)"}).optional(),allowedTools:c0.array(c0.string()).optional(),disallowedTools:c0.array(c0.string()).optional(),betas:c0.array(c0.string()).optional(),allowDangerouslySkipPermissions:c0.boolean().optional(),enableFileCheckpointing:c0.boolean().optional(),maxBudgetUsd:c0.number().min(0).optional(),plugins:c0.array(c0.object({type:c0.literal("local"),path:c0.string()}).passthrough()).optional(),resumeSessionAt:c0.string().optional(),sandbox:c0.any().refine(($)=>$===void 0||typeof $==="object",{message:"sandbox must be an object"}).optional(),tools:c0.union([c0.array(c0.string()),c0.object({type:c0.literal("preset"),preset:c0.literal("claude_code")})]).optional(),skills:c0.union([c0.array(c0.string()),c0.literal("all")]).optional(),settings:c0.union([c0.string(),c0.record(c0.string(),c0.any())]).optional(),managedSettings:c0.record(c0.string(),c0.any()).optional(),toolAliases:c0.record(c0.string(),c0.string()).optional(),toolConfig:c0.object({askUserQuestion:c0.object({previewFormat:c0.enum(["markdown","html"]).optional()}).passthrough().optional()}).passthrough().optional(),planModeInstructions:c0.string().optional(),title:c0.string().optional(),forwardSubagentText:c0.boolean().optional(),agentProgressSummaries:c0.boolean().optional(),includeHookEvents:c0.boolean().optional(),taskBudget:c0.object({total:c0.number().positive()}).strict().optional(),sessionStore:c0.any().refine(($)=>$===void 0||typeof $==="object"&&$!==null&&typeof $.append==="function"&&typeof $.load==="function",{message:"sessionStore must be an object with append() and load() functions"}).optional(),sessionStoreFlush:c0.enum(["batched","eager"]).optional(),loadTimeoutMs:c0.number().int().positive().optional(),settingSources:c0.array(c0.enum(["user","project","local"])).optional(),streamingInput:c0.enum(["auto","always","off"]).optional(),canUseTool:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"canUseTool must be a function"}).optional(),onUserDialog:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onUserDialog must be a function"}).optional(),supportedDialogKinds:c0.array(c0.string()).optional(),hooks:c0.record(c0.string(),c0.array(c0.object({matcher:c0.string().optional(),hooks:c0.array(c0.any()).nonempty()}))).optional(),mcpServers:c0.record(c0.string(),c0.union([c0.object({type:c0.literal("stdio").optional(),command:c0.string(),args:c0.array(c0.string()).optional(),env:c0.record(c0.string(),c0.string()).optional()}),c0.object({type:c0.literal("sse"),url:c0.string(),headers:c0.record(c0.string(),c0.string()).optional()}),c0.object({type:c0.literal("http"),url:c0.string(),headers:c0.record(c0.string(),c0.string()).optional()}),c0.object({type:c0.literal("sdk"),name:c0.string(),instance:c0.any()})])).optional(),verbose:c0.boolean().optional(),debug:c0.boolean().optional(),debugFile:c0.string().optional(),logger:c0.union([c0.literal(!1),Qg6]).optional(),env:c0.record(c0.string(),c0.string().optional()).optional(),additionalDirectories:c0.array(c0.string()).optional(),agents:c0.record(c0.string(),c0.object({description:c0.string(),tools:c0.array(c0.string()).optional(),disallowedTools:c0.array(c0.string()).optional(),prompt:c0.string(),model:c0.string().optional(),mcpServers:c0.array(c0.union([c0.string(),c0.record(c0.string(),c0.any())])).optional(),criticalSystemReminder_EXPERIMENTAL:c0.string().optional()}).passthrough()).optional(),includePartialMessages:c0.boolean().optional(),fallbackModel:c0.string().optional(),forkSession:c0.boolean().optional(),stderr:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"stderr must be a function"}).optional(),strictMcpConfig:c0.boolean().optional(),extraArgs:c0.record(c0.string(),c0.union([c0.string(),c0.null()])).optional(),persistSession:c0.boolean().optional(),spawnClaudeCodeProcess:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"spawnClaudeCodeProcess must be a function"}).optional(),sdkOptions:c0.record(c0.string(),c0.any()).optional(),maxToolResultSize:c0.number().int().min(100).max(1e6).optional(),onQueryCreated:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onQueryCreated must be a function"}).optional(),onStreamStart:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onStreamStart must be a function"}).optional(),onPromptSuggestion:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onPromptSuggestion must be a function"}).optional()}).strict();wg6=["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"],Fg6=["items","additionalItems","additionalProperties","unevaluatedItems","unevaluatedProperties","not","contains","propertyNames","contentSchema","if","then","else"],Hg6=["prefixItems","anyOf","oneOf","allOf"];Bg6={debug:($)=>console.debug(`[DEBUG] ${$}`),info:($)=>console.info(`[INFO] ${$}`),warn:($)=>console.warn(`[WARN] ${$}`),error:($)=>console.error(`[ERROR] ${$}`)},Og6={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};Lg6=`ai-sdk-provider-claude-code/${Dg6}`;Pg6=process.platform==="win32"?["APPDATA","COMSPEC","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PATHEXT","SYSTEMDRIVE","SYSTEMROOT","TEMP","TMP","USERNAME","USERPROFILE","WINDIR"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER","LANG","LC_ALL","TMPDIR"],Ag6=["CLAUDE_CONFIG_DIR"],Tg6=["HTTP_PROXY","HTTPS_PROXY","NO_PROXY","http_proxy","https_proxy","no_proxy","NODE_EXTRA_CA_CERTS","SSL_CERT_FILE","SSL_CERT_DIR"],Ig6=["GCLOUD_PROJECT","CLOUD_ML_REGION"],Rg6=["ANTHROPIC_","CLAUDE_","AWS_","GOOGLE_"];Mg6=new Set(["model","abortController","prompt","outputFormat"]),kg6=new Set(["Task","Agent"]);Sg6=new Set(["notification","status","task_updated","session_state_changed","commands_changed","memory_recall","plugin_install"]);Cg6={opus:"opus",sonnet:"sonnet",haiku:"haiku"};kd9=As0()});import{existsSync as UA$}from"fs";import{createRequire as fg6}from"module";import{dirname as KA$,join as xg6}from"path";function vg6($){if($.platform!=="linux")return!1;if(typeof $.glibcVersionRuntime==="string"&&$.glibcVersionRuntime.length>0)return!1;return $.hasMuslLoader}function yg6($,Z,G){if($!=="linux")return[`${$}-${Z}`];let X=`linux-${Z}`,Y=`linux-${Z}-musl`;return G?[Y,X]:[X,Y]}function gg6($){if($==="arm64")return"aarch64";if($==="x64")return"x86_64";return $}function hg6($){let Z=gg6($);return[`/lib/ld-musl-${Z}.so.1`,`/usr/lib/ld-musl-${Z}.so.1`].some((G)=>UA$(G))}function cg6(){return(typeof process.report?.getReport==="function"?process.report.getReport():null)?.header?.glibcVersionRuntime}function ug6(){return vg6({platform:process.platform,glibcVersionRuntime:cg6(),hasMuslLoader:hg6(process.arch)})}function wA$(){if(process.platform!=="linux")return;let $;try{let Z=fg6(import.meta.url).resolve(dg6);$=KA$(KA$(Z))}catch{return}for(let Z of yg6(process.platform,process.arch,ug6())){let G=xg6($,`claude-agent-sdk-${Z}`,"claude");if(UA$(G))return G}return}var dg6="@anthropic-ai/claude-agent-sdk";var FA$=()=>{};function Ts0($,Z){let G=["AskUserQuestion","ExitPlanMode","EnterWorktree","ExitWorktree","Config"],X={mcpServers:Z?.mcpServers,cwd:Z?.cwd??process.cwd(),settingSources:["user","project","local"]},Y=wA$();if(Y)X.pathToClaudeCodeExecutable=Y;if(Z?.isPlanMode||Z?.toolApprovalLevel==="readonly")X.permissionMode="bypassPermissions",X.disallowedTools=[...G,"Write","Edit","Bash","NotebookEdit"];else X.permissionMode="bypassPermissions",X.disallowedTools=[...G];if(Z?.resume)X.resume=Z.resume;if(Z?.systemPrompt)X.systemPrompt=Z.systemPrompt;return As0({defaultSettings:X})($)}function Is0($){return lg6[$]??$}var lg6;var HA$=O(()=>{WA$();FA$();lg6={"claude-code:opus":"opus","claude-code:opus-1m":"opus[1m]","claude-code:sonnet":"sonnet","claude-code:haiku":"haiku","claude-code:fable":"claude-fable-5"}});function KE0($){return $??void 0}var WE0="/repo";function UE0($){return JD($,{ignoreIncompleteToolCalls:!0})}function wE0($){for(let Z=$.length-1;Z>=0;Z--){let G=$[Z];if(!G||G.role!=="user")continue;if(typeof G.content==="string")return G.content;if(Array.isArray(G.content))return G.content.filter((Y)=>typeof Y==="object"&&Y!==null&&Y.type==="text").map((Y)=>Y.text).join(`
2438
+ `);try{return JSON.parse(X)}catch{return X}}return Z}buildToolCallPart(Z,G,X,Y){return{type:"tool-call",toolCallId:Z,toolName:G,input:X,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawInput:X,parentToolCallId:Y??null}}}}buildToolResultPart(Z,G,X,Y,Q){let J=this.normalizeToolResult(X),W=typeof X==="string"?X:X===void 0?"":(()=>{try{return JSON.stringify(X)??String(X)}catch{return String(X)}})(),K=this.settings.maxToolResultSize,U=YA$(J,K),w=YA$(W,K);return{type:"tool-result",toolCallId:Z,toolName:G,result:U??"",isError:Y,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawResult:w,rawResultTruncated:w!==W,parentToolCallId:Q??null}}}}serializeToolError(Z){return typeof Z==="string"?Z:typeof Z==="object"&&Z!==null?(()=>{try{return JSON.stringify(Z)??String(Z)}catch{return String(Z)}})():String(Z)}buildToolErrorPart(Z,G,X,Y){let Q=this.serializeToolError(X);return{type:"tool-error",toolCallId:Z,toolName:G,error:Q,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawError:Q,parentToolCallId:Y??null}}}}buildToolErrorResultPart(Z,G,X,Y){let Q=this.serializeToolError(X);return{type:"tool-result",toolCallId:Z,toolName:G,result:Q,isError:!0,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{rawError:Q,parentToolCallId:Y??null}}}}isRetractedToolFrame(Z,G,X){if(!G.has(Z))return!1;return this.logger.debug(`[claude-code] Dropping tool ${X} for retracted (superseded) tool ID: ${Z}`),!0}generateAllWarnings(Z,G){let X=[],Y=[];if(Z.temperature!==void 0)Y.push("temperature");if(Z.topP!==void 0)Y.push("topP");if(Z.topK!==void 0)Y.push("topK");if(Z.presencePenalty!==void 0)Y.push("presencePenalty");if(Z.frequencyPenalty!==void 0)Y.push("frequencyPenalty");if(Z.stopSequences!==void 0&&Z.stopSequences.length>0)Y.push("stopSequences");if(Z.seed!==void 0)Y.push("seed");if(Y.length>0)for(let J of Y)X.push({type:"unsupported",feature:J,details:`Claude Code SDK does not support the ${J} parameter. It will be ignored.`});if(Z.tools!==void 0&&Z.tools.length>0)X.push({type:"unsupported",feature:"tools",details:"The Claude Code CLI executes its own tools; AI SDK tools cannot be auto-bridged at the provider layer and will be ignored. To expose custom tools to the CLI, build an in-process MCP server with the createAiSdkMcpServer helper (exported by this package) and pass it via the mcpServers setting (plus allowedTools)."});if(Z.toolChoice!==void 0&&Z.toolChoice.type!=="auto")X.push({type:"unsupported",feature:"toolChoice",details:`Claude Code CLI does not support toolChoice '${Z.toolChoice.type}'. Only automatic tool selection is available; the toolChoice parameter will be ignored.`});if(Z.maxOutputTokens!==void 0)X.push({type:"unsupported",feature:"maxOutputTokens",details:"Claude Code CLI does not accept an output token cap. The maxOutputTokens parameter will be ignored."});if(this.modelValidationWarning)X.push({type:"other",message:this.modelValidationWarning});if(this.settingsValidationWarnings.forEach((J)=>{X.push({type:"other",message:J})}),Z.responseFormat?.type==="json"&&!Z.responseFormat.schema)X.push({type:"unsupported",feature:"responseFormat",details:"JSON response format requires a schema for the Claude Code provider. The JSON responseFormat is ignored and the call is treated as plain text."});let Q=Kg6(G);if(Q)X.push({type:"other",message:Q});return X}createQueryOptions(Z,G,X,Y,Q){let J={model:this.getModel(),abortController:Z,resume:Q,pathToClaudeCodeExecutable:this.settings.pathToClaudeCodeExecutable,maxTurns:this.settings.maxTurns,maxThinkingTokens:this.settings.maxThinkingTokens,thinking:this.settings.thinking,effort:this.settings.effort,promptSuggestions:this.settings.promptSuggestions,cwd:this.settings.cwd,executable:this.settings.executable,executableArgs:this.settings.executableArgs,permissionMode:this.settings.permissionMode,permissionPromptToolName:this.settings.permissionPromptToolName,continue:this.settings.continue,allowedTools:this.settings.allowedTools,disallowedTools:this.settings.disallowedTools,betas:this.settings.betas,allowDangerouslySkipPermissions:this.settings.allowDangerouslySkipPermissions,enableFileCheckpointing:this.settings.enableFileCheckpointing,maxBudgetUsd:this.settings.maxBudgetUsd,plugins:this.settings.plugins,resumeSessionAt:this.settings.resumeSessionAt,sandbox:this.settings.sandbox,tools:this.settings.tools,mcpServers:this.settings.mcpServers,canUseTool:this.settings.canUseTool};if(this.settings.onUserDialog!==void 0)J.onUserDialog=this.settings.onUserDialog;if(this.settings.supportedDialogKinds!==void 0)J.supportedDialogKinds=this.settings.supportedDialogKinds;if(this.settings.systemPrompt!==void 0)J.systemPrompt=this.settings.systemPrompt;else if(this.settings.customSystemPrompt!==void 0)this.logger.warn("[claude-code] 'customSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt' instead (string or { type: 'preset', preset: 'claude_code', append? })."),J.systemPrompt=this.settings.customSystemPrompt;else if(this.settings.appendSystemPrompt!==void 0)this.logger.warn("[claude-code] 'appendSystemPrompt' is deprecated and will be removed in a future major release. Please use 'systemPrompt: { type: 'preset', preset: 'claude_code', append: <text> }' instead."),J.systemPrompt={type:"preset",preset:"claude_code",append:this.settings.appendSystemPrompt};if(this.settings.settingSources!==void 0)J.settingSources=this.settings.settingSources;else J.settingSources=[];if(this.settings.additionalDirectories!==void 0)J.additionalDirectories=this.settings.additionalDirectories;if(this.settings.agents!==void 0)J.agents=this.settings.agents;if(this.settings.skills!==void 0)J.skills=this.settings.skills;if(this.settings.settings!==void 0)J.settings=this.settings.settings;if(this.settings.managedSettings!==void 0)J.managedSettings=this.settings.managedSettings;if(this.settings.toolAliases!==void 0)J.toolAliases=this.settings.toolAliases;if(this.settings.toolConfig!==void 0)J.toolConfig=this.settings.toolConfig;if(this.settings.planModeInstructions!==void 0)J.planModeInstructions=this.settings.planModeInstructions;if(this.settings.title!==void 0)J.title=this.settings.title;if(this.settings.forwardSubagentText!==void 0)J.forwardSubagentText=this.settings.forwardSubagentText;if(this.settings.agentProgressSummaries!==void 0)J.agentProgressSummaries=this.settings.agentProgressSummaries;if(this.settings.includeHookEvents!==void 0)J.includeHookEvents=this.settings.includeHookEvents;if(this.settings.taskBudget!==void 0)J.taskBudget=this.settings.taskBudget;if(this.settings.sessionStore!==void 0)J.sessionStore=this.settings.sessionStore;if(this.settings.sessionStoreFlush!==void 0)J.sessionStoreFlush=this.settings.sessionStoreFlush;if(this.settings.loadTimeoutMs!==void 0)J.loadTimeoutMs=this.settings.loadTimeoutMs;if(this.settings.includePartialMessages!==void 0)J.includePartialMessages=this.settings.includePartialMessages;if(this.settings.fallbackModel!==void 0)J.fallbackModel=this.settings.fallbackModel;if(this.settings.forkSession!==void 0)J.forkSession=this.settings.forkSession;if(this.settings.strictMcpConfig!==void 0)J.strictMcpConfig=this.settings.strictMcpConfig;if(this.settings.extraArgs!==void 0)J.extraArgs=this.settings.extraArgs;if(this.settings.persistSession!==void 0)J.persistSession=this.settings.persistSession;if(this.settings.spawnClaudeCodeProcess!==void 0)J.spawnClaudeCodeProcess=this.settings.spawnClaudeCodeProcess;if(this.settings.hooks)J.hooks=this.settings.hooks;let W=Y?.forkSession??this.settings.forkSession,K=Y?.continue??this.settings.continue;if(this.settings.sessionId!==void 0&&!$.sessionIdConflictsWithResumeOrContinue({resumePresent:J.resume!==void 0,continue:K===!0,forkSession:W===!0}))J.sessionId=this.settings.sessionId;if(this.settings.debug!==void 0)J.debug=this.settings.debug;if(this.settings.debugFile!==void 0)J.debugFile=this.settings.debugFile;let U=Y?Y:void 0,w=U&&typeof U.env==="object"&&U.env!==null?U.env:void 0,F=U&&typeof U.stderr==="function"?U.stderr:void 0;if(U){let B={...U};delete B.env,delete B.stderr;for(let[E,D]of Object.entries(B))if(D!==void 0)J[E]=D}if(this.applySessionResolution(J,Q),typeof J.fallbackModel==="string"&&J.fallbackModel===J.model)throw Error(`fallbackModel cannot be the same as the model ('${String(J.model)}'). Specify a different model for fallbackModel, or remove it.`);let H=F??this.settings.stderr;if(X||H)J.stderr=(B)=>{if(X)X(B);if(H)H(B)};let N={...qg6(),...this.settings.env,...w};if(!("CLAUDE_AGENT_SDK_CLIENT_APP"in N))N.CLAUDE_AGENT_SDK_CLIENT_APP=Lg6;if(J.env=N,G?.type==="json"&&G.schema){let{schema:B,strippedFormatPaths:E}=Ng6(G.schema);if(E.length>0)this.logger.debug(`[claude-code] Stripped unsupported 'format' keywords from outputFormat schema (hints folded into descriptions; client-side Zod validation still enforces them) at: ${E.join(", ")}`);J.outputFormat={type:"json_schema",schema:B}}return J}handleClaudeCodeError(Z,G,X){if(Ls0(Z))throw Z;if(Z instanceof X8||Z instanceof GY)return Z;let Y=(E)=>{return typeof E==="object"&&E!==null&&"message"in E},Q=(E)=>{return typeof E==="object"&&E!==null},J=["not logged in","authentication","unauthorized","auth failed","please login","claude login","claude auth login","/login","invalid api key","oauth_org_not_allowed"],W=Y(Z)&&Z.message?Z.message.toLowerCase():"",K=jg6(Z),U=Q(Z)&&typeof Z.exitCode==="number"?Z.exitCode:void 0;if(K==="authentication_failed"||K==="oauth_org_not_allowed"||J.some((E)=>W.includes(E))||U===401)return Gg6({message:Y(Z)&&Z.message?Z.message:"Authentication failed. Please ensure Claude Code SDK is properly authenticated."});let F=Q(Z)&&typeof Z.code==="string"?Z.code:"";if(F==="ETIMEDOUT"||W.includes("timeout"))return Xg6({message:Y(Z)&&Z.message?Z.message:"Request timed out",promptExcerpt:G.substring(0,200)});let N=(Q(Z)&&typeof Z.stderr==="string"?Z.stderr:void 0)||X||void 0;if(K==="overloaded"||K==="rate_limit"||W.includes("overloaded"))return Cp({message:Y(Z)&&Z.message?Z.message:"Anthropic API is overloaded. Please retry.",code:F||void 0,exitCode:U,stderr:N,promptExcerpt:G.substring(0,200),isRetryable:!0});if(K==="model_not_found"||W.includes("model_not_found")||W.includes("no such model")){let E=Y(Z)&&Z.message?Z.message:"Model not found";return Cp({message:`${E}. The requested model was not found. Verify the model id passed to the provider (e.g. 'opus', 'sonnet', 'haiku', or a full model name) and that your account has access to it.`,code:F||void 0,exitCode:U,stderr:N,promptExcerpt:G.substring(0,200),isRetryable:!1})}let B=F==="ENOENT"||F==="ECONNREFUSED"||F==="ETIMEDOUT"||F==="ECONNRESET";return Cp({message:Y(Z)&&Z.message?Z.message:"Claude Code SDK error",code:F||void 0,exitCode:U,stderr:N,promptExcerpt:G.substring(0,200),isRetryable:B})}setSessionId(Z){this.sessionId=Z;let G=Ug6(Z);if(G)this.logger.warn(`Claude Code Session: ${G}`)}logMcpConnectionIssues(Z){if(!Array.isArray(Z)||Z.length===0)return;let G=Z.filter((Y)=>{let Q=typeof Y.status==="string"?Y.status.toLowerCase():"";return Q==="failed"||Q==="needs-auth"});if(G.length===0)return;let X=G.map((Y)=>{let Q=typeof Y.name==="string"&&Y.name.trim().length>0?Y.name:"<unknown>",J=typeof Y.status==="string"&&Y.status.trim().length>0?Y.status:"unknown",W=typeof Y.error==="string"&&Y.error.trim().length>0?` (${Y.error})`:"";return`${Q}:${J}${W}`}).join(", ");this.logger.warn(`[claude-code] MCP servers not connected: ${X}`)}handleSystemMessage(Z,G,X){switch(Z.subtype){case"api_retry":G.apiRetries+=1,this.logger.debug(`[claude-code] API retry ${Z.attempt}/${Z.max_retries} in ${Z.retry_delay_ms}ms - Status: ${Z.error_status??"unknown"}, Error: ${Z.error}`);break;case"permission_denied":{let Y=Z.decision_reason??Z.message;G.permissionDenials.push({toolName:Z.tool_name,toolUseId:Z.tool_use_id,...Y!==void 0&&{reason:Y}}),this.logger.warn(`[claude-code] Permission denied - Tool: ${Z.tool_name}${Y?`, Reason: ${Y}`:""}`);break}case"mirror_error":{let Y=Z.error??"unknown error",Q=Z.key?.sessionId??Z.session_id??"unknown";G.mirrorErrors.push({error:Y,sessionId:Q}),this.logger.warn(`[claude-code] SessionStore mirror error (transcript batch dropped) - Session: ${Q}, Error: ${Y}`);break}case"model_refusal_fallback":{this.logger.debug(`[claude-code] Model refusal fallback - ${Z.original_model} -> ${Z.fallback_model} (direction: ${Z.direction})`);let Y=Z.retracted_message_uuids;if(X&&Y&&Y.length>0)this.logger.debug(`[claude-code] Refusal fallback retracts ${Y.length} message uuid(s)`),X(Y);break}case"thinking_tokens":G.estimatedThinkingTokens+=Z.estimated_tokens_delta,this.logger.debug(`[claude-code] Thinking tokens estimate - block total: ${Z.estimated_tokens}, delta: ${Z.estimated_tokens_delta}, accumulated: ${G.estimatedThinkingTokens}`);break;default:if(Sg6.has(Z.subtype))this.logger.debug(`[claude-code] Ignoring informational system message: ${Z.subtype}`);else this.logger.debug(`[claude-code] Unhandled system message subtype: ${Z.subtype}`);break}}mergeResultPermissionDenials(Z,G){for(let X of Z.permission_denials??[])if(!G.permissionDenials.some((Q)=>Q.toolUseId!==void 0&&Q.toolUseId===X.tool_use_id))G.permissionDenials.push({toolName:X.tool_name,toolUseId:X.tool_use_id})}async drainPromptSuggestion(Z,G){let X=Z[Symbol.asyncIterator](),Y,Q=new Promise((J)=>{Y=setTimeout(()=>J("timeout"),$.PROMPT_SUGGESTION_DRAIN_TIMEOUT_MS),Y.unref?.()});try{while(!0){let J=await Promise.race([X.next(),Q]);if(J==="timeout"){this.logger.debug("[claude-code] Post-result drain timed out; closing SDK iterator"),X.return?.().catch(()=>{});break}if(J.done)break;let W=J.value;if(this.logger.debug(`[claude-code] Post-result message type: ${W.type}`),W.type==="prompt_suggestion"){G(W.suggestion),X.return?.().catch(()=>{});break}}}catch(J){this.logger.debug(`[claude-code] Error draining post-result messages: ${J instanceof Error?J.message:String(J)}`)}finally{if(Y!==void 0)clearTimeout(Y)}}async doGenerate(Z){this.logger.debug(`[claude-code] Starting doGenerate request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${Z.responseFormat?.type??"none"}`);let{messagesPrompt:G,warnings:X,streamingContentParts:Y,hasImageParts:Q}=lP$(Z.prompt);this.logger.debug(`[claude-code] Converted ${Z.prompt.length} messages, hasImageParts: ${Q}`);let J=new AbortController,W;if(Z.abortSignal?.aborted)J.abort(Z.abortSignal.reason);let K="",U=(w0)=>{K+=w0},w=this.getSanitizedSdkOptions(),F=this.getEffectiveResume(w),H=this.createQueryOptions(J,Z.responseFormat,U,w,F);if(Z.abortSignal&&!Z.abortSignal.aborted)W=()=>J.abort(Z.abortSignal?.reason),Z.abortSignal.addEventListener("abort",W,{once:!0});let N="",B=[],E=()=>B.filter((w0)=>w0.kind==="text").map((w0)=>w0.text).join(""),D=()=>{let w0=0;for(let Y0=0;Y0<B.length;Y0++){let G0=B[Y0]?.kind;if(G0==="tool-result"||G0==="tool-error")w0=Y0+1}return B.slice(w0).filter((Y0)=>Y0.kind==="text").map((Y0)=>Y0.text).join("")},L=new Map,z=new Set,j=(w0)=>{if(w0.size===0)return;let Y0=sP$(w0,B.filter((G0)=>G0.kind==="tool-call"||G0.kind==="tool-result"||G0.kind==="tool-error").map((G0)=>({toolCallId:G0.toolCallId,uuid:G0.uuid})));for(let G0 of Y0)z.add(G0),L.delete(G0),P.delete(G0);for(let G0=B.length-1;G0>=0;G0--){let k0=B[G0];if(k0===void 0)continue;let i="uuid"in k0?k0.uuid:void 0;if(i!==void 0&&w0.has(i)||(k0.kind==="tool-result"||k0.kind==="tool-error")&&Y0.has(k0.toolCallId))B.splice(G0,1)}},P=new Map,A=()=>{if(P.size===1)return P.keys().next().value??null;return null},M,S=!1,q=ZA$(),V={unified:"stop",raw:void 0},t=!1,f,v,e,o,B0,O0,K0,Q0,a={apiRetries:0,permissionDenials:[],mirrorErrors:[],estimatedThinkingTokens:0},T0=this.generateAllWarnings(Z,G);if(X)X.forEach((w0)=>{T0.push({type:"other",message:w0})});let F0=this.settings.streamingInput??"auto",_0=w?.canUseTool??this.settings.canUseTool,m0=w?.permissionPromptToolName??this.settings.permissionPromptToolName,x0=F0==="always"||F0==="auto"&&!!_0;if(!x0&&Q)T0.push({type:"other",message:aP$});let i0=()=>{},H0=new Promise((w0)=>{i0=()=>w0(void 0)});try{if(_0&&m0)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let w0=x0?XA$(G,H0,F,Y,this.settings.onStreamStart):G;this.logger.debug(`[claude-code] Executing query with streamingInput: ${x0}, session: ${F??"new"}`);let Y0=pP$({prompt:w0,options:H});this.settings.onQueryCreated?.(Y0);let G0,k0=Y0[Symbol.asyncIterator](),i={[Symbol.asyncIterator]:()=>({next:()=>k0.next(),return:()=>{return k0.return?.().catch(()=>{}),Promise.resolve({done:!0,value:void 0})}})};for await(let $0 of i)if(this.logger.debug(`[claude-code] Received message type: ${$0.type}`),$0.type==="assistant"){if(typeof $0.error==="string")G0=$0.error;eP$($0,j,this.logger,"truthy");let p0=typeof $0.uuid==="string"?$0.uuid:void 0,I0=$0.parent_tool_use_id,d=$0.message.content;if(Array.isArray(d))for(let m of d){if(!JA$(m))continue;if(m.type==="text"&&typeof m.text==="string"){if(m.text.length>0)B.push({kind:"text",...p0!==void 0&&{uuid:p0},text:m.text})}else if(m.type==="thinking"&&typeof m.thinking==="string")B.push({kind:"reasoning",...p0!==void 0&&{uuid:p0},text:m.thinking});else if(m.type==="tool_use"){let[S0]=this.extractToolUses([m]);if(!S0)continue;let v0=b7(S0.name)?null:kV(I0,S0.parentToolUseId,A);if(this.logger.debug(`[claude-code] Tool use detected - Tool: ${S0.name}, ID: ${S0.id}, SDK parent: ${I0}, resolved parent: ${v0}`),L.set(S0.id,{name:S0.name,parentToolCallId:v0}),b7(S0.name))P.set(S0.id,{startTime:Date.now()});B.push({kind:"tool-call",...p0!==void 0&&{uuid:p0},toolCallId:S0.id,part:this.buildToolCallPart(S0.id,S0.name,this.serializeToolInput(S0.input),v0)})}}N=E()}else if($0.type==="user"){if(!$0.message?.content){this.logger.warn(`[claude-code] Unexpected user message structure: missing content field. Message type: ${$0.type}. This may indicate an SDK protocol violation.`);continue}let p0=$0.parent_tool_use_id,I0=typeof $0.uuid==="string"?$0.uuid:void 0,d=$0.message.content;for(let m of this.extractToolResults(d)){if(this.isRetractedToolFrame(m.id,z,"result"))continue;let S0=L.get(m.id),v0=m.name??S0?.name??$.UNKNOWN_TOOL_NAME;this.logger.debug(`[claude-code] Tool result received - Tool: ${v0}, ID: ${m.id}`);let r0;if(S0)S0.name=v0,r0=S0.parentToolCallId;else this.logger.warn(`[claude-code] Received tool result for unknown tool ID: ${m.id}`),r0=b7(v0)?null:kV(p0,void 0,A),L.set(m.id,{name:v0,parentToolCallId:r0}),B.push({kind:"tool-call",toolCallId:m.id,part:this.buildToolCallPart(m.id,v0,"",r0)});if(b7(v0))P.delete(m.id);B.push({kind:"tool-result",...I0!==void 0&&{uuid:I0},toolCallId:m.id,part:this.buildToolResultPart(m.id,v0,m.result,m.isError,r0)})}for(let m of this.extractToolErrors(d)){if(this.isRetractedToolFrame(m.id,z,"error"))continue;let S0=L.get(m.id),v0=m.name??S0?.name??$.UNKNOWN_TOOL_NAME;this.logger.debug(`[claude-code] Tool error received - Tool: ${v0}, ID: ${m.id}`);let r0;if(S0)S0.name=v0,r0=S0.parentToolCallId;else this.logger.warn(`[claude-code] Received tool error for unknown tool ID: ${m.id}`),r0=b7(v0)?null:kV(p0,void 0,A),L.set(m.id,{name:v0,parentToolCallId:r0}),B.push({kind:"tool-call",toolCallId:m.id,part:this.buildToolCallPart(m.id,v0,"",r0)});if(b7(v0))P.delete(m.id);B.push({kind:"tool-error",...I0!==void 0&&{uuid:I0},toolCallId:m.id,part:this.buildToolErrorResultPart(m.id,v0,m.error,r0)})}}else if($0.type==="result"){if(i0(),S=!0,this.setSessionId($0.session_id),f=$0.total_cost_usd,v=$0.duration_ms,e=$0.modelUsage,"ttft_ms"in $0)o=$0.ttft_ms;if("ttft_stream_ms"in $0)B0=$0.ttft_stream_ms;if("time_to_request_ms"in $0)O0=$0.time_to_request_ms;if("warm_spare_claimed"in $0)K0=$0.warm_spare_claimed;if(Q0=$0.terminal_reason,this.mergeResultPermissionDenials($0,a),"is_error"in $0&&$0.is_error===!0){let d="result"in $0&&typeof $0.result==="string"?$0.result:void 0,m="errors"in $0&&Array.isArray($0.errors)?$0.errors.filter((v0)=>typeof v0==="string").join("; "):"";throw Object.assign(Error(d??(m||"Claude Code CLI returned an error")),{exitCode:1,errorKind:G0})}if($0.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if("structured_output"in $0&&$0.structured_output!==void 0)M=$0.structured_output,this.logger.debug("[claude-code] Received structured output from SDK");if(this.logger.info(`[claude-code] Request completed - Session: ${$0.session_id}, Cost: $${f?.toFixed(4)??"N/A"}, Duration: ${v??"N/A"}ms`),"usage"in $0)q=GA$($0.usage),this.logger.debug(`[claude-code] Token usage - Input: ${q.inputTokens.total}, Output: ${q.outputTokens.total}`);let p0="stop_reason"in $0?$0.stop_reason:void 0;V=mP$($0.subtype,p0),this.logger.debug(`[claude-code] Finish reason: ${V.unified}`);let I0=w?.promptSuggestions??this.settings.promptSuggestions;if(this.settings.onPromptSuggestion&&I0!==!1)await this.drainPromptSuggestion(Y0,this.settings.onPromptSuggestion);break}else if($0.type==="system"&&$0.subtype==="init")this.logMcpConnectionIssues($0.mcp_servers),this.setSessionId($0.session_id),this.logger.info(`[claude-code] Session initialized: ${$0.session_id}`);else if($0.type==="system")this.handleSystemMessage($0,a,$A$(j))}catch(w0){if(i0(),this.logger.debug(`[claude-code] Error during doGenerate: ${w0 instanceof Error?w0.message:String(w0)}`),Ls0(w0))throw this.logger.debug("[claude-code] Request aborted by user"),Z.abortSignal?.aborted?Z.abortSignal.reason:w0;if(rP$(w0,N))this.logger.warn(`[claude-code] Detected truncated response, returning ${N.length} characters of buffered text`),t=!0,V={unified:"length",raw:"truncation"},T0.push({type:"other",message:tP$});else throw this.handleClaudeCodeError(w0,G,K)}finally{if(Z.abortSignal&&W)Z.abortSignal.removeEventListener("abort",W)}if(Z.responseFormat?.type==="json"&&Z.responseFormat.schema!==void 0&&S&&M===void 0&&!t&&V.unified==="stop"){let w0=Ds0(D())??Ds0(E());if(w0!==void 0)this.logger.warn("[claude-code] outputFormat was requested but the CLI returned no structured_output; recovered JSON by parsing the prose response. The schema likely contains constructs the CLI cannot enforce - see the README structured-output limitations."),M=JSON.parse(w0);else throw Cp({message:oP$,promptExcerpt:G.substring(0,200),isRetryable:!1})}let V0=B.filter((w0)=>w0.kind==="reasoning").map((w0)=>w0.text),R0=[];for(let w0 of B)if(w0.kind==="reasoning")R0.push({type:"reasoning",text:w0.text});else if(w0.kind==="text"){if(M!==void 0)continue;let Y0=R0[R0.length-1];if(Y0!==void 0&&Y0.type==="text")Y0.text+=w0.text;else R0.push({type:"text",text:w0.text})}else R0.push(w0.part);if(M!==void 0)R0.push({type:"text",text:JSON.stringify(M)});else if(!R0.some((w0)=>w0.type==="text"))R0.push({type:"text",text:""});return{content:R0,usage:q,finishReason:V,warnings:T0,response:{id:d1(),timestamp:new Date,modelId:this.modelId},request:{body:G},providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},...f!==void 0&&{costUsd:f},...v!==void 0&&{durationMs:v},...e!==void 0&&{modelUsage:e},...o!==void 0&&{ttftMs:o},...B0!==void 0&&{ttftStreamMs:B0},...O0!==void 0&&{timeToRequestMs:O0},...K0!==void 0&&{warmSpareClaimed:K0},...Q0!==void 0&&{terminalReason:Q0},...a.apiRetries>0&&{apiRetries:a.apiRetries},...a.permissionDenials.length>0&&{permissionDenials:a.permissionDenials},...a.mirrorErrors.length>0&&{mirrorErrors:a.mirrorErrors},...a.estimatedThinkingTokens>0&&{estimatedThinkingTokens:a.estimatedThinkingTokens},...t&&{truncated:!0},...V0.length>0&&{thinkingTraces:V0}}}}}async doStream(Z){this.logger.debug(`[claude-code] Starting doStream request with model: ${this.modelId}`),this.logger.debug(`[claude-code] Response format: ${Z.responseFormat?.type??"none"}`);let{messagesPrompt:G,warnings:X,streamingContentParts:Y,hasImageParts:Q}=lP$(Z.prompt);this.logger.debug(`[claude-code] Converted ${Z.prompt.length} messages for streaming, hasImageParts: ${Q}`);let J=new AbortController,W;if(Z.abortSignal?.aborted)J.abort(Z.abortSignal.reason);let K="",U=(j)=>{K+=j},w=this.getSanitizedSdkOptions(),F=this.getEffectiveResume(w),H=this.createQueryOptions(J,Z.responseFormat,U,w,F);if(Z.abortSignal&&!Z.abortSignal.aborted)W=()=>J.abort(Z.abortSignal?.reason),Z.abortSignal.addEventListener("abort",W,{once:!0});if(H.includePartialMessages===void 0)H.includePartialMessages=!0;let N=this.generateAllWarnings(Z,G);if(X)X.forEach((j)=>{N.push({type:"other",message:j})});let B=this.settings.streamingInput??"auto",E=w?.canUseTool??this.settings.canUseTool,D=w?.permissionPromptToolName??this.settings.permissionPromptToolName,L=B==="always"||B==="auto"&&!!E;if(!L&&Q)N.push({type:"other",message:aP$});return{stream:new ReadableStream({start:async(j)=>{let P=()=>{},A=new Promise((G0)=>{P=()=>G0(void 0)}),M=new Map,S=new Set,q=new Map,V=()=>{if(q.size===1)return q.keys().next().value??null;return null},t=[],f=(G0,k0)=>{if(!k0.inputClosed&&k0.inputStarted)j.enqueue({type:"tool-input-end",id:G0}),k0.inputClosed=!0},v=(G0,k0)=>{if(k0.callEmitted)return;f(G0,k0),j.enqueue(this.buildToolCallPart(G0,k0.name,k0.lastSerializedInput??"",k0.parentToolCallId)),k0.callEmitted=!0},e=()=>{for(let[G0,k0]of M)v(G0,k0);M.clear()},o=ZA$(),B0="",O0=[],K0,Q0=0,a="",T0=!1,F0=!1,_0,m0={apiRetries:0,permissionDenials:[],mirrorErrors:[],estimatedThinkingTokens:0},x0=new Map,i0=new Map,H0=new Map,V0=!1,R0=new Map,w0,Y0=(G0)=>{if(G0.size===0)return;for(let i=O0.length-1;i>=0;i--){let $0=O0[i]?.uuid;if($0!==void 0&&G0.has($0))O0.splice(i,1)}B0=O0.map((i)=>i.text).join("");let k0=sP$(G0,[...M].map(([i,$0])=>({toolCallId:i,uuid:$0.messageUuid})));for(let i of k0){let $0=M.get(i);if(!$0)continue;if(q.delete(i),!$0.callEmitted){f(i,$0),M.delete(i),S.add(i),i0.delete(i);for(let[p0,I0]of x0)if(I0===i)x0.delete(p0);this.logger.debug(`[claude-code] Retracted pending tool call from superseded message - ID: ${i}`)}}};try{if(j.enqueue({type:"stream-start",warnings:N}),E&&D)throw Error("canUseTool requires streamingInput mode ('auto' or 'always') and cannot be used with permissionPromptToolName (SDK constraint). Set streamingInput: 'auto' (or 'always') and remove permissionPromptToolName, or remove canUseTool.");let G0=L?XA$(G,A,F,Y,this.settings.onStreamStart):G;this.logger.debug(`[claude-code] Starting stream query with streamingInput: ${L}, session: ${F??"new"}`);let k0=pP$({prompt:G0,options:H});this.settings.onQueryCreated?.(k0);for await(let i of k0){if(this.logger.debug(`[claude-code] Stream received message type: ${i.type}`),i.type==="stream_event"){let p0=i.event;if(p0.type==="content_block_delta"&&p0.delta.type==="text_delta"&&"text"in p0.delta&&p0.delta.text){let I0=p0.delta.text;if(T0=!0,Z.responseFormat?.type==="json"){B0+=I0,Q0+=I0.length;continue}if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:I0}),B0+=I0,Q0+=I0.length,a+=I0}if(p0.type==="content_block_delta"&&p0.delta.type==="input_json_delta"&&"partial_json"in p0.delta&&p0.delta.partial_json){let I0=p0.delta.partial_json;T0=!0;let d="index"in p0?p0.index:-1;if(Z.responseFormat?.type==="json"){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:I0}),B0+=I0,Q0+=I0.length,F0=!0;continue}let m=x0.get(d);if(m){let S0=(i0.get(m)??"")+I0;i0.set(m,S0),j.enqueue({type:"tool-input-delta",id:m,delta:I0});continue}}if(p0.type==="content_block_start"&&"content_block"in p0&&p0.content_block?.type==="tool_use"){let I0="index"in p0?p0.index:-1,d=p0.content_block,m=typeof d.id==="string"&&d.id.length>0?d.id:d1(),S0=typeof d.name==="string"&&d.name.length>0?d.name:$.UNKNOWN_TOOL_NAME;if(T0=!0,K0){let r0=K0;j.enqueue({type:"text-end",id:r0}),K0=void 0;for(let[s0,v1]of H0)if(v1===r0){H0.delete(s0);break}}x0.set(I0,m),i0.set(m,"");let v0=M.get(m);if(!v0){let r0=i.parent_tool_use_id,s0=b7(S0)?null:kV(r0,void 0,V),v1=i.uuid;v0={name:S0,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:s0,...typeof v1==="string"&&{messageUuid:v1}},M.set(m,v0)}if(!v0.inputStarted){if(this.logger.debug(`[claude-code] Tool input started (content_block) - Tool: ${S0}, ID: ${m}, parent: ${v0.parentToolCallId}`),j.enqueue({type:"tool-input-start",id:m,toolName:S0,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:v0.parentToolCallId??null}}}),b7(S0))q.set(m,{startTime:Date.now()});v0.inputStarted=!0}continue}if(p0.type==="content_block_start"&&"content_block"in p0&&p0.content_block?.type==="text"){let I0="index"in p0?p0.index:-1;T0=!0;let d=d1();H0.set(I0,d),K0=d,this.logger.debug(`[claude-code] Text content block started - Index: ${I0}, ID: ${d}`),j.enqueue({type:"text-start",id:d}),V0=!0;continue}if(p0.type==="content_block_start"&&"content_block"in p0&&p0.content_block?.type==="thinking"){let I0="index"in p0?p0.index:-1;if(T0=!0,K0){let m=K0;j.enqueue({type:"text-end",id:m}),K0=void 0;for(let[S0,v0]of H0)if(v0===m){H0.delete(S0);break}}let d=d1();R0.set(I0,d),w0=d,this.logger.debug(`[claude-code] Reasoning started (content_block) - ID: ${d}`),j.enqueue({type:"reasoning-start",id:d});continue}if(p0.type==="content_block_delta"&&p0.delta.type==="thinking_delta"&&"thinking"in p0.delta&&p0.delta.thinking){let I0="index"in p0?p0.index:-1,d=R0.get(I0)??w0;if(T0=!0,d)j.enqueue({type:"reasoning-delta",id:d,delta:p0.delta.thinking});continue}if(p0.type==="content_block_stop"){let I0="index"in p0?p0.index:-1;T0=!0;let d=x0.get(I0);if(d){let v0=M.get(d);if(v0&&!v0.inputClosed){let r0=i0.get(d)??"";this.logger.debug(`[claude-code] Tool content block stopped - Index: ${I0}, Tool: ${v0.name}, ID: ${d}`),j.enqueue({type:"tool-input-end",id:d}),v0.inputClosed=!0;let s0=r0||v0.lastSerializedInput||"";if(v0.lastSerializedInput=s0,!v0.callEmitted)j.enqueue(this.buildToolCallPart(d,v0.name,s0,v0.parentToolCallId)),v0.callEmitted=!0}x0.delete(I0),i0.delete(d);continue}let m=H0.get(I0);if(m){if(this.logger.debug(`[claude-code] Text content block stopped - Index: ${I0}, ID: ${m}`),j.enqueue({type:"text-end",id:m}),H0.delete(I0),K0===m)K0=void 0;continue}let S0=R0.get(I0);if(S0){if(this.logger.debug(`[claude-code] Reasoning ended (content_block) - ID: ${S0}`),j.enqueue({type:"reasoning-end",id:S0}),R0.delete(I0),w0===S0)w0=void 0;continue}}continue}if(i.type==="assistant"){if(typeof i.error==="string")_0=i.error;let $0=eP$(i,Y0,this.logger);if(!i.message?.content){this.logger.warn(`[claude-code] Unexpected assistant message structure: missing content field. Message type: ${i.type}. This may indicate an SDK protocol violation.`);continue}let p0=i.parent_tool_use_id,I0=i.message.content,d=this.extractToolUses(I0);if(K0&&d.length>0){let S0=K0;j.enqueue({type:"text-end",id:S0}),K0=void 0;for(let[v0,r0]of H0)if(r0===S0){H0.delete(v0);break}}for(let S0 of d){let v0=S0.id,r0=M.get(v0);if(!r0){let v1=b7(S0.name)?null:kV(p0,S0.parentToolUseId,V);r0={name:S0.name,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:v1,...typeof i.uuid==="string"&&{messageUuid:i.uuid}},M.set(v0,r0),this.logger.debug(`[claude-code] New tool use detected - Tool: ${S0.name}, ID: ${v0}, SDK parent: ${p0}, resolved parent: ${v1}`)}else if(!r0.parentToolCallId&&p0&&!b7(S0.name))r0.parentToolCallId=p0,this.logger.debug(`[claude-code] Retroactive parent context - Tool: ${S0.name}, ID: ${v0}, parent: ${p0}`);if(r0.name=S0.name,!r0.inputStarted){if(this.logger.debug(`[claude-code] Tool input started - Tool: ${S0.name}, ID: ${v0}`),j.enqueue({type:"tool-input-start",id:v0,toolName:S0.name,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:r0.parentToolCallId??null}}}),b7(S0.name))q.set(v0,{startTime:Date.now()});r0.inputStarted=!0}let s0=this.serializeToolInput(S0.input);if(s0){let v1="";if(r0.lastSerializedInput===void 0){if(s0.length<=$.MAX_DELTA_CALC_SIZE)v1=s0}else if(s0.length<=$.MAX_DELTA_CALC_SIZE&&r0.lastSerializedInput.length<=$.MAX_DELTA_CALC_SIZE&&s0.startsWith(r0.lastSerializedInput))v1=s0.slice(r0.lastSerializedInput.length);else if(s0!==r0.lastSerializedInput)v1="";if(v1)j.enqueue({type:"tool-input-delta",id:v0,delta:v1});r0.lastSerializedInput=s0}}let m=I0.map((S0)=>S0.type==="text"?S0.text:"").join("");if(m){if($0){if(O0.push({...typeof i.uuid==="string"&&{uuid:i.uuid},text:m}),B0=O0.map((S0)=>S0.text).join(""),a===m)Q0=Math.max(Q0,m.length),this.logger.debug("[claude-code] Skipping text emission for superseding assistant message (replacement already streamed)");else if(a.length>0&&m.startsWith(a)){if(Z.responseFormat?.type!=="json"){let S0=m.slice(a.length);if(S0){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:S0}),a=m}}Q0=Math.max(Q0,m.length),this.logger.debug("[claude-code] Emitted unstreamed suffix of superseding assistant message")}else if(Z.responseFormat?.type!=="json"){if(K0){let S0=K0;j.enqueue({type:"text-end",id:S0}),K0=void 0;for(let[v0,r0]of H0)if(r0===S0){H0.delete(v0);break}}K0=d1(),j.enqueue({type:"text-start",id:K0}),j.enqueue({type:"text-delta",id:K0,delta:m}),Q0=Math.max(Q0,m.length),this.logger.debug("[claude-code] Emitted superseding assistant message as a new text part (canonical replacement)")}}else if(T0){let S0=Q0,v0=m.length>S0?m.slice(S0):"";if(B0=m,O0.length=0,O0.push({...typeof i.uuid==="string"&&{uuid:i.uuid},text:m}),Z.responseFormat?.type!=="json"&&v0){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:v0})}Q0=m.length}else if(B0+=m,O0.push({...typeof i.uuid==="string"&&{uuid:i.uuid},text:m}),Z.responseFormat?.type!=="json"){if(!K0)K0=d1(),j.enqueue({type:"text-start",id:K0});j.enqueue({type:"text-delta",id:K0,delta:m})}}a=""}else if(i.type==="user"){if(!i.message?.content){this.logger.warn(`[claude-code] Unexpected user message structure: missing content field. Message type: ${i.type}. This may indicate an SDK protocol violation.`);continue}if(K0){let I0=K0;j.enqueue({type:"text-end",id:I0}),K0=void 0;for(let[d,m]of H0)if(m===I0){H0.delete(d);break}this.logger.debug("[claude-code] Closed text part due to user message")}B0="",O0.length=0,Q0=0,a="";let $0=i.parent_tool_use_id,p0=i.message.content;for(let I0 of this.extractToolResults(p0)){if(this.isRetractedToolFrame(I0.id,S,"result"))continue;let d=M.get(I0.id),m=I0.name??d?.name??$.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool result received - Tool: ${m}, ID: ${I0.id}`),!d){this.logger.warn(`[claude-code] Received tool result for unknown tool ID: ${I0.id}`);let S0=b7(m)?null:kV($0,void 0,V);if(d={name:m,inputStarted:!1,inputClosed:!1,callEmitted:!1,parentToolCallId:S0},M.set(I0.id,d),!d.inputStarted)j.enqueue({type:"tool-input-start",id:I0.id,toolName:m,providerExecuted:!0,dynamic:!0,providerMetadata:{"claude-code":{parentToolCallId:d.parentToolCallId??null}}}),d.inputStarted=!0;if(!d.inputClosed)j.enqueue({type:"tool-input-end",id:I0.id}),d.inputClosed=!0}if(d.name=m,v(I0.id,d),b7(m))q.delete(I0.id);j.enqueue(this.buildToolResultPart(I0.id,m,I0.result,I0.isError,d.parentToolCallId))}for(let I0 of this.extractToolErrors(p0)){if(this.isRetractedToolFrame(I0.id,S,"error"))continue;let d=M.get(I0.id),m=I0.name??d?.name??$.UNKNOWN_TOOL_NAME;if(this.logger.debug(`[claude-code] Tool error received - Tool: ${m}, ID: ${I0.id}`),!d){this.logger.warn(`[claude-code] Received tool error for unknown tool ID: ${I0.id}`);let S0=b7(m)?null:kV($0,void 0,V);d={name:m,inputStarted:!0,inputClosed:!0,callEmitted:!1,parentToolCallId:S0},M.set(I0.id,d)}if(v(I0.id,d),b7(m))q.delete(I0.id);j.enqueue(this.buildToolErrorPart(I0.id,m,I0.error,d.parentToolCallId))}}else if(i.type==="result"){if(P(),this.mergeResultPermissionDenials(i,m0),"is_error"in i&&i.is_error===!0){let v0="result"in i&&typeof i.result==="string"?i.result:void 0,r0="errors"in i&&Array.isArray(i.errors)?i.errors.filter((v1)=>typeof v1==="string").join("; "):"";throw Object.assign(Error(v0??(r0||"Claude Code CLI returned an error")),{exitCode:1,errorKind:_0})}if(i.subtype==="error_max_structured_output_retries")throw Error("Failed to generate valid structured output after maximum retries. The model could not produce a response matching the required schema.");if(this.logger.info(`[claude-code] Stream completed - Session: ${i.session_id}, Cost: $${i.total_cost_usd?.toFixed(4)??"N/A"}, Duration: ${i.duration_ms??"N/A"}ms`),"usage"in i)o=GA$(i.usage),this.logger.debug(`[claude-code] Stream token usage - Input: ${o.inputTokens.total}, Output: ${o.outputTokens.total}`);let $0="stop_reason"in i?i.stop_reason:void 0,p0=mP$(i.subtype,$0);this.logger.debug(`[claude-code] Stream finish reason: ${p0.unified}`),this.setSessionId(i.session_id);let I0="structured_output"in i?i.structured_output:void 0;if(F0&&Z.responseFormat?.type==="json"&&T0){if(K0)j.enqueue({type:"text-end",id:K0})}else if(I0!==void 0){let v0=d1(),r0=JSON.stringify(I0);j.enqueue({type:"text-start",id:v0}),j.enqueue({type:"text-delta",id:v0,delta:r0}),j.enqueue({type:"text-end",id:v0})}else if(Z.responseFormat?.type==="json"&&Z.responseFormat.schema!==void 0&&p0.unified==="stop"){let v0=Ds0(B0);if(v0===void 0)throw Cp({message:oP$,promptExcerpt:G.substring(0,200),isRetryable:!1});if(this.logger.warn("[claude-code] outputFormat was requested but the CLI returned no structured_output; recovered JSON by parsing the prose response. The schema likely contains constructs the CLI cannot enforce - see the README structured-output limitations."),K0)j.enqueue({type:"text-end",id:K0});let r0=d1();j.enqueue({type:"text-start",id:r0}),j.enqueue({type:"text-delta",id:r0,delta:v0}),j.enqueue({type:"text-end",id:r0})}else if(K0)j.enqueue({type:"text-end",id:K0});else if(B0&&!V0){let v0=d1();j.enqueue({type:"text-start",id:v0}),j.enqueue({type:"text-delta",id:v0,delta:B0}),j.enqueue({type:"text-end",id:v0})}e();let m=this.serializeWarningsForMetadata(t);j.enqueue({type:"finish",finishReason:p0,usage:o,providerMetadata:{"claude-code":{sessionId:i.session_id,...i.total_cost_usd!==void 0&&{costUsd:i.total_cost_usd},...i.duration_ms!==void 0&&{durationMs:i.duration_ms},...i.modelUsage!==void 0&&{modelUsage:i.modelUsage},..."ttft_ms"in i&&i.ttft_ms!==void 0&&{ttftMs:i.ttft_ms},..."ttft_stream_ms"in i&&i.ttft_stream_ms!==void 0&&{ttftStreamMs:i.ttft_stream_ms},..."time_to_request_ms"in i&&i.time_to_request_ms!==void 0&&{timeToRequestMs:i.time_to_request_ms},..."warm_spare_claimed"in i&&i.warm_spare_claimed!==void 0&&{warmSpareClaimed:i.warm_spare_claimed},...i.terminal_reason!==void 0&&{terminalReason:i.terminal_reason},...m0.apiRetries>0&&{apiRetries:m0.apiRetries},...m0.permissionDenials.length>0&&{permissionDenials:m0.permissionDenials},...m0.mirrorErrors.length>0&&{mirrorErrors:m0.mirrorErrors},...m0.estimatedThinkingTokens>0&&{estimatedThinkingTokens:m0.estimatedThinkingTokens},...t.length>0&&{warnings:m}}}}),j.close();let S0=w?.promptSuggestions??this.settings.promptSuggestions;if(this.settings.onPromptSuggestion&&S0!==!1)await this.drainPromptSuggestion(k0,this.settings.onPromptSuggestion);return}else if(i.type==="system"&&i.subtype==="init")this.logMcpConnectionIssues(i.mcp_servers),this.setSessionId(i.session_id),this.logger.info(`[claude-code] Stream session initialized: ${i.session_id}`),j.enqueue({type:"response-metadata",id:i.session_id,timestamp:new Date,modelId:this.modelId});else if(i.type==="system")this.handleSystemMessage(i,m0,$A$(Y0));else if(i.type==="prompt_suggestion")this.logger.debug("[claude-code] Received prompt suggestion"),this.settings.onPromptSuggestion?.(i.suggestion)}e(),this.logger.debug("[claude-code] Stream finalized, closing stream"),j.close()}catch(G0){if(P(),this.logger.debug(`[claude-code] Error during doStream: ${G0 instanceof Error?G0.message:String(G0)}`),rP$(G0,B0)){this.logger.warn(`[claude-code] Detected truncated stream response, returning ${B0.length} characters of buffered text`);let i={type:"other",message:tP$};if(t.push(i),K0)j.enqueue({type:"text-end",id:K0});else if(B0&&!V0){let p0=d1();j.enqueue({type:"text-start",id:p0}),j.enqueue({type:"text-delta",id:p0,delta:B0}),j.enqueue({type:"text-end",id:p0})}e();let $0=this.serializeWarningsForMetadata(t);j.enqueue({type:"finish",finishReason:{unified:"length",raw:"truncation"},usage:o,providerMetadata:{"claude-code":{...this.sessionId!==void 0&&{sessionId:this.sessionId},truncated:!0,...m0.apiRetries>0&&{apiRetries:m0.apiRetries},...m0.permissionDenials.length>0&&{permissionDenials:m0.permissionDenials},...m0.mirrorErrors.length>0&&{mirrorErrors:m0.mirrorErrors},...m0.estimatedThinkingTokens>0&&{estimatedThinkingTokens:m0.estimatedThinkingTokens},...t.length>0&&{warnings:$0}}}}),j.close();return}e();let k0;if(Ls0(G0))k0=Z.abortSignal?.aborted?Z.abortSignal.reason:G0;else k0=this.handleClaudeCodeError(G0,G,K);j.enqueue({type:"error",error:k0}),j.close()}finally{if(Z.abortSignal&&W)Z.abortSignal.removeEventListener("abort",W)}},cancel:()=>{if(Z.abortSignal&&W)Z.abortSignal.removeEventListener("abort",W)}}),request:{body:G}}}serializeWarningsForMetadata(Z){return Z.map((X)=>{let Y={type:X.type};if("message"in X){let Q=X.message;if(Q!==void 0)Y.message=String(Q)}if(X.type==="unsupported"||X.type==="compatibility"){let Q=X.feature;if(Q!==void 0)Y.feature=String(Q);if("details"in X){let J=X.details;if(J!==void 0)Y.details=String(J)}}return Y})}},kd9;var WA$=O(()=>{m1();m1();$1();m1();Qg6=c0.object({debug:c0.any().refine(($)=>typeof $==="function",{message:"debug must be a function"}),info:c0.any().refine(($)=>typeof $==="function",{message:"info must be a function"}),warn:c0.any().refine(($)=>typeof $==="function",{message:"warn must be a function"}),error:c0.any().refine(($)=>typeof $==="function",{message:"error must be a function"})}),Jg6=c0.object({pathToClaudeCodeExecutable:c0.string().optional(),customSystemPrompt:c0.string().optional(),appendSystemPrompt:c0.string().optional(),systemPrompt:c0.union([c0.string(),c0.array(c0.string()),c0.object({type:c0.literal("preset"),preset:c0.literal("claude_code"),append:c0.string().optional(),excludeDynamicSections:c0.boolean().optional()})]).optional(),maxTurns:c0.number().int().min(1).max(100).optional(),maxThinkingTokens:c0.number().int().positive().max(1e5).optional(),thinking:c0.union([c0.object({type:c0.literal("adaptive"),display:c0.enum(["summarized","omitted"]).optional()}).strict(),c0.object({type:c0.literal("enabled"),budgetTokens:c0.number().int().positive().optional(),display:c0.enum(["summarized","omitted"]).optional()}).strict(),c0.object({type:c0.literal("disabled")}).strict()]).optional(),effort:c0.enum(["low","medium","high","xhigh","max"]).optional(),promptSuggestions:c0.boolean().optional(),cwd:c0.string().refine(($)=>{if(typeof process>"u"||!process.versions?.node)return!0;return!$||Yg6($)},{message:"Working directory must exist"}).optional(),executable:c0.enum(["bun","deno","node"]).optional(),executableArgs:c0.array(c0.string()).optional(),permissionMode:c0.enum(["default","acceptEdits","bypassPermissions","plan","dontAsk","auto"]).optional(),permissionPromptToolName:c0.string().optional(),continue:c0.boolean().optional(),resume:c0.string().optional(),sessionId:c0.string().refine(($)=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test($),{message:"sessionId must be a valid UUID (the CLI rejects non-UUID session IDs)"}).optional(),allowedTools:c0.array(c0.string()).optional(),disallowedTools:c0.array(c0.string()).optional(),betas:c0.array(c0.string()).optional(),allowDangerouslySkipPermissions:c0.boolean().optional(),enableFileCheckpointing:c0.boolean().optional(),maxBudgetUsd:c0.number().min(0).optional(),plugins:c0.array(c0.object({type:c0.literal("local"),path:c0.string()}).passthrough()).optional(),resumeSessionAt:c0.string().optional(),sandbox:c0.any().refine(($)=>$===void 0||typeof $==="object",{message:"sandbox must be an object"}).optional(),tools:c0.union([c0.array(c0.string()),c0.object({type:c0.literal("preset"),preset:c0.literal("claude_code")})]).optional(),skills:c0.union([c0.array(c0.string()),c0.literal("all")]).optional(),settings:c0.union([c0.string(),c0.record(c0.string(),c0.any())]).optional(),managedSettings:c0.record(c0.string(),c0.any()).optional(),toolAliases:c0.record(c0.string(),c0.string()).optional(),toolConfig:c0.object({askUserQuestion:c0.object({previewFormat:c0.enum(["markdown","html"]).optional()}).passthrough().optional()}).passthrough().optional(),planModeInstructions:c0.string().optional(),title:c0.string().optional(),forwardSubagentText:c0.boolean().optional(),agentProgressSummaries:c0.boolean().optional(),includeHookEvents:c0.boolean().optional(),taskBudget:c0.object({total:c0.number().positive()}).strict().optional(),sessionStore:c0.any().refine(($)=>$===void 0||typeof $==="object"&&$!==null&&typeof $.append==="function"&&typeof $.load==="function",{message:"sessionStore must be an object with append() and load() functions"}).optional(),sessionStoreFlush:c0.enum(["batched","eager"]).optional(),loadTimeoutMs:c0.number().int().positive().optional(),settingSources:c0.array(c0.enum(["user","project","local"])).optional(),streamingInput:c0.enum(["auto","always","off"]).optional(),canUseTool:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"canUseTool must be a function"}).optional(),onUserDialog:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onUserDialog must be a function"}).optional(),supportedDialogKinds:c0.array(c0.string()).optional(),hooks:c0.record(c0.string(),c0.array(c0.object({matcher:c0.string().optional(),hooks:c0.array(c0.any()).nonempty()}))).optional(),mcpServers:c0.record(c0.string(),c0.union([c0.object({type:c0.literal("stdio").optional(),command:c0.string(),args:c0.array(c0.string()).optional(),env:c0.record(c0.string(),c0.string()).optional()}),c0.object({type:c0.literal("sse"),url:c0.string(),headers:c0.record(c0.string(),c0.string()).optional()}),c0.object({type:c0.literal("http"),url:c0.string(),headers:c0.record(c0.string(),c0.string()).optional()}),c0.object({type:c0.literal("sdk"),name:c0.string(),instance:c0.any()})])).optional(),verbose:c0.boolean().optional(),debug:c0.boolean().optional(),debugFile:c0.string().optional(),logger:c0.union([c0.literal(!1),Qg6]).optional(),env:c0.record(c0.string(),c0.string().optional()).optional(),additionalDirectories:c0.array(c0.string()).optional(),agents:c0.record(c0.string(),c0.object({description:c0.string(),tools:c0.array(c0.string()).optional(),disallowedTools:c0.array(c0.string()).optional(),prompt:c0.string(),model:c0.string().optional(),mcpServers:c0.array(c0.union([c0.string(),c0.record(c0.string(),c0.any())])).optional(),criticalSystemReminder_EXPERIMENTAL:c0.string().optional()}).passthrough()).optional(),includePartialMessages:c0.boolean().optional(),fallbackModel:c0.string().optional(),forkSession:c0.boolean().optional(),stderr:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"stderr must be a function"}).optional(),strictMcpConfig:c0.boolean().optional(),extraArgs:c0.record(c0.string(),c0.union([c0.string(),c0.null()])).optional(),persistSession:c0.boolean().optional(),spawnClaudeCodeProcess:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"spawnClaudeCodeProcess must be a function"}).optional(),sdkOptions:c0.record(c0.string(),c0.any()).optional(),maxToolResultSize:c0.number().int().min(100).max(1e6).optional(),onQueryCreated:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onQueryCreated must be a function"}).optional(),onStreamStart:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onStreamStart must be a function"}).optional(),onPromptSuggestion:c0.any().refine(($)=>$===void 0||typeof $==="function",{message:"onPromptSuggestion must be a function"}).optional()}).strict();wg6=["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"],Fg6=["items","additionalItems","additionalProperties","unevaluatedItems","unevaluatedProperties","not","contains","propertyNames","contentSchema","if","then","else"],Hg6=["prefixItems","anyOf","oneOf","allOf"];Bg6={debug:($)=>console.debug(`[DEBUG] ${$}`),info:($)=>console.info(`[INFO] ${$}`),warn:($)=>console.warn(`[WARN] ${$}`),error:($)=>console.error(`[ERROR] ${$}`)},Og6={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}};Lg6=`ai-sdk-provider-claude-code/${Dg6}`;Pg6=process.platform==="win32"?["APPDATA","COMSPEC","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PATHEXT","SYSTEMDRIVE","SYSTEMROOT","TEMP","TMP","USERNAME","USERPROFILE","WINDIR"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER","LANG","LC_ALL","TMPDIR"],Ag6=["CLAUDE_CONFIG_DIR"],Tg6=["HTTP_PROXY","HTTPS_PROXY","NO_PROXY","http_proxy","https_proxy","no_proxy","NODE_EXTRA_CA_CERTS","SSL_CERT_FILE","SSL_CERT_DIR"],Ig6=["GCLOUD_PROJECT","CLOUD_ML_REGION"],Rg6=["ANTHROPIC_","CLAUDE_","AWS_","GOOGLE_"];Mg6=new Set(["model","abortController","prompt","outputFormat"]),kg6=new Set(["Task","Agent"]);Sg6=new Set(["notification","status","task_updated","session_state_changed","commands_changed","memory_recall","plugin_install"]);Cg6={opus:"opus",sonnet:"sonnet",haiku:"haiku"};kd9=As0()});import{existsSync as UA$}from"fs";import{createRequire as fg6}from"module";import{dirname as KA$,join as xg6}from"path";function vg6($){if($.platform!=="linux")return!1;if(typeof $.glibcVersionRuntime==="string"&&$.glibcVersionRuntime.length>0)return!1;return $.hasMuslLoader}function yg6($,Z,G){if($!=="linux")return[`${$}-${Z}`];let X=`linux-${Z}`,Y=`linux-${Z}-musl`;return G?[Y,X]:[X,Y]}function gg6($){if($==="arm64")return"aarch64";if($==="x64")return"x86_64";return $}function hg6($){let Z=gg6($);return[`/lib/ld-musl-${Z}.so.1`,`/usr/lib/ld-musl-${Z}.so.1`].some((G)=>UA$(G))}function cg6(){return(typeof process.report?.getReport==="function"?process.report.getReport():null)?.header?.glibcVersionRuntime}function ug6(){return vg6({platform:process.platform,glibcVersionRuntime:cg6(),hasMuslLoader:hg6(process.arch)})}function wA$(){if(process.platform!=="linux")return;let $;try{let Z=fg6(import.meta.url).resolve(dg6);$=KA$(KA$(Z))}catch{return}for(let Z of yg6(process.platform,process.arch,ug6())){let G=xg6($,`claude-agent-sdk-${Z}`,"claude");if(UA$(G))return G}return}var dg6="@anthropic-ai/claude-agent-sdk";var FA$=()=>{};function Ts0($,Z){let G=["AskUserQuestion","ExitPlanMode","EnterWorktree","ExitWorktree","Config"],X={mcpServers:Z?.mcpServers,cwd:Z?.cwd??process.cwd(),settingSources:["user","project","local"]},Y=wA$();if(Y)X.pathToClaudeCodeExecutable=Y;if(Z?.isPlanMode||Z?.toolApprovalLevel==="readonly")X.permissionMode="bypassPermissions",X.disallowedTools=[...G,"Write","Edit","Bash","NotebookEdit"];else X.permissionMode="bypassPermissions",X.disallowedTools=[...G];if(Z?.resume)X.resume=Z.resume;if(Z?.systemPrompt)X.systemPrompt=Z.systemPrompt;return As0({defaultSettings:X})($)}function Is0($){return lg6[$]??$}var lg6;var HA$=O(()=>{WA$();FA$();lg6={"claude-code:opus":"opus","claude-code:opus-1m":"opus[1m]","claude-code:sonnet":"claude-sonnet-5","claude-code:haiku":"haiku","claude-code:fable":"claude-fable-5"}});function KE0($){return $??void 0}var WE0="/repo";function UE0($){return JD($,{ignoreIncompleteToolCalls:!0})}function wE0($){for(let Z=$.length-1;Z>=0;Z--){let G=$[Z];if(!G||G.role!=="user")continue;if(typeof G.content==="string")return G.content;if(Array.isArray(G.content))return G.content.filter((Y)=>typeof Y==="object"&&Y!==null&&Y.type==="text").map((Y)=>Y.text).join(`
2439
2439
  `);return""}return""}var Rs0=O(()=>{f6()});function mg6($,Z){if(!Z)return;$.read+=Z.inputTokenDetails?.cacheReadTokens??0,$.write+=Z.inputTokenDetails?.cacheWriteTokens??0,$.input+=Z.inputTokens??0}function By(){let $={inputTokens:0,outputTokens:0,totalTokens:0},Z={read:0,write:0,input:0},G={inputTokens:0,outputTokens:0,totalTokens:0},X=0,Y,Q=0;function J(W){return W?.openrouter?.usage?.cost??0}return{addStep(W,K){if(K!==void 0)Y=K;return Q=W?.inputTokens??0,$={inputTokens:$.inputTokens+(W?.inputTokens??0),outputTokens:$.outputTokens+(W?.outputTokens??0),totalTokens:$.totalTokens+(W?.totalTokens??0)},mg6(Z,W),X+=J(K),{...$}},addExternal(W){G.inputTokens+=W.inputTokens??0,G.outputTokens+=W.outputTokens??0,G.totalTokens+=W.totalTokens??0},buildStepUsage(){return{inputTokens:$.inputTokens,outputTokens:$.outputTokens,totalTokens:$.totalTokens,contextTokens:Q,cachedInputTokens:Z.read,inputTokenDetails:{cacheReadTokens:Z.read,cacheWriteTokens:Z.write,noCacheTokens:$.inputTokens-Z.read-Z.write},...X>0&&{providerMetadata:{openrouter:{usage:{cost:X}}}}}},buildFinalUsage({totalUsage:W,providerKey:K,fallbackProviderMetadata:U}){let w=Y??U,F=X>0&&w?{...w,openrouter:{...w.openrouter??{},usage:{...w.openrouter?.usage??{},cost:X}}}:w,H=W&&((W.inputTokens??0)>0||(W.outputTokens??0)>0)?W:$.totalTokens>0?$:W,N=G.inputTokens>0||G.outputTokens>0||G.totalTokens>0;if(!H&&!N)return;let B=H?.inputTokens??0,E=H?.outputTokens??0,D=H?.totalTokens??0;return{inputTokens:B+G.inputTokens,outputTokens:E+G.outputTokens,reasoningTokens:W?.reasoningTokens??void 0,totalTokens:D+G.totalTokens,contextTokens:Q,cachedInputTokens:Z.read,inputTokenDetails:{cacheReadTokens:Z.read,cacheWriteTokens:Z.write,noCacheTokens:B-Z.read-Z.write},providerMetadata:rc(K&&F?{...F,[K]:{...F[K]??{},reasoning_details:void 0}}:F)}},totalTokens(){return{...$}},cacheTotals(){return{...Z}},cost(){return X}}}var FE0=O(()=>{W6()});function HE0($){let{input:Z}=$,G=By(),X;return({part:Q})=>{if(Q.type==="start")return{agent:{id:Z.agent.id??null},models:{credentialId:Z.models.thinking.credentialId,thinking:{...Z.models.thinking,title:Z.models.thinking.title??Z.models.thinking.id,provider:Z.models.thinking.provider??void 0}},created_at:new Date,thread_id:Z.threadId};if(Q.type==="finish-step"){let J=Q.providerMetadata,W=J?.[$.providerMetadataKey],K=$.extractSessionId(W);if(K)X=K;return G.addStep(Q.usage,J),{usage:G.buildStepUsage()}}if(Q.type==="finish"){let J=G.buildFinalUsage({totalUsage:Q.totalUsage,providerKey:Z.models.thinking.provider});return{...J&&{usage:J},...X&&{codingAgentSessionId:X,codingAgentProvider:$.providerName}}}return}}var qs0=O(()=>{FE0()});function Oy($){return $.kind!=="subtask"&&$.currentThreadTitle===FU}async function*NE0($,Z){let G=$[Symbol.asyncIterator](),X=!1,Y=!1,Q=G.next().then((W)=>({kind:"main",value:W})),J=Z.promise.then((W)=>({kind:"title",value:W?Y50(W):null})).catch((W)=>{return console.warn("[harness:title] title generation failed",T7(W)),{kind:"title",value:null}});try{while(!X||!Y){let W=[];if(!X)W.push(Q);if(!Y)W.push(J);let K=await Promise.race(W);if(K.kind==="main"){if(K.value.done){if(X=!0,!Y)Z.finish();continue}yield K.value.value,Q=G.next().then((U)=>({kind:"main",value:U}));continue}if(Y=!0,K.value)yield K.value}}finally{if(!Y)Z.finish()}}var BE0=()=>{};import{z as NA$}from"zod";function Ey($){let{abortSignal:Z,model:G,userMessage:X}=$,Y=$.timeoutMs??tg6,Q=new AbortController,J=()=>Q.abort();Z?.addEventListener("abort",J,{once:!0});let W,K=setTimeout(()=>{Q.abort()},Y),U=()=>{W=setTimeout(()=>{Q.abort()},pg6)},w=(()=>{let H=X.slice(0,rg6).trim();return BA$(H)?H:"New chat"})();return{promise:(async()=>{try{let N=(await kd0({model:G,schema:ig6,system:ng6,messages:[{role:"user",content:X}],temperature:0.2,abortSignal:Q.signal})).object.title.replace(/[.!?]$/,"").slice(0,60).trim();if(!BA$(N))return w;return N}catch(H){let N=H;if(N.name==="AbortError"){if(Z?.aborted)return console.warn("[decopilot:title] Title generation aborted (parent abort)"),null;return console.warn("[decopilot:title] Title generation timed out; using fallback"),w}return console.error("[decopilot:title] \u274C Failed to generate title:",N.message),w}finally{clearTimeout(W),clearTimeout(K),Z?.removeEventListener("abort",J)}})(),finish:U}}var ig6,ng6=`Generate a concise, sentence-case title (3-7 words) that captures the main topic or goal of this session. Use sentence case: capitalize only the first word and proper nouns.
2440
2440
 
2441
2441
  Good examples: