@keystrokehq/platform 0.1.58 → 0.1.60

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 (321) hide show
  1. package/dist/{awk2-LA3USKJP-BKpYBhCq.mjs → awk2-LA3USKJP-BexZWKSB.mjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-BKpYBhCq.mjs.map → awk2-LA3USKJP-BexZWKSB.mjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-B-FrhBQ1.cjs → awk2-LA3USKJP-Dk3usguJ.cjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-B-FrhBQ1.cjs.map → awk2-LA3USKJP-Dk3usguJ.cjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-DzvAs4Pp.cjs → base64-C2AIWVNC-BFAc-nbp.cjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-DzvAs4Pp.cjs.map → base64-C2AIWVNC-BFAc-nbp.cjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-B03A3RGy.mjs → base64-C2AIWVNC-CvK-Ik1J.mjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-B03A3RGy.mjs.map → base64-C2AIWVNC-CvK-Ik1J.mjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-DB2_t12O.cjs → bash-YZ33HQZQ-CWtyg265.cjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-DB2_t12O.cjs.map → bash-YZ33HQZQ-CWtyg265.cjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-BXIQsuYx.mjs → bash-YZ33HQZQ-eE2nHbiY.mjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-BXIQsuYx.mjs.map → bash-YZ33HQZQ-eE2nHbiY.mjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-D31-RFvn.cjs → cat-TSFMZVYS-B3JkCUh8.cjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-D31-RFvn.cjs.map → cat-TSFMZVYS-B3JkCUh8.cjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-_P4t1grN.mjs → cat-TSFMZVYS-Dds9u7Wh.mjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-_P4t1grN.mjs.map → cat-TSFMZVYS-Dds9u7Wh.mjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-DdjolPqF.mjs → chunk-5H5SCKJM-DeckyTY_.mjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-DdjolPqF.mjs.map → chunk-5H5SCKJM-DeckyTY_.mjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-B9ad3eHF.cjs → chunk-5H5SCKJM-Q0HYHeNk.cjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-B9ad3eHF.cjs.map → chunk-5H5SCKJM-Q0HYHeNk.cjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-CHxBlTzA.cjs → chunk-AQ6FYS2X-Ck_6D9YY.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-CHxBlTzA.cjs.map → chunk-AQ6FYS2X-Ck_6D9YY.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-BKET21tH.mjs → chunk-AQ6FYS2X-DtoddY_R.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-BKET21tH.mjs.map → chunk-AQ6FYS2X-DtoddY_R.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-DmQjuPli.cjs → chunk-CHFEPBH4-Csdk_f04.cjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-DmQjuPli.cjs.map → chunk-CHFEPBH4-Csdk_f04.cjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-DnGhauKV.mjs → chunk-CHFEPBH4-vtk7zMYn.mjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-DnGhauKV.mjs.map → chunk-CHFEPBH4-vtk7zMYn.mjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-BWVkR9nM.mjs → chunk-EBAPSGAO-CkAfVGJA.mjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-BWVkR9nM.mjs.map → chunk-EBAPSGAO-CkAfVGJA.mjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-Vy3lQ5QN.cjs → chunk-EBAPSGAO-DkrgPDaS.cjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-Vy3lQ5QN.cjs.map → chunk-EBAPSGAO-DkrgPDaS.cjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-1f8bgJeH.cjs → chunk-LEKBROJD-DEPTFs2u.cjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-1f8bgJeH.cjs.map → chunk-LEKBROJD-DEPTFs2u.cjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-DGDeYgVW.mjs → chunk-LEKBROJD-DJ50cwTD.mjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-DGDeYgVW.mjs.map → chunk-LEKBROJD-DJ50cwTD.mjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-DH78AK35.cjs → chunk-VPADYNBD-BBWMUsdf.cjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-DH78AK35.cjs.map → chunk-VPADYNBD-BBWMUsdf.cjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-CTiaSkfK.mjs → chunk-VPADYNBD-C-sK73_3.mjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-CTiaSkfK.mjs.map → chunk-VPADYNBD-C-sK73_3.mjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-eUA_u8Qn.cjs → chunk-YCLFEX4T-BivcCNcA.cjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-eUA_u8Qn.cjs.map → chunk-YCLFEX4T-BivcCNcA.cjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-DgHe4Pi2.mjs → chunk-YCLFEX4T-DqabtEJS.mjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-DgHe4Pi2.mjs.map → chunk-YCLFEX4T-DqabtEJS.mjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-D79lEaRW.cjs → column-XT6UFXNQ-CR5ih_nc.cjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-D79lEaRW.cjs.map → column-XT6UFXNQ-CR5ih_nc.cjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-DHEQS2GF.mjs → column-XT6UFXNQ-CpzN6Pzj.mjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-DHEQS2GF.mjs.map → column-XT6UFXNQ-CpzN6Pzj.mjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-DXysDls5.mjs → comm-VV2LDX2J-C-FF9xvt.mjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-DXysDls5.mjs.map → comm-VV2LDX2J-C-FF9xvt.mjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-CGTT44MW.cjs → comm-VV2LDX2J-D-NA62fX.cjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-CGTT44MW.cjs.map → comm-VV2LDX2J-D-NA62fX.cjs.map} +1 -1
  53. package/dist/{config-Cag8eQBs.d.cts → config-D0P7vutz.d.cts} +3 -3
  54. package/dist/{config-BNc4kGsi.d.mts → config-DUP9VbSy.d.mts} +3 -3
  55. package/dist/config.cjs +4 -3
  56. package/dist/config.cjs.map +1 -1
  57. package/dist/config.d.cts +1 -1
  58. package/dist/config.d.mts +1 -1
  59. package/dist/config.mjs +2 -1
  60. package/dist/config.mjs.map +1 -1
  61. package/dist/{cp-BISAAS7A-DOes4Hvy.mjs → cp-BISAAS7A-BBEt_6-T.mjs} +2 -2
  62. package/dist/{cp-BISAAS7A-DOes4Hvy.mjs.map → cp-BISAAS7A-BBEt_6-T.mjs.map} +1 -1
  63. package/dist/{cp-BISAAS7A-D5jsC_Ja.cjs → cp-BISAAS7A-CgLiJ-Og.cjs} +2 -2
  64. package/dist/{cp-BISAAS7A-D5jsC_Ja.cjs.map → cp-BISAAS7A-CgLiJ-Og.cjs.map} +1 -1
  65. package/dist/{cut-OKARJCCV-CWQykrKH.mjs → cut-OKARJCCV-BiNgL8fg.mjs} +3 -3
  66. package/dist/{cut-OKARJCCV-CWQykrKH.mjs.map → cut-OKARJCCV-BiNgL8fg.mjs.map} +1 -1
  67. package/dist/{cut-OKARJCCV-BYu5BKVF.cjs → cut-OKARJCCV-BrnoCG0X.cjs} +3 -3
  68. package/dist/{cut-OKARJCCV-BYu5BKVF.cjs.map → cut-OKARJCCV-BrnoCG0X.cjs.map} +1 -1
  69. package/dist/{diff-MWJFIG7X-5bs9LJjA.cjs → diff-MWJFIG7X-CfpVv0Lf.cjs} +2 -2
  70. package/dist/{diff-MWJFIG7X-5bs9LJjA.cjs.map → diff-MWJFIG7X-CfpVv0Lf.cjs.map} +1 -1
  71. package/dist/{diff-MWJFIG7X-WDZxzXoa.mjs → diff-MWJFIG7X-D_7SsARy.mjs} +2 -2
  72. package/dist/{diff-MWJFIG7X-WDZxzXoa.mjs.map → diff-MWJFIG7X-D_7SsARy.mjs.map} +1 -1
  73. package/dist/{dist-B4jpVn62.cjs → dist-B2pUVq21.cjs} +242 -8152
  74. package/dist/dist-B2pUVq21.cjs.map +1 -0
  75. package/dist/dist-CQoqJpV-.cjs +7995 -0
  76. package/dist/dist-CQoqJpV-.cjs.map +1 -0
  77. package/dist/{dist-CFKAFYn8.mjs → dist-Craixc2h.mjs} +75 -7953
  78. package/dist/dist-Craixc2h.mjs.map +1 -0
  79. package/dist/dist-CwrHmMbi.mjs +7930 -0
  80. package/dist/dist-CwrHmMbi.mjs.map +1 -0
  81. package/dist/{du-572XNP42-DQdhgiDu.mjs → du-572XNP42-C9fV7bFK.mjs} +2 -2
  82. package/dist/{du-572XNP42-DQdhgiDu.mjs.map → du-572XNP42-C9fV7bFK.mjs.map} +1 -1
  83. package/dist/{du-572XNP42-B6fFobEW.cjs → du-572XNP42-TSQafcta.cjs} +2 -2
  84. package/dist/{du-572XNP42-B6fFobEW.cjs.map → du-572XNP42-TSQafcta.cjs.map} +1 -1
  85. package/dist/{env-36M5BO7M-BGZ_rxhn.cjs → env-36M5BO7M-DnvN5s0u.cjs} +2 -2
  86. package/dist/{env-36M5BO7M-BGZ_rxhn.cjs.map → env-36M5BO7M-DnvN5s0u.cjs.map} +1 -1
  87. package/dist/{env-36M5BO7M-8lRqqbej.mjs → env-36M5BO7M-V9RAmOq7.mjs} +2 -2
  88. package/dist/{env-36M5BO7M-8lRqqbej.mjs.map → env-36M5BO7M-V9RAmOq7.mjs.map} +1 -1
  89. package/dist/{expand-JSPG6VOP-ttcSq3Mp.mjs → expand-JSPG6VOP-DIpN6YV2.mjs} +2 -2
  90. package/dist/{expand-JSPG6VOP-ttcSq3Mp.mjs.map → expand-JSPG6VOP-DIpN6YV2.mjs.map} +1 -1
  91. package/dist/{expand-JSPG6VOP-DXrRwA0x.cjs → expand-JSPG6VOP-DeyAjvEw.cjs} +2 -2
  92. package/dist/{expand-JSPG6VOP-DXrRwA0x.cjs.map → expand-JSPG6VOP-DeyAjvEw.cjs.map} +1 -1
  93. package/dist/{expr-5JAACS4X-DH_22zQv.cjs → expr-5JAACS4X-BCTUJSeT.cjs} +2 -2
  94. package/dist/{expr-5JAACS4X-DH_22zQv.cjs.map → expr-5JAACS4X-BCTUJSeT.cjs.map} +1 -1
  95. package/dist/{expr-5JAACS4X-D9wogLfS.mjs → expr-5JAACS4X-D9DTm2FJ.mjs} +2 -2
  96. package/dist/{expr-5JAACS4X-D9wogLfS.mjs.map → expr-5JAACS4X-D9DTm2FJ.mjs.map} +1 -1
  97. package/dist/{find-INTH3OLC-DpnElQT3.cjs → find-INTH3OLC-x1iBhXZF.cjs} +3 -3
  98. package/dist/{find-INTH3OLC-DpnElQT3.cjs.map → find-INTH3OLC-x1iBhXZF.cjs.map} +1 -1
  99. package/dist/{find-INTH3OLC-aFwVFFAB.mjs → find-INTH3OLC-zotDggqK.mjs} +3 -3
  100. package/dist/{find-INTH3OLC-aFwVFFAB.mjs.map → find-INTH3OLC-zotDggqK.mjs.map} +1 -1
  101. package/dist/{fold-4TQNYMSW-BhPIukTe.cjs → fold-4TQNYMSW-Bg5yByvV.cjs} +2 -2
  102. package/dist/{fold-4TQNYMSW-BhPIukTe.cjs.map → fold-4TQNYMSW-Bg5yByvV.cjs.map} +1 -1
  103. package/dist/{fold-4TQNYMSW-DZ55VvYj.mjs → fold-4TQNYMSW-FDi51uQR.mjs} +2 -2
  104. package/dist/{fold-4TQNYMSW-DZ55VvYj.mjs.map → fold-4TQNYMSW-FDi51uQR.mjs.map} +1 -1
  105. package/dist/{grep-V3LQVMRQ-BKuD8_-n.mjs → grep-V3LQVMRQ-DwNJklFD.mjs} +4 -4
  106. package/dist/{grep-V3LQVMRQ-BKuD8_-n.mjs.map → grep-V3LQVMRQ-DwNJklFD.mjs.map} +1 -1
  107. package/dist/{grep-V3LQVMRQ-CAxqwuZO.cjs → grep-V3LQVMRQ-NiN5PwJB.cjs} +4 -4
  108. package/dist/{grep-V3LQVMRQ-CAxqwuZO.cjs.map → grep-V3LQVMRQ-NiN5PwJB.cjs.map} +1 -1
  109. package/dist/{gzip-O5ASJAFY-CV-D3pVh.mjs → gzip-O5ASJAFY-Bk-3ywV0.mjs} +2 -2
  110. package/dist/{gzip-O5ASJAFY-CV-D3pVh.mjs.map → gzip-O5ASJAFY-Bk-3ywV0.mjs.map} +1 -1
  111. package/dist/{gzip-O5ASJAFY-DzFAjkUi.cjs → gzip-O5ASJAFY-D5Hhevf7.cjs} +2 -2
  112. package/dist/{gzip-O5ASJAFY-DzFAjkUi.cjs.map → gzip-O5ASJAFY-D5Hhevf7.cjs.map} +1 -1
  113. package/dist/{head-442HYESI-DBgu0rxy.cjs → head-442HYESI-CesvfzPw.cjs} +2 -2
  114. package/dist/{head-442HYESI-DBgu0rxy.cjs.map → head-442HYESI-CesvfzPw.cjs.map} +1 -1
  115. package/dist/{head-442HYESI-Ch7PCV9u.mjs → head-442HYESI-f6bBENZm.mjs} +2 -2
  116. package/dist/{head-442HYESI-Ch7PCV9u.mjs.map → head-442HYESI-f6bBENZm.mjs.map} +1 -1
  117. package/dist/{help-HZ6M2CKN-D4id4lQj.cjs → help-HZ6M2CKN-6O8-Mr4a.cjs} +2 -2
  118. package/dist/{help-HZ6M2CKN-D4id4lQj.cjs.map → help-HZ6M2CKN-6O8-Mr4a.cjs.map} +1 -1
  119. package/dist/{help-HZ6M2CKN-DbsB_kKH.mjs → help-HZ6M2CKN-CxOfIhWP.mjs} +2 -2
  120. package/dist/{help-HZ6M2CKN-DbsB_kKH.mjs.map → help-HZ6M2CKN-CxOfIhWP.mjs.map} +1 -1
  121. package/dist/{html-to-markdown-JW4MSQZO-DRRXghB2.cjs → html-to-markdown-JW4MSQZO-DJd2wVzH.cjs} +3 -3
  122. package/dist/{html-to-markdown-JW4MSQZO-DRRXghB2.cjs.map → html-to-markdown-JW4MSQZO-DJd2wVzH.cjs.map} +1 -1
  123. package/dist/{html-to-markdown-JW4MSQZO-DP2L09BX.mjs → html-to-markdown-JW4MSQZO-DnLJAzDe.mjs} +3 -3
  124. package/dist/{html-to-markdown-JW4MSQZO-DP2L09BX.mjs.map → html-to-markdown-JW4MSQZO-DnLJAzDe.mjs.map} +1 -1
  125. package/dist/internal.cjs +2 -1
  126. package/dist/internal.d.cts +10 -1
  127. package/dist/internal.d.mts +10 -1
  128. package/dist/internal.mjs +2 -2
  129. package/dist/{join-TBRGI3LQ-B8IO8JE_.mjs → join-TBRGI3LQ-6jQmQbUd.mjs} +2 -2
  130. package/dist/{join-TBRGI3LQ-B8IO8JE_.mjs.map → join-TBRGI3LQ-6jQmQbUd.mjs.map} +1 -1
  131. package/dist/{join-TBRGI3LQ-Dcylcfrm.cjs → join-TBRGI3LQ-DMcFHAmo.cjs} +2 -2
  132. package/dist/{join-TBRGI3LQ-Dcylcfrm.cjs.map → join-TBRGI3LQ-DMcFHAmo.cjs.map} +1 -1
  133. package/dist/{jq-4XLYLOS5-B_XqkngJ.cjs → jq-4XLYLOS5-CsO5KErk.cjs} +4 -4
  134. package/dist/{jq-4XLYLOS5-B_XqkngJ.cjs.map → jq-4XLYLOS5-CsO5KErk.cjs.map} +1 -1
  135. package/dist/{jq-4XLYLOS5-CLIHFVFj.mjs → jq-4XLYLOS5-Dh4fltfR.mjs} +4 -4
  136. package/dist/{jq-4XLYLOS5-CLIHFVFj.mjs.map → jq-4XLYLOS5-Dh4fltfR.mjs.map} +1 -1
  137. package/dist/{js-exec-N5KEZBH7-Brko8dVy.cjs → js-exec-N5KEZBH7-CQVz3Q0A.cjs} +4 -4
  138. package/dist/{js-exec-N5KEZBH7-Brko8dVy.cjs.map → js-exec-N5KEZBH7-CQVz3Q0A.cjs.map} +1 -1
  139. package/dist/{js-exec-N5KEZBH7-CgXIs_Pr.mjs → js-exec-N5KEZBH7-Dcx6wOdJ.mjs} +4 -4
  140. package/dist/{js-exec-N5KEZBH7-CgXIs_Pr.mjs.map → js-exec-N5KEZBH7-Dcx6wOdJ.mjs.map} +1 -1
  141. package/dist/{lib-Cqerwy2i.cjs → lib-BFNM1c6Z.cjs} +2 -2
  142. package/dist/{lib-Cqerwy2i.cjs.map → lib-BFNM1c6Z.cjs.map} +1 -1
  143. package/dist/{lib-A_imGqAQ.mjs → lib-DIOD_EAo.mjs} +2 -2
  144. package/dist/{lib-A_imGqAQ.mjs.map → lib-DIOD_EAo.mjs.map} +1 -1
  145. package/dist/{ln-4LGSXXGD-DfnyRHs0.cjs → ln-4LGSXXGD-BYyQz7Q1.cjs} +2 -2
  146. package/dist/{ln-4LGSXXGD-DfnyRHs0.cjs.map → ln-4LGSXXGD-BYyQz7Q1.cjs.map} +1 -1
  147. package/dist/{ln-4LGSXXGD-BYt_Jm67.mjs → ln-4LGSXXGD-DMUtiCJD.mjs} +2 -2
  148. package/dist/{ln-4LGSXXGD-BYt_Jm67.mjs.map → ln-4LGSXXGD-DMUtiCJD.mjs.map} +1 -1
  149. package/dist/{ls-ZJGQER7M-BaDncpr_.cjs → ls-ZJGQER7M-FVpa8X43.cjs} +2 -2
  150. package/dist/{ls-ZJGQER7M-BaDncpr_.cjs.map → ls-ZJGQER7M-FVpa8X43.cjs.map} +1 -1
  151. package/dist/{ls-ZJGQER7M-qsnDp7Cd.mjs → ls-ZJGQER7M-Rvy8k4Gk.mjs} +2 -2
  152. package/dist/{ls-ZJGQER7M-qsnDp7Cd.mjs.map → ls-ZJGQER7M-Rvy8k4Gk.mjs.map} +1 -1
  153. package/dist/{lzma-BGvGj1-O.cjs → lzma-B-RfzW2c.cjs} +2 -2
  154. package/dist/{lzma-BGvGj1-O.cjs.map → lzma-B-RfzW2c.cjs.map} +1 -1
  155. package/dist/{md5sum-SPU24VSG-dMIUV5CQ.mjs → md5sum-SPU24VSG-DNZHBA1a.mjs} +3 -3
  156. package/dist/{md5sum-SPU24VSG-dMIUV5CQ.mjs.map → md5sum-SPU24VSG-DNZHBA1a.mjs.map} +1 -1
  157. package/dist/{md5sum-SPU24VSG-PRoX8J93.cjs → md5sum-SPU24VSG-DPVysSCl.cjs} +3 -3
  158. package/dist/{md5sum-SPU24VSG-PRoX8J93.cjs.map → md5sum-SPU24VSG-DPVysSCl.cjs.map} +1 -1
  159. package/dist/{mkdir-MEPGZOB6-DPsM58SX.mjs → mkdir-MEPGZOB6-CyGf--Cm.mjs} +2 -2
  160. package/dist/{mkdir-MEPGZOB6-DPsM58SX.mjs.map → mkdir-MEPGZOB6-CyGf--Cm.mjs.map} +1 -1
  161. package/dist/{mkdir-MEPGZOB6-Cz_m28ZY.cjs → mkdir-MEPGZOB6-YXfqlCzE.cjs} +2 -2
  162. package/dist/{mkdir-MEPGZOB6-Cz_m28ZY.cjs.map → mkdir-MEPGZOB6-YXfqlCzE.cjs.map} +1 -1
  163. package/dist/{mv-W5BIQ646-B5xNiEmL.cjs → mv-W5BIQ646-Bt34dnUl.cjs} +2 -2
  164. package/dist/{mv-W5BIQ646-B5xNiEmL.cjs.map → mv-W5BIQ646-Bt34dnUl.cjs.map} +1 -1
  165. package/dist/{mv-W5BIQ646-Br51zxas.mjs → mv-W5BIQ646-Ce8rmJ0Q.mjs} +2 -2
  166. package/dist/{mv-W5BIQ646-Br51zxas.mjs.map → mv-W5BIQ646-Ce8rmJ0Q.mjs.map} +1 -1
  167. package/dist/{nl-WSDW7I4O-DC2kRPJz.mjs → nl-WSDW7I4O-D6nRAVLH.mjs} +2 -2
  168. package/dist/{nl-WSDW7I4O-DC2kRPJz.mjs.map → nl-WSDW7I4O-D6nRAVLH.mjs.map} +1 -1
  169. package/dist/{nl-WSDW7I4O-BKdvn50C.cjs → nl-WSDW7I4O-DAxn2ocD.cjs} +2 -2
  170. package/dist/{nl-WSDW7I4O-BKdvn50C.cjs.map → nl-WSDW7I4O-DAxn2ocD.cjs.map} +1 -1
  171. package/dist/{od-WOKFDJTP-WHD7o2Sj.mjs → od-WOKFDJTP-BabXoqx4.mjs} +2 -2
  172. package/dist/{od-WOKFDJTP-WHD7o2Sj.mjs.map → od-WOKFDJTP-BabXoqx4.mjs.map} +1 -1
  173. package/dist/{od-WOKFDJTP-BV4wg7WM.cjs → od-WOKFDJTP-DCFvUqYP.cjs} +2 -2
  174. package/dist/{od-WOKFDJTP-BV4wg7WM.cjs.map → od-WOKFDJTP-DCFvUqYP.cjs.map} +1 -1
  175. package/dist/{paste-7JC6S4DX-Ub9H7JaO.cjs → paste-7JC6S4DX-C7UvFGQe.cjs} +2 -2
  176. package/dist/{paste-7JC6S4DX-Ub9H7JaO.cjs.map → paste-7JC6S4DX-C7UvFGQe.cjs.map} +1 -1
  177. package/dist/{paste-7JC6S4DX-CdJj-cJI.mjs → paste-7JC6S4DX-Dj42sslL.mjs} +2 -2
  178. package/dist/{paste-7JC6S4DX-CdJj-cJI.mjs.map → paste-7JC6S4DX-Dj42sslL.mjs.map} +1 -1
  179. package/dist/{printf-TWGXF445-cMCHS5Pl.cjs → printf-TWGXF445-BnlGSZJR.cjs} +3 -3
  180. package/dist/{printf-TWGXF445-cMCHS5Pl.cjs.map → printf-TWGXF445-BnlGSZJR.cjs.map} +1 -1
  181. package/dist/{printf-TWGXF445-CFdLOO7W.mjs → printf-TWGXF445-C2Z6mNBD.mjs} +3 -3
  182. package/dist/{printf-TWGXF445-CFdLOO7W.mjs.map → printf-TWGXF445-C2Z6mNBD.mjs.map} +1 -1
  183. package/dist/{python3-POMOR4OA-5ooXQ2zU.cjs → python3-POMOR4OA-CDAWwHm7.cjs} +3 -3
  184. package/dist/{python3-POMOR4OA-5ooXQ2zU.cjs.map → python3-POMOR4OA-CDAWwHm7.cjs.map} +1 -1
  185. package/dist/{python3-POMOR4OA-NwucWAHw.mjs → python3-POMOR4OA-DAjMAMyz.mjs} +3 -3
  186. package/dist/{python3-POMOR4OA-NwucWAHw.mjs.map → python3-POMOR4OA-DAjMAMyz.mjs.map} +1 -1
  187. package/dist/{rev-5EHFX4EJ-hwUj0q3P.mjs → rev-5EHFX4EJ-B16Ckpgv.mjs} +2 -2
  188. package/dist/{rev-5EHFX4EJ-hwUj0q3P.mjs.map → rev-5EHFX4EJ-B16Ckpgv.mjs.map} +1 -1
  189. package/dist/{rev-5EHFX4EJ-CwkYMyBV.cjs → rev-5EHFX4EJ-_MHUCzPM.cjs} +2 -2
  190. package/dist/{rev-5EHFX4EJ-CwkYMyBV.cjs.map → rev-5EHFX4EJ-_MHUCzPM.cjs.map} +1 -1
  191. package/dist/{rg-S4FXYXWB-CYYTczwS.mjs → rg-S4FXYXWB-CYGg7KJe.mjs} +3 -3
  192. package/dist/{rg-S4FXYXWB-CYYTczwS.mjs.map → rg-S4FXYXWB-CYGg7KJe.mjs.map} +1 -1
  193. package/dist/{rg-S4FXYXWB-BG3g_KJu.cjs → rg-S4FXYXWB-DPPBBuTS.cjs} +3 -3
  194. package/dist/{rg-S4FXYXWB-BG3g_KJu.cjs.map → rg-S4FXYXWB-DPPBBuTS.cjs.map} +1 -1
  195. package/dist/{rm-SSGETQVQ-CTu2eV97.cjs → rm-SSGETQVQ-9RBnSF58.cjs} +2 -2
  196. package/dist/{rm-SSGETQVQ-CTu2eV97.cjs.map → rm-SSGETQVQ-9RBnSF58.cjs.map} +1 -1
  197. package/dist/{rm-SSGETQVQ-dEV4Y3ni.mjs → rm-SSGETQVQ-BmY-ghaZ.mjs} +2 -2
  198. package/dist/{rm-SSGETQVQ-dEV4Y3ni.mjs.map → rm-SSGETQVQ-BmY-ghaZ.mjs.map} +1 -1
  199. package/dist/{rmdir-OC4ZLPYA-Dg-oze5t.cjs → rmdir-OC4ZLPYA-BbG121sW.cjs} +2 -2
  200. package/dist/{rmdir-OC4ZLPYA-Dg-oze5t.cjs.map → rmdir-OC4ZLPYA-BbG121sW.cjs.map} +1 -1
  201. package/dist/{rmdir-OC4ZLPYA-DCHxah99.mjs → rmdir-OC4ZLPYA-DUjnpxFS.mjs} +2 -2
  202. package/dist/{rmdir-OC4ZLPYA-DCHxah99.mjs.map → rmdir-OC4ZLPYA-DUjnpxFS.mjs.map} +1 -1
  203. package/dist/run.cjs +1 -1
  204. package/dist/run.mjs +1 -1
  205. package/dist/{sed-S5UIK574-CwxPWXOK.mjs → sed-S5UIK574-3wnnz54B.mjs} +2 -2
  206. package/dist/{sed-S5UIK574-CwxPWXOK.mjs.map → sed-S5UIK574-3wnnz54B.mjs.map} +1 -1
  207. package/dist/{sed-S5UIK574-CsHy53JY.cjs → sed-S5UIK574-DvNnS6Bm.cjs} +2 -2
  208. package/dist/{sed-S5UIK574-CsHy53JY.cjs.map → sed-S5UIK574-DvNnS6Bm.cjs.map} +1 -1
  209. package/dist/{sha1sum-2PTOAFR6-DGJWinX9.mjs → sha1sum-2PTOAFR6-BFnvrsPV.mjs} +3 -3
  210. package/dist/{sha1sum-2PTOAFR6-DGJWinX9.mjs.map → sha1sum-2PTOAFR6-BFnvrsPV.mjs.map} +1 -1
  211. package/dist/{sha1sum-2PTOAFR6-BiGcLll7.cjs → sha1sum-2PTOAFR6-DSXS73SE.cjs} +3 -3
  212. package/dist/{sha1sum-2PTOAFR6-BiGcLll7.cjs.map → sha1sum-2PTOAFR6-DSXS73SE.cjs.map} +1 -1
  213. package/dist/{sha256sum-NS7D3IXX-ByJJnbYS.cjs → sha256sum-NS7D3IXX-BrbS-Fc_.cjs} +3 -3
  214. package/dist/{sha256sum-NS7D3IXX-ByJJnbYS.cjs.map → sha256sum-NS7D3IXX-BrbS-Fc_.cjs.map} +1 -1
  215. package/dist/{sha256sum-NS7D3IXX-DELyNXeL.mjs → sha256sum-NS7D3IXX-CJwVpuPv.mjs} +3 -3
  216. package/dist/{sha256sum-NS7D3IXX-DELyNXeL.mjs.map → sha256sum-NS7D3IXX-CJwVpuPv.mjs.map} +1 -1
  217. package/dist/{sleep-X22JJINO-DhLUU2PM.mjs → sleep-X22JJINO-3iB3LbpG.mjs} +2 -2
  218. package/dist/{sleep-X22JJINO-DhLUU2PM.mjs.map → sleep-X22JJINO-3iB3LbpG.mjs.map} +1 -1
  219. package/dist/{sleep-X22JJINO-CvnSRv60.cjs → sleep-X22JJINO-h6nbix3f.cjs} +2 -2
  220. package/dist/{sleep-X22JJINO-CvnSRv60.cjs.map → sleep-X22JJINO-h6nbix3f.cjs.map} +1 -1
  221. package/dist/{sort-SW2YEO5B-Ddct_1Pz.mjs → sort-SW2YEO5B-Di6GHSpw.mjs} +3 -3
  222. package/dist/{sort-SW2YEO5B-Ddct_1Pz.mjs.map → sort-SW2YEO5B-Di6GHSpw.mjs.map} +1 -1
  223. package/dist/{sort-SW2YEO5B-DGCFWtWG.cjs → sort-SW2YEO5B-UcolQuWO.cjs} +3 -3
  224. package/dist/{sort-SW2YEO5B-DGCFWtWG.cjs.map → sort-SW2YEO5B-UcolQuWO.cjs.map} +1 -1
  225. package/dist/{split-4KKZZXXE-BEJyVNsf.mjs → split-4KKZZXXE-C1X2tOeT.mjs} +2 -2
  226. package/dist/{split-4KKZZXXE-BEJyVNsf.mjs.map → split-4KKZZXXE-C1X2tOeT.mjs.map} +1 -1
  227. package/dist/{split-4KKZZXXE-ByLojKTe.cjs → split-4KKZZXXE-dHwbjeUK.cjs} +2 -2
  228. package/dist/{split-4KKZZXXE-ByLojKTe.cjs.map → split-4KKZZXXE-dHwbjeUK.cjs.map} +1 -1
  229. package/dist/{sqlite3-CGOEFJAO-gHSY7dKq.mjs → sqlite3-CGOEFJAO-DaOh_Ant.mjs} +3 -3
  230. package/dist/{sqlite3-CGOEFJAO-gHSY7dKq.mjs.map → sqlite3-CGOEFJAO-DaOh_Ant.mjs.map} +1 -1
  231. package/dist/{sqlite3-CGOEFJAO-DQRqib0Z.cjs → sqlite3-CGOEFJAO-IJ8YTG12.cjs} +3 -3
  232. package/dist/{sqlite3-CGOEFJAO-DQRqib0Z.cjs.map → sqlite3-CGOEFJAO-IJ8YTG12.cjs.map} +1 -1
  233. package/dist/{start-Br3WcDhS.cjs → start-CtH0k_h4.cjs} +633 -531
  234. package/dist/start-CtH0k_h4.cjs.map +1 -0
  235. package/dist/{start-CVrMV6Nm.mjs → start-Cw7KXjXQ.mjs} +206 -104
  236. package/dist/start-Cw7KXjXQ.mjs.map +1 -0
  237. package/dist/start.cjs +1 -1
  238. package/dist/start.d.cts +2 -2
  239. package/dist/start.d.mts +2 -2
  240. package/dist/start.mjs +1 -1
  241. package/dist/{strings-6WDHLGMX-WPAnQiM1.cjs → strings-6WDHLGMX-5If5VaNo.cjs} +2 -2
  242. package/dist/{strings-6WDHLGMX-WPAnQiM1.cjs.map → strings-6WDHLGMX-5If5VaNo.cjs.map} +1 -1
  243. package/dist/{strings-6WDHLGMX-BIHR-Oic.mjs → strings-6WDHLGMX-Dei4HTrp.mjs} +2 -2
  244. package/dist/{strings-6WDHLGMX-BIHR-Oic.mjs.map → strings-6WDHLGMX-Dei4HTrp.mjs.map} +1 -1
  245. package/dist/{tac-2STMMJYW-DN6xIAaj.mjs → tac-2STMMJYW-BcIxt1_F.mjs} +2 -2
  246. package/dist/{tac-2STMMJYW-DN6xIAaj.mjs.map → tac-2STMMJYW-BcIxt1_F.mjs.map} +1 -1
  247. package/dist/{tac-2STMMJYW-CvWfS99b.cjs → tac-2STMMJYW-DG3Qs72z.cjs} +2 -2
  248. package/dist/{tac-2STMMJYW-CvWfS99b.cjs.map → tac-2STMMJYW-DG3Qs72z.cjs.map} +1 -1
  249. package/dist/{tail-R4PCA2C4-CLtzcEHX.cjs → tail-R4PCA2C4-Ba6FjIRF.cjs} +2 -2
  250. package/dist/{tail-R4PCA2C4-CLtzcEHX.cjs.map → tail-R4PCA2C4-Ba6FjIRF.cjs.map} +1 -1
  251. package/dist/{tail-R4PCA2C4-DdF1DSLe.mjs → tail-R4PCA2C4-CPGYA8-u.mjs} +2 -2
  252. package/dist/{tail-R4PCA2C4-DdF1DSLe.mjs.map → tail-R4PCA2C4-CPGYA8-u.mjs.map} +1 -1
  253. package/dist/{tar-STHHZTZ6-TZY6AcaY.cjs → tar-STHHZTZ6-BSOLZR96.cjs} +5 -5
  254. package/dist/{tar-STHHZTZ6-TZY6AcaY.cjs.map → tar-STHHZTZ6-BSOLZR96.cjs.map} +1 -1
  255. package/dist/{tar-STHHZTZ6-DCcIG6Cv.mjs → tar-STHHZTZ6-HPiLWve_.mjs} +4 -4
  256. package/dist/{tar-STHHZTZ6-DCcIG6Cv.mjs.map → tar-STHHZTZ6-HPiLWve_.mjs.map} +1 -1
  257. package/dist/{tee-YUZ2FKCJ-B9ev06k9.cjs → tee-YUZ2FKCJ-B0_uTobM.cjs} +2 -2
  258. package/dist/{tee-YUZ2FKCJ-B9ev06k9.cjs.map → tee-YUZ2FKCJ-B0_uTobM.cjs.map} +1 -1
  259. package/dist/{tee-YUZ2FKCJ-BQC8HOFI.mjs → tee-YUZ2FKCJ-TWqdxo5o.mjs} +2 -2
  260. package/dist/{tee-YUZ2FKCJ-BQC8HOFI.mjs.map → tee-YUZ2FKCJ-TWqdxo5o.mjs.map} +1 -1
  261. package/dist/{time-D4LNBSWX-CYzen7kN.mjs → time-D4LNBSWX-CRwVN2Yn.mjs} +2 -2
  262. package/dist/{time-D4LNBSWX-CYzen7kN.mjs.map → time-D4LNBSWX-CRwVN2Yn.mjs.map} +1 -1
  263. package/dist/{time-D4LNBSWX-Cr1NZ3c8.cjs → time-D4LNBSWX-rx0qHWyy.cjs} +2 -2
  264. package/dist/{time-D4LNBSWX-Cr1NZ3c8.cjs.map → time-D4LNBSWX-rx0qHWyy.cjs.map} +1 -1
  265. package/dist/{timeout-YDCRSLPQ-C7CNkf1N.mjs → timeout-YDCRSLPQ-CFO17ZKQ.mjs} +2 -2
  266. package/dist/{timeout-YDCRSLPQ-C7CNkf1N.mjs.map → timeout-YDCRSLPQ-CFO17ZKQ.mjs.map} +1 -1
  267. package/dist/{timeout-YDCRSLPQ-ByvOqYSS.cjs → timeout-YDCRSLPQ-DO00xgCT.cjs} +2 -2
  268. package/dist/{timeout-YDCRSLPQ-ByvOqYSS.cjs.map → timeout-YDCRSLPQ-DO00xgCT.cjs.map} +1 -1
  269. package/dist/{touch-UA33VN3N--2WSdwPu.mjs → touch-UA33VN3N-GdSVDoAF.mjs} +2 -2
  270. package/dist/{touch-UA33VN3N--2WSdwPu.mjs.map → touch-UA33VN3N-GdSVDoAF.mjs.map} +1 -1
  271. package/dist/{touch-UA33VN3N-CmQHc2uV.cjs → touch-UA33VN3N-wBOfP9Y0.cjs} +2 -2
  272. package/dist/{touch-UA33VN3N-CmQHc2uV.cjs.map → touch-UA33VN3N-wBOfP9Y0.cjs.map} +1 -1
  273. package/dist/{tr-36LHWFRQ-0CbdJnRX.cjs → tr-36LHWFRQ-Bq0QrCHJ.cjs} +2 -2
  274. package/dist/{tr-36LHWFRQ-0CbdJnRX.cjs.map → tr-36LHWFRQ-Bq0QrCHJ.cjs.map} +1 -1
  275. package/dist/{tr-36LHWFRQ-BsmlOeIS.mjs → tr-36LHWFRQ-SJIlVNsQ.mjs} +2 -2
  276. package/dist/{tr-36LHWFRQ-BsmlOeIS.mjs.map → tr-36LHWFRQ-SJIlVNsQ.mjs.map} +1 -1
  277. package/dist/{tree-YLD52CNT-C4k8Skzj.cjs → tree-YLD52CNT-D1iYYNy6.cjs} +2 -2
  278. package/dist/{tree-YLD52CNT-C4k8Skzj.cjs.map → tree-YLD52CNT-D1iYYNy6.cjs.map} +1 -1
  279. package/dist/{tree-YLD52CNT-D4dMPqQt.mjs → tree-YLD52CNT-DNOnbimN.mjs} +2 -2
  280. package/dist/{tree-YLD52CNT-D4dMPqQt.mjs.map → tree-YLD52CNT-DNOnbimN.mjs.map} +1 -1
  281. package/dist/{unexpand-CADSA4VO-Cc3MKP3o.cjs → unexpand-CADSA4VO-Ca9lkQjZ.cjs} +2 -2
  282. package/dist/{unexpand-CADSA4VO-Cc3MKP3o.cjs.map → unexpand-CADSA4VO-Ca9lkQjZ.cjs.map} +1 -1
  283. package/dist/{unexpand-CADSA4VO-BsnuqR9R.mjs → unexpand-CADSA4VO-Dl1FcPnG.mjs} +2 -2
  284. package/dist/{unexpand-CADSA4VO-BsnuqR9R.mjs.map → unexpand-CADSA4VO-Dl1FcPnG.mjs.map} +1 -1
  285. package/dist/{uniq-XSIZR6PB-DOVYyWW1.mjs → uniq-XSIZR6PB-B8HvNwlR.mjs} +3 -3
  286. package/dist/{uniq-XSIZR6PB-DOVYyWW1.mjs.map → uniq-XSIZR6PB-B8HvNwlR.mjs.map} +1 -1
  287. package/dist/{uniq-XSIZR6PB-cdjEkS0S.cjs → uniq-XSIZR6PB-DoBctYvA.cjs} +3 -3
  288. package/dist/{uniq-XSIZR6PB-cdjEkS0S.cjs.map → uniq-XSIZR6PB-DoBctYvA.cjs.map} +1 -1
  289. package/dist/{wc-LF7NU4LA-DtGpuB_1.mjs → wc-LF7NU4LA-855-WzAl.mjs} +3 -3
  290. package/dist/{wc-LF7NU4LA-DtGpuB_1.mjs.map → wc-LF7NU4LA-855-WzAl.mjs.map} +1 -1
  291. package/dist/{wc-LF7NU4LA-BdOBKH91.cjs → wc-LF7NU4LA-BqFXOy_8.cjs} +3 -3
  292. package/dist/{wc-LF7NU4LA-BdOBKH91.cjs.map → wc-LF7NU4LA-BqFXOy_8.cjs.map} +1 -1
  293. package/dist/with-project-scope-C3qeTEB7.cjs +66 -0
  294. package/dist/with-project-scope-C3qeTEB7.cjs.map +1 -0
  295. package/dist/with-project-scope-CEZIWrEE.mjs +49 -0
  296. package/dist/with-project-scope-CEZIWrEE.mjs.map +1 -0
  297. package/dist/{xan-Y6WF3IRG-eg_sMEg7.cjs → xan-Y6WF3IRG-B10FxGGI.cjs} +6 -6
  298. package/dist/{xan-Y6WF3IRG-eg_sMEg7.cjs.map → xan-Y6WF3IRG-B10FxGGI.cjs.map} +1 -1
  299. package/dist/{xan-Y6WF3IRG-ZMwjkD4r.mjs → xan-Y6WF3IRG-BV9DdtwW.mjs} +6 -6
  300. package/dist/{xan-Y6WF3IRG-ZMwjkD4r.mjs.map → xan-Y6WF3IRG-BV9DdtwW.mjs.map} +1 -1
  301. package/dist/{xan-view-HDVKHFC2-DQ3JdJFx.cjs → xan-view-HDVKHFC2-DRUYDPIo.cjs} +3 -3
  302. package/dist/{xan-view-HDVKHFC2-DQ3JdJFx.cjs.map → xan-view-HDVKHFC2-DRUYDPIo.cjs.map} +1 -1
  303. package/dist/{xan-view-HDVKHFC2-DY4NVZrE.mjs → xan-view-HDVKHFC2-QTBwOeuI.mjs} +3 -3
  304. package/dist/{xan-view-HDVKHFC2-DY4NVZrE.mjs.map → xan-view-HDVKHFC2-QTBwOeuI.mjs.map} +1 -1
  305. package/dist/{xargs-MGZPH7AX-DkExQfH-.mjs → xargs-MGZPH7AX-DCKyCr9q.mjs} +2 -2
  306. package/dist/{xargs-MGZPH7AX-DkExQfH-.mjs.map → xargs-MGZPH7AX-DCKyCr9q.mjs.map} +1 -1
  307. package/dist/{xargs-MGZPH7AX-CDarFNjo.cjs → xargs-MGZPH7AX-Y2d_yFeM.cjs} +2 -2
  308. package/dist/{xargs-MGZPH7AX-CDarFNjo.cjs.map → xargs-MGZPH7AX-Y2d_yFeM.cjs.map} +1 -1
  309. package/dist/{yq-4QJW3EQG-Xxny992l.cjs → yq-4QJW3EQG-Ba3s99yz.cjs} +3 -3
  310. package/dist/{yq-4QJW3EQG-Xxny992l.cjs.map → yq-4QJW3EQG-Ba3s99yz.cjs.map} +1 -1
  311. package/dist/{yq-4QJW3EQG-CTS00zxI.mjs → yq-4QJW3EQG-DQcrxokw.mjs} +3 -3
  312. package/dist/{yq-4QJW3EQG-CTS00zxI.mjs.map → yq-4QJW3EQG-DQcrxokw.mjs.map} +1 -1
  313. package/package.json +1 -1
  314. package/dist/dist-B4jpVn62.cjs.map +0 -1
  315. package/dist/dist-CFKAFYn8.mjs.map +0 -1
  316. package/dist/start-Br3WcDhS.cjs.map +0 -1
  317. package/dist/start-CVrMV6Nm.mjs.map +0 -1
  318. package/dist/with-project-scope-Cz_Tmvau.cjs +0 -27
  319. package/dist/with-project-scope-Cz_Tmvau.cjs.map +0 -1
  320. package/dist/with-project-scope-DWwbN8Qs.mjs +0 -22
  321. package/dist/with-project-scope-DWwbN8Qs.mjs.map +0 -1
@@ -1,13 +1,14 @@
1
- const require_dist = require("./dist-B4jpVn62.cjs");
1
+ const require_dist = require("./dist-CQoqJpV-.cjs");
2
+ const require_dist$1 = require("./dist-B2pUVq21.cjs");
2
3
  require("./chunk-BZUGFHVS-7RRM7Jpb.cjs");
3
4
  const require_chunk_TN7HHBQW = require("./chunk-TN7HHBQW-D_SK6w5n.cjs");
4
- const require_with_project_scope = require("./with-project-scope-Cz_Tmvau.cjs");
5
+ const require_with_project_scope = require("./with-project-scope-C3qeTEB7.cjs");
6
+ let node_crypto = require("node:crypto");
5
7
  require("node:fs/promises");
6
8
  let _keystrokehq_database = require("@keystrokehq/database");
7
9
  let zod = require("zod");
8
10
  let node_async_hooks = require("node:async_hooks");
9
11
  let _keystrokehq_platform_database = require("@keystrokehq/platform-database");
10
- let node_crypto = require("node:crypto");
11
12
  let node_fs = require("node:fs");
12
13
  node_fs = require_dist.__toESM(node_fs, 1);
13
14
  let node_path = require("node:path");
@@ -41,7 +42,7 @@ zod.z.object({
41
42
  content: zod.z.string().describe("Content to write to the file")
42
43
  });
43
44
  //#endregion
44
- //#region ../../packages/sandbox/dist/files-BOUCjfCQ.mjs
45
+ //#region ../../packages/sandbox/dist/files-EBXCAi4v.mjs
45
46
  const SandboxModeSchema = zod.z.enum(["in-process", "vm"]);
46
47
  const SandboxFileContentSchema = zod.z.object({
47
48
  path: zod.z.string(),
@@ -22873,43 +22874,43 @@ var tt = [
22873
22874
  },
22874
22875
  {
22875
22876
  name: "cat",
22876
- load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-D31-RFvn.cjs"))).catCommand
22877
+ load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-B3JkCUh8.cjs"))).catCommand
22877
22878
  },
22878
22879
  {
22879
22880
  name: "printf",
22880
- load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-cMCHS5Pl.cjs"))).printfCommand
22881
+ load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-BnlGSZJR.cjs"))).printfCommand
22881
22882
  },
22882
22883
  {
22883
22884
  name: "ls",
22884
- load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-BaDncpr_.cjs"))).lsCommand
22885
+ load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-FVpa8X43.cjs"))).lsCommand
22885
22886
  },
22886
22887
  {
22887
22888
  name: "mkdir",
22888
- load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-Cz_m28ZY.cjs"))).mkdirCommand
22889
+ load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-YXfqlCzE.cjs"))).mkdirCommand
22889
22890
  },
22890
22891
  {
22891
22892
  name: "rmdir",
22892
- load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-Dg-oze5t.cjs"))).rmdirCommand
22893
+ load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-BbG121sW.cjs"))).rmdirCommand
22893
22894
  },
22894
22895
  {
22895
22896
  name: "touch",
22896
- load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-CmQHc2uV.cjs"))).touchCommand
22897
+ load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-wBOfP9Y0.cjs"))).touchCommand
22897
22898
  },
22898
22899
  {
22899
22900
  name: "rm",
22900
- load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-CTu2eV97.cjs"))).rmCommand
22901
+ load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-9RBnSF58.cjs"))).rmCommand
22901
22902
  },
22902
22903
  {
22903
22904
  name: "cp",
22904
- load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-D5jsC_Ja.cjs"))).cpCommand
22905
+ load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-CgLiJ-Og.cjs"))).cpCommand
22905
22906
  },
22906
22907
  {
22907
22908
  name: "mv",
22908
- load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-B5xNiEmL.cjs"))).mvCommand
22909
+ load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-Bt34dnUl.cjs"))).mvCommand
22909
22910
  },
22910
22911
  {
22911
22912
  name: "ln",
22912
- load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-DfnyRHs0.cjs"))).lnCommand
22913
+ load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-BYyQz7Q1.cjs"))).lnCommand
22913
22914
  },
22914
22915
  {
22915
22916
  name: "chmod",
@@ -22925,15 +22926,15 @@ var tt = [
22925
22926
  },
22926
22927
  {
22927
22928
  name: "head",
22928
- load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-DBgu0rxy.cjs"))).headCommand
22929
+ load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-CesvfzPw.cjs"))).headCommand
22929
22930
  },
22930
22931
  {
22931
22932
  name: "tail",
22932
- load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-CLtzcEHX.cjs"))).tailCommand
22933
+ load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-Ba6FjIRF.cjs"))).tailCommand
22933
22934
  },
22934
22935
  {
22935
22936
  name: "wc",
22936
- load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-BdOBKH91.cjs"))).wcCommand
22937
+ load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-BqFXOy_8.cjs"))).wcCommand
22937
22938
  },
22938
22939
  {
22939
22940
  name: "stat",
@@ -22941,95 +22942,95 @@ var tt = [
22941
22942
  },
22942
22943
  {
22943
22944
  name: "grep",
22944
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-CAxqwuZO.cjs"))).grepCommand
22945
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-NiN5PwJB.cjs"))).grepCommand
22945
22946
  },
22946
22947
  {
22947
22948
  name: "fgrep",
22948
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-CAxqwuZO.cjs"))).fgrepCommand
22949
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-NiN5PwJB.cjs"))).fgrepCommand
22949
22950
  },
22950
22951
  {
22951
22952
  name: "egrep",
22952
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-CAxqwuZO.cjs"))).egrepCommand
22953
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-NiN5PwJB.cjs"))).egrepCommand
22953
22954
  },
22954
22955
  {
22955
22956
  name: "rg",
22956
- load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-BG3g_KJu.cjs"))).rgCommand
22957
+ load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-DPPBBuTS.cjs"))).rgCommand
22957
22958
  },
22958
22959
  {
22959
22960
  name: "sed",
22960
- load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-CsHy53JY.cjs"))).sedCommand
22961
+ load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-DvNnS6Bm.cjs"))).sedCommand
22961
22962
  },
22962
22963
  {
22963
22964
  name: "awk",
22964
- load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-B-FrhBQ1.cjs"))).awkCommand2
22965
+ load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-Dk3usguJ.cjs"))).awkCommand2
22965
22966
  },
22966
22967
  {
22967
22968
  name: "sort",
22968
- load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-DGCFWtWG.cjs"))).sortCommand
22969
+ load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-UcolQuWO.cjs"))).sortCommand
22969
22970
  },
22970
22971
  {
22971
22972
  name: "uniq",
22972
- load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-cdjEkS0S.cjs"))).uniqCommand
22973
+ load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-DoBctYvA.cjs"))).uniqCommand
22973
22974
  },
22974
22975
  {
22975
22976
  name: "comm",
22976
- load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-CGTT44MW.cjs"))).commCommand
22977
+ load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-D-NA62fX.cjs"))).commCommand
22977
22978
  },
22978
22979
  {
22979
22980
  name: "cut",
22980
- load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-BYu5BKVF.cjs"))).cutCommand
22981
+ load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-BrnoCG0X.cjs"))).cutCommand
22981
22982
  },
22982
22983
  {
22983
22984
  name: "paste",
22984
- load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-Ub9H7JaO.cjs"))).pasteCommand
22985
+ load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-C7UvFGQe.cjs"))).pasteCommand
22985
22986
  },
22986
22987
  {
22987
22988
  name: "tr",
22988
- load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-0CbdJnRX.cjs"))).trCommand
22989
+ load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-Bq0QrCHJ.cjs"))).trCommand
22989
22990
  },
22990
22991
  {
22991
22992
  name: "rev",
22992
- load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-CwkYMyBV.cjs"))).rev
22993
+ load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-_MHUCzPM.cjs"))).rev
22993
22994
  },
22994
22995
  {
22995
22996
  name: "nl",
22996
- load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-BKdvn50C.cjs"))).nl
22997
+ load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-DAxn2ocD.cjs"))).nl
22997
22998
  },
22998
22999
  {
22999
23000
  name: "fold",
23000
- load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-BhPIukTe.cjs"))).fold
23001
+ load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-Bg5yByvV.cjs"))).fold
23001
23002
  },
23002
23003
  {
23003
23004
  name: "expand",
23004
- load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-DXrRwA0x.cjs"))).expand
23005
+ load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-DeyAjvEw.cjs"))).expand
23005
23006
  },
23006
23007
  {
23007
23008
  name: "unexpand",
23008
- load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-Cc3MKP3o.cjs"))).unexpand
23009
+ load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-Ca9lkQjZ.cjs"))).unexpand
23009
23010
  },
23010
23011
  {
23011
23012
  name: "strings",
23012
- load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-WPAnQiM1.cjs"))).strings
23013
+ load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-5If5VaNo.cjs"))).strings
23013
23014
  },
23014
23015
  {
23015
23016
  name: "split",
23016
- load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-ByLojKTe.cjs"))).split
23017
+ load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-dHwbjeUK.cjs"))).split
23017
23018
  },
23018
23019
  {
23019
23020
  name: "column",
23020
- load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-D79lEaRW.cjs"))).column
23021
+ load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-CR5ih_nc.cjs"))).column
23021
23022
  },
23022
23023
  {
23023
23024
  name: "join",
23024
- load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-Dcylcfrm.cjs"))).join
23025
+ load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-DMcFHAmo.cjs"))).join
23025
23026
  },
23026
23027
  {
23027
23028
  name: "tee",
23028
- load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-B9ev06k9.cjs"))).teeCommand
23029
+ load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-B0_uTobM.cjs"))).teeCommand
23029
23030
  },
23030
23031
  {
23031
23032
  name: "find",
23032
- load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-DpnElQT3.cjs"))).findCommand
23033
+ load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-x1iBhXZF.cjs"))).findCommand
23033
23034
  },
23034
23035
  {
23035
23036
  name: "basename",
@@ -23041,19 +23042,19 @@ var tt = [
23041
23042
  },
23042
23043
  {
23043
23044
  name: "tree",
23044
- load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-C4k8Skzj.cjs"))).treeCommand
23045
+ load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-D1iYYNy6.cjs"))).treeCommand
23045
23046
  },
23046
23047
  {
23047
23048
  name: "du",
23048
- load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-B6fFobEW.cjs"))).duCommand
23049
+ load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-TSQafcta.cjs"))).duCommand
23049
23050
  },
23050
23051
  {
23051
23052
  name: "env",
23052
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-BGZ_rxhn.cjs"))).envCommand
23053
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DnvN5s0u.cjs"))).envCommand
23053
23054
  },
23054
23055
  {
23055
23056
  name: "printenv",
23056
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-BGZ_rxhn.cjs"))).printenvCommand
23057
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DnvN5s0u.cjs"))).printenvCommand
23057
23058
  },
23058
23059
  {
23059
23060
  name: "alias",
@@ -23069,7 +23070,7 @@ var tt = [
23069
23070
  },
23070
23071
  {
23071
23072
  name: "xargs",
23072
- load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-CDarFNjo.cjs"))).xargsCommand
23073
+ load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-Y2d_yFeM.cjs"))).xargsCommand
23073
23074
  },
23074
23075
  {
23075
23076
  name: "true",
@@ -23085,23 +23086,23 @@ var tt = [
23085
23086
  },
23086
23087
  {
23087
23088
  name: "bash",
23088
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-DB2_t12O.cjs"))).bashCommand
23089
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-CWtyg265.cjs"))).bashCommand
23089
23090
  },
23090
23091
  {
23091
23092
  name: "sh",
23092
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-DB2_t12O.cjs"))).shCommand
23093
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-CWtyg265.cjs"))).shCommand
23093
23094
  },
23094
23095
  {
23095
23096
  name: "jq",
23096
- load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-B_XqkngJ.cjs"))).jqCommand
23097
+ load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-CsO5KErk.cjs"))).jqCommand
23097
23098
  },
23098
23099
  {
23099
23100
  name: "base64",
23100
- load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-DzvAs4Pp.cjs"))).base64Command
23101
+ load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-BFAc-nbp.cjs"))).base64Command
23101
23102
  },
23102
23103
  {
23103
23104
  name: "diff",
23104
- load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-5bs9LJjA.cjs"))).diffCommand
23105
+ load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-CfpVv0Lf.cjs"))).diffCommand
23105
23106
  },
23106
23107
  {
23107
23108
  name: "date",
@@ -23109,15 +23110,15 @@ var tt = [
23109
23110
  },
23110
23111
  {
23111
23112
  name: "sleep",
23112
- load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-CvnSRv60.cjs"))).sleepCommand
23113
+ load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-h6nbix3f.cjs"))).sleepCommand
23113
23114
  },
23114
23115
  {
23115
23116
  name: "timeout",
23116
- load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-ByvOqYSS.cjs"))).timeoutCommand
23117
+ load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-DO00xgCT.cjs"))).timeoutCommand
23117
23118
  },
23118
23119
  {
23119
23120
  name: "time",
23120
- load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-Cr1NZ3c8.cjs"))).timeCommand
23121
+ load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-rx0qHWyy.cjs"))).timeCommand
23121
23122
  },
23122
23123
  {
23123
23124
  name: "seq",
@@ -23125,19 +23126,19 @@ var tt = [
23125
23126
  },
23126
23127
  {
23127
23128
  name: "expr",
23128
- load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-DH_22zQv.cjs"))).exprCommand
23129
+ load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-BCTUJSeT.cjs"))).exprCommand
23129
23130
  },
23130
23131
  {
23131
23132
  name: "md5sum",
23132
- load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-PRoX8J93.cjs"))).md5sumCommand
23133
+ load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-DPVysSCl.cjs"))).md5sumCommand
23133
23134
  },
23134
23135
  {
23135
23136
  name: "sha1sum",
23136
- load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-BiGcLll7.cjs"))).sha1sumCommand
23137
+ load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-DSXS73SE.cjs"))).sha1sumCommand
23137
23138
  },
23138
23139
  {
23139
23140
  name: "sha256sum",
23140
- load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-ByJJnbYS.cjs"))).sha256sumCommand
23141
+ load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-BrbS-Fc_.cjs"))).sha256sumCommand
23141
23142
  },
23142
23143
  {
23143
23144
  name: "file",
@@ -23145,11 +23146,11 @@ var tt = [
23145
23146
  },
23146
23147
  {
23147
23148
  name: "html-to-markdown",
23148
- load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-DRRXghB2.cjs"))).htmlToMarkdownCommand
23149
+ load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-DJd2wVzH.cjs"))).htmlToMarkdownCommand
23149
23150
  },
23150
23151
  {
23151
23152
  name: "help",
23152
- load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-D4id4lQj.cjs"))).helpCommand
23153
+ load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-6O8-Mr4a.cjs"))).helpCommand
23153
23154
  },
23154
23155
  {
23155
23156
  name: "which",
@@ -23157,7 +23158,7 @@ var tt = [
23157
23158
  },
23158
23159
  {
23159
23160
  name: "tac",
23160
- load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-CvWfS99b.cjs"))).tac
23161
+ load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-DG3Qs72z.cjs"))).tac
23161
23162
  },
23162
23163
  {
23163
23164
  name: "hostname",
@@ -23169,49 +23170,49 @@ var tt = [
23169
23170
  },
23170
23171
  {
23171
23172
  name: "od",
23172
- load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-BV4wg7WM.cjs"))).od
23173
+ load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-DCFvUqYP.cjs"))).od
23173
23174
  },
23174
23175
  {
23175
23176
  name: "gzip",
23176
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-DzFAjkUi.cjs"))).gzipCommand
23177
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-D5Hhevf7.cjs"))).gzipCommand
23177
23178
  },
23178
23179
  {
23179
23180
  name: "gunzip",
23180
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-DzFAjkUi.cjs"))).gunzipCommand
23181
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-D5Hhevf7.cjs"))).gunzipCommand
23181
23182
  },
23182
23183
  {
23183
23184
  name: "zcat",
23184
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-DzFAjkUi.cjs"))).zcatCommand
23185
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-D5Hhevf7.cjs"))).zcatCommand
23185
23186
  }
23186
23187
  ];
23187
23188
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (tt.push({
23188
23189
  name: "tar",
23189
- load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-TZY6AcaY.cjs"))).tarCommand
23190
+ load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-BSOLZR96.cjs"))).tarCommand
23190
23191
  }), tt.push({
23191
23192
  name: "yq",
23192
- load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-Xxny992l.cjs"))).yqCommand
23193
+ load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-Ba3s99yz.cjs"))).yqCommand
23193
23194
  }), tt.push({
23194
23195
  name: "xan",
23195
- load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-eg_sMEg7.cjs"))).xanCommand
23196
+ load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-B10FxGGI.cjs"))).xanCommand
23196
23197
  }), tt.push({
23197
23198
  name: "sqlite3",
23198
- load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-DQRqib0Z.cjs"))).sqlite3Command
23199
+ load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-IJ8YTG12.cjs"))).sqlite3Command
23199
23200
  }));
23200
23201
  var Yt = [];
23201
23202
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Yt.push({
23202
23203
  name: "python3",
23203
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-5ooXQ2zU.cjs"))).python3Command
23204
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-CDAWwHm7.cjs"))).python3Command
23204
23205
  }), Yt.push({
23205
23206
  name: "python",
23206
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-5ooXQ2zU.cjs"))).pythonCommand
23207
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-CDAWwHm7.cjs"))).pythonCommand
23207
23208
  }));
23208
23209
  var Qt = [];
23209
23210
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Qt.push({
23210
23211
  name: "js-exec",
23211
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-Brko8dVy.cjs"))).jsExecCommand
23212
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-CQVz3Q0A.cjs"))).jsExecCommand
23212
23213
  }), Qt.push({
23213
23214
  name: "node",
23214
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-Brko8dVy.cjs"))).nodeStubCommand
23215
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-CQVz3Q0A.cjs"))).nodeStubCommand
23215
23216
  }));
23216
23217
  new TextEncoder();
23217
23218
  Object.freeze({
@@ -24198,7 +24199,7 @@ function resolvePlatformOriginForModelCatalog() {
24198
24199
  if (fromKeystroke) return fromKeystroke.replace(/\/+$/, "");
24199
24200
  const fromPlatform = process.env.PLATFORM_URL?.trim();
24200
24201
  if (fromPlatform) return fromPlatform.replace(/\/+$/, "");
24201
- return require_dist.DEFAULT_CLOUD_PLATFORM_ORIGIN;
24202
+ return require_dist$1.DEFAULT_CLOUD_PLATFORM_ORIGIN;
24202
24203
  }
24203
24204
  async function fetchPublicModelIds() {
24204
24205
  if (cachedModelIds) return cachedModelIds;
@@ -24208,7 +24209,7 @@ async function fetchPublicModelIds() {
24208
24209
  try {
24209
24210
  const response = await fetch(`${platformOrigin}/api/public/models`, { headers: { accept: "application/json" } });
24210
24211
  if (!response.ok) throw new Error(`Failed to fetch public model catalog (${response.status})`);
24211
- const parsed = require_dist.PublicModelsResponseSchema.safeParse(await response.json());
24212
+ const parsed = require_dist$1.PublicModelsResponseSchema.safeParse(await response.json());
24212
24213
  if (!parsed.success || parsed.data.models.length === 0) throw new Error("Public model catalog response had no models");
24213
24214
  cachedModelIds = new Set(parsed.data.models);
24214
24215
  return cachedModelIds;
@@ -24290,14 +24291,15 @@ const webhookSourceSchema = zod.z.object({
24290
24291
  kind: zod.z.literal("webhook"),
24291
24292
  ...baseSourceShape,
24292
24293
  endpoint: zod.z.string().min(1),
24293
- request: zodSchema,
24294
+ payload: zodSchema,
24294
24295
  filter: zodSchema.optional(),
24295
24296
  passes: zod.z.function()
24296
24297
  });
24297
24298
  const cronSourceSchema = zod.z.object({
24298
24299
  kind: zod.z.literal("cron"),
24299
24300
  ...baseSourceShape,
24300
- schedule: cronScheduleSchema
24301
+ schedule: cronScheduleSchema,
24302
+ payload: require_dist$1.cronPayloadSchema.optional()
24301
24303
  });
24302
24304
  const pollSourceSchema = zod.z.object({
24303
24305
  kind: zod.z.literal("poll"),
@@ -24335,8 +24337,8 @@ zod.z.preprocess(normalizeLegacySlugFields, zod.z.discriminatedUnion("target", [
24335
24337
  //#endregion
24336
24338
  //#region ../../packages/projects/dist/index.mjs
24337
24339
  async function resolveDeployManifest(input) {
24338
- if (input.artifactManifest != null) return require_dist.parseStoredRouteManifest(input.artifactManifest);
24339
- return require_dist.parseStoredRouteManifest(require_dist.extractRouteManifestFromArtifact(input.artifactBytes));
24340
+ if (input.artifactManifest != null) return require_dist$1.parseStoredRouteManifest(input.artifactManifest);
24341
+ return require_dist$1.parseStoredRouteManifest(require_dist$1.extractRouteManifestFromArtifact(input.artifactBytes));
24340
24342
  }
24341
24343
  /** Cut over activeArtifactId, then sync org project registry from the artifact manifest. */
24342
24344
  async function promoteProjectDeploy(input) {
@@ -24346,7 +24348,7 @@ async function promoteProjectDeploy(input) {
24346
24348
  if (!artifact || artifact.projectId !== input.projectId) throw new Error(`Artifact ${input.artifactId} not found for project ${input.projectId}`);
24347
24349
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(project.organizationId);
24348
24350
  if (!organization) throw new Error(`Organization not found for project ${input.projectId}`);
24349
- if (!input.artifactBytes && artifact.manifestJson == null) throw new require_dist.RouteManifestNotFoundError("Artifact has no stored route manifest; rebuild and redeploy");
24351
+ if (!input.artifactBytes && artifact.manifestJson == null) throw new require_dist$1.RouteManifestNotFoundError("Artifact has no stored route manifest; rebuild and redeploy");
24350
24352
  const manifest = await resolveDeployManifest({
24351
24353
  artifactId: input.artifactId,
24352
24354
  artifactManifest: artifact.manifestJson,
@@ -24407,9 +24409,9 @@ function configureProjectRuntimeScheduler(plugin) {
24407
24409
  async function getOrgRuntimeQueue() {
24408
24410
  if (runtimeQueue) return runtimeQueue;
24409
24411
  if (!runtimeQueueInit) runtimeQueueInit = (async () => {
24410
- const queue = await require_dist.createJobQueue({
24412
+ const queue = await require_dist$1.createJobQueue({
24411
24413
  scope: "platform",
24412
- plugin: runtimeSchedulerPlugin ?? require_dist.defaultSchedulerPlugin()
24414
+ plugin: runtimeSchedulerPlugin ?? require_dist$1.defaultSchedulerPlugin()
24413
24415
  });
24414
24416
  runtimeQueue = queue;
24415
24417
  return queue;
@@ -24757,7 +24759,7 @@ function getProjectInvitePermission(c) {
24757
24759
  //#endregion
24758
24760
  //#region ../../packages/http/dist/require-session-wsbtjGYi.mjs
24759
24761
  function resolveActiveOrganizationId(c) {
24760
- const header = c.req.header(require_dist.ACTIVE_ORG_HEADER)?.trim();
24762
+ const header = c.req.header(require_dist$1.ACTIVE_ORG_HEADER)?.trim();
24761
24763
  if (header) return header;
24762
24764
  return c.get("apiKeyAuth")?.organizationId;
24763
24765
  }
@@ -24765,7 +24767,7 @@ async function resolveOrganizationContext(c) {
24765
24767
  const organizationId = resolveActiveOrganizationId(c);
24766
24768
  if (!organizationId) return {
24767
24769
  ok: false,
24768
- response: c.json(require_dist.ErrorResponseSchema.parse({
24770
+ response: c.json(require_dist$1.ErrorResponseSchema.parse({
24769
24771
  error: "Select an organization to continue",
24770
24772
  code: "needs_org_selection"
24771
24773
  }), 409)
@@ -24773,12 +24775,12 @@ async function resolveOrganizationContext(c) {
24773
24775
  const apiKeyAuth = c.get("apiKeyAuth");
24774
24776
  if (apiKeyAuth && apiKeyAuth.organizationId !== organizationId) return {
24775
24777
  ok: false,
24776
- response: c.json(require_dist.ErrorResponseSchema.parse({ error: "Forbidden" }), 403)
24778
+ response: c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Forbidden" }), 403)
24777
24779
  };
24778
24780
  const membership = await (0, _keystrokehq_platform_database.selectUserOrganizationMembership)(c.get("user").id, organizationId);
24779
24781
  if (!membership) return {
24780
24782
  ok: false,
24781
- response: c.json(require_dist.ErrorResponseSchema.parse({ error: "Forbidden" }), 403)
24783
+ response: c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Forbidden" }), 403)
24782
24784
  };
24783
24785
  return {
24784
24786
  ok: true,
@@ -24792,7 +24794,7 @@ async function resolveOrganizationContext(c) {
24792
24794
  }
24793
24795
  function requireVerifiedOrganization() {
24794
24796
  return async (c, next) => {
24795
- if (!c.get("organization").verified) return c.json(require_dist.ErrorResponseSchema.parse({
24797
+ if (!c.get("organization").verified) return c.json(require_dist$1.ErrorResponseSchema.parse({
24796
24798
  error: "This organization is pending verification",
24797
24799
  code: "org_unverified"
24798
24800
  }), 403);
@@ -24811,10 +24813,10 @@ function requireProject() {
24811
24813
  return async (c, next) => {
24812
24814
  const organization = c.get("organization");
24813
24815
  const projectId = c.req.param("projectId")?.trim();
24814
- if (!projectId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Project id is required" }), 400);
24816
+ if (!projectId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project id is required" }), 400);
24815
24817
  const [project, organizationRow] = await Promise.all([(0, _keystrokehq_platform_database.selectProjectForOrganization)(organization.organizationId, projectId), (0, _keystrokehq_platform_database.selectOrganizationById)(organization.organizationId)]);
24816
- if (!project) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
24817
- if (!organizationRow) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
24818
+ if (!project) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
24819
+ if (!organizationRow) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
24818
24820
  c.set("project", project);
24819
24821
  await (0, _keystrokehq_platform_database.runWithWorkspaceContext)({
24820
24822
  organizationId: organization.organizationId,
@@ -24825,13 +24827,13 @@ function requireProject() {
24825
24827
  };
24826
24828
  }
24827
24829
  function routeProject(project) {
24828
- return require_dist.mapProject(project);
24830
+ return require_dist$1.mapProject(project);
24829
24831
  }
24830
24832
  function forbidden(c) {
24831
- return c.json(require_dist.ErrorResponseSchema.parse({ error: "Forbidden" }), 403);
24833
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Forbidden" }), 403);
24832
24834
  }
24833
24835
  function notFound(c, message = "Not found") {
24834
- return c.json(require_dist.ErrorResponseSchema.parse({ error: message }), 404);
24836
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 404);
24835
24837
  }
24836
24838
  function requireProjectMembership() {
24837
24839
  return async (c, next) => {
@@ -24925,9 +24927,9 @@ function authorizePayload(schema, allow) {
24925
24927
  function requireOrganizationParam() {
24926
24928
  return async (c, next) => {
24927
24929
  const organizationId = c.req.param("organizationId")?.trim();
24928
- if (!organizationId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization id is required" }), 400);
24930
+ if (!organizationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization id is required" }), 400);
24929
24931
  const membership = await (0, _keystrokehq_platform_database.selectUserOrganizationMembership)(c.get("user").id, organizationId);
24930
- if (!membership) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Forbidden" }), 403);
24932
+ if (!membership) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Forbidden" }), 403);
24931
24933
  c.set("organization", {
24932
24934
  organizationId: membership.organization.id,
24933
24935
  organizationName: membership.organization.name,
@@ -24969,8 +24971,8 @@ function withOrganizationProjectDatabase() {
24969
24971
  //#region src/routes/account/users/me/avatar/GET.ts
24970
24972
  const handler$95 = async (c) => {
24971
24973
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(c.get("user").id);
24972
- if (!dbUser) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User not found" }), 404);
24973
- return c.json(require_dist.UserAvatarSchema.parse({ url: dbUser.image ?? null }));
24974
+ if (!dbUser) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User not found" }), 404);
24975
+ return c.json(require_dist$1.UserAvatarSchema.parse({ url: dbUser.image ?? null }));
24974
24976
  };
24975
24977
  //#endregion
24976
24978
  //#region src/lib/user-avatar-content-type.ts
@@ -24987,16 +24989,16 @@ function avatarExtensionForContentType(contentType) {
24987
24989
  //#endregion
24988
24990
  //#region src/routes/account/users/me/avatar/presign/POST.ts
24989
24991
  const handler$94 = async (c) => {
24990
- const parsed = require_dist.PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
24991
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
24992
+ const parsed = require_dist$1.PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
24993
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
24992
24994
  const extension = avatarExtensionForContentType(parsed.data.contentType);
24993
- if (!extension) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Unsupported image type" }), 400);
24994
- const storageKey = require_dist.userAvatarStorageKey(c.get("user").id, extension);
24995
- const uploadUrl = await require_dist.createAssetsStorageClient().presignPut({
24995
+ if (!extension) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Unsupported image type" }), 400);
24996
+ const storageKey = require_dist$1.userAvatarStorageKey(c.get("user").id, extension);
24997
+ const uploadUrl = await require_dist$1.createAssetsStorageClient().presignPut({
24996
24998
  key: storageKey,
24997
24999
  contentType: parsed.data.contentType
24998
25000
  });
24999
- return c.json(require_dist.PresignUserAvatarResponseSchema.parse({
25001
+ return c.json(require_dist$1.PresignUserAvatarResponseSchema.parse({
25000
25002
  uploadUrl,
25001
25003
  storageKey
25002
25004
  }));
@@ -25027,72 +25029,72 @@ async function deleteStoredImageIfOwned(input) {
25027
25029
  //#endregion
25028
25030
  //#region src/routes/account/users/me/avatar/PATCH.ts
25029
25031
  const handler$93 = async (c) => {
25030
- const parsed = require_dist.UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
25031
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
25032
+ const parsed = require_dist$1.UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
25033
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
25032
25034
  const user = c.get("user");
25033
25035
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(user.id);
25034
- if (!dbUser) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25035
- const storage = require_dist.createAssetsStorageClient();
25036
+ if (!dbUser) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25037
+ const storage = require_dist$1.createAssetsStorageClient();
25036
25038
  const { storageKey } = parsed.data;
25037
25039
  if (storageKey === null) {
25038
25040
  await deleteStoredImageIfOwned({
25039
25041
  storage,
25040
25042
  url: dbUser.image,
25041
- isOwnedPublicUrl: require_dist.isKeystrokeAssetsAvatarPublicUrl,
25042
- keyFromPublicUrl: require_dist.keystrokeAssetsAvatarKeyFromPublicUrl
25043
+ isOwnedPublicUrl: require_dist$1.isKeystrokeAssetsAvatarPublicUrl,
25044
+ keyFromPublicUrl: require_dist$1.keystrokeAssetsAvatarKeyFromPublicUrl
25043
25045
  });
25044
25046
  await (0, _keystrokehq_platform_database.updateUserById)(user.id, {
25045
25047
  image: null,
25046
25048
  updatedAt: /* @__PURE__ */ new Date()
25047
25049
  });
25048
- return c.json(require_dist.UserAvatarSchema.parse({ url: null }));
25050
+ return c.json(require_dist$1.UserAvatarSchema.parse({ url: null }));
25049
25051
  }
25050
25052
  const finalized = await finalizeStoredImageUpload({
25051
25053
  storage,
25052
25054
  storageKey,
25053
- isValidStorageKey: (key) => require_dist.isUserAvatarStorageKey(key, user.id),
25054
- buildPublicUrl: require_dist.publicKeystrokeAssetsObjectUrl
25055
+ isValidStorageKey: (key) => require_dist$1.isUserAvatarStorageKey(key, user.id),
25056
+ buildPublicUrl: require_dist$1.publicKeystrokeAssetsObjectUrl
25055
25057
  });
25056
- if (!finalized.ok) return c.json(require_dist.ErrorResponseSchema.parse({ error: finalized.error }), 400);
25058
+ if (!finalized.ok) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: finalized.error }), 400);
25057
25059
  if (dbUser.image && dbUser.image !== finalized.publicUrl) await deleteStoredImageIfOwned({
25058
25060
  storage,
25059
25061
  url: dbUser.image,
25060
- isOwnedPublicUrl: require_dist.isKeystrokeAssetsAvatarPublicUrl,
25061
- keyFromPublicUrl: require_dist.keystrokeAssetsAvatarKeyFromPublicUrl
25062
+ isOwnedPublicUrl: require_dist$1.isKeystrokeAssetsAvatarPublicUrl,
25063
+ keyFromPublicUrl: require_dist$1.keystrokeAssetsAvatarKeyFromPublicUrl
25062
25064
  });
25063
25065
  await (0, _keystrokehq_platform_database.updateUserById)(user.id, {
25064
25066
  image: finalized.publicUrl,
25065
25067
  updatedAt: /* @__PURE__ */ new Date()
25066
25068
  });
25067
- return c.json(require_dist.UserAvatarSchema.parse({ url: finalized.publicUrl }));
25069
+ return c.json(require_dist$1.UserAvatarSchema.parse({ url: finalized.publicUrl }));
25068
25070
  };
25069
25071
  //#endregion
25070
25072
  //#region src/routes/account/users/me/preferences/GET.ts
25071
25073
  const handler$92 = async (c) => {
25072
25074
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(c.get("user").id);
25073
- if (!dbUser) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25074
- return c.json(require_dist.UserPreferencesSchema.parse(require_dist.normalizeUserPreferences(dbUser.preferences)));
25075
+ if (!dbUser) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25076
+ return c.json(require_dist$1.UserPreferencesSchema.parse(require_dist$1.normalizeUserPreferences(dbUser.preferences)));
25075
25077
  };
25076
25078
  //#endregion
25077
25079
  //#region src/routes/account/users/me/preferences/PATCH.ts
25078
25080
  const handler$91 = async (c) => {
25079
- const parsed = require_dist.UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
25080
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
25081
+ const parsed = require_dist$1.UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
25082
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
25081
25083
  const user = c.get("user");
25082
25084
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(user.id);
25083
- if (!dbUser) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25084
- const next = require_dist.mergeUserPreferences(require_dist.normalizeUserPreferences(dbUser.preferences), parsed.data);
25085
+ if (!dbUser) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25086
+ const next = require_dist$1.mergeUserPreferences(require_dist$1.normalizeUserPreferences(dbUser.preferences), parsed.data);
25085
25087
  await (0, _keystrokehq_platform_database.updateUserById)(user.id, {
25086
25088
  preferences: next,
25087
25089
  updatedAt: /* @__PURE__ */ new Date()
25088
25090
  });
25089
- return c.json(require_dist.UserPreferencesSchema.parse(next));
25091
+ return c.json(require_dist$1.UserPreferencesSchema.parse(next));
25090
25092
  };
25091
25093
  //#endregion
25092
25094
  //#region src/routes/account/organizations/GET.ts
25093
25095
  const handler$90 = async (c) => {
25094
25096
  const memberships = await (0, _keystrokehq_platform_database.selectUserOrganizations)(c.get("user").id);
25095
- return c.json(require_dist.ListOrganizationsResponseSchema.parse(memberships.map(require_dist.mapUserOrganization)));
25097
+ return c.json(require_dist$1.ListOrganizationsResponseSchema.parse(memberships.map(require_dist$1.mapUserOrganization)));
25096
25098
  };
25097
25099
  //#endregion
25098
25100
  //#region src/services/create-organization.ts
@@ -25145,7 +25147,7 @@ function organizationSlugErrorBody(error) {
25145
25147
  const message = error.issues[0]?.message ?? "Invalid organization slug";
25146
25148
  return {
25147
25149
  error: message,
25148
- code: require_dist.organizationSlugErrorCodeFromMessage(message)
25150
+ code: require_dist$1.organizationSlugErrorCodeFromMessage(message)
25149
25151
  };
25150
25152
  }
25151
25153
  //#endregion
@@ -25154,14 +25156,14 @@ function createOrganizationHandler(deps) {
25154
25156
  return async (c) => {
25155
25157
  const user = c.get("user");
25156
25158
  const body = await c.req.json().catch(() => null);
25157
- const parsed = require_dist.CreateOrganizationRequestSchema.safeParse(body);
25158
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid organization request" }), 400);
25159
+ const parsed = require_dist$1.CreateOrganizationRequestSchema.safeParse(body);
25160
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid organization request" }), 400);
25159
25161
  try {
25160
25162
  const membership = await createOrganizationWithHosting(deps, user.id, parsed.data.name, parsed.data.slug);
25161
- return c.json(require_dist.CreateOrganizationResponseSchema.parse(require_dist.mapUserOrganization(membership)), 201);
25163
+ return c.json(require_dist$1.CreateOrganizationResponseSchema.parse(require_dist$1.mapUserOrganization(membership)), 201);
25162
25164
  } catch (error) {
25163
- if (error instanceof _keystrokehq_platform_database.OrganizationSlugTakenError) return c.json(require_dist.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
25164
- if (error instanceof zod.ZodError) return c.json(require_dist.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 400);
25165
+ if (error instanceof _keystrokehq_platform_database.OrganizationSlugTakenError) return c.json(require_dist$1.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
25166
+ if (error instanceof zod.ZodError) return c.json(require_dist$1.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 400);
25165
25167
  throw error;
25166
25168
  }
25167
25169
  };
@@ -25169,13 +25171,13 @@ function createOrganizationHandler(deps) {
25169
25171
  //#endregion
25170
25172
  //#region src/routes/account/organizations/slug-available/GET.ts
25171
25173
  const handler$89 = async (c) => {
25172
- const parsed = require_dist.SlugAvailabilityQuerySchema.safeParse({
25174
+ const parsed = require_dist$1.SlugAvailabilityQuerySchema.safeParse({
25173
25175
  slug: c.req.query("slug"),
25174
25176
  excludeOrganizationId: c.req.query("excludeOrganizationId")
25175
25177
  });
25176
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
25178
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
25177
25179
  const availability = await (0, _keystrokehq_platform_database.checkOrganizationSlugAvailability)(parsed.data.slug, parsed.data.excludeOrganizationId);
25178
- return c.json(require_dist.SlugAvailabilityResponseSchema.parse(availability));
25180
+ return c.json(require_dist$1.SlugAvailabilityResponseSchema.parse(availability));
25179
25181
  };
25180
25182
  //#endregion
25181
25183
  //#region src/routes/account/organizations/[organizationId]/GET.ts
@@ -25183,30 +25185,30 @@ const handler$88 = async (c) => {
25183
25185
  const { organizationId } = c.get("organization");
25184
25186
  const membership = await (0, _keystrokehq_platform_database.selectUserOrganizationMembership)(c.get("user").id, organizationId);
25185
25187
  if (!membership) throw new Error(`Organization membership missing after param guard: ${organizationId}`);
25186
- return c.json(require_dist.ActiveOrganizationResponseSchema.parse(require_dist.mapUserOrganization(membership)));
25188
+ return c.json(require_dist$1.ActiveOrganizationResponseSchema.parse(require_dist$1.mapUserOrganization(membership)));
25187
25189
  };
25188
25190
  //#endregion
25189
25191
  //#region src/routes/account/organizations/[organizationId]/PATCH.ts
25190
25192
  const handler$87 = async (c) => {
25191
25193
  const organization = c.get("organization");
25192
25194
  const body = await c.req.json().catch(() => null);
25193
- const parsed = require_dist.UpdateOrganizationRequestSchema.safeParse(body);
25195
+ const parsed = require_dist$1.UpdateOrganizationRequestSchema.safeParse(body);
25194
25196
  if (!parsed.success) {
25195
- const errorBody = parsed.error.issues.some((issue) => issue.path[0] === "slug") ? organizationSlugErrorBody(parsed.error) : require_dist.validationErrorResponse(parsed.error, "Invalid organization update");
25196
- return c.json(require_dist.ErrorResponseSchema.parse(errorBody), 400);
25197
+ const errorBody = parsed.error.issues.some((issue) => issue.path[0] === "slug") ? organizationSlugErrorBody(parsed.error) : require_dist$1.validationErrorResponse(parsed.error, "Invalid organization update");
25198
+ return c.json(require_dist$1.ErrorResponseSchema.parse(errorBody), 400);
25197
25199
  }
25198
25200
  try {
25199
25201
  let updated;
25200
25202
  if (parsed.data.name !== void 0) updated = await (0, _keystrokehq_platform_database.updateOrganizationName)(organization.organizationId, parsed.data.name);
25201
25203
  if (parsed.data.slug !== void 0) updated = await (0, _keystrokehq_platform_database.updateOrganizationSlug)(organization.organizationId, parsed.data.slug);
25202
25204
  if (!updated) throw new Error(`Organization update produced no result: ${organization.organizationId}`);
25203
- return c.json(require_dist.ActiveOrganizationResponseSchema.parse(require_dist.mapUserOrganization({
25205
+ return c.json(require_dist$1.ActiveOrganizationResponseSchema.parse(require_dist$1.mapUserOrganization({
25204
25206
  organization: updated,
25205
25207
  role: organization.role
25206
25208
  })));
25207
25209
  } catch (error) {
25208
- if (error instanceof _keystrokehq_platform_database.OrganizationSlugTakenError) return c.json(require_dist.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
25209
- if (error instanceof zod.ZodError) return c.json(require_dist.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 400);
25210
+ if (error instanceof _keystrokehq_platform_database.OrganizationSlugTakenError) return c.json(require_dist$1.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
25211
+ if (error instanceof zod.ZodError) return c.json(require_dist$1.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 400);
25210
25212
  throw error;
25211
25213
  }
25212
25214
  };
@@ -25215,8 +25217,8 @@ const handler$87 = async (c) => {
25215
25217
  const handler$86 = async (c) => {
25216
25218
  const { organizationId } = c.get("organization");
25217
25219
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25218
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25219
- return c.json(require_dist.OrganizationSidebarBrandingSchema.parse((0, _keystrokehq_platform_database.organizationRowToSidebarBranding)(organization)));
25220
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25221
+ return c.json(require_dist$1.OrganizationSidebarBrandingSchema.parse((0, _keystrokehq_platform_database.organizationRowToSidebarBranding)(organization)));
25220
25222
  };
25221
25223
  //#endregion
25222
25224
  //#region src/routes/account/organizations/[organizationId]/branding/PATCH.ts
@@ -25230,13 +25232,13 @@ const LOGO_VARIANTS = [{
25230
25232
  urlField: "logoDarkUrl"
25231
25233
  }];
25232
25234
  async function finalizeOrgLogoVariant(input) {
25233
- const storage = require_dist.createAssetsStorageClient();
25235
+ const storage = require_dist$1.createAssetsStorageClient();
25234
25236
  if (input.storageKey === null) {
25235
25237
  await deleteStoredImageIfOwned({
25236
25238
  storage,
25237
25239
  url: input.currentUrl,
25238
- isOwnedPublicUrl: require_dist.isKeystrokeAssetsOrgLogoPublicUrl,
25239
- keyFromPublicUrl: require_dist.keystrokeAssetsOrgLogoKeyFromPublicUrl
25240
+ isOwnedPublicUrl: require_dist$1.isKeystrokeAssetsOrgLogoPublicUrl,
25241
+ keyFromPublicUrl: require_dist$1.keystrokeAssetsOrgLogoKeyFromPublicUrl
25240
25242
  });
25241
25243
  return {
25242
25244
  ok: true,
@@ -25246,15 +25248,15 @@ async function finalizeOrgLogoVariant(input) {
25246
25248
  const finalized = await finalizeStoredImageUpload({
25247
25249
  storage,
25248
25250
  storageKey: input.storageKey,
25249
- isValidStorageKey: (key) => require_dist.isOrgLogoStorageKey(key, input.organizationId, input.variant),
25250
- buildPublicUrl: require_dist.publicKeystrokeAssetsObjectUrl
25251
+ isValidStorageKey: (key) => require_dist$1.isOrgLogoStorageKey(key, input.organizationId, input.variant),
25252
+ buildPublicUrl: require_dist$1.publicKeystrokeAssetsObjectUrl
25251
25253
  });
25252
25254
  if (!finalized.ok) return finalized;
25253
25255
  if (input.currentUrl && input.currentUrl !== finalized.publicUrl) await deleteStoredImageIfOwned({
25254
25256
  storage,
25255
25257
  url: input.currentUrl,
25256
- isOwnedPublicUrl: require_dist.isKeystrokeAssetsOrgLogoPublicUrl,
25257
- keyFromPublicUrl: require_dist.keystrokeAssetsOrgLogoKeyFromPublicUrl
25258
+ isOwnedPublicUrl: require_dist$1.isKeystrokeAssetsOrgLogoPublicUrl,
25259
+ keyFromPublicUrl: require_dist$1.keystrokeAssetsOrgLogoKeyFromPublicUrl
25258
25260
  });
25259
25261
  return {
25260
25262
  ok: true,
@@ -25262,11 +25264,11 @@ async function finalizeOrgLogoVariant(input) {
25262
25264
  };
25263
25265
  }
25264
25266
  const handler$85 = async (c) => {
25265
- const parsed = require_dist.OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
25266
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
25267
+ const parsed = require_dist$1.OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
25268
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
25267
25269
  const { organizationId } = c.get("organization");
25268
25270
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25269
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25271
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25270
25272
  const dbUpdate = {
25271
25273
  customLogoEnabled: parsed.data.customLogoEnabled,
25272
25274
  customLogoExplicitlyDisabled: parsed.data.customLogoExplicitlyDisabled,
@@ -25281,26 +25283,26 @@ const handler$85 = async (c) => {
25281
25283
  storageKey,
25282
25284
  currentUrl: organization[urlField]
25283
25285
  });
25284
- if (!result.ok) return c.json(require_dist.ErrorResponseSchema.parse({ error: result.error }), 400);
25286
+ if (!result.ok) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: result.error }), 400);
25285
25287
  dbUpdate[urlField] = result.publicUrl;
25286
25288
  }
25287
25289
  const updated = await (0, _keystrokehq_platform_database.updateOrganizationSidebarBranding)(organizationId, dbUpdate);
25288
- return c.json(require_dist.OrganizationSidebarBrandingSchema.parse((0, _keystrokehq_platform_database.organizationRowToSidebarBranding)(updated)));
25290
+ return c.json(require_dist$1.OrganizationSidebarBrandingSchema.parse((0, _keystrokehq_platform_database.organizationRowToSidebarBranding)(updated)));
25289
25291
  };
25290
25292
  //#endregion
25291
25293
  //#region src/routes/account/organizations/[organizationId]/branding/logo/presign/POST.ts
25292
25294
  const handler$84 = async (c) => {
25293
- const parsed = require_dist.PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
25294
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
25295
+ const parsed = require_dist$1.PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
25296
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
25295
25297
  const extension = avatarExtensionForContentType(parsed.data.contentType);
25296
- if (!extension) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Unsupported image type" }), 400);
25298
+ if (!extension) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Unsupported image type" }), 400);
25297
25299
  const { organizationId } = c.get("organization");
25298
- const storageKey = require_dist.orgLogoStorageKey(organizationId, parsed.data.variant, extension);
25299
- const uploadUrl = await require_dist.createAssetsStorageClient().presignPut({
25300
+ const storageKey = require_dist$1.orgLogoStorageKey(organizationId, parsed.data.variant, extension);
25301
+ const uploadUrl = await require_dist$1.createAssetsStorageClient().presignPut({
25300
25302
  key: storageKey,
25301
25303
  contentType: parsed.data.contentType
25302
25304
  });
25303
- return c.json(require_dist.PresignOrgLogoResponseSchema.parse({
25305
+ return c.json(require_dist$1.PresignOrgLogoResponseSchema.parse({
25304
25306
  uploadUrl,
25305
25307
  storageKey
25306
25308
  }));
@@ -25393,14 +25395,14 @@ async function attachRanAsToDetail(detail, ranByUserId) {
25393
25395
  const handler$83 = async (c) => {
25394
25396
  const organization = c.get("organization");
25395
25397
  const ctx = accessContext(c);
25396
- const query = require_dist.HistoryRunListQuerySchema.parse({
25398
+ const query = require_dist$1.HistoryRunListQuerySchema.parse({
25397
25399
  project: c.req.query("project")?.trim() || void 0,
25398
25400
  status: c.req.query("status")?.trim() || void 0,
25399
25401
  kind: c.req.query("kind")?.trim() || void 0
25400
25402
  });
25401
25403
  const scope = listScope(c, historyListScope(ctx));
25402
25404
  const filter = await resolveListProjectIds(c, scope, query.project);
25403
- if (filter === "empty") return c.json(require_dist.HistoryRunListResponseSchema.parse([]));
25405
+ if (filter === "empty") return c.json(require_dist$1.HistoryRunListResponseSchema.parse([]));
25404
25406
  const runs = await (0, _keystrokehq_database.listHistoryRuns)({
25405
25407
  ...filter,
25406
25408
  ...query.status ? { status: query.status } : {},
@@ -25409,7 +25411,7 @@ const handler$83 = async (c) => {
25409
25411
  const grantedProjectIdsList = await grantedProjectIds(c, scope);
25410
25412
  const projects = await (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: grantedProjectIdsList });
25411
25413
  const historyRuns = await enrichHistoryRuns(runs, new Map(projects.map((project) => [project.id, project.name])));
25412
- return c.json(require_dist.HistoryRunListResponseSchema.parse(historyRuns));
25414
+ return c.json(require_dist$1.HistoryRunListResponseSchema.parse(historyRuns));
25413
25415
  };
25414
25416
  //#endregion
25415
25417
  //#region src/routes/account/history/[runId]/GET.ts
@@ -25431,14 +25433,14 @@ const handler$82 = async (c) => {
25431
25433
  return (0, _keystrokehq_database.buildHistoryAgentSessionDetail)(agent.slug, runId);
25432
25434
  });
25433
25435
  if (!detail) return c.json(null, 404);
25434
- return c.json(require_dist.HistoryRunDetailResponseSchema.parse(await attachRanAsToDetail(detail, core.ranByUserId)));
25436
+ return c.json(require_dist$1.HistoryRunDetailResponseSchema.parse(await attachRanAsToDetail(detail, core.ranByUserId)));
25435
25437
  };
25436
25438
  //#endregion
25437
25439
  //#region src/routes/account/resources/common.ts
25438
25440
  /** Derive a human display name from a resource slug when no explicit name is stored. */
25439
25441
  function titleCaseKey(slug) {
25440
25442
  const normalized = slug.split(/[/_-]+/).filter(Boolean).join(" ");
25441
- if (!normalized) return require_dist.PLATFORM_RESOURCE_UNSUPPORTED_TEXT;
25443
+ if (!normalized) return require_dist$1.PLATFORM_RESOURCE_UNSUPPORTED_TEXT;
25442
25444
  return normalized.replace(/\b\w/g, (char) => char.toUpperCase());
25443
25445
  }
25444
25446
  //#endregion
@@ -25449,7 +25451,7 @@ function formatModel(model) {
25449
25451
  }
25450
25452
  function toAgentSummary(row, options) {
25451
25453
  const name = row.name?.trim() || titleCaseKey(row.slug);
25452
- return require_dist.AgentSummarySchema.parse({
25454
+ return require_dist$1.AgentSummarySchema.parse({
25453
25455
  id: row.id,
25454
25456
  slug: row.slug,
25455
25457
  name,
@@ -25464,7 +25466,7 @@ function toAgentSummary(row, options) {
25464
25466
  credentialCount: row.credentialCount ?? void 0,
25465
25467
  apps: (row.appSlugs ?? []).map((id) => ({
25466
25468
  id,
25467
- label: require_dist.displayCredentialAppName(id)
25469
+ label: require_dist$1.displayCredentialAppName(id)
25468
25470
  })),
25469
25471
  lastRunAt: options?.lastRunAt?.toISOString()
25470
25472
  });
@@ -25473,10 +25475,10 @@ function toAgentSummary(row, options) {
25473
25475
  //#region src/routes/account/agents/GET.ts
25474
25476
  const handler$81 = async (c) => {
25475
25477
  const filter = await resolveListProjectIds(c, listScope(c, agentListScope(accessContext(c))), c.req.query("projectId"));
25476
- if (filter === "empty") return c.json(require_dist.AgentSummaryListResponseSchema.parse([]));
25478
+ if (filter === "empty") return c.json(require_dist$1.AgentSummaryListResponseSchema.parse([]));
25477
25479
  const rows = await (0, _keystrokehq_database.listActiveAgents)(filter);
25478
25480
  const lastRunAtById = await (0, _keystrokehq_database.selectAgentLastRunAtByIds)(rows.map((row) => row.id));
25479
- return c.json(require_dist.AgentSummaryListResponseSchema.parse(rows.map((row) => toAgentSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null }))));
25481
+ return c.json(require_dist$1.AgentSummaryListResponseSchema.parse(rows.map((row) => toAgentSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null }))));
25480
25482
  };
25481
25483
  //#endregion
25482
25484
  //#region src/routes/account/lib/touch-resource-activity.ts
@@ -25488,7 +25490,7 @@ function touchResourceActivityBestEffort(options) {
25488
25490
  const handler$80 = async (c) => {
25489
25491
  const agentId = c.req.param("agentId") ?? "";
25490
25492
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
25491
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist.AgentSummaryDetailResponseSchema.parse(null));
25493
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.AgentSummaryDetailResponseSchema.parse(null));
25492
25494
  touchResourceActivityBestEffort({
25493
25495
  userId: c.get("user").id,
25494
25496
  projectId: row.projectId,
@@ -25498,7 +25500,7 @@ const handler$80 = async (c) => {
25498
25500
  const lastRunAtById = await (0, _keystrokehq_database.selectAgentLastRunAtByIds)([row.id]);
25499
25501
  const parsedModel = row.model ? AgentModelIdSchema.safeParse(row.model) : void 0;
25500
25502
  const capabilities = parsedModel?.success ? await resolveModelCapabilities(parsedModel.data) : void 0;
25501
- return c.json(require_dist.AgentSummaryDetailResponseSchema.parse(toAgentSummary(row, {
25503
+ return c.json(require_dist$1.AgentSummaryDetailResponseSchema.parse(toAgentSummary(row, {
25502
25504
  lastRunAt: lastRunAtById.get(row.id) ?? null,
25503
25505
  capabilities
25504
25506
  })));
@@ -25511,17 +25513,17 @@ function relativePathsFromStorageKeys(prefix, keys) {
25511
25513
  const handler$79 = async (c) => {
25512
25514
  const agentId = c.req.param("agentId") ?? "";
25513
25515
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
25514
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist.ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
25516
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
25515
25517
  const { organizationId } = c.get("organization");
25516
25518
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25517
- if (!organization) return c.json(require_dist.ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
25519
+ if (!organization) return c.json(require_dist$1.ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
25518
25520
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
25519
25521
  const prefix = agentMemoryStoragePrefix(row.id);
25520
- const files = orderMemoryRelativePaths(relativePathsFromStorageKeys(prefix, await storage.listObjects(prefix))).map((path) => require_dist.AgentMemoryFileSummarySchema.parse({
25521
- id: require_dist.agentMemoryFileId(path),
25522
+ const files = orderMemoryRelativePaths(relativePathsFromStorageKeys(prefix, await storage.listObjects(prefix))).map((path) => require_dist$1.AgentMemoryFileSummarySchema.parse({
25523
+ id: require_dist$1.agentMemoryFileId(path),
25522
25524
  path
25523
25525
  }));
25524
- return c.json(require_dist.ListAgentMemoryFilesResponseSchema.parse({ files }));
25526
+ return c.json(require_dist$1.ListAgentMemoryFilesResponseSchema.parse({ files }));
25525
25527
  };
25526
25528
  //#endregion
25527
25529
  //#region src/routes/account/agents/[agentId]/memory/files/content/GET.ts
@@ -25536,17 +25538,17 @@ function isStorageNotFoundError(error) {
25536
25538
  const handler$78 = async (c) => {
25537
25539
  const agentId = c.req.param("agentId") ?? "";
25538
25540
  const path = c.req.query("path");
25539
- if (!path) return c.json(require_dist.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
25541
+ if (!path) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
25540
25542
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
25541
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
25543
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
25542
25544
  const { organizationId } = c.get("organization");
25543
25545
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25544
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25546
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25545
25547
  let relativePath;
25546
25548
  try {
25547
25549
  relativePath = resolveMemoryRelativePath((0, node_path.join)((0, node_os.tmpdir)(), "agent-memory"), path);
25548
25550
  } catch (error) {
25549
- if ((error instanceof Error ? error.message : "Invalid file path").includes("must stay within")) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid file path" }), 400);
25551
+ if ((error instanceof Error ? error.message : "Invalid file path").includes("must stay within")) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid file path" }), 400);
25550
25552
  throw error;
25551
25553
  }
25552
25554
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
@@ -25554,7 +25556,7 @@ const handler$78 = async (c) => {
25554
25556
  try {
25555
25557
  bytes = await storage.getObject(agentMemoryFileStorageKey(row.id, relativePath));
25556
25558
  } catch (error) {
25557
- if (isStorageNotFoundError(error)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "File not found" }), 404);
25559
+ if (isStorageNotFoundError(error)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File not found" }), 404);
25558
25560
  throw error;
25559
25561
  }
25560
25562
  c.header("Content-Type", "text/plain; charset=utf-8");
@@ -25590,40 +25592,40 @@ function workspaceRelativePathsFromStorageKeys(keys) {
25590
25592
  const handler$77 = async (c) => {
25591
25593
  const agentId = c.req.param("agentId") ?? "";
25592
25594
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
25593
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
25595
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
25594
25596
  const { organizationId } = c.get("organization");
25595
25597
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25596
- if (!organization) return c.json(require_dist.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
25598
+ if (!organization) return c.json(require_dist$1.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
25597
25599
  const storage = (0, _keystrokehq_platform_database.createOrgAgentStorageClient)(organization, row.id);
25598
25600
  let keys;
25599
25601
  try {
25600
25602
  keys = await storage.listObjects("");
25601
25603
  } catch (error) {
25602
- if (require_dist.isStorageBucketNotFoundError(error)) return c.json(require_dist.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }));
25604
+ if (require_dist$1.isStorageBucketNotFoundError(error)) return c.json(require_dist$1.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }));
25603
25605
  throw error;
25604
25606
  }
25605
- const files = workspaceRelativePathsFromStorageKeys(keys).map((path) => require_dist.AgentWorkspaceFileSummarySchema.parse({
25606
- id: require_dist.agentWorkspaceFileId(path),
25607
+ const files = workspaceRelativePathsFromStorageKeys(keys).map((path) => require_dist$1.AgentWorkspaceFileSummarySchema.parse({
25608
+ id: require_dist$1.agentWorkspaceFileId(path),
25607
25609
  path
25608
25610
  }));
25609
- return c.json(require_dist.ListAgentWorkspaceFilesResponseSchema.parse({ files }));
25611
+ return c.json(require_dist$1.ListAgentWorkspaceFilesResponseSchema.parse({ files }));
25610
25612
  };
25611
25613
  //#endregion
25612
25614
  //#region src/routes/account/agents/[agentId]/workspace/files/content/GET.ts
25613
25615
  const handler$76 = async (c) => {
25614
25616
  const agentId = c.req.param("agentId") ?? "";
25615
25617
  const path = c.req.query("path");
25616
- if (!path) return c.json(require_dist.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
25618
+ if (!path) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
25617
25619
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
25618
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
25620
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
25619
25621
  const { organizationId } = c.get("organization");
25620
25622
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25621
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25623
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
25622
25624
  let relativePath;
25623
25625
  try {
25624
25626
  relativePath = resolveWorkspaceRelativePath((0, node_path.join)((0, node_os.tmpdir)(), "agent-workspace"), path);
25625
25627
  } catch (error) {
25626
- if ((error instanceof Error ? error.message : "Invalid file path").includes("must stay within")) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid file path" }), 400);
25628
+ if ((error instanceof Error ? error.message : "Invalid file path").includes("must stay within")) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid file path" }), 400);
25627
25629
  throw error;
25628
25630
  }
25629
25631
  const storage = (0, _keystrokehq_platform_database.createOrgAgentStorageClient)(organization, row.id);
@@ -25631,7 +25633,7 @@ const handler$76 = async (c) => {
25631
25633
  try {
25632
25634
  bytes = await storage.getObject(relativePath);
25633
25635
  } catch (error) {
25634
- if (require_dist.isStorageNotFoundError(error)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "File not found" }), 404);
25636
+ if (require_dist$1.isStorageNotFoundError(error)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File not found" }), 404);
25635
25637
  throw error;
25636
25638
  }
25637
25639
  c.header("Content-Type", "text/plain; charset=utf-8");
@@ -25655,7 +25657,7 @@ async function cancelHistoryRun(c, kind, cancel) {
25655
25657
  const grantedProjectIdsList = await grantedProjectIds(c, historyListScope(accessContext(c)));
25656
25658
  const projects = await (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organizationContext.organizationId, { grantedProjectIds: grantedProjectIdsList });
25657
25659
  const historyRun = await enrichHistoryRun(run, new Map(projects.map((project) => [project.id, project.name])));
25658
- return c.json(require_dist.HistoryRunCancelResponseSchema.parse(historyRun));
25660
+ return c.json(require_dist$1.HistoryRunCancelResponseSchema.parse(historyRun));
25659
25661
  }
25660
25662
  //#endregion
25661
25663
  //#region src/routes/account/agents/sessions/[sessionId]/cancel/POST.ts
@@ -25663,7 +25665,7 @@ const handler$75 = (c) => cancelHistoryRun(c, "agent", _keystrokehq_database.can
25663
25665
  //#endregion
25664
25666
  //#region src/routes/account/resources/workflows.ts
25665
25667
  function toWorkflowSummary(row, options) {
25666
- return require_dist.WorkflowSummarySchema.parse({
25668
+ return require_dist$1.WorkflowSummarySchema.parse({
25667
25669
  id: row.id,
25668
25670
  slug: row.slug,
25669
25671
  name: row.name.trim(),
@@ -25678,17 +25680,17 @@ function toWorkflowSummary(row, options) {
25678
25680
  //#region src/routes/account/workflows/GET.ts
25679
25681
  const handler$74 = async (c) => {
25680
25682
  const filter = await resolveListProjectIds(c, listScope(c, workflowListScope(accessContext(c))), c.req.query("projectId"));
25681
- if (filter === "empty") return c.json(require_dist.WorkflowSummaryListResponseSchema.parse([]));
25683
+ if (filter === "empty") return c.json(require_dist$1.WorkflowSummaryListResponseSchema.parse([]));
25682
25684
  const rows = await (0, _keystrokehq_database.listActiveWorkflows)(filter);
25683
25685
  const lastRunAtById = await (0, _keystrokehq_database.selectWorkflowLastRunAtByIds)(rows.map((row) => row.id));
25684
- return c.json(require_dist.WorkflowSummaryListResponseSchema.parse(rows.map((row) => toWorkflowSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null }))));
25686
+ return c.json(require_dist$1.WorkflowSummaryListResponseSchema.parse(rows.map((row) => toWorkflowSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null }))));
25685
25687
  };
25686
25688
  //#endregion
25687
25689
  //#region src/routes/account/workflows/[workflowId]/GET.ts
25688
25690
  const handler$73 = async (c) => {
25689
25691
  const workflowId = c.req.param("workflowId") ?? "";
25690
25692
  const row = workflowId ? await (0, _keystrokehq_database.selectActiveWorkflowById)(workflowId) : void 0;
25691
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return c.json(require_dist.WorkflowSummaryDetailResponseSchema.parse(null));
25693
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return c.json(require_dist$1.WorkflowSummaryDetailResponseSchema.parse(null));
25692
25694
  touchResourceActivityBestEffort({
25693
25695
  userId: c.get("user").id,
25694
25696
  projectId: row.projectId,
@@ -25696,7 +25698,7 @@ const handler$73 = async (c) => {
25696
25698
  resourceId: row.id
25697
25699
  });
25698
25700
  const lastRunAtById = await (0, _keystrokehq_database.selectWorkflowLastRunAtByIds)([row.id]);
25699
- return c.json(require_dist.WorkflowSummaryDetailResponseSchema.parse(toWorkflowSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null })));
25701
+ return c.json(require_dist$1.WorkflowSummaryDetailResponseSchema.parse(toWorkflowSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null })));
25700
25702
  };
25701
25703
  //#endregion
25702
25704
  //#region src/routes/account/workflows/resolve.ts
@@ -25712,13 +25714,13 @@ async function resolveWorkflow(c, workflowId) {
25712
25714
  async function loadWorkflowManifestEntry(projectId, slug) {
25713
25715
  const manifestJson = await (0, _keystrokehq_platform_database.selectActiveArtifactManifestForProject)(projectId);
25714
25716
  if (!manifestJson) return null;
25715
- return require_dist.parseStoredRouteManifest(manifestJson).entries.find((item) => item.kind === "workflow" && item.slug === slug) ?? null;
25717
+ return require_dist$1.parseStoredRouteManifest(manifestJson).entries.find((item) => item.kind === "workflow" && item.slug === slug) ?? null;
25716
25718
  }
25717
25719
  /** The full active-deploy route manifest for a project (canvas needs the whole entry set). */
25718
25720
  async function loadActiveManifest(projectId) {
25719
25721
  const manifestJson = await (0, _keystrokehq_platform_database.selectActiveArtifactManifestForProject)(projectId);
25720
25722
  if (!manifestJson) return null;
25721
- return require_dist.parseStoredRouteManifest(manifestJson);
25723
+ return require_dist$1.parseStoredRouteManifest(manifestJson);
25722
25724
  }
25723
25725
  //#endregion
25724
25726
  //#region src/routes/account/workflows/[workflowId]/canvas/build-canvas.ts
@@ -25736,7 +25738,7 @@ function indexManifest(entries) {
25736
25738
  };
25737
25739
  }
25738
25740
  function fieldsFromSchema(schema) {
25739
- return require_dist.jsonSchemaToWorkflowInputSchema(schema ?? {}).fields;
25741
+ return require_dist$1.jsonSchemaToWorkflowInputSchema(schema ?? {}).fields;
25740
25742
  }
25741
25743
  /** A read-only inspector row showing a captured llm option as a literal value. */
25742
25744
  function llmOptionRow(key, label, value) {
@@ -26076,13 +26078,13 @@ const ANNOTATIONS_GENERATOR_VERSION = "wf-canvas-annotations-v1";
26076
26078
  const handler$72 = async (c) => {
26077
26079
  const { organizationId } = c.get("organization");
26078
26080
  const workflowId = c.req.param("workflowId") ?? "";
26079
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26081
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26080
26082
  const resolved = await resolveWorkflow(c, workflowId);
26081
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26083
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26082
26084
  const { row, projectId } = resolved;
26083
26085
  const manifest = await loadActiveManifest(projectId);
26084
26086
  const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26085
- if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26087
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26086
26088
  const triggers = await (0, _keystrokehq_database.listWorkspaceTriggers)([projectId]);
26087
26089
  const { graph, nodeMetadata, codeBlocks } = buildWorkflowCanvas({
26088
26090
  workflowSlug: row.slug,
@@ -26090,7 +26092,7 @@ const handler$72 = async (c) => {
26090
26092
  entries: manifest?.entries ?? [],
26091
26093
  triggers
26092
26094
  });
26093
- const model = require_dist.DEFAULT_WORKFLOW_CANVAS_MODEL;
26095
+ const model = require_dist$1.DEFAULT_WORKFLOW_CANVAS_MODEL;
26094
26096
  const graphHash = (0, node_crypto.createHash)("sha256").update(JSON.stringify(workflowEntry.flowGraph)).digest("hex");
26095
26097
  const hash = (0, node_crypto.createHash)("sha256").update(JSON.stringify({
26096
26098
  source: workflowEntry.flowGraphSourceHash ?? "",
@@ -26098,7 +26100,7 @@ const handler$72 = async (c) => {
26098
26100
  model,
26099
26101
  version: ANNOTATIONS_GENERATOR_VERSION
26100
26102
  })).digest("hex");
26101
- if (codeBlocks.length === 0) return c.json(require_dist.WorkflowCanvasSchema.parse({
26103
+ if (codeBlocks.length === 0) return c.json(require_dist$1.WorkflowCanvasSchema.parse({
26102
26104
  graph,
26103
26105
  nodeMetadata,
26104
26106
  annotations: {},
@@ -26110,7 +26112,7 @@ const handler$72 = async (c) => {
26110
26112
  const cache = await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.selectWorkflowCanvasAnnotations)(workflowId));
26111
26113
  const cached = cache?.annotations ?? {};
26112
26114
  if (cache && cache.hash === hash) {
26113
- if (cache.status === "ready" || cache.status === "failed") return c.json(require_dist.WorkflowCanvasSchema.parse({
26115
+ if (cache.status === "ready" || cache.status === "failed") return c.json(require_dist$1.WorkflowCanvasSchema.parse({
26114
26116
  graph,
26115
26117
  nodeMetadata,
26116
26118
  annotations: cached,
@@ -26119,7 +26121,7 @@ const handler$72 = async (c) => {
26119
26121
  generatedAt: cache.generatedAt ? cache.generatedAt.toISOString() : (/* @__PURE__ */ new Date()).toISOString(),
26120
26122
  model: cache.model ?? model
26121
26123
  }));
26122
- if (cache.status === "generating") return c.json(require_dist.WorkflowCanvasSchema.parse({
26124
+ if (cache.status === "generating") return c.json(require_dist$1.WorkflowCanvasSchema.parse({
26123
26125
  graph,
26124
26126
  nodeMetadata,
26125
26127
  annotations: cached,
@@ -26130,7 +26132,7 @@ const handler$72 = async (c) => {
26130
26132
  }));
26131
26133
  }
26132
26134
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
26133
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26135
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26134
26136
  await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.setWorkflowCanvasAnnotationsGenerating)(workflowId, hash));
26135
26137
  try {
26136
26138
  await (await (0, _keystrokehq_http.getProjectScheduler)(organization, projectId)).enqueue({
@@ -26154,7 +26156,7 @@ const handler$72 = async (c) => {
26154
26156
  });
26155
26157
  } catch {
26156
26158
  await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.updateWorkflowCanvasAnnotations)(workflowId, { status: "failed" }));
26157
- return c.json(require_dist.WorkflowCanvasSchema.parse({
26159
+ return c.json(require_dist$1.WorkflowCanvasSchema.parse({
26158
26160
  graph,
26159
26161
  nodeMetadata,
26160
26162
  annotations: {},
@@ -26164,7 +26166,7 @@ const handler$72 = async (c) => {
26164
26166
  model
26165
26167
  }));
26166
26168
  }
26167
- return c.json(require_dist.WorkflowCanvasSchema.parse({
26169
+ return c.json(require_dist$1.WorkflowCanvasSchema.parse({
26168
26170
  graph,
26169
26171
  nodeMetadata,
26170
26172
  annotations: {},
@@ -26250,17 +26252,17 @@ function toBinding(key, description) {
26250
26252
  */
26251
26253
  const handler$71 = async (c) => {
26252
26254
  const workflowId = c.req.param("workflowId") ?? "";
26253
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26255
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26254
26256
  const resolved = await resolveWorkflow(c, workflowId);
26255
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26257
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26256
26258
  const { row, projectId } = resolved;
26257
26259
  const manifest = await loadActiveManifest(projectId);
26258
26260
  const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26259
- if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26261
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26260
26262
  const nodeRequirements = collectStepCredentialRequirements(workflowEntry.flowGraph, manifest?.entries ?? []);
26261
26263
  const userId = c.get("user").id;
26262
26264
  const bindings = await (0, _keystrokehq_database.runWithProjectScope)(projectId, async () => {
26263
- const context = await require_dist.withCredentialAssignments({
26265
+ const context = await require_dist$1.withCredentialAssignments({
26264
26266
  orgId: (0, _keystrokehq_database.getServerTenantScopeId)(),
26265
26267
  projectId: (0, _keystrokehq_database.getProjectScopeId)(),
26266
26268
  userId,
@@ -26274,7 +26276,7 @@ const handler$71 = async (c) => {
26274
26276
  const consumerId = `step:${nodeId}`;
26275
26277
  const nodeBindings = [];
26276
26278
  for (const requirement of requirements) {
26277
- const description = await require_dist.describeCredentialBinding({
26279
+ const description = await require_dist$1.describeCredentialBinding({
26278
26280
  key: requirement.key,
26279
26281
  ...requirement.scope ? { scope: requirement.scope } : {},
26280
26282
  consumerId,
@@ -26286,7 +26288,7 @@ const handler$71 = async (c) => {
26286
26288
  }
26287
26289
  return result;
26288
26290
  });
26289
- return c.json(require_dist.WorkflowCanvasCredentialBindingsSchema.parse(bindings));
26291
+ return c.json(require_dist$1.WorkflowCanvasCredentialBindingsSchema.parse(bindings));
26290
26292
  };
26291
26293
  //#endregion
26292
26294
  //#region src/routes/account/workflows/[workflowId]/canvas/build-run-overlay.ts
@@ -26406,15 +26408,15 @@ function toCanvasRunStatus(status) {
26406
26408
  const handler$70 = async (c) => {
26407
26409
  const workflowId = c.req.param("workflowId") ?? "";
26408
26410
  const runId = c.req.param("runId") ?? "";
26409
- if (!workflowId.trim() || !runId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow or run id" }), 400);
26411
+ if (!workflowId.trim() || !runId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow or run id" }), 400);
26410
26412
  const resolved = await resolveWorkflow(c, workflowId);
26411
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26413
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26412
26414
  const { row, projectId } = resolved;
26413
26415
  const run = await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.selectWorkflowRunForWorkflow)(row.slug, runId));
26414
- if (!run) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Run not found" }), 404);
26416
+ if (!run) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Run not found" }), 404);
26415
26417
  const manifest = await loadActiveManifest(projectId);
26416
26418
  const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26417
- if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26419
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26418
26420
  const triggers = await (0, _keystrokehq_database.listWorkspaceTriggers)([projectId]);
26419
26421
  const { graph } = buildWorkflowCanvas({
26420
26422
  workflowSlug: row.slug,
@@ -26429,7 +26431,7 @@ const handler$70 = async (c) => {
26429
26431
  events,
26430
26432
  runStatus
26431
26433
  });
26432
- return c.json(require_dist.WorkflowCanvasRunSchema.parse({
26434
+ return c.json(require_dist$1.WorkflowCanvasRunSchema.parse({
26433
26435
  runId,
26434
26436
  status: runStatus,
26435
26437
  startedAt: (run.startedAt ?? run.triggeredAt).toISOString(),
@@ -26450,9 +26452,9 @@ async function loadWorkflowSource(organization, projectId, sourcePath) {
26450
26452
  try {
26451
26453
  const artifact = await (0, _keystrokehq_platform_database.selectActiveProjectArtifactForProject)(projectId);
26452
26454
  if (!artifact?.sourceManifestJson) return null;
26453
- const file = require_dist.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === sourcePath);
26455
+ const file = require_dist$1.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === sourcePath);
26454
26456
  if (!file) return null;
26455
- const bytes = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).getObject(require_dist.projectSourceBlobKey(projectId, file.hash));
26457
+ const bytes = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).getObject(require_dist$1.projectSourceBlobKey(projectId, file.hash));
26456
26458
  return new TextDecoder().decode(bytes);
26457
26459
  } catch {
26458
26460
  return null;
@@ -26461,13 +26463,13 @@ async function loadWorkflowSource(organization, projectId, sourcePath) {
26461
26463
  const handler$69 = async (c) => {
26462
26464
  const { organizationId } = c.get("organization");
26463
26465
  const workflowId = c.req.param("workflowId") ?? "";
26464
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26466
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26465
26467
  const resolved = await resolveWorkflow(c, workflowId);
26466
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26468
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26467
26469
  const { row, projectId } = resolved;
26468
26470
  const manifest = await loadActiveManifest(projectId);
26469
26471
  const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26470
- if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Overview not available" }), 404);
26472
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Overview not available" }), 404);
26471
26473
  const triggers = await (0, _keystrokehq_database.listWorkspaceTriggers)([projectId]);
26472
26474
  const { graph, nodeMetadata } = buildWorkflowCanvas({
26473
26475
  workflowSlug: row.slug,
@@ -26492,7 +26494,7 @@ const handler$69 = async (c) => {
26492
26494
  ...meta?.toolCount !== void 0 ? { toolCount: meta.toolCount } : {}
26493
26495
  };
26494
26496
  });
26495
- const model = require_dist.DEFAULT_WORKFLOW_OVERVIEW_MODEL;
26497
+ const model = require_dist$1.DEFAULT_WORKFLOW_OVERVIEW_MODEL;
26496
26498
  const graphHash = (0, node_crypto.createHash)("sha256").update(JSON.stringify(workflowEntry.flowGraph)).digest("hex");
26497
26499
  const hash = (0, node_crypto.createHash)("sha256").update(JSON.stringify({
26498
26500
  source: workflowEntry.flowGraphSourceHash ?? "",
@@ -26504,7 +26506,7 @@ const handler$69 = async (c) => {
26504
26506
  const cache = await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.selectWorkflowOverview)(workflowId));
26505
26507
  const cachedPhases = cache?.phases ?? [];
26506
26508
  if (cache && cache.hash === hash) {
26507
- if (cache.status === "ready" || cache.status === "failed") return c.json(require_dist.WorkspaceWorkflowOverviewSchema.parse({
26509
+ if (cache.status === "ready" || cache.status === "failed") return c.json(require_dist$1.WorkspaceWorkflowOverviewSchema.parse({
26508
26510
  status: "ready",
26509
26511
  summary: cache.summary ?? "",
26510
26512
  phases: cachedPhases,
@@ -26512,7 +26514,7 @@ const handler$69 = async (c) => {
26512
26514
  generatedAt: cache.generatedAt ? cache.generatedAt.toISOString() : (/* @__PURE__ */ new Date()).toISOString(),
26513
26515
  model: cache.model ?? model
26514
26516
  }));
26515
- if (cache.status === "generating") return c.json(require_dist.WorkspaceWorkflowOverviewSchema.parse({
26517
+ if (cache.status === "generating") return c.json(require_dist$1.WorkspaceWorkflowOverviewSchema.parse({
26516
26518
  status: "generating",
26517
26519
  summary: cache.summary ?? "",
26518
26520
  phases: [],
@@ -26522,7 +26524,7 @@ const handler$69 = async (c) => {
26522
26524
  }));
26523
26525
  }
26524
26526
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
26525
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26527
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26526
26528
  await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.setWorkflowOverviewGenerating)(workflowId, hash));
26527
26529
  const source = await loadWorkflowSource(organization, projectId, workflowEntry.moduleFile);
26528
26530
  try {
@@ -26550,7 +26552,7 @@ const handler$69 = async (c) => {
26550
26552
  } catch {
26551
26553
  await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.updateWorkflowOverview)(workflowId, { status: "failed" }));
26552
26554
  }
26553
- return c.json(require_dist.WorkspaceWorkflowOverviewSchema.parse({
26555
+ return c.json(require_dist$1.WorkspaceWorkflowOverviewSchema.parse({
26554
26556
  status: "generating",
26555
26557
  summary: "",
26556
26558
  phases: [],
@@ -26563,13 +26565,13 @@ const handler$69 = async (c) => {
26563
26565
  //#region src/routes/account/workflows/[workflowId]/run-inputs/GET.ts
26564
26566
  const handler$68 = async (c) => {
26565
26567
  const workflowId = c.req.param("workflowId") ?? "";
26566
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26568
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26567
26569
  const resolved = await resolveWorkflow(c, workflowId);
26568
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26570
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26569
26571
  const { row, projectId } = resolved;
26570
- const schema = require_dist.jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
26572
+ const schema = require_dist$1.jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
26571
26573
  const values = await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.selectWorkflowRunInputValues)(workflowId));
26572
- return c.json(require_dist.WorkflowRunInputsSchema.parse({
26574
+ return c.json(require_dist$1.WorkflowRunInputsSchema.parse({
26573
26575
  schema,
26574
26576
  values
26575
26577
  }));
@@ -26578,21 +26580,21 @@ const handler$68 = async (c) => {
26578
26580
  //#region src/routes/account/workflows/[workflowId]/run-inputs/PUT.ts
26579
26581
  const handler$67 = async (c) => {
26580
26582
  const workflowId = c.req.param("workflowId") ?? "";
26581
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26583
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26582
26584
  const resolved = await resolveWorkflow(c, workflowId);
26583
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26585
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26584
26586
  let body;
26585
26587
  try {
26586
- body = require_dist.WorkflowRunInputsPutBodySchema.parse(await c.req.json());
26588
+ body = require_dist$1.WorkflowRunInputsPutBodySchema.parse(await c.req.json());
26587
26589
  } catch {
26588
- return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid request body" }), 400);
26590
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid request body" }), 400);
26589
26591
  }
26590
26592
  const { row, projectId } = resolved;
26591
- const schema = require_dist.jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
26592
- const validation = require_dist.validateWorkflowRunInputValues(schema, body);
26593
- if (!validation.ok) return c.json(require_dist.ErrorResponseSchema.parse({ error: validation.error }), 400);
26593
+ const schema = require_dist$1.jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
26594
+ const validation = require_dist$1.validateWorkflowRunInputValues(schema, body);
26595
+ if (!validation.ok) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: validation.error }), 400);
26594
26596
  await (0, _keystrokehq_database.runWithProjectScope)(projectId, () => (0, _keystrokehq_database.updateWorkflowRunInputValues)(workflowId, body));
26595
- return c.json(require_dist.WorkflowRunInputsSchema.parse({
26597
+ return c.json(require_dist$1.WorkflowRunInputsSchema.parse({
26596
26598
  schema,
26597
26599
  values: body
26598
26600
  }));
@@ -26611,20 +26613,20 @@ function parseRunInput(requestSchema, input) {
26611
26613
  const handler$66 = async (c) => {
26612
26614
  const { organizationId } = c.get("organization");
26613
26615
  const workflowId = c.req.param("workflowId") ?? "";
26614
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26616
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26615
26617
  const resolved = await resolveWorkflow(c, workflowId);
26616
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26618
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26617
26619
  const { row, projectId } = resolved;
26618
26620
  const workflowEntry = (await loadActiveManifest(projectId))?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26619
- if (!workflowEntry || workflowEntry.kind !== "workflow") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not deployed" }), 404);
26621
+ if (!workflowEntry || workflowEntry.kind !== "workflow") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not deployed" }), 404);
26620
26622
  let body = {};
26621
26623
  if ((c.req.header("content-type") ?? "").includes("application/json")) try {
26622
26624
  body = await c.req.json();
26623
26625
  } catch {
26624
- return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid JSON body" }), 400);
26626
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid JSON body" }), 400);
26625
26627
  }
26626
26628
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
26627
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26629
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26628
26630
  const userId = c.get("user").id;
26629
26631
  try {
26630
26632
  const runId = await (0, _keystrokehq_database.runWithProjectScope)(projectId, async () => {
@@ -26639,7 +26641,7 @@ const handler$66 = async (c) => {
26639
26641
  });
26640
26642
  return c.json({ runId }, 202);
26641
26643
  } catch (error) {
26642
- if (error instanceof zod.ZodError) return c.json(require_dist.validationErrorResponse(error, "Invalid workflow input"), 400);
26644
+ if (error instanceof zod.ZodError) return c.json(require_dist$1.validationErrorResponse(error, "Invalid workflow input"), 400);
26643
26645
  throw error;
26644
26646
  }
26645
26647
  };
@@ -26647,12 +26649,12 @@ const handler$66 = async (c) => {
26647
26649
  //#region src/routes/account/workflows/[workflowId]/runs/GET.ts
26648
26650
  const handler$65 = async (c) => {
26649
26651
  const workflowId = c.req.param("workflowId") ?? "";
26650
- if (!workflowId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26652
+ if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26651
26653
  const resolved = await resolveWorkflow(c, workflowId);
26652
- if (!resolved) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26654
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26653
26655
  const { row, projectId } = resolved;
26654
26656
  const scope = listScope(c, projectListScope(accessContext(c)));
26655
- if (await resolveListProjectIds(c, scope, projectId) === "empty") return c.json(require_dist.HistoryRunListResponseSchema.parse([]));
26657
+ if (await resolveListProjectIds(c, scope, projectId) === "empty") return c.json(require_dist$1.HistoryRunListResponseSchema.parse([]));
26656
26658
  const runs = await (0, _keystrokehq_database.listHistoryRuns)({
26657
26659
  kind: "workflow",
26658
26660
  projectIds: [projectId],
@@ -26664,7 +26666,7 @@ const handler$65 = async (c) => {
26664
26666
  const { organizationId } = c.get("organization");
26665
26667
  const projects = await (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organizationId, { grantedProjectIds: await grantedProjectIds(c, scope) });
26666
26668
  const projectNameById = new Map(projects.map((project) => [project.id, project.name]));
26667
- return c.json(require_dist.HistoryRunListResponseSchema.parse(await enrichHistoryRuns(runs, projectNameById)));
26669
+ return c.json(require_dist$1.HistoryRunListResponseSchema.parse(await enrichHistoryRuns(runs, projectNameById)));
26668
26670
  };
26669
26671
  //#endregion
26670
26672
  //#region src/routes/account/workflows/runs/[runId]/cancel/POST.ts
@@ -26673,7 +26675,7 @@ const handler$64 = (c) => cancelHistoryRun(c, "workflow", _keystrokehq_database.
26673
26675
  //#region src/routes/account/resources/skills.ts
26674
26676
  function toSkillSummary(row) {
26675
26677
  const name = row.name?.trim() || titleCaseKey(row.slug);
26676
- return require_dist.SkillSummarySchema.parse({
26678
+ return require_dist$1.SkillSummarySchema.parse({
26677
26679
  id: row.id,
26678
26680
  slug: row.slug,
26679
26681
  name,
@@ -26687,23 +26689,23 @@ function toSkillSummary(row) {
26687
26689
  //#region src/routes/account/skills/GET.ts
26688
26690
  const handler$63 = async (c) => {
26689
26691
  const filter = await resolveListProjectIds(c, listScope(c, skillListScope(accessContext(c))), c.req.query("projectId"));
26690
- if (filter === "empty") return c.json(require_dist.SkillSummaryListResponseSchema.parse([]));
26692
+ if (filter === "empty") return c.json(require_dist$1.SkillSummaryListResponseSchema.parse([]));
26691
26693
  const rows = await (0, _keystrokehq_database.listActiveSkills)(filter);
26692
- return c.json(require_dist.SkillSummaryListResponseSchema.parse(rows.map(toSkillSummary)));
26694
+ return c.json(require_dist$1.SkillSummaryListResponseSchema.parse(rows.map(toSkillSummary)));
26693
26695
  };
26694
26696
  //#endregion
26695
26697
  //#region src/routes/account/skills/[skillId]/GET.ts
26696
26698
  const handler$62 = async (c) => {
26697
26699
  const skillId = c.req.param("skillId") ?? "";
26698
26700
  const row = skillId ? await (0, _keystrokehq_database.selectActiveSkillById)(skillId) : void 0;
26699
- if (!row || !await canAccessProjectId(c, row.projectId, canAccessSkill)) return c.json(require_dist.SkillSummaryDetailResponseSchema.parse(null));
26701
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessSkill)) return c.json(require_dist$1.SkillSummaryDetailResponseSchema.parse(null));
26700
26702
  touchResourceActivityBestEffort({
26701
26703
  userId: c.get("user").id,
26702
26704
  projectId: row.projectId,
26703
26705
  resourceKind: "skill",
26704
26706
  resourceId: row.id
26705
26707
  });
26706
- return c.json(require_dist.SkillSummaryDetailResponseSchema.parse(toSkillSummary(row)));
26708
+ return c.json(require_dist$1.SkillSummaryDetailResponseSchema.parse(toSkillSummary(row)));
26707
26709
  };
26708
26710
  //#endregion
26709
26711
  //#region src/routes/account/triggers/enrich.ts
@@ -26724,7 +26726,7 @@ function buildTriggerWebhookUrl(record, tokenByProjectRoute) {
26724
26726
  const route = webhookRouteFromEndpoint(record.webhookEndpoint);
26725
26727
  const token = tokenByProjectRoute.get(webhookTokenKey(record.projectId, route));
26726
26728
  if (!token) return null;
26727
- const platformOrigin = require_dist.resolveExternalPlatformOrigin();
26729
+ const platformOrigin = require_dist$1.resolveExternalPlatformOrigin();
26728
26730
  if (!platformOrigin) return null;
26729
26731
  return `${`${platformOrigin.replace(/\/$/, "")}/api/projects/${encodeURIComponent(record.projectId)}`}${route.startsWith("/") ? route : `/${route}`}?token=${encodeURIComponent(token)}`;
26730
26732
  }
@@ -26744,6 +26746,7 @@ function mapRunStatus(status) {
26744
26746
  }
26745
26747
  function mapSkipReason(reason) {
26746
26748
  if (reason === "transform_undefined") return "transform_undefined";
26749
+ if (reason === "invalid_payload") return "payload_mismatch";
26747
26750
  return "filtered";
26748
26751
  }
26749
26752
  function mapTargets(item, assignments) {
@@ -26773,7 +26776,8 @@ function mapTargets(item, assignments) {
26773
26776
  function mapOutcome(item, assignments) {
26774
26777
  if (item.outcome === "skipped") return {
26775
26778
  kind: "skipped",
26776
- reason: mapSkipReason(item.reason)
26779
+ reason: mapSkipReason(item.reason),
26780
+ ...item.detail ? { detail: item.detail } : {}
26777
26781
  };
26778
26782
  if (item.outcome === "failed") return {
26779
26783
  kind: "failed",
@@ -26804,7 +26808,7 @@ const handler$61 = async (c) => {
26804
26808
  const organization = c.get("organization");
26805
26809
  const scope = listScope(c, projectListScope(accessContext(c)));
26806
26810
  const filter = await resolveListProjectIds(c, scope, c.req.query("projectId"));
26807
- if (filter === "empty") return c.json(require_dist.WorkspaceTriggerListResponseSchema.parse([]));
26811
+ if (filter === "empty") return c.json(require_dist$1.WorkspaceTriggerListResponseSchema.parse([]));
26808
26812
  const [records, projects, webhookKeys] = await Promise.all([
26809
26813
  (0, _keystrokehq_database.listWorkspaceTriggers)(filter.projectIds),
26810
26814
  (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: await grantedProjectIds(c, scope) }),
@@ -26812,47 +26816,49 @@ const handler$61 = async (c) => {
26812
26816
  ]);
26813
26817
  const projectNameById = new Map(projects.map((project) => [project.id, project.name]));
26814
26818
  const tokens = webhookTokensByProjectRoute(webhookKeys);
26815
- return c.json(require_dist.WorkspaceTriggerListResponseSchema.parse(records.map((record) => toWorkspaceTriggerDetail(record, projectNameById.get(record.projectId) ?? "Unknown project", buildTriggerWebhookUrl(record, tokens)))));
26819
+ return c.json(require_dist$1.WorkspaceTriggerListResponseSchema.parse(records.map((record) => toWorkspaceTriggerDetail(record, projectNameById.get(record.projectId) ?? "Unknown project", buildTriggerWebhookUrl(record, tokens)))));
26816
26820
  };
26817
26821
  //#endregion
26818
26822
  //#region src/routes/account/triggers/[triggerId]/GET.ts
26819
26823
  const handler$60 = async (c) => {
26820
26824
  const organization = c.get("organization");
26821
26825
  const triggerId = c.req.param("triggerId") ?? "";
26822
- if (!triggerId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26826
+ if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26823
26827
  const scope = listScope(c, projectListScope(accessContext(c)));
26824
26828
  const filter = await resolveListProjectIds(c, scope);
26825
- if (filter === "empty") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26829
+ if (filter === "empty") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26826
26830
  const record = (await (0, _keystrokehq_database.listWorkspaceTriggers)(filter.projectIds)).find((entry) => entry.id === triggerId);
26827
- if (!record) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26831
+ if (!record) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26828
26832
  const [projects, webhookKeys] = await Promise.all([(0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: await grantedProjectIds(c, scope) }), (0, _keystrokehq_platform_database.listWebhookApiKeysForProject)(record.projectId)]);
26829
26833
  const projectName = projects.find((project) => project.id === record.projectId)?.name ?? "Unknown project";
26830
26834
  const webhookUrl = buildTriggerWebhookUrl(record, webhookTokensByProjectRoute(webhookKeys));
26831
- return c.json(require_dist.WorkspaceTriggerDetailSchema.parse(toWorkspaceTriggerDetail(record, projectName, webhookUrl)));
26835
+ return c.json(require_dist$1.WorkspaceTriggerDetailSchema.parse(toWorkspaceTriggerDetail(record, projectName, webhookUrl)));
26832
26836
  };
26833
26837
  //#endregion
26834
26838
  //#region src/routes/account/triggers/[triggerId]/runs/GET.ts
26835
26839
  const handler$59 = async (c) => {
26836
26840
  const triggerId = c.req.param("triggerId") ?? "";
26837
- if (!triggerId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26841
+ if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26838
26842
  const filter = await resolveListProjectIds(c, listScope(c, projectListScope(accessContext(c))));
26839
- if (filter === "empty") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26840
- const query = require_dist.TriggerRunListQuerySchema.parse({
26843
+ if (filter === "empty") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26844
+ const query = require_dist$1.TriggerRunListQuerySchema.parse({
26841
26845
  limit: c.req.query("limit"),
26842
26846
  cursor: c.req.query("cursor")?.trim() || void 0,
26843
- triggerType: c.req.query("triggerType")?.trim() || void 0
26847
+ triggerType: c.req.query("triggerType")?.trim() || void 0,
26848
+ outcome: c.req.query("outcome")?.trim() || void 0
26844
26849
  });
26845
26850
  const record = (await (0, _keystrokehq_database.listWorkspaceTriggers)(filter.projectIds)).find((entry) => entry.id === triggerId);
26846
- if (!record) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26851
+ if (!record) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26847
26852
  const result = await (0, _keystrokehq_database.listWorkspaceTriggerRunRows)({
26848
26853
  projectId: record.projectId,
26849
26854
  triggerId: record.id,
26850
26855
  limit: query.limit,
26851
26856
  cursor: query.cursor,
26852
- triggerType: query.triggerType
26857
+ triggerType: query.triggerType,
26858
+ outcome: query.outcome
26853
26859
  });
26854
- if (!result) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26855
- return c.json(require_dist.WorkspaceTriggerRunListResponseSchema.parse({
26860
+ if (!result) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26861
+ return c.json(require_dist$1.WorkspaceTriggerRunListResponseSchema.parse({
26856
26862
  items: result.items.map((item) => toWorkspaceTriggerRunSummary(item, record.assignments)),
26857
26863
  nextCursor: result.nextCursor
26858
26864
  }));
@@ -26862,25 +26868,25 @@ const handler$59 = async (c) => {
26862
26868
  const handler$58 = async (c) => {
26863
26869
  const { organizationId } = c.get("organization");
26864
26870
  const triggerId = c.req.param("triggerId") ?? "";
26865
- if (!triggerId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26871
+ if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26866
26872
  const filter = await resolveListProjectIds(c, listScope(c, projectListScope(accessContext(c))));
26867
- if (filter === "empty") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26873
+ if (filter === "empty") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26868
26874
  const record = (await (0, _keystrokehq_database.listWorkspaceTriggers)(filter.projectIds)).find((entry) => entry.id === triggerId);
26869
- if (!record) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26875
+ if (!record) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26870
26876
  const artifact = await (0, _keystrokehq_platform_database.selectActiveProjectArtifactForProject)(record.projectId);
26871
- if (!artifact || !artifact.sourceManifestJson) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Source not found" }), 404);
26872
- const file = require_dist.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === record.sourcePath);
26873
- if (!file) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Source file not found" }), 404);
26877
+ if (!artifact || !artifact.sourceManifestJson) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Source not found" }), 404);
26878
+ const file = require_dist$1.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === record.sourcePath);
26879
+ if (!file) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Source file not found" }), 404);
26874
26880
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
26875
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26881
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26876
26882
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
26877
26883
  let bytes;
26878
26884
  try {
26879
- bytes = await storage.getObject(require_dist.projectSourceBlobKey(record.projectId, file.hash));
26885
+ bytes = await storage.getObject(require_dist$1.projectSourceBlobKey(record.projectId, file.hash));
26880
26886
  } catch {
26881
- return c.json(require_dist.ErrorResponseSchema.parse({ error: "Source file contents not found" }), 404);
26887
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Source file contents not found" }), 404);
26882
26888
  }
26883
- return c.json(require_dist.WorkspaceTriggerFileSchema.parse({
26889
+ return c.json(require_dist$1.WorkspaceTriggerFileSchema.parse({
26884
26890
  path: record.sourcePath,
26885
26891
  contents: new TextDecoder().decode(bytes)
26886
26892
  }));
@@ -26888,7 +26894,7 @@ const handler$58 = async (c) => {
26888
26894
  //#endregion
26889
26895
  //#region src/routes/account/triggers/[triggerId]/overview/GET.ts
26890
26896
  function envelope(row, status, hash) {
26891
- return require_dist.WorkspaceTriggerOverviewSchema.parse({
26897
+ return require_dist$1.WorkspaceTriggerOverviewSchema.parse({
26892
26898
  status,
26893
26899
  markdown: row.overviewMarkdown ?? "",
26894
26900
  hash,
@@ -26899,25 +26905,25 @@ function envelope(row, status, hash) {
26899
26905
  const handler$57 = async (c) => {
26900
26906
  const { organizationId } = c.get("organization");
26901
26907
  const triggerId = c.req.param("triggerId") ?? "";
26902
- if (!triggerId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26908
+ if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
26903
26909
  const filter = await resolveListProjectIds(c, listScope(c, projectListScope(accessContext(c))));
26904
- if (filter === "empty") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26910
+ if (filter === "empty") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26905
26911
  const record = (await (0, _keystrokehq_database.listWorkspaceTriggers)(filter.projectIds)).find((entry) => entry.id === triggerId);
26906
- if (!record) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26912
+ if (!record) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26907
26913
  const row = await (0, _keystrokehq_database.runWithProjectScope)(record.projectId, () => (0, _keystrokehq_database.selectTriggerById)(triggerId));
26908
- if (!row) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26914
+ if (!row) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26909
26915
  if (row.triggerHash && row.overviewStatus === "ready" && row.overviewHash === row.triggerHash) return c.json(envelope(row, "ready", row.triggerHash));
26910
26916
  if (row.triggerHash && row.overviewStatus === "generating" && row.overviewHash === row.triggerHash) return c.json(envelope(row, "generating", row.triggerHash));
26911
26917
  const artifact = await (0, _keystrokehq_platform_database.selectActiveProjectArtifactForProject)(record.projectId);
26912
- const file = (artifact?.sourceManifestJson ? require_dist.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson) : null)?.files.find((entry) => entry.path === record.sourcePath) ?? null;
26918
+ const file = (artifact?.sourceManifestJson ? require_dist$1.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson) : null)?.files.find((entry) => entry.path === record.sourcePath) ?? null;
26913
26919
  if (!file) return c.json(envelope(row, "ready", row.triggerHash ?? row.overviewHash ?? ""));
26914
26920
  const effectiveHash = row.triggerHash ?? file.hash;
26915
26921
  if (row.overviewStatus === "ready" && row.overviewHash === effectiveHash) return c.json(envelope(row, "ready", effectiveHash));
26916
26922
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
26917
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26923
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26918
26924
  let sourceContents;
26919
26925
  try {
26920
- const bytes = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).getObject(require_dist.projectSourceBlobKey(record.projectId, file.hash));
26926
+ const bytes = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).getObject(require_dist$1.projectSourceBlobKey(record.projectId, file.hash));
26921
26927
  sourceContents = new TextDecoder().decode(bytes);
26922
26928
  } catch {
26923
26929
  await (0, _keystrokehq_database.runWithProjectScope)(record.projectId, () => (0, _keystrokehq_database.updateTriggerOverview)(triggerId, { status: "failed" }));
@@ -26936,7 +26942,7 @@ const handler$57 = async (c) => {
26936
26942
  triggerId,
26937
26943
  projectId: record.projectId,
26938
26944
  triggerHash: effectiveHash,
26939
- model: require_dist.DEFAULT_TRIGGER_OVERVIEW_MODEL,
26945
+ model: require_dist$1.DEFAULT_TRIGGER_OVERVIEW_MODEL,
26940
26946
  input: {
26941
26947
  name: record.name,
26942
26948
  description: record.description,
@@ -26960,35 +26966,35 @@ const handler$56 = async (c) => {
26960
26966
  const organization = c.get("organization");
26961
26967
  const triggerId = c.req.param("triggerId") ?? "";
26962
26968
  const attachmentId = c.req.param("attachmentId") ?? "";
26963
- if (!triggerId.trim() || !attachmentId.trim()) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid trigger or attachment id" }), 400);
26964
- const parsed = require_dist.TriggerAttachmentUpdateRequestSchema.safeParse(await c.req.json().catch(() => null));
26969
+ if (!triggerId.trim() || !attachmentId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger or attachment id" }), 400);
26970
+ const parsed = require_dist$1.TriggerAttachmentUpdateRequestSchema.safeParse(await c.req.json().catch(() => null));
26965
26971
  if (!parsed.success) {
26966
26972
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
26967
- return c.json(require_dist.ErrorResponseSchema.parse({ error: message }), 400);
26973
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 400);
26968
26974
  }
26969
26975
  const scope = listScope(c, projectListScope(accessContext(c)));
26970
26976
  const filter = await resolveListProjectIds(c, scope);
26971
- if (filter === "empty") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26977
+ if (filter === "empty") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26972
26978
  const record = (await (0, _keystrokehq_database.listWorkspaceTriggers)(filter.projectIds)).find((entry) => entry.id === triggerId);
26973
- if (!record) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26974
- if (!record.assignments.find((entry) => entry.attachmentId === attachmentId)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Attachment not found" }), 404);
26979
+ if (!record) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26980
+ if (!record.assignments.find((entry) => entry.attachmentId === attachmentId)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Attachment not found" }), 404);
26975
26981
  if (!await canPerformProjectAction(c, record.projectId, projectActions.deploy)) return forbidden(c);
26976
26982
  if (!await (0, _keystrokehq_database.runWithProjectScope)(record.projectId, () => (0, _keystrokehq_database.setTriggerAttachmentEnabledState)({
26977
26983
  triggerId,
26978
26984
  attachmentId,
26979
26985
  enabled: parsed.data.enabled
26980
- }))) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Attachment not found" }), 404);
26986
+ }))) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Attachment not found" }), 404);
26981
26987
  const refreshed = (await (0, _keystrokehq_database.listWorkspaceTriggers)([record.projectId])).find((entry) => entry.id === triggerId);
26982
- if (!refreshed) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26988
+ if (!refreshed) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Trigger not found" }), 404);
26983
26989
  const [projects, webhookKeys] = await Promise.all([(0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: await grantedProjectIds(c, scope) }), (0, _keystrokehq_platform_database.listWebhookApiKeysForProject)(refreshed.projectId)]);
26984
26990
  const projectName = projects.find((project) => project.id === refreshed.projectId)?.name ?? "Unknown project";
26985
26991
  const webhookUrl = buildTriggerWebhookUrl(refreshed, webhookTokensByProjectRoute(webhookKeys));
26986
- return c.json(require_dist.WorkspaceTriggerDetailSchema.parse(toWorkspaceTriggerDetail(refreshed, projectName, webhookUrl)));
26992
+ return c.json(require_dist$1.WorkspaceTriggerDetailSchema.parse(toWorkspaceTriggerDetail(refreshed, projectName, webhookUrl)));
26987
26993
  };
26988
26994
  //#endregion
26989
26995
  //#region src/routes/account/resources/recents.ts
26990
26996
  function toRecentResource(activity, resource, projectName) {
26991
- return require_dist.RecentResourceSchema.parse({
26997
+ return require_dist$1.RecentResourceSchema.parse({
26992
26998
  id: activity.id,
26993
26999
  resourceKind: activity.resourceKind,
26994
27000
  resourceId: activity.resourceId,
@@ -27042,7 +27048,7 @@ const handler$55 = async (c) => {
27042
27048
  skill: new Map(skills.map((row) => [row.id, hydratedResourceFromAgentRow(row)]))
27043
27049
  };
27044
27050
  const recents = visibleActivities.map((activity) => hydrateRecentResource(activity, lookup, projectNameById)).filter((recent) => recent !== null).sort((left, right) => latestRecentInteractionAt(right) - latestRecentInteractionAt(left));
27045
- return c.json(require_dist.RecentResourceListResponseSchema.parse(recents));
27051
+ return c.json(require_dist$1.RecentResourceListResponseSchema.parse(recents));
27046
27052
  };
27047
27053
  //#endregion
27048
27054
  //#region src/routes/account/projects/GET.ts
@@ -27050,7 +27056,7 @@ const handler$54 = async (c) => {
27050
27056
  const organization = c.get("organization");
27051
27057
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, projectListScope(accessContext(c))));
27052
27058
  const projects = await (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: grantedProjectIdsList });
27053
- return c.json(require_dist.ListProjectsResponseSchema.parse(projects.map(require_dist.mapProject)));
27059
+ return c.json(require_dist$1.ListProjectsResponseSchema.parse(projects.map(require_dist$1.mapProject)));
27054
27060
  };
27055
27061
  //#endregion
27056
27062
  //#region src/routes/account/projects/metrics/merge-project-list-metrics.ts
@@ -27084,7 +27090,7 @@ const handler$53 = async (c) => {
27084
27090
  const allowed = new Set(grantedProjectIdsList);
27085
27091
  metrics = Object.fromEntries(Object.entries(metrics).filter(([projectId]) => allowed.has(projectId)));
27086
27092
  }
27087
- return c.json(require_dist.ListProjectMetricsResponseSchema.parse(metrics));
27093
+ return c.json(require_dist$1.ListProjectMetricsResponseSchema.parse(metrics));
27088
27094
  };
27089
27095
  //#endregion
27090
27096
  //#region src/routes/account/projects/POST.ts
@@ -27092,27 +27098,27 @@ const handler$52 = async (c) => {
27092
27098
  const organization = c.get("organization");
27093
27099
  const user = c.get("user");
27094
27100
  const body = await c.req.json().catch(() => null);
27095
- const parsed = require_dist.CreateProjectRequestSchema.safeParse(body);
27096
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Project name is required" }), 400);
27101
+ const parsed = require_dist$1.CreateProjectRequestSchema.safeParse(body);
27102
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project name is required" }), 400);
27097
27103
  const project = await (0, _keystrokehq_platform_database.createProjectForOrganization)(organization.organizationId, parsed.data.name, parsed.data.description, user.id);
27098
- return c.json(require_dist.CreateProjectResponseSchema.parse(require_dist.mapProject(project)), 201);
27104
+ return c.json(require_dist$1.CreateProjectResponseSchema.parse(require_dist$1.mapProject(project)), 201);
27099
27105
  };
27100
27106
  //#endregion
27101
27107
  //#region src/routes/account/projects/slug-available/GET.ts
27102
27108
  const handler$51 = async (c) => {
27103
27109
  const organization = c.get("organization");
27104
- const parsed = require_dist.ProjectSlugAvailabilityQuerySchema.safeParse({
27110
+ const parsed = require_dist$1.ProjectSlugAvailabilityQuerySchema.safeParse({
27105
27111
  slug: c.req.query("slug"),
27106
27112
  excludeProjectId: c.req.query("excludeProjectId")
27107
27113
  });
27108
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
27114
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
27109
27115
  const availability = await (0, _keystrokehq_platform_database.checkProjectSlugAvailability)(organization.organizationId, parsed.data.slug, parsed.data.excludeProjectId);
27110
- return c.json(require_dist.ProjectSlugAvailabilityResponseSchema.parse(availability));
27116
+ return c.json(require_dist$1.ProjectSlugAvailabilityResponseSchema.parse(availability));
27111
27117
  };
27112
27118
  //#endregion
27113
27119
  //#region src/routes/account/projects/[projectId]/GET.ts
27114
27120
  const handler$50 = async (c) => {
27115
- return c.json(require_dist.ProjectResponseSchema.parse(routeProject(c.get("project"))));
27121
+ return c.json(require_dist$1.ProjectResponseSchema.parse(routeProject(c.get("project"))));
27116
27122
  };
27117
27123
  //#endregion
27118
27124
  //#region src/routes/account/projects/[projectId]/PATCH.ts
@@ -27120,31 +27126,31 @@ const handler$49 = async (c) => {
27120
27126
  const organization = c.get("organization");
27121
27127
  const project = c.get("project");
27122
27128
  const body = await c.req.json().catch(() => null);
27123
- const parsed = require_dist.UpdateProjectRequestSchema.safeParse(body);
27124
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid project update request" }), 400);
27129
+ const parsed = require_dist$1.UpdateProjectRequestSchema.safeParse(body);
27130
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid project update request" }), 400);
27125
27131
  let updated;
27126
27132
  try {
27127
27133
  updated = await (0, _keystrokehq_platform_database.updateProjectForOrganization)(organization.organizationId, project.id, parsed.data);
27128
27134
  } catch (error) {
27129
- if (error instanceof _keystrokehq_platform_database.ProjectSlugTakenError) return c.json(require_dist.ErrorResponseSchema.parse({ error: require_dist.PROJECT_SLUG_TAKEN_MESSAGE }), 409);
27135
+ if (error instanceof _keystrokehq_platform_database.ProjectSlugTakenError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: require_dist$1.PROJECT_SLUG_TAKEN_MESSAGE }), 409);
27130
27136
  throw error;
27131
27137
  }
27132
- if (!updated) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
27133
- return c.json(require_dist.ProjectResponseSchema.parse(require_dist.mapProject(updated)));
27138
+ if (!updated) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
27139
+ return c.json(require_dist$1.ProjectResponseSchema.parse(require_dist$1.mapProject(updated)));
27134
27140
  };
27135
27141
  //#endregion
27136
27142
  //#region src/routes/account/projects/[projectId]/DELETE.ts
27137
27143
  const handler$48 = async (c) => {
27138
27144
  const organization = c.get("organization");
27139
27145
  const project = c.get("project");
27140
- if (!await (0, _keystrokehq_platform_database.deleteProjectForOrganization)(organization.organizationId, project.id)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
27146
+ if (!await (0, _keystrokehq_platform_database.deleteProjectForOrganization)(organization.organizationId, project.id)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
27141
27147
  return c.body(null, 204);
27142
27148
  };
27143
27149
  //#endregion
27144
27150
  //#region src/routes/account/projects/[projectId]/deployments/GET.ts
27145
27151
  const handler$47 = async (c) => {
27146
27152
  const rows = await (0, _keystrokehq_platform_database.selectProjectDeployments)(c.get("project").id);
27147
- return c.json(require_dist.ListProjectDeploymentsResponseSchema.parse(rows.map(require_dist.mapProjectDeployment)));
27153
+ return c.json(require_dist$1.ListProjectDeploymentsResponseSchema.parse(rows.map(require_dist$1.mapProjectDeployment)));
27148
27154
  };
27149
27155
  //#endregion
27150
27156
  //#region src/routes/account/projects/[projectId]/artifacts/POST.ts
@@ -27156,7 +27162,7 @@ const handler$46 = async (c) => {
27156
27162
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27157
27163
  if (!organization) return c.json({ error: "Organization not found" }, 404);
27158
27164
  const artifactId = crypto.randomUUID();
27159
- const storageKey = require_dist.projectArtifactKey(project.id, artifactId);
27165
+ const storageKey = require_dist$1.projectArtifactKey(project.id, artifactId);
27160
27166
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
27161
27167
  const artifact = await (0, _keystrokehq_platform_database.insertProjectArtifact)({
27162
27168
  id: artifactId,
@@ -27169,8 +27175,8 @@ const handler$46 = async (c) => {
27169
27175
  contentType: ARTIFACT_CONTENT_TYPE,
27170
27176
  expiresInSeconds: DEFAULT_PRESIGN_TTL_SECONDS$1
27171
27177
  });
27172
- return c.json(require_dist.CreateProjectArtifactResponseSchema.parse({
27173
- artifact: require_dist.mapProjectArtifact(artifact),
27178
+ return c.json(require_dist$1.CreateProjectArtifactResponseSchema.parse({
27179
+ artifact: require_dist$1.mapProjectArtifact(artifact),
27174
27180
  uploadUrl,
27175
27181
  expiresInSeconds: DEFAULT_PRESIGN_TTL_SECONDS$1
27176
27182
  }), 201);
@@ -27189,7 +27195,7 @@ const handler$45 = async (c) => {
27189
27195
  key: artifact.storageKey,
27190
27196
  expiresInSeconds: DEFAULT_PRESIGN_TTL_SECONDS
27191
27197
  });
27192
- return c.json(require_dist.DownloadActiveProjectArtifactResponseSchema.parse({
27198
+ return c.json(require_dist$1.DownloadActiveProjectArtifactResponseSchema.parse({
27193
27199
  artifactId: artifact.id,
27194
27200
  downloadUrl,
27195
27201
  expiresInSeconds: DEFAULT_PRESIGN_TTL_SECONDS
@@ -27200,20 +27206,20 @@ const handler$45 = async (c) => {
27200
27206
  const handler$44 = async (c) => {
27201
27207
  const project = c.get("project");
27202
27208
  const active = await (0, _keystrokehq_platform_database.selectActiveArtifactSourceManifestForProject)(project.id);
27203
- if (!active?.sourceManifestJson) return c.json(require_dist.ErrorResponseSchema.parse({ error: "No active source for project" }), 404);
27209
+ if (!active?.sourceManifestJson) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "No active source for project" }), 404);
27204
27210
  const { organizationId } = c.get("organization");
27205
27211
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27206
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27207
- const manifest = require_dist.StoredProjectSourceManifestSchema.parse(active.sourceManifestJson);
27212
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27213
+ const manifest = require_dist$1.StoredProjectSourceManifestSchema.parse(active.sourceManifestJson);
27208
27214
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
27209
27215
  let files;
27210
27216
  try {
27211
- files = await require_dist.loadProjectSourceFiles(storage, project.id, manifest);
27217
+ files = await require_dist$1.loadProjectSourceFiles(storage, project.id, manifest);
27212
27218
  } catch (error) {
27213
27219
  const message = error instanceof Error ? error.message : "Failed to load source files";
27214
- return c.json(require_dist.ErrorResponseSchema.parse({ error: message }), 400);
27220
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 400);
27215
27221
  }
27216
- return c.json(require_dist.DownloadActiveProjectSourceResponseSchema.parse({
27222
+ return c.json(require_dist$1.DownloadActiveProjectSourceResponseSchema.parse({
27217
27223
  artifactId: active.artifactId,
27218
27224
  files
27219
27225
  }));
@@ -27223,20 +27229,20 @@ const handler$44 = async (c) => {
27223
27229
  const handler$43 = async (c) => {
27224
27230
  const project = c.get("project");
27225
27231
  const artifactId = c.req.param("artifactId");
27226
- if (!artifactId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27232
+ if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27227
27233
  const existing = await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id);
27228
- if (!existing) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27229
- if (existing.status === "ready") return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact already completed" }), 409);
27234
+ if (!existing) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27235
+ if (existing.status === "ready") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact already completed" }), 409);
27230
27236
  const { organizationId } = c.get("organization");
27231
27237
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27232
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27238
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27233
27239
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
27234
27240
  const head = await storage.headObject(existing.storageKey);
27235
- if (!head || head.contentLength <= 0) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact upload not found in storage" }), 400);
27241
+ if (!head || head.contentLength <= 0) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact upload not found in storage" }), 400);
27236
27242
  try {
27237
27243
  const artifactBytes = await storage.getObject(existing.storageKey);
27238
- if (!artifactBytes || artifactBytes.byteLength <= 0) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact upload not found in storage" }), 400);
27239
- const manifestJson = require_dist.parseStoredRouteManifest(require_dist.extractRouteManifestFromArtifact(Buffer.from(artifactBytes)));
27244
+ if (!artifactBytes || artifactBytes.byteLength <= 0) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact upload not found in storage" }), 400);
27245
+ const manifestJson = require_dist$1.parseStoredRouteManifest(require_dist$1.extractRouteManifestFromArtifact(Buffer.from(artifactBytes)));
27240
27246
  await validateAgentModelIds(agentModelIdsFromStoredManifest(manifestJson));
27241
27247
  const result = await (0, _keystrokehq_platform_database.completeProjectArtifact)({
27242
27248
  artifactId,
@@ -27248,13 +27254,13 @@ const handler$43 = async (c) => {
27248
27254
  name: project.name,
27249
27255
  artifactId
27250
27256
  });
27251
- return c.json(require_dist.CompleteProjectArtifactResponseSchema.parse({
27252
- artifact: require_dist.mapProjectArtifact(result.artifact),
27253
- project: require_dist.mapProject(result.project)
27257
+ return c.json(require_dist$1.CompleteProjectArtifactResponseSchema.parse({
27258
+ artifact: require_dist$1.mapProjectArtifact(result.artifact),
27259
+ project: require_dist$1.mapProject(result.project)
27254
27260
  }));
27255
27261
  } catch (error) {
27256
27262
  const message = error instanceof Error ? error.message : "Failed to complete artifact";
27257
- return c.json(require_dist.ErrorResponseSchema.parse({ error: message }), 400);
27263
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 400);
27258
27264
  }
27259
27265
  };
27260
27266
  //#endregion
@@ -27263,17 +27269,17 @@ const SOURCE_BLOB_CONTENT_TYPE = "text/plain; charset=utf-8";
27263
27269
  const handler$42 = async (c) => {
27264
27270
  const project = c.get("project");
27265
27271
  const artifactId = c.req.param("artifactId");
27266
- if (!artifactId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27267
- if (!await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27268
- const parsed = require_dist.PresignProjectSourceRequestSchema.safeParse(await c.req.json().catch(() => null));
27269
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid blob list" }), 400);
27272
+ if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27273
+ if (!await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27274
+ const parsed = require_dist$1.PresignProjectSourceRequestSchema.safeParse(await c.req.json().catch(() => null));
27275
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid blob list" }), 400);
27270
27276
  const { organizationId } = c.get("organization");
27271
27277
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27272
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27278
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27273
27279
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
27274
27280
  const hashes = [...new Set(parsed.data.blobs.map((blob) => blob.hash))];
27275
27281
  const uploads = await Promise.all(hashes.map(async (hash) => {
27276
- const key = require_dist.projectSourceBlobKey(project.id, hash);
27282
+ const key = require_dist$1.projectSourceBlobKey(project.id, hash);
27277
27283
  const head = await storage.headObject(key);
27278
27284
  if (head && head.contentLength > 0) return null;
27279
27285
  return {
@@ -27284,20 +27290,20 @@ const handler$42 = async (c) => {
27284
27290
  })
27285
27291
  };
27286
27292
  }));
27287
- return c.json(require_dist.PresignProjectSourceResponseSchema.parse({ uploads: uploads.filter((upload) => upload !== null) }));
27293
+ return c.json(require_dist$1.PresignProjectSourceResponseSchema.parse({ uploads: uploads.filter((upload) => upload !== null) }));
27288
27294
  };
27289
27295
  //#endregion
27290
27296
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/manifest/POST.ts
27291
27297
  const handler$41 = async (c) => {
27292
27298
  const project = c.get("project");
27293
27299
  const artifactId = c.req.param("artifactId");
27294
- if (!artifactId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27295
- if (!await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27296
- const parsed = require_dist.UploadProjectSourceManifestRequestSchema.safeParse(await c.req.json().catch(() => null));
27297
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid source manifest" }), 400);
27298
- const manifest = require_dist.StoredProjectSourceManifestSchema.parse({
27300
+ if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27301
+ if (!await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27302
+ const parsed = require_dist$1.UploadProjectSourceManifestRequestSchema.safeParse(await c.req.json().catch(() => null));
27303
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid source manifest" }), 400);
27304
+ const manifest = require_dist$1.StoredProjectSourceManifestSchema.parse({
27299
27305
  files: parsed.data.files.map((file) => ({
27300
- id: require_dist.projectFileId(file.path),
27306
+ id: require_dist$1.projectFileId(file.path),
27301
27307
  path: file.path,
27302
27308
  hash: file.hash
27303
27309
  })),
@@ -27308,7 +27314,7 @@ const handler$41 = async (c) => {
27308
27314
  projectId: project.id,
27309
27315
  sourceManifestJson: manifest
27310
27316
  });
27311
- return c.json(require_dist.UploadProjectSourceResponseSchema.parse({
27317
+ return c.json(require_dist$1.UploadProjectSourceResponseSchema.parse({
27312
27318
  ok: true,
27313
27319
  fileCount: manifest.files.length
27314
27320
  }), 201);
@@ -27318,27 +27324,27 @@ const handler$41 = async (c) => {
27318
27324
  function extensionFromUpload(contentType, filename) {
27319
27325
  const fromName = filename.includes(".") ? filename.split(".").pop()?.toLowerCase() : void 0;
27320
27326
  if (fromName && /^[a-z0-9]+$/.test(fromName)) return fromName;
27321
- return require_dist.chatAttachmentExtension(contentType) ?? "bin";
27327
+ return require_dist$1.chatAttachmentExtension(contentType) ?? "bin";
27322
27328
  }
27323
27329
  const handler$40 = async (c) => {
27324
27330
  const project = c.get("project");
27325
27331
  const slug = c.req.param("slug");
27326
- if (!slug) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Agent slug is required" }), 400);
27332
+ if (!slug) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Agent slug is required" }), 400);
27327
27333
  const agent = await (0, _keystrokehq_database.runWithProjectScope)(project.id, () => (0, _keystrokehq_database.selectAgentBySlug)(slug));
27328
- if (!agent || agent.projectId !== project.id) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
27329
- const parsed = require_dist.PresignChatAttachmentRequestSchema.safeParse(await c.req.json().catch(() => null));
27330
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid presign request" }), 400);
27331
- if (!require_dist.isAllowedChatAttachmentMediaType(parsed.data.contentType)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Unsupported content type" }), 400);
27334
+ if (!agent || agent.projectId !== project.id) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
27335
+ const parsed = require_dist$1.PresignChatAttachmentRequestSchema.safeParse(await c.req.json().catch(() => null));
27336
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid presign request" }), 400);
27337
+ if (!require_dist$1.isAllowedChatAttachmentMediaType(parsed.data.contentType)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Unsupported content type" }), 400);
27332
27338
  const { organizationId } = c.get("organization");
27333
27339
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27334
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27340
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27335
27341
  const ext = extensionFromUpload(parsed.data.contentType, parsed.data.filename);
27336
- const storageKey = require_dist.chatAttachmentStorageKey(project.id, crypto.randomUUID(), ext);
27342
+ const storageKey = require_dist$1.chatAttachmentStorageKey(project.id, crypto.randomUUID(), ext);
27337
27343
  const uploadUrl = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).presignPut({
27338
27344
  key: storageKey,
27339
27345
  contentType: parsed.data.contentType
27340
27346
  });
27341
- return c.json(require_dist.PresignChatAttachmentResponseSchema.parse({
27347
+ return c.json(require_dist$1.PresignChatAttachmentResponseSchema.parse({
27342
27348
  uploadUrl,
27343
27349
  storageKey
27344
27350
  }));
@@ -27349,14 +27355,14 @@ const handler$39 = async (c) => {
27349
27355
  const project = c.get("project");
27350
27356
  const slug = c.req.param("slug");
27351
27357
  const keyParam = c.req.param("key");
27352
- if (!slug || !keyParam) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Attachment key is required" }), 400);
27358
+ if (!slug || !keyParam) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Attachment key is required" }), 400);
27353
27359
  const storageKey = keyParam.split("/").map((segment) => decodeURIComponent(segment)).join("/");
27354
- if (!require_dist.isChatAttachmentStorageKey(storageKey, project.id)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Attachment not found" }), 404);
27360
+ if (!require_dist$1.isChatAttachmentStorageKey(storageKey, project.id)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Attachment not found" }), 404);
27355
27361
  const agent = await (0, _keystrokehq_database.runWithProjectScope)(project.id, () => (0, _keystrokehq_database.selectAgentBySlug)(slug));
27356
- if (!agent || agent.projectId !== project.id) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
27362
+ if (!agent || agent.projectId !== project.id) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
27357
27363
  const { organizationId } = c.get("organization");
27358
27364
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27359
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27365
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27360
27366
  const url = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).presignGet({ key: storageKey });
27361
27367
  return c.redirect(url, 302);
27362
27368
  };
@@ -27383,18 +27389,18 @@ function resolveSourcePaths(rows, kindDir, filePaths) {
27383
27389
  const handler$38 = async (c) => {
27384
27390
  const project = c.get("project");
27385
27391
  const active = await (0, _keystrokehq_platform_database.selectActiveArtifactSourceManifestForProject)(project.id);
27386
- if (!active || !active.sourceManifestJson) return c.json(require_dist.ListProjectFilesResponseSchema.parse({
27392
+ if (!active || !active.sourceManifestJson) return c.json(require_dist$1.ListProjectFilesResponseSchema.parse({
27387
27393
  artifactId: active?.artifactId ?? null,
27388
27394
  files: []
27389
27395
  }));
27390
- const manifest = require_dist.StoredProjectSourceManifestSchema.parse(active.sourceManifestJson);
27396
+ const manifest = require_dist$1.StoredProjectSourceManifestSchema.parse(active.sourceManifestJson);
27391
27397
  const [agents, workflows, skills] = await Promise.all([
27392
27398
  (0, _keystrokehq_database.listActiveAgents)({ projectIds: [project.id] }),
27393
27399
  (0, _keystrokehq_database.listActiveWorkflows)({ projectIds: [project.id] }),
27394
27400
  (0, _keystrokehq_database.listActiveSkills)({ projectIds: [project.id] })
27395
27401
  ]);
27396
27402
  const filePaths = manifest.files.map((file) => file.path);
27397
- const resources = require_dist.ProjectSourceResourcesSchema.parse({
27403
+ const resources = require_dist$1.ProjectSourceResourcesSchema.parse({
27398
27404
  agents: resolveSourcePaths(agents, "agents", filePaths),
27399
27405
  workflows: resolveSourcePaths(workflows, "workflows", filePaths),
27400
27406
  skills: skills.map((row) => ({
@@ -27402,7 +27408,7 @@ const handler$38 = async (c) => {
27402
27408
  path: row.moduleFile
27403
27409
  }))
27404
27410
  });
27405
- return c.json(require_dist.ListProjectFilesResponseSchema.parse({
27411
+ return c.json(require_dist$1.ListProjectFilesResponseSchema.parse({
27406
27412
  artifactId: active.artifactId,
27407
27413
  files: manifest.files.map((file) => ({
27408
27414
  id: file.id,
@@ -27417,22 +27423,22 @@ const handler$38 = async (c) => {
27417
27423
  const handler$37 = async (c) => {
27418
27424
  const project = c.get("project");
27419
27425
  const artifactId = c.req.param("artifactId");
27420
- if (!artifactId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27426
+ if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
27421
27427
  const path = c.req.query("path");
27422
- if (!path) return c.json(require_dist.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
27428
+ if (!path) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
27423
27429
  const artifact = await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id);
27424
- if (!artifact || !artifact.sourceManifestJson) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27425
- const file = require_dist.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === path);
27426
- if (!file) return c.json(require_dist.ErrorResponseSchema.parse({ error: "File not found" }), 404);
27430
+ if (!artifact || !artifact.sourceManifestJson) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact not found" }), 404);
27431
+ const file = require_dist$1.StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === path);
27432
+ if (!file) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File not found" }), 404);
27427
27433
  const { organizationId } = c.get("organization");
27428
27434
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
27429
- if (!organization) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27435
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
27430
27436
  const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
27431
27437
  let bytes;
27432
27438
  try {
27433
- bytes = await storage.getObject(require_dist.projectSourceBlobKey(project.id, file.hash));
27439
+ bytes = await storage.getObject(require_dist$1.projectSourceBlobKey(project.id, file.hash));
27434
27440
  } catch {
27435
- return c.json(require_dist.ErrorResponseSchema.parse({ error: "File contents not found" }), 404);
27441
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File contents not found" }), 404);
27436
27442
  }
27437
27443
  c.header("Content-Type", "text/plain; charset=utf-8");
27438
27444
  return c.body(new TextDecoder().decode(bytes));
@@ -27442,13 +27448,13 @@ const handler$37 = async (c) => {
27442
27448
  function createProjectReachabilityHandler(hosting) {
27443
27449
  return async (c) => {
27444
27450
  const project = c.get("project");
27445
- if (project.status !== "active") return c.json(require_dist.ProjectReachabilityResponseSchema.parse({ reachable: false }));
27451
+ if (project.status !== "active") return c.json(require_dist$1.ProjectReachabilityResponseSchema.parse({ reachable: false }));
27446
27452
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(project.organizationId);
27447
27453
  const reachable = await require_dist.pingProjectTarget({
27448
27454
  baseUrl: organization?.baseUrl ?? project.baseUrl,
27449
27455
  runtimeId: organization?.runtimeId ?? project.runtimeId
27450
27456
  }, { plugin: hosting });
27451
- return c.json(require_dist.ProjectReachabilityResponseSchema.parse({ reachable }));
27457
+ return c.json(require_dist$1.ProjectReachabilityResponseSchema.parse({ reachable }));
27452
27458
  };
27453
27459
  }
27454
27460
  //#endregion
@@ -27457,7 +27463,7 @@ const handler$36 = async (c) => {
27457
27463
  const project = c.get("project");
27458
27464
  const currentUserId = c.get("user").id;
27459
27465
  const members = await (0, _keystrokehq_platform_database.selectProjectMembers)(project.id);
27460
- return c.json(require_dist.ListProjectMembersResponseSchema.parse(members.map((member) => require_dist.mapProjectMember(member, { isCurrentUser: member.id === currentUserId }))));
27466
+ return c.json(require_dist$1.ListProjectMembersResponseSchema.parse(members.map((member) => require_dist$1.mapProjectMember(member, { isCurrentUser: member.id === currentUserId }))));
27461
27467
  };
27462
27468
  //#endregion
27463
27469
  //#region src/routes/account/projects/[projectId]/members/POST.ts
@@ -27465,15 +27471,15 @@ const handler$35 = async (c) => {
27465
27471
  const organization = c.get("organization");
27466
27472
  const project = c.get("project");
27467
27473
  const body = await c.req.json().catch(() => null);
27468
- const parsed = require_dist.InviteProjectMembersRequestSchema.safeParse(body);
27469
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid invite request" }), 400);
27474
+ const parsed = require_dist$1.InviteProjectMembersRequestSchema.safeParse(body);
27475
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid invite request" }), 400);
27470
27476
  const results = await (0, _keystrokehq_platform_database.inviteProjectMembers)({
27471
27477
  projectId: project.id,
27472
27478
  organizationId: organization.organizationId,
27473
27479
  emails: parsed.data.emails,
27474
27480
  role: parsed.data.role
27475
27481
  });
27476
- return c.json(require_dist.InviteProjectMembersResponseSchema.parse(results));
27482
+ return c.json(require_dist$1.InviteProjectMembersResponseSchema.parse(results));
27477
27483
  };
27478
27484
  //#endregion
27479
27485
  //#region src/routes/account/projects/[projectId]/members/[userId]/PATCH.ts
@@ -27481,14 +27487,14 @@ const handler$34 = async (c) => {
27481
27487
  const project = c.get("project");
27482
27488
  const userId = c.req.param("userId");
27483
27489
  const body = await c.req.json().catch(() => null);
27484
- const parsed = require_dist.UpdateProjectMemberRequestSchema.safeParse(body);
27485
- if (!userId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27486
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid member update request" }), 400);
27490
+ const parsed = require_dist$1.UpdateProjectMemberRequestSchema.safeParse(body);
27491
+ if (!userId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27492
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid member update request" }), 400);
27487
27493
  try {
27488
27494
  const member = await (0, _keystrokehq_platform_database.updateProjectMemberRole)(project.id, userId, parsed.data.role);
27489
- return c.json(require_dist.UpdateProjectMemberResponseSchema.parse(require_dist.mapProjectMember(member)));
27495
+ return c.json(require_dist$1.UpdateProjectMemberResponseSchema.parse(require_dist$1.mapProjectMember(member)));
27490
27496
  } catch (error) {
27491
- if (error instanceof _keystrokehq_platform_database.ProjectMemberNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 400);
27497
+ if (error instanceof _keystrokehq_platform_database.ProjectMemberNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 400);
27492
27498
  throw error;
27493
27499
  }
27494
27500
  };
@@ -27497,12 +27503,12 @@ const handler$34 = async (c) => {
27497
27503
  const handler$33 = async (c) => {
27498
27504
  const project = c.get("project");
27499
27505
  const userId = c.req.param("userId");
27500
- if (!userId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27506
+ if (!userId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27501
27507
  try {
27502
27508
  await (0, _keystrokehq_platform_database.removeProjectMember)(project.id, userId);
27503
27509
  return c.body(null, 204);
27504
27510
  } catch (error) {
27505
- if (error instanceof _keystrokehq_platform_database.ProjectMemberNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 400);
27511
+ if (error instanceof _keystrokehq_platform_database.ProjectMemberNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 400);
27506
27512
  throw error;
27507
27513
  }
27508
27514
  };
@@ -27515,7 +27521,7 @@ const handler$32 = async (c) => {
27515
27521
  await (0, _keystrokehq_platform_database.removeProjectMember)(project.id, userId);
27516
27522
  return c.body(null, 204);
27517
27523
  } catch (error) {
27518
- if (error instanceof _keystrokehq_platform_database.ProjectMemberNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 400);
27524
+ if (error instanceof _keystrokehq_platform_database.ProjectMemberNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 400);
27519
27525
  throw error;
27520
27526
  }
27521
27527
  };
@@ -27523,7 +27529,7 @@ const handler$32 = async (c) => {
27523
27529
  //#region src/routes/account/projects/[projectId]/settings/GET.ts
27524
27530
  const handler$31 = async (c) => {
27525
27531
  const project = c.get("project");
27526
- return c.json(require_dist.ProjectSettingsResponseSchema.parse(require_dist.mapProjectSettings(project)));
27532
+ return c.json(require_dist$1.ProjectSettingsResponseSchema.parse(require_dist$1.mapProjectSettings(project)));
27527
27533
  };
27528
27534
  //#endregion
27529
27535
  //#region src/routes/account/projects/[projectId]/settings/PATCH.ts
@@ -27531,15 +27537,15 @@ const handler$30 = async (c) => {
27531
27537
  const organization = c.get("organization");
27532
27538
  const project = c.get("project");
27533
27539
  const body = await c.req.json().catch(() => null);
27534
- const parsed = require_dist.UpdateProjectSettingsRequestSchema.safeParse(body);
27535
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid project settings request" }), 400);
27540
+ const parsed = require_dist$1.UpdateProjectSettingsRequestSchema.safeParse(body);
27541
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid project settings request" }), 400);
27536
27542
  const updated = await (0, _keystrokehq_platform_database.updateProjectSettings)(organization.organizationId, project.id, {
27537
27543
  description: parsed.data.description,
27538
27544
  defaultMemberRole: parsed.data.defaultRole,
27539
27545
  invitePermission: parsed.data.invitePermission
27540
27546
  });
27541
- if (!updated) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
27542
- return c.json(require_dist.ProjectSettingsResponseSchema.parse(require_dist.mapProjectSettings(updated)));
27547
+ if (!updated) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
27548
+ return c.json(require_dist$1.ProjectSettingsResponseSchema.parse(require_dist$1.mapProjectSettings(updated)));
27543
27549
  };
27544
27550
  //#endregion
27545
27551
  //#region src/routes/account/credentials/enrich.ts
@@ -27564,10 +27570,10 @@ function canManageCredential(row, userId) {
27564
27570
  /** Display name derived from the app slug (org-custom slugs use the segment after `/`). */
27565
27571
  function displayAppName(appId) {
27566
27572
  try {
27567
- const parsed = require_dist.parseAppSlug(appId);
27568
- if (parsed.kind === "org") return require_dist.displayCredentialAppName(parsed.name);
27573
+ const parsed = require_dist$1.parseAppSlug(appId);
27574
+ if (parsed.kind === "org") return require_dist$1.displayCredentialAppName(parsed.name);
27569
27575
  } catch {}
27570
- return require_dist.displayCredentialAppName(appId);
27576
+ return require_dist$1.displayCredentialAppName(appId);
27571
27577
  }
27572
27578
  /** Masked preview of a secret — last 4 chars revealed, the rest masked. Plaintext never returned. */
27573
27579
  function maskSecretPreview(value) {
@@ -27576,7 +27582,7 @@ function maskSecretPreview(value) {
27576
27582
  return `${"•".repeat(Math.min(trimmed.length - 4, 20))}${trimmed.slice(-4)}`;
27577
27583
  }
27578
27584
  async function readSecretKeyPreviews(instanceId) {
27579
- const payload = await require_dist.readCredentialInstanceSecret(instanceId);
27585
+ const payload = await require_dist$1.readCredentialInstanceSecret(instanceId);
27580
27586
  if (!payload) return null;
27581
27587
  let parsed;
27582
27588
  try {
@@ -27687,7 +27693,7 @@ const handler$29 = async (c) => {
27687
27693
  userId: user.id,
27688
27694
  projectIds
27689
27695
  })), organization.organizationId);
27690
- return c.json(require_dist.ListCredentialsResponseSchema.parse(credentials));
27696
+ return c.json(require_dist$1.ListCredentialsResponseSchema.parse(credentials));
27691
27697
  };
27692
27698
  //#endregion
27693
27699
  //#region src/routes/account/credentials/POST.ts
@@ -27698,7 +27704,7 @@ function withTargetScope(target, fn) {
27698
27704
  const handler$28 = async (c) => {
27699
27705
  const organization = c.get("organization");
27700
27706
  const user = c.get("user");
27701
- const parsed = require_dist.CreateCredentialsRequestSchema.safeParse(await c.req.json().catch(() => null));
27707
+ const parsed = require_dist$1.CreateCredentialsRequestSchema.safeParse(await c.req.json().catch(() => null));
27702
27708
  if (!parsed.success) {
27703
27709
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
27704
27710
  return c.json({ error: message }, 400);
@@ -27707,7 +27713,7 @@ const handler$28 = async (c) => {
27707
27713
  if (input.connectionKind === "manual" && input.value) {
27708
27714
  const app = await (0, _keystrokehq_platform_database.selectAppForOrganization)(organization.organizationId, input.appId);
27709
27715
  if (app && (0, _keystrokehq_platform_database.hasCredentialFieldTemplate)(app)) {
27710
- const validation = require_dist.validateCredentialValueAgainstFields(app.credentialFields, input.value);
27716
+ const validation = require_dist$1.validateCredentialValueAgainstFields(app.credentialFields, input.value);
27711
27717
  if (!validation.ok) return c.json({ error: validation.message }, 400);
27712
27718
  }
27713
27719
  }
@@ -27736,7 +27742,7 @@ const handler$28 = async (c) => {
27736
27742
  scopeId: user.id
27737
27743
  }] : []
27738
27744
  ];
27739
- const appName = require_dist.displayCredentialAppName(input.appId);
27745
+ const appName = require_dist$1.displayCredentialAppName(input.appId);
27740
27746
  const siblingCounts = /* @__PURE__ */ new Map();
27741
27747
  for (const target of targets) {
27742
27748
  const siblings = await withTargetScope(target, () => (0, _keystrokehq_database.selectCredentialInstancesForScope)(input.appId, target.scopeType, target.scopeId));
@@ -27746,8 +27752,8 @@ const handler$28 = async (c) => {
27746
27752
  const createdIds = [];
27747
27753
  for (const target of targets) {
27748
27754
  const siblings = await withTargetScope(target, () => (0, _keystrokehq_database.selectCredentialInstancesForScope)(input.appId, target.scopeType, target.scopeId));
27749
- const label = require_dist.resolveUniqueCredentialInstanceLabel({
27750
- baseLabel: input.label?.trim() || require_dist.buildCredentialInstanceLabel({
27755
+ const label = require_dist$1.resolveUniqueCredentialInstanceLabel({
27756
+ baseLabel: input.label?.trim() || require_dist$1.buildCredentialInstanceLabel({
27751
27757
  scopeType: target.scopeType,
27752
27758
  appName,
27753
27759
  projectName: target.projectName
@@ -27755,7 +27761,7 @@ const handler$28 = async (c) => {
27755
27761
  takenLabels: siblings.map((row) => row.label)
27756
27762
  });
27757
27763
  const id = crypto.randomUUID();
27758
- await withTargetScope(target, () => require_dist.setCredentialInstanceSecret({
27764
+ await withTargetScope(target, () => require_dist$1.setCredentialInstanceSecret({
27759
27765
  id,
27760
27766
  key: input.appId,
27761
27767
  scopeType: target.scopeType,
@@ -27772,7 +27778,7 @@ const handler$28 = async (c) => {
27772
27778
  if (row) rows.push(row);
27773
27779
  }
27774
27780
  const credentials = await enrichCredentialInstances(rows, organization.organizationId);
27775
- return c.json(require_dist.CreateCredentialsResponseSchema.parse(credentials), 201);
27781
+ return c.json(require_dist$1.CreateCredentialsResponseSchema.parse(credentials), 201);
27776
27782
  };
27777
27783
  //#endregion
27778
27784
  //#region src/routes/account/credentials/[credentialId]/GET.ts
@@ -27782,7 +27788,7 @@ const handler$27 = async (c) => {
27782
27788
  const row = credentialId ? await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId) : void 0;
27783
27789
  if (!row || toAppCredentialScope(row.scopeType) === null) return c.json({ error: "Credential not found" }, 404);
27784
27790
  const [credential] = await enrichCredentialInstances([row], organization.organizationId);
27785
- return c.json(require_dist.GetCredentialResponseSchema.parse(credential));
27791
+ return c.json(require_dist$1.GetCredentialResponseSchema.parse(credential));
27786
27792
  };
27787
27793
  //#endregion
27788
27794
  //#region src/routes/account/credentials/[credentialId]/PATCH.ts
@@ -27793,7 +27799,7 @@ const handler$26 = async (c) => {
27793
27799
  const existing = credentialId ? await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId) : void 0;
27794
27800
  if (!existing || toAppCredentialScope(existing.scopeType) === null) return c.json({ error: "Credential not found" }, 404);
27795
27801
  if (!canManageCredential(existing, user.id)) return c.json({ error: "Forbidden" }, 403);
27796
- const parsed = require_dist.UpdateCredentialRequestSchema.safeParse(await c.req.json().catch(() => null));
27802
+ const parsed = require_dist$1.UpdateCredentialRequestSchema.safeParse(await c.req.json().catch(() => null));
27797
27803
  if (!parsed.success) {
27798
27804
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
27799
27805
  return c.json({ error: message }, 400);
@@ -27808,7 +27814,7 @@ const handler$26 = async (c) => {
27808
27814
  if (labelChanged) {
27809
27815
  const siblings = await withCredentialRowScope(existing, () => (0, _keystrokehq_database.selectCredentialInstancesForScope)(existing.appSlug, existing.scopeType, existing.scopeId));
27810
27816
  if (siblings.some((row) => row.id !== credentialId && (row.label ?? row.name ?? null) === label)) return c.json({ error: "A credential with this label already exists" }, 409);
27811
- slug = require_dist.deriveCredentialInstanceSlug({
27817
+ slug = require_dist$1.deriveCredentialInstanceSlug({
27812
27818
  appSlug: existing.appSlug,
27813
27819
  name: label,
27814
27820
  takenSlugs: siblings.filter((row) => row.id !== credentialId).map((row) => row.slug)
@@ -27817,7 +27823,7 @@ const handler$26 = async (c) => {
27817
27823
  }
27818
27824
  await withCredentialRowScope(existing, async () => {
27819
27825
  if (parsed.data.value) {
27820
- await require_dist.setCredentialInstanceSecret({
27826
+ await require_dist$1.setCredentialInstanceSecret({
27821
27827
  id: existing.id,
27822
27828
  key: existing.appSlug,
27823
27829
  slug,
@@ -27855,7 +27861,7 @@ const handler$26 = async (c) => {
27855
27861
  });
27856
27862
  const updated = await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId);
27857
27863
  const [credential] = await enrichCredentialInstances(updated ? [updated] : [], organization.organizationId);
27858
- return c.json(require_dist.GetCredentialResponseSchema.parse(credential));
27864
+ return c.json(require_dist$1.GetCredentialResponseSchema.parse(credential));
27859
27865
  };
27860
27866
  //#endregion
27861
27867
  //#region src/routes/account/credentials/[credentialId]/DELETE.ts
@@ -27877,7 +27883,7 @@ function createDeleteCredentialHandler(options = {}) {
27877
27883
  await options.mcp.revokeConnection((0, _keystrokehq_http.resolveMcpEntityId)(existing), existing.connectionId);
27878
27884
  }
27879
27885
  }
27880
- } else await require_dist.deleteCredentialInstanceSecret(existing.id);
27886
+ } else await require_dist$1.deleteCredentialInstanceSecret(existing.id);
27881
27887
  await (0, _keystrokehq_database.deleteCredentialInstanceById)(credentialId);
27882
27888
  return c.body(null, 204);
27883
27889
  };
@@ -27887,7 +27893,7 @@ function createDeleteCredentialHandler(options = {}) {
27887
27893
  const handler$25 = async (c) => {
27888
27894
  const { organizationId } = c.get("organization");
27889
27895
  const members = await (0, _keystrokehq_platform_database.selectOrganizationMembers)(organizationId);
27890
- return c.json(require_dist.ListOrganizationMembersResponseSchema.parse(members.map(require_dist.mapOrganizationMember)));
27896
+ return c.json(require_dist$1.ListOrganizationMembersResponseSchema.parse(members.map(require_dist$1.mapOrganizationMember)));
27891
27897
  };
27892
27898
  //#endregion
27893
27899
  //#region src/email/organization-invite-email.ts
@@ -27895,7 +27901,7 @@ function envValue(name) {
27895
27901
  return process.env[name]?.trim() || void 0;
27896
27902
  }
27897
27903
  function resolveOrganizationInviteUrl(invitationId) {
27898
- return `${(envValue("PUBLIC_WEB_URL") ?? "http://localhost:3000").replace(/\/$/, "")}${require_dist.organizationInvitationAcceptPath(invitationId)}`;
27904
+ return `${(envValue("PUBLIC_WEB_URL") ?? "http://localhost:3000").replace(/\/$/, "")}${require_dist$1.organizationInvitationAcceptPath(invitationId)}`;
27899
27905
  }
27900
27906
  function resolveResendApiKey() {
27901
27907
  return envValue("RESEND_API_KEY");
@@ -27936,8 +27942,8 @@ const handler$24 = async (c) => {
27936
27942
  const user = c.get("user");
27937
27943
  const organization = c.get("organization");
27938
27944
  const body = await c.req.json().catch(() => null);
27939
- const parsed = require_dist.InviteOrganizationMembersRequestSchema.safeParse(body);
27940
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid invite request" }), 400);
27945
+ const parsed = require_dist$1.InviteOrganizationMembersRequestSchema.safeParse(body);
27946
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid invite request" }), 400);
27941
27947
  const results = await (0, _keystrokehq_platform_database.inviteOrganizationMembers)({
27942
27948
  organizationId: organization.organizationId,
27943
27949
  invitedByUserId: user.id,
@@ -27954,7 +27960,7 @@ const handler$24 = async (c) => {
27954
27960
  inviterName: inviter?.name
27955
27961
  });
27956
27962
  }
27957
- return c.json(require_dist.InviteOrganizationMembersResponseSchema.parse(results));
27963
+ return c.json(require_dist$1.InviteOrganizationMembersResponseSchema.parse(results));
27958
27964
  };
27959
27965
  //#endregion
27960
27966
  //#region src/routes/account/members/[userId]/PATCH.ts
@@ -27962,14 +27968,14 @@ const handler$23 = async (c) => {
27962
27968
  const { organizationId } = c.get("organization");
27963
27969
  const userId = c.req.param("userId");
27964
27970
  const body = await c.req.json().catch(() => null);
27965
- const parsed = require_dist.UpdateOrganizationMemberRequestSchema.safeParse(body);
27966
- if (!userId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27967
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid member update request" }), 400);
27971
+ const parsed = require_dist$1.UpdateOrganizationMemberRequestSchema.safeParse(body);
27972
+ if (!userId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27973
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid member update request" }), 400);
27968
27974
  try {
27969
27975
  const member = await (0, _keystrokehq_platform_database.updateOrganizationMemberRole)(organizationId, userId, parsed.data.role);
27970
- return c.json(require_dist.UpdateOrganizationMemberResponseSchema.parse(require_dist.mapOrganizationMember(member)));
27976
+ return c.json(require_dist$1.UpdateOrganizationMemberResponseSchema.parse(require_dist$1.mapOrganizationMember(member)));
27971
27977
  } catch (error) {
27972
- if (error instanceof _keystrokehq_platform_database.CannotModifyOwnerError || error instanceof _keystrokehq_platform_database.OrganizationMemberNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 400);
27978
+ if (error instanceof _keystrokehq_platform_database.CannotModifyOwnerError || error instanceof _keystrokehq_platform_database.OrganizationMemberNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 400);
27973
27979
  throw error;
27974
27980
  }
27975
27981
  };
@@ -27978,12 +27984,12 @@ const handler$23 = async (c) => {
27978
27984
  const handler$22 = async (c) => {
27979
27985
  const { organizationId } = c.get("organization");
27980
27986
  const userId = c.req.param("userId");
27981
- if (!userId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27987
+ if (!userId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
27982
27988
  try {
27983
27989
  await (0, _keystrokehq_platform_database.removeOrganizationMember)(organizationId, userId);
27984
27990
  return c.body(null, 204);
27985
27991
  } catch (error) {
27986
- if (error instanceof _keystrokehq_platform_database.CannotModifyOwnerError || error instanceof _keystrokehq_platform_database.OrganizationMemberNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 400);
27992
+ if (error instanceof _keystrokehq_platform_database.CannotModifyOwnerError || error instanceof _keystrokehq_platform_database.OrganizationMemberNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 400);
27987
27993
  throw error;
27988
27994
  }
27989
27995
  };
@@ -27991,21 +27997,21 @@ const handler$22 = async (c) => {
27991
27997
  //#region src/routes/account/invitations/GET.ts
27992
27998
  const handler$21 = async (c) => {
27993
27999
  const invitations = await (0, _keystrokehq_platform_database.selectPendingInvitationsForUser)(c.get("user").id);
27994
- return c.json(require_dist.ListOrganizationInvitationsResponseSchema.parse(invitations.map(require_dist.mapOrganizationInvitation)));
28000
+ return c.json(require_dist$1.ListOrganizationInvitationsResponseSchema.parse(invitations.map(require_dist$1.mapOrganizationInvitation)));
27995
28001
  };
27996
28002
  //#endregion
27997
28003
  //#region src/routes/account/invitations/[invitationId]/accept/POST.ts
27998
28004
  const handler$20 = async (c) => {
27999
28005
  const user = c.get("user");
28000
28006
  const invitationId = c.req.param("invitationId");
28001
- if (!invitationId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
28007
+ if (!invitationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
28002
28008
  try {
28003
28009
  const membership = await (0, _keystrokehq_platform_database.acceptInvitation)(invitationId, user.id);
28004
- return c.json(require_dist.AcceptOrganizationInvitationResponseSchema.parse(require_dist.mapUserOrganization(membership)));
28010
+ return c.json(require_dist$1.AcceptOrganizationInvitationResponseSchema.parse(require_dist$1.mapUserOrganization(membership)));
28005
28011
  } catch (error) {
28006
- if (error instanceof _keystrokehq_platform_database.OrganizationInvitationNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 404);
28007
- if (error instanceof _keystrokehq_platform_database.OrganizationInvitationForbiddenError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 403);
28008
- if (error instanceof _keystrokehq_platform_database.OrganizationInvitationExpiredError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 410);
28012
+ if (error instanceof _keystrokehq_platform_database.OrganizationInvitationNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 404);
28013
+ if (error instanceof _keystrokehq_platform_database.OrganizationInvitationForbiddenError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 403);
28014
+ if (error instanceof _keystrokehq_platform_database.OrganizationInvitationExpiredError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 410);
28009
28015
  throw error;
28010
28016
  }
28011
28017
  };
@@ -28014,13 +28020,13 @@ const handler$20 = async (c) => {
28014
28020
  const handler$19 = async (c) => {
28015
28021
  const user = c.get("user");
28016
28022
  const invitationId = c.req.param("invitationId");
28017
- if (!invitationId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
28023
+ if (!invitationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
28018
28024
  try {
28019
28025
  await (0, _keystrokehq_platform_database.declineInvitation)(invitationId, user.id);
28020
- return c.json(require_dist.DeclineOrganizationInvitationResponseSchema.parse({ success: true }));
28026
+ return c.json(require_dist$1.DeclineOrganizationInvitationResponseSchema.parse({ success: true }));
28021
28027
  } catch (error) {
28022
- if (error instanceof _keystrokehq_platform_database.OrganizationInvitationNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 404);
28023
- if (error instanceof _keystrokehq_platform_database.OrganizationInvitationForbiddenError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 403);
28028
+ if (error instanceof _keystrokehq_platform_database.OrganizationInvitationNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 404);
28029
+ if (error instanceof _keystrokehq_platform_database.OrganizationInvitationForbiddenError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 403);
28024
28030
  throw error;
28025
28031
  }
28026
28032
  };
@@ -28092,21 +28098,21 @@ function appRowToCustomAppDetail(row) {
28092
28098
  //#region src/routes/account/apps/GET.ts
28093
28099
  const handler$18 = async (c) => {
28094
28100
  const apps = (await (0, _keystrokehq_platform_database.listAppsForOrganization)(c.get("organization").organizationId)).map(appRowToCatalogEntry);
28095
- return c.json(require_dist.ListAppsResponseSchema.parse(apps));
28101
+ return c.json(require_dist$1.ListAppsResponseSchema.parse(apps));
28096
28102
  };
28097
28103
  //#endregion
28098
28104
  //#region src/routes/account/apps/POST.ts
28099
28105
  const handler$17 = async (c) => {
28100
28106
  const organization = c.get("organization");
28101
- const parsed = require_dist.CreateCustomAppRequestSchema.safeParse(await c.req.json().catch(() => null));
28107
+ const parsed = require_dist$1.CreateCustomAppRequestSchema.safeParse(await c.req.json().catch(() => null));
28102
28108
  if (!parsed.success) {
28103
28109
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
28104
- return c.json(require_dist.ErrorResponseSchema.parse({ error: message }), 400);
28110
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 400);
28105
28111
  }
28106
28112
  const org = await (0, _keystrokehq_platform_database.selectOrganizationById)(organization.organizationId);
28107
- if (!org) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
28113
+ if (!org) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
28108
28114
  const authKind = parsed.data.authKind ?? (parsed.data.source === "custom" ? "api_key" : void 0);
28109
- if (!authKind) return c.json(require_dist.ErrorResponseSchema.parse({ error: "authKind is required" }), 400);
28115
+ if (!authKind) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "authKind is required" }), 400);
28110
28116
  try {
28111
28117
  const row = await (0, _keystrokehq_platform_database.createOrgApp)({
28112
28118
  organizationId: organization.organizationId,
@@ -28121,22 +28127,22 @@ const handler$17 = async (c) => {
28121
28127
  credentialScheme: parsed.data.credentialScheme,
28122
28128
  oauthScopes: parsed.data.oauthScopes
28123
28129
  });
28124
- return c.json(require_dist.CreateCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)), 201);
28130
+ return c.json(require_dist$1.CreateCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)), 201);
28125
28131
  } catch (error) {
28126
- if (error instanceof _keystrokehq_platform_database.OrgAppSlugTakenError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 409);
28132
+ if (error instanceof _keystrokehq_platform_database.OrgAppSlugTakenError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 409);
28127
28133
  throw error;
28128
28134
  }
28129
28135
  };
28130
28136
  //#endregion
28131
28137
  //#region src/routes/account/apps/discover/POST.ts
28132
28138
  const handler$16 = async (c) => {
28133
- const parsed = require_dist.McpDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
28139
+ const parsed = require_dist$1.McpDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
28134
28140
  if (!parsed.success) return c.json({ error: "Invalid request body" }, 400);
28135
28141
  try {
28136
- const result = await require_dist.discoverMcpApp(parsed.data.url);
28137
- return c.json(require_dist.McpDiscoverResponseSchema.parse(result));
28142
+ const result = await require_dist$1.discoverMcpApp(parsed.data.url);
28143
+ return c.json(require_dist$1.McpDiscoverResponseSchema.parse(result));
28138
28144
  } catch (error) {
28139
- if (error instanceof require_dist.PublicHttpUrlError) return c.json({ error: error.message }, 400);
28145
+ if (error instanceof require_dist$1.PublicHttpUrlError) return c.json({ error: error.message }, 400);
28140
28146
  const message = error instanceof Error ? error.message : "Failed to discover MCP server";
28141
28147
  return c.json({ error: message }, 502);
28142
28148
  }
@@ -28144,11 +28150,11 @@ const handler$16 = async (c) => {
28144
28150
  //#endregion
28145
28151
  //#region src/routes/account/apps/discover-openapi/POST.ts
28146
28152
  const handler$15 = async (c) => {
28147
- const parsed = require_dist.OpenApiDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
28153
+ const parsed = require_dist$1.OpenApiDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
28148
28154
  if (!parsed.success) return c.json({ error: "Invalid request body" }, 400);
28149
28155
  try {
28150
- const result = await require_dist.discoverOpenApiApp(parsed.data.url);
28151
- return c.json(require_dist.OpenApiDiscoverResponseSchema.parse(result));
28156
+ const result = await require_dist$1.discoverOpenApiApp(parsed.data.url);
28157
+ return c.json(require_dist$1.OpenApiDiscoverResponseSchema.parse(result));
28152
28158
  } catch (error) {
28153
28159
  const message = error instanceof Error ? error.message : "Failed to discover OpenAPI spec";
28154
28160
  return c.json({ error: message }, 502);
@@ -28157,11 +28163,11 @@ const handler$15 = async (c) => {
28157
28163
  //#endregion
28158
28164
  //#region src/routes/account/apps/discover-graphql/POST.ts
28159
28165
  const handler$14 = async (c) => {
28160
- const parsed = require_dist.GraphqlDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
28166
+ const parsed = require_dist$1.GraphqlDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
28161
28167
  if (!parsed.success) return c.json({ error: "Invalid request body" }, 400);
28162
28168
  try {
28163
- const result = await require_dist.discoverGraphqlApp(parsed.data.url);
28164
- return c.json(require_dist.GraphqlDiscoverResponseSchema.parse(result));
28169
+ const result = await require_dist$1.discoverGraphqlApp(parsed.data.url);
28170
+ return c.json(require_dist$1.GraphqlDiscoverResponseSchema.parse(result));
28165
28171
  } catch (error) {
28166
28172
  const message = error instanceof Error ? error.message : "Failed to discover GraphQL endpoint";
28167
28173
  return c.json({ error: message }, 502);
@@ -28174,7 +28180,7 @@ const handler$13 = async (c) => {
28174
28180
  const user = c.get("user");
28175
28181
  const appSlug = c.req.param("slug")?.trim();
28176
28182
  if (!appSlug) return c.json({ error: "App slug is required" }, 400);
28177
- const parsed = require_dist.StartMcpOAuthConnectionInputSchema.safeParse({
28183
+ const parsed = require_dist$1.StartMcpOAuthConnectionInputSchema.safeParse({
28178
28184
  ...await c.req.json().catch(() => ({})),
28179
28185
  appSlug
28180
28186
  });
@@ -28192,7 +28198,7 @@ const handler$13 = async (c) => {
28192
28198
  projectNamesById[project.id] = project.name;
28193
28199
  }
28194
28200
  try {
28195
- const result = await require_dist.beginMcpOAuthConnect({
28201
+ const result = await require_dist$1.beginMcpOAuthConnect({
28196
28202
  app,
28197
28203
  input: parsed.data,
28198
28204
  organizationId: organization.organizationId,
@@ -28206,7 +28212,7 @@ const handler$13 = async (c) => {
28206
28212
  },
28207
28213
  projectNamesById
28208
28214
  });
28209
- return c.json(require_dist.StartMcpOAuthConnectionResultSchema.parse(result));
28215
+ return c.json(require_dist$1.StartMcpOAuthConnectionResultSchema.parse(result));
28210
28216
  } catch (error) {
28211
28217
  const message = error instanceof Error ? error.message : "Failed to start MCP OAuth connection";
28212
28218
  return c.json({ error: message }, 500);
@@ -28243,11 +28249,11 @@ const handler$12 = async (c) => {
28243
28249
  if (!code || !state) return c.json({ error: "Missing code or state" }, 400);
28244
28250
  let appSlug = "mcp";
28245
28251
  try {
28246
- const payload = require_dist.decodeOAuthState(state);
28252
+ const payload = require_dist$1.decodeOAuthState(state);
28247
28253
  appSlug = payload.appSlug;
28248
28254
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(payload.organizationId);
28249
28255
  if (!organization) return c.json({ error: "Organization not found" }, 404);
28250
- const result = await (0, _keystrokehq_platform_database.runWithOrganizationScope)(organization.id, () => (0, _keystrokehq_database.runWithProjectDatabase)((0, _keystrokehq_platform_database.resolveOrgProjectDatabaseOptions)(organization), () => (0, _keystrokehq_database.runWithTenantScope)(organization.id, () => require_dist.completeMcpOAuthConnect({
28256
+ const result = await (0, _keystrokehq_platform_database.runWithOrganizationScope)(organization.id, () => (0, _keystrokehq_database.runWithProjectDatabase)((0, _keystrokehq_platform_database.resolveOrgProjectDatabaseOptions)(organization), () => (0, _keystrokehq_database.runWithTenantScope)(organization.id, () => require_dist$1.completeMcpOAuthConnect({
28251
28257
  state,
28252
28258
  code
28253
28259
  }))));
@@ -28277,25 +28283,25 @@ const handler$12 = async (c) => {
28277
28283
  //#region src/routes/account/apps/slug-available/GET.ts
28278
28284
  const handler$11 = async (c) => {
28279
28285
  const organization = c.get("organization");
28280
- const parsed = require_dist.AppSlugAvailabilityQuerySchema.safeParse({ slug: c.req.query("slug") });
28281
- if (!parsed.success) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
28286
+ const parsed = require_dist$1.AppSlugAvailabilityQuerySchema.safeParse({ slug: c.req.query("slug") });
28287
+ if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
28282
28288
  const org = await (0, _keystrokehq_platform_database.selectOrganizationById)(organization.organizationId);
28283
- if (!org) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
28289
+ if (!org) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
28284
28290
  const availability = await (0, _keystrokehq_platform_database.checkOrgAppSlugAvailability)(org.slug, parsed.data.slug);
28285
- return c.json(require_dist.AppSlugAvailabilityResponseSchema.parse(availability));
28291
+ return c.json(require_dist$1.AppSlugAvailabilityResponseSchema.parse(availability));
28286
28292
  };
28287
28293
  //#endregion
28288
28294
  //#region src/routes/account/apps/[slug]/GET.ts
28289
28295
  const handler$10 = async (c) => {
28290
28296
  const organization = c.get("organization");
28291
28297
  const slug = c.req.param("slug") ?? "";
28292
- if (!slug) return c.json(require_dist.ErrorResponseSchema.parse({ error: "App not found" }), 404);
28298
+ if (!slug) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "App not found" }), 404);
28293
28299
  const row = await (0, _keystrokehq_platform_database.selectAppForOrganization)(organization.organizationId, decodeURIComponent(slug));
28294
- if (!row || row.source !== "custom") return c.json(require_dist.ErrorResponseSchema.parse({ error: "App not found" }), 404);
28300
+ if (!row || row.source !== "custom") return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "App not found" }), 404);
28295
28301
  try {
28296
- return c.json(require_dist.GetCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)));
28302
+ return c.json(require_dist$1.GetCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)));
28297
28303
  } catch {
28298
- return c.json(require_dist.ErrorResponseSchema.parse({ error: "App not found" }), 404);
28304
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "App not found" }), 404);
28299
28305
  }
28300
28306
  };
28301
28307
  //#endregion
@@ -28306,7 +28312,7 @@ const handler$9 = async (c) => {
28306
28312
  const records = apiKeyListScope(accessContext(c)).kind === "all" ? await (0, _keystrokehq_platform_database.listOrgPlatformApiKeysForOrganization)(organizationId) : await (0, _keystrokehq_platform_database.listOrgPlatformApiKeysForUser)(organizationId, user.id);
28307
28313
  const creators = await (0, _keystrokehq_platform_database.selectUsersByIds)([...new Set(records.map((record) => record.createdByUserId))]);
28308
28314
  const creatorsById = new Map(creators.map((creator) => [creator.id, creator]));
28309
- return c.json(require_dist.ListApiKeysResponseSchema.parse(records.map((record) => ({
28315
+ return c.json(require_dist$1.ListApiKeysResponseSchema.parse(records.map((record) => ({
28310
28316
  id: record.id,
28311
28317
  name: record.name,
28312
28318
  keyPreview: record.keyPreview,
@@ -28320,7 +28326,7 @@ const handler$9 = async (c) => {
28320
28326
  const handler$8 = async (c) => {
28321
28327
  const { organizationId } = c.get("organization");
28322
28328
  const user = c.get("user");
28323
- const body = require_dist.CreateApiKeyRequestSchema.parse(await c.req.json());
28329
+ const body = require_dist$1.CreateApiKeyRequestSchema.parse(await c.req.json());
28324
28330
  const created = await (0, _keystrokehq_platform_database.createOrgPlatformApiKey)({
28325
28331
  organizationId,
28326
28332
  userId: user.id,
@@ -28328,7 +28334,7 @@ const handler$8 = async (c) => {
28328
28334
  });
28329
28335
  const creator = await (0, _keystrokehq_platform_database.loadOrgPlatformApiKeyUser)(user.id);
28330
28336
  if (!creator) return c.json({ error: "User not found" }, 404);
28331
- return c.json(require_dist.CreateApiKeyResponseSchema.parse({
28337
+ return c.json(require_dist$1.CreateApiKeyResponseSchema.parse({
28332
28338
  id: created.id,
28333
28339
  name: created.name,
28334
28340
  keyPreview: created.keyPreview,
@@ -28344,13 +28350,13 @@ const handler$7 = async (c) => {
28344
28350
  const { organizationId } = c.get("organization");
28345
28351
  const user = c.get("user");
28346
28352
  const apiKeyId = c.req.param("apiKeyId");
28347
- if (!apiKeyId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "API key id is required" }), 400);
28353
+ if (!apiKeyId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "API key id is required" }), 400);
28348
28354
  const apiKey = await (0, _keystrokehq_platform_database.selectOrgPlatformApiKeyForOrganization)(apiKeyId, organizationId);
28349
- if (!apiKey) return c.json(require_dist.ErrorResponseSchema.parse({ error: "API key not found" }), 404);
28355
+ if (!apiKey) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "API key not found" }), 404);
28350
28356
  if (!canReadApiKey(accessContext(c), {
28351
28357
  userId: user.id,
28352
28358
  createdByUserId: apiKey.createdByUserId
28353
- })) return c.json(require_dist.ErrorResponseSchema.parse({ error: "API key not found" }), 404);
28359
+ })) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "API key not found" }), 404);
28354
28360
  if (!canRevokeApiKey(accessContext(c), {
28355
28361
  userId: user.id,
28356
28362
  createdByUserId: apiKey.createdByUserId
@@ -28359,7 +28365,7 @@ const handler$7 = async (c) => {
28359
28365
  await (0, _keystrokehq_platform_database.revokeOrgPlatformApiKey)(apiKeyId, organizationId);
28360
28366
  return c.body(null, 204);
28361
28367
  } catch (error) {
28362
- if (error instanceof _keystrokehq_platform_database.OrgPlatformApiKeyNotFoundError) return c.json(require_dist.ErrorResponseSchema.parse({ error: error.message }), 404);
28368
+ if (error instanceof _keystrokehq_platform_database.OrgPlatformApiKeyNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 404);
28363
28369
  throw error;
28364
28370
  }
28365
28371
  };
@@ -28369,10 +28375,10 @@ const handler$6 = async (c) => {
28369
28375
  const { organizationId } = c.get("organization");
28370
28376
  const user = c.get("user");
28371
28377
  const kindParam = c.req.query("kind");
28372
- const records = await (0, _keystrokehq_platform_database.listManagedServiceCredentialsForOrganization)(organizationId, kindParam ? require_dist.ManagedServiceKindSchema.parse(kindParam) : void 0);
28378
+ const records = await (0, _keystrokehq_platform_database.listManagedServiceCredentialsForOrganization)(organizationId, kindParam ? require_dist$1.ManagedServiceKindSchema.parse(kindParam) : void 0);
28373
28379
  const creators = await (0, _keystrokehq_platform_database.selectUsersByIds)([...new Set(records.map((record) => record.createdByUserId))]);
28374
28380
  const creatorsById = new Map(creators.map((creator) => [creator.id, creator]));
28375
- return c.json(require_dist.ListManagedServiceCredentialsResponseSchema.parse(records.map((record) => ({
28381
+ return c.json(require_dist$1.ListManagedServiceCredentialsResponseSchema.parse(records.map((record) => ({
28376
28382
  id: record.id,
28377
28383
  kind: record.kind,
28378
28384
  provider: record.provider,
@@ -28388,10 +28394,10 @@ const handler$6 = async (c) => {
28388
28394
  const handler$5 = async (c) => {
28389
28395
  const { organizationId } = c.get("organization");
28390
28396
  const user = c.get("user");
28391
- const body = require_dist.ConnectManagedServiceCredentialRequestSchema.parse(await c.req.json());
28392
- if (body.kind === "llm" && !require_dist.isLlmProviderSlug(body.provider)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Unsupported LLM provider" }), 400);
28393
- if (await (0, _keystrokehq_platform_database.getManagedServiceCredential)(organizationId, body.kind, body.provider)) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Managed service credential already connected" }), 409);
28394
- const { id } = await require_dist.setManagedServiceCredential({
28397
+ const body = require_dist$1.ConnectManagedServiceCredentialRequestSchema.parse(await c.req.json());
28398
+ if (body.kind === "llm" && !require_dist$1.isLlmProviderSlug(body.provider)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Unsupported LLM provider" }), 400);
28399
+ if (await (0, _keystrokehq_platform_database.getManagedServiceCredential)(organizationId, body.kind, body.provider)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Managed service credential already connected" }), 409);
28400
+ const { id } = await require_dist$1.setManagedServiceCredential({
28395
28401
  organizationId,
28396
28402
  kind: body.kind,
28397
28403
  provider: body.provider,
@@ -28400,8 +28406,8 @@ const handler$5 = async (c) => {
28400
28406
  });
28401
28407
  const row = await (0, _keystrokehq_platform_database.getManagedServiceCredential)(organizationId, body.kind, body.provider);
28402
28408
  const creator = await (0, _keystrokehq_platform_database.loadOrgPlatformApiKeyUser)(user.id);
28403
- if (!row || !creator) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Failed to connect managed service" }), 500);
28404
- return c.json(require_dist.ManagedServiceCredentialSchema.parse({
28409
+ if (!row || !creator) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Failed to connect managed service" }), 500);
28410
+ return c.json(require_dist$1.ManagedServiceCredentialSchema.parse({
28405
28411
  id,
28406
28412
  kind: row.kind,
28407
28413
  provider: row.provider,
@@ -28418,11 +28424,11 @@ const handler$4 = async (c) => {
28418
28424
  const { organizationId } = c.get("organization");
28419
28425
  const user = c.get("user");
28420
28426
  const credentialId = c.req.param("id");
28421
- const body = require_dist.UpdateManagedServiceCredentialRequestSchema.parse(await c.req.json());
28422
- if (!credentialId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Credential id is required" }), 400);
28427
+ const body = require_dist$1.UpdateManagedServiceCredentialRequestSchema.parse(await c.req.json());
28428
+ if (!credentialId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Credential id is required" }), 400);
28423
28429
  const existing = await (0, _keystrokehq_platform_database.selectManagedServiceCredentialById)(credentialId);
28424
- if (!existing || existing.organizationId !== organizationId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Managed service credential not found" }), 404);
28425
- await require_dist.setManagedServiceCredential({
28430
+ if (!existing || existing.organizationId !== organizationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Managed service credential not found" }), 404);
28431
+ await require_dist$1.setManagedServiceCredential({
28426
28432
  organizationId,
28427
28433
  kind: existing.kind,
28428
28434
  provider: existing.provider,
@@ -28431,8 +28437,8 @@ const handler$4 = async (c) => {
28431
28437
  });
28432
28438
  const row = await (0, _keystrokehq_platform_database.selectManagedServiceCredentialById)(credentialId);
28433
28439
  const creator = await (0, _keystrokehq_platform_database.loadOrgPlatformApiKeyUser)(existing.createdByUserId);
28434
- if (!row || !creator) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Failed to update managed service" }), 500);
28435
- return c.json(require_dist.ManagedServiceCredentialSchema.parse({
28440
+ if (!row || !creator) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Failed to update managed service" }), 500);
28441
+ return c.json(require_dist$1.ManagedServiceCredentialSchema.parse({
28436
28442
  id: row.id,
28437
28443
  kind: row.kind,
28438
28444
  provider: row.provider,
@@ -28448,10 +28454,10 @@ const handler$4 = async (c) => {
28448
28454
  const handler$3 = async (c) => {
28449
28455
  const { organizationId } = c.get("organization");
28450
28456
  const credentialId = c.req.param("id");
28451
- if (!credentialId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Credential id is required" }), 400);
28457
+ if (!credentialId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Credential id is required" }), 400);
28452
28458
  const existing = await (0, _keystrokehq_platform_database.selectManagedServiceCredentialById)(credentialId);
28453
- if (!existing || existing.organizationId !== organizationId) return c.json(require_dist.ErrorResponseSchema.parse({ error: "Managed service credential not found" }), 404);
28454
- await require_dist.deleteManagedServiceCredential(credentialId);
28459
+ if (!existing || existing.organizationId !== organizationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Managed service credential not found" }), 404);
28460
+ await require_dist$1.deleteManagedServiceCredential(credentialId);
28455
28461
  return c.body(null, 204);
28456
28462
  };
28457
28463
  //#endregion
@@ -28517,7 +28523,7 @@ async function postTeamRequestToSlack(input) {
28517
28523
  const handler$2 = async (c) => {
28518
28524
  const user = c.get("user");
28519
28525
  const organizationContext = c.get("organization");
28520
- const parsed = require_dist.SubmitTeamRequestRequestSchema.safeParse(await c.req.json().catch(() => null));
28526
+ const parsed = require_dist$1.SubmitTeamRequestRequestSchema.safeParse(await c.req.json().catch(() => null));
28521
28527
  if (!parsed.success) {
28522
28528
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
28523
28529
  return c.json({ error: message }, 400);
@@ -28543,7 +28549,7 @@ const handler$2 = async (c) => {
28543
28549
  console.error("Failed to deliver team request to Slack", error);
28544
28550
  return c.json({ error: "Failed to deliver team request" }, 502);
28545
28551
  }
28546
- return c.json(require_dist.SubmitTeamRequestResponseSchema.parse({ ok: true }), 200);
28552
+ return c.json(require_dist$1.SubmitTeamRequestResponseSchema.parse({ ok: true }), 200);
28547
28553
  };
28548
28554
  //#endregion
28549
28555
  //#region src/routes/account/mount.ts
@@ -28567,13 +28573,13 @@ function mountAccountRoutes(options) {
28567
28573
  const requireApiKeyCreate = authorize(apiKeysActions.create);
28568
28574
  const requireManagedServicesRead = authorize(managedServicesActions.read);
28569
28575
  const requireManagedServicesManage = authorize(managedServicesActions.manage);
28570
- const requireInvitableRole = authorizePayload(require_dist.InviteOrganizationMembersRequestSchema, ({ ctx, body }) => canInviteRole(ctx.orgRole, body.role));
28576
+ const requireInvitableRole = authorizePayload(require_dist$1.InviteOrganizationMembersRequestSchema, ({ ctx, body }) => canInviteRole(ctx.orgRole, body.role));
28571
28577
  const requireProjectMember = requireProjectMembership();
28572
28578
  const requireProjectDeploy = authorize(projectActions.deploy);
28573
28579
  const requireProjectUpdate = authorize(projectActions.update);
28574
28580
  const requireProjectDelete = authorize(projectActions.delete);
28575
28581
  const requireProjectManageMembers = authorize(projectActions.manageMembers);
28576
- const requireInvitableProjectRole = authorizePayload(require_dist.InviteProjectMembersRequestSchema, ({ c, ctx, body }) => canInviteToProject(ctx, { invitePermission: getProjectInvitePermission(c) }, body.role));
28582
+ const requireInvitableProjectRole = authorizePayload(require_dist$1.InviteProjectMembersRequestSchema, ({ c, ctx, body }) => canInviteToProject(ctx, { invitePermission: getProjectInvitePermission(c) }, body.role));
28577
28583
  const requireOrgParam = requireOrganizationParam();
28578
28584
  account.get("/organizations", handler$90);
28579
28585
  account.get("/organizations/slug-available", handler$89);
@@ -28677,29 +28683,6 @@ function mountAccountRoutes(options) {
28677
28683
  return account;
28678
28684
  }
28679
28685
  //#endregion
28680
- //#region src/middleware/require-worker-token.ts
28681
- /** Worker auth from Bearer or x-api-key (Anthropic SDK uses the latter). */
28682
- function readWorkerTokenFromRequest(c) {
28683
- const authorization = c.req.header("authorization");
28684
- if (authorization?.startsWith("Bearer ")) return authorization.slice(7).trim();
28685
- const apiKey = c.req.header("x-api-key")?.trim();
28686
- if (apiKey) return apiKey;
28687
- }
28688
- function requireWorkerToken(expectedToken) {
28689
- return async (c, next) => {
28690
- if (!expectedToken) return c.json({
28691
- error: "worker_auth_unconfigured",
28692
- message: "Worker auth is not configured."
28693
- }, 503);
28694
- const token = readWorkerTokenFromRequest(c);
28695
- if (!token || token !== expectedToken) return c.json({
28696
- error: "unauthorized",
28697
- message: "Invalid worker token."
28698
- }, 401);
28699
- await next();
28700
- };
28701
- }
28702
- //#endregion
28703
28686
  //#region src/routes/internal/web-search-proxy.ts
28704
28687
  const EXA_API_ORIGIN = "https://api.exa.ai";
28705
28688
  async function proxyExaWebSearchRequest(options) {
@@ -28730,11 +28713,129 @@ const EnsureWebhookRouteBodySchema = zod.z.object({
28730
28713
  route: zod.z.string().trim().min(1),
28731
28714
  attachmentSlugs: zod.z.array(zod.z.string().trim().min(1)).min(1)
28732
28715
  });
28716
+ async function runOrgDatabaseQuery(options, query) {
28717
+ const handle = await (0, _keystrokehq_database.acquireProjectDatabasePool)(options);
28718
+ try {
28719
+ if (handle.dialect !== "postgres") throw new Error("DB proxy requires postgres");
28720
+ return { rows: (await handle.pool.query({
28721
+ text: query.sql,
28722
+ values: query.params,
28723
+ rowMode: query.method === "all" ? "array" : void 0
28724
+ })).rows };
28725
+ } finally {
28726
+ (0, _keystrokehq_database.releaseProjectDatabasePool)(options);
28727
+ }
28728
+ }
28729
+ async function runOrgDatabaseMigrations(options, migrations, lockKey) {
28730
+ const handle = await (0, _keystrokehq_database.acquireProjectDatabasePool)(options);
28731
+ try {
28732
+ if (handle.dialect !== "postgres") throw new Error("DB proxy requires postgres");
28733
+ const client = await handle.pool.connect();
28734
+ try {
28735
+ await client.query("BEGIN");
28736
+ await client.query("SELECT pg_advisory_xact_lock(hashtext($1))", [lockKey]);
28737
+ await client.query(`
28738
+ CREATE TABLE IF NOT EXISTS "__drizzle_migrations" (
28739
+ id SERIAL PRIMARY KEY,
28740
+ hash text NOT NULL,
28741
+ created_at numeric
28742
+ )
28743
+ `);
28744
+ const journal = await client.query(`SELECT created_at FROM "__drizzle_migrations" ORDER BY created_at DESC LIMIT 1`);
28745
+ const lastMigrationMillis = journal.rows[0]?.created_at === void 0 || journal.rows[0]?.created_at === null ? void 0 : Number(journal.rows[0].created_at);
28746
+ const results = [];
28747
+ for (const migration of migrations) {
28748
+ if (lastMigrationMillis !== void 0 && lastMigrationMillis >= migration.folderMillis) continue;
28749
+ for (const statement of migration.sql) {
28750
+ const result = await client.query(statement);
28751
+ results.push({ rows: result.rows });
28752
+ }
28753
+ await client.query(`INSERT INTO "__drizzle_migrations" ("hash", "created_at") VALUES ($1, $2)`, [migration.hash, migration.folderMillis]);
28754
+ }
28755
+ await client.query("COMMIT");
28756
+ return results;
28757
+ } catch (error) {
28758
+ await client.query("ROLLBACK").catch(() => void 0);
28759
+ throw error;
28760
+ } finally {
28761
+ client.release();
28762
+ }
28763
+ } finally {
28764
+ (0, _keystrokehq_database.releaseProjectDatabasePool)(options);
28765
+ }
28766
+ }
28733
28767
  function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp) {
28734
28768
  const internal = new hono.Hono();
28735
- const protect = requireWorkerToken(workerToken);
28769
+ const protect = require_with_project_scope.requireWorkerToken(workerToken);
28736
28770
  const materialize = (0, _keystrokehq_runtime.createCredentialMaterializeHandler)(tokenRefresh);
28771
+ internal.use("/orgs/:organizationId/db/*", async (c, next) => {
28772
+ const verified = require_dist.verifyOrgWorkerToken(workerToken, require_with_project_scope.readWorkerTokenFromRequest(c));
28773
+ if (!verified || verified.organizationId !== c.req.param("organizationId")) return c.json({
28774
+ error: "unauthorized",
28775
+ message: "Invalid database proxy token."
28776
+ }, 401);
28777
+ await next();
28778
+ });
28779
+ internal.post("/orgs/:organizationId/db/query", async (c) => {
28780
+ const organizationId = c.req.param("organizationId");
28781
+ const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
28782
+ if (!organization) return c.json({ error: "Organization not found" }, 404);
28783
+ const parsed = require_dist$1.DbProxyQueryRequestSchema.safeParse(await c.req.json().catch(() => null));
28784
+ if (!parsed.success) return c.json({
28785
+ error: "Invalid request body",
28786
+ details: parsed.error.flatten()
28787
+ }, 400);
28788
+ const options = (0, _keystrokehq_platform_database.resolveOrgProjectDatabaseOptions)(organization);
28789
+ try {
28790
+ return c.json(await runOrgDatabaseQuery(options, parsed.data));
28791
+ } catch (error) {
28792
+ console.error("Database proxy query failed", {
28793
+ organizationId,
28794
+ error
28795
+ });
28796
+ const message = error instanceof Error ? error.message : "Database proxy query failed.";
28797
+ return c.json({
28798
+ error: "db_proxy_query_failed",
28799
+ message
28800
+ }, 500);
28801
+ }
28802
+ });
28803
+ internal.post("/orgs/:organizationId/db/migrate", async (c) => {
28804
+ const organizationId = c.req.param("organizationId");
28805
+ const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
28806
+ if (!organization) return c.json({ error: "Organization not found" }, 404);
28807
+ const parsed = require_dist$1.DbProxyMigrateRequestSchema.safeParse(await c.req.json().catch(() => null));
28808
+ if (!parsed.success) return c.json({
28809
+ error: "Invalid request body",
28810
+ details: parsed.error.flatten()
28811
+ }, 400);
28812
+ const options = (0, _keystrokehq_platform_database.resolveOrgProjectDatabaseOptions)(organization);
28813
+ try {
28814
+ return c.json({ results: await runOrgDatabaseMigrations(options, parsed.data.migrations, organizationId) });
28815
+ } catch (error) {
28816
+ console.error("Database proxy migration failed", {
28817
+ organizationId,
28818
+ error
28819
+ });
28820
+ const message = error instanceof Error ? error.message : "Database proxy migration failed.";
28821
+ return c.json({
28822
+ error: "db_proxy_migrate_failed",
28823
+ message
28824
+ }, 500);
28825
+ }
28826
+ });
28737
28827
  internal.use("/*", protect);
28828
+ internal.use("/projects/:projectId/*", async (c, next) => {
28829
+ const verified = require_dist.verifyOrgWorkerToken(workerToken, require_with_project_scope.readWorkerTokenFromRequest(c));
28830
+ if (verified) {
28831
+ const project = await (0, _keystrokehq_platform_database.selectProjectById)(c.req.param("projectId"));
28832
+ if (project && project.organizationId !== verified.organizationId) return c.json({
28833
+ error: "unauthorized",
28834
+ message: "Token org mismatch."
28835
+ }, 401);
28836
+ }
28837
+ await next();
28838
+ });
28738
28839
  internal.get("/projects/:projectId/connect-context", async (c) => {
28739
28840
  const project = await (0, _keystrokehq_platform_database.selectProjectById)(c.req.param("projectId"));
28740
28841
  if (!project) return c.json({ error: "Project not found" }, 404);
@@ -28831,9 +28932,9 @@ async function loadModelIds() {
28831
28932
  async function handler$1(c) {
28832
28933
  try {
28833
28934
  const models = await loadModelIds();
28834
- return c.json(require_dist.PublicModelsResponseSchema.parse({ models }));
28935
+ return c.json(require_dist$1.PublicModelsResponseSchema.parse({ models }));
28835
28936
  } catch (error) {
28836
- if (cache) return c.json(require_dist.PublicModelsResponseSchema.parse({ models: cache.models }));
28937
+ if (cache) return c.json(require_dist$1.PublicModelsResponseSchema.parse({ models: cache.models }));
28837
28938
  const message = error instanceof Error ? error.message : "Failed to load models";
28838
28939
  return c.json({ error: message }, 502);
28839
28940
  }
@@ -28933,12 +29034,12 @@ function clientIp(c) {
28933
29034
  }
28934
29035
  async function handler(c) {
28935
29036
  if (!consumeContactRateLimit(clientIp(c))) return c.json({ error: "Too many requests" }, 429);
28936
- const parsed = require_dist.SubmitMarketingContactRequestSchema.safeParse(await c.req.json().catch(() => null));
29037
+ const parsed = require_dist$1.SubmitMarketingContactRequestSchema.safeParse(await c.req.json().catch(() => null));
28937
29038
  if (!parsed.success) {
28938
29039
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
28939
29040
  return c.json({ error: message }, 400);
28940
29041
  }
28941
- if (parsed.data.companyWebsite?.trim()) return c.json(require_dist.SubmitMarketingContactResponseSchema.parse({ ok: true }), 200);
29042
+ if (parsed.data.companyWebsite?.trim()) return c.json(require_dist$1.SubmitMarketingContactResponseSchema.parse({ ok: true }), 200);
28942
29043
  try {
28943
29044
  await postMarketingContactToSlack({
28944
29045
  fullName: parsed.data.fullName,
@@ -28950,7 +29051,7 @@ async function handler(c) {
28950
29051
  console.error("Failed to deliver marketing contact to Slack", error);
28951
29052
  return c.json({ error: "Failed to deliver contact request" }, 502);
28952
29053
  }
28953
- return c.json(require_dist.SubmitMarketingContactResponseSchema.parse({ ok: true }), 200);
29054
+ return c.json(require_dist$1.SubmitMarketingContactResponseSchema.parse({ ok: true }), 200);
28954
29055
  }
28955
29056
  //#endregion
28956
29057
  //#region src/app.ts
@@ -28992,7 +29093,7 @@ function resolvePlatformListenPort() {
28992
29093
  const { hostname } = new URL(publicUrl);
28993
29094
  if (hostname !== "localhost" && hostname !== "127.0.0.1") return PRODUCTION_PLATFORM_LISTEN_PORT;
28994
29095
  } catch {}
28995
- return require_dist.listenPortFromPublicUrl(process.env.PUBLIC_PLATFORM_URL, LOCAL_PLATFORM_PORT);
29096
+ return require_dist$1.listenPortFromPublicUrl(process.env.PUBLIC_PLATFORM_URL, LOCAL_PLATFORM_PORT);
28996
29097
  }
28997
29098
  function usesPgBossScheduler(platformConfig) {
28998
29099
  return platformConfig.scheduler.name === "pg-boss" || platformConfig.scheduler.name === "default";
@@ -29000,7 +29101,7 @@ function usesPgBossScheduler(platformConfig) {
29000
29101
  async function startPlatformServer(platformConfig, hooks = {}) {
29001
29102
  const runtime = platformConfig.hosting.createRuntime();
29002
29103
  await (0, _keystrokehq_platform_database.initDatabase)();
29003
- await require_dist.ensureKeystrokeAssetsBucket();
29104
+ await require_dist$1.ensureKeystrokeAssetsBucket();
29004
29105
  await (0, _keystrokehq_runtime.seedOAuthAppsFromEnvForAllOrganizations)();
29005
29106
  if (usesPgBossScheduler(platformConfig)) await (0, _keystrokehq_platform_database.ensureProjectPgBossGrants)();
29006
29107
  configureProjectRuntimeScheduler(platformConfig.scheduler);
@@ -29011,6 +29112,7 @@ async function startPlatformServer(platformConfig, hooks = {}) {
29011
29112
  if (!organization) throw new Error(`Organization ${job.organizationId} not found`);
29012
29113
  const database = await (0, _keystrokehq_platform_database.resolveOrgRuntimeDatabase)(job.organizationId);
29013
29114
  const workerRuntime = platformConfig.hosting.workerRuntime;
29115
+ const orgWorkerToken = require_dist.mintOrgWorkerToken(workerRuntime.workerToken, job.organizationId);
29014
29116
  return {
29015
29117
  organizationId: job.organizationId,
29016
29118
  projects: [],
@@ -29023,11 +29125,11 @@ async function startPlatformServer(platformConfig, hooks = {}) {
29023
29125
  ...(0, _keystrokehq_platform_database.orgSchedulerRuntimeEnv)(organization, process.env),
29024
29126
  ...platformConfig.llmProxy?.workerEnv({
29025
29127
  platformUrl: workerRuntime.platformUrl,
29026
- workerToken: workerRuntime.workerToken
29128
+ workerToken: orgWorkerToken
29027
29129
  }),
29028
29130
  ...platformConfig.workerEnv?.({
29029
29131
  platformUrl: workerRuntime.platformUrl,
29030
- workerToken: workerRuntime.workerToken
29132
+ workerToken: orgWorkerToken
29031
29133
  })
29032
29134
  },
29033
29135
  hosting: organization.hostingAppName ? { appName: organization.hostingAppName } : void 0,
@@ -29204,4 +29306,4 @@ Object.defineProperty(exports, "x$1", {
29204
29306
  }
29205
29307
  });
29206
29308
 
29207
- //# sourceMappingURL=start-Br3WcDhS.cjs.map
29309
+ //# sourceMappingURL=start-CtH0k_h4.cjs.map