@keystrokehq/platform 0.1.104 → 0.1.106

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 (309) hide show
  1. package/dist/{awk2-LA3USKJP-QJQEwtsE.cjs → awk2-LA3USKJP-BzedwQGr.cjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-QJQEwtsE.cjs.map → awk2-LA3USKJP-BzedwQGr.cjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-D22qN7re.mjs → awk2-LA3USKJP-Dgay0H4p.mjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-D22qN7re.mjs.map → awk2-LA3USKJP-Dgay0H4p.mjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-BZ355qNl.mjs → base64-C2AIWVNC-DHDX5cLS.mjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-BZ355qNl.mjs.map → base64-C2AIWVNC-DHDX5cLS.mjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-Bsn2MlQu.cjs → base64-C2AIWVNC-DcuQcnyt.cjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-Bsn2MlQu.cjs.map → base64-C2AIWVNC-DcuQcnyt.cjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-DMr1WrAX.cjs → bash-YZ33HQZQ-CkUuWEwi.cjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-DMr1WrAX.cjs.map → bash-YZ33HQZQ-CkUuWEwi.cjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-CnwqBcTu.mjs → bash-YZ33HQZQ-sT3B7KV-.mjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-CnwqBcTu.mjs.map → bash-YZ33HQZQ-sT3B7KV-.mjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-BxNjOPHo.mjs → cat-TSFMZVYS-CoHlzG1g.mjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-BxNjOPHo.mjs.map → cat-TSFMZVYS-CoHlzG1g.mjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-DZgdWs-l.cjs → cat-TSFMZVYS-D6Jv-_E6.cjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-DZgdWs-l.cjs.map → cat-TSFMZVYS-D6Jv-_E6.cjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-BanZFrdd.mjs → chunk-5H5SCKJM-CMD1LgcN.mjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-BanZFrdd.mjs.map → chunk-5H5SCKJM-CMD1LgcN.mjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-FM5cGSNj.cjs → chunk-5H5SCKJM-KMLjLNmr.cjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-FM5cGSNj.cjs.map → chunk-5H5SCKJM-KMLjLNmr.cjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-pDIZfvDJ.cjs → chunk-AQ6FYS2X-CulLfMTp.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-pDIZfvDJ.cjs.map → chunk-AQ6FYS2X-CulLfMTp.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-BC4S7I2G.mjs → chunk-AQ6FYS2X-D1jG7VBg.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-BC4S7I2G.mjs.map → chunk-AQ6FYS2X-D1jG7VBg.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-yA9axt8t.cjs → chunk-CHFEPBH4-8JwjjMYy.cjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-yA9axt8t.cjs.map → chunk-CHFEPBH4-8JwjjMYy.cjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-CQ8Z2pKX.mjs → chunk-CHFEPBH4-CPgVu9SN.mjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-CQ8Z2pKX.mjs.map → chunk-CHFEPBH4-CPgVu9SN.mjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-Cs0cxZLH.cjs → chunk-EBAPSGAO-Bgly30_n.cjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-Cs0cxZLH.cjs.map → chunk-EBAPSGAO-Bgly30_n.cjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-D_J0UBgO.mjs → chunk-EBAPSGAO-CAv463QS.mjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-D_J0UBgO.mjs.map → chunk-EBAPSGAO-CAv463QS.mjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-9rQi0Phl.cjs → chunk-LEKBROJD-CnguBeDu.cjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-9rQi0Phl.cjs.map → chunk-LEKBROJD-CnguBeDu.cjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-GHEcWGlP.mjs → chunk-LEKBROJD-dGWKSL4I.mjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-GHEcWGlP.mjs.map → chunk-LEKBROJD-dGWKSL4I.mjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-DlqB17ZC.mjs → chunk-VPADYNBD-BEBrySsw.mjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-DlqB17ZC.mjs.map → chunk-VPADYNBD-BEBrySsw.mjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-CC0ogYlS.cjs → chunk-VPADYNBD-vM0Sd0ff.cjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-CC0ogYlS.cjs.map → chunk-VPADYNBD-vM0Sd0ff.cjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-DXMH3Eco.mjs → chunk-YCLFEX4T-CZXV1Vhd.mjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-DXMH3Eco.mjs.map → chunk-YCLFEX4T-CZXV1Vhd.mjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-Df7MskBf.cjs → chunk-YCLFEX4T-U2ejpjUU.cjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-Df7MskBf.cjs.map → chunk-YCLFEX4T-U2ejpjUU.cjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-D-78wzPk.cjs → column-XT6UFXNQ-Cb4XDBZJ.cjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-D-78wzPk.cjs.map → column-XT6UFXNQ-Cb4XDBZJ.cjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-DssELUSO.mjs → column-XT6UFXNQ-Dfl8vwzz.mjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-DssELUSO.mjs.map → column-XT6UFXNQ-Dfl8vwzz.mjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-B8_LT80n.cjs → comm-VV2LDX2J-CbKpd-8-.cjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-B8_LT80n.cjs.map → comm-VV2LDX2J-CbKpd-8-.cjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-B9xsrXzR.mjs → comm-VV2LDX2J-z5VLja3D.mjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-B9xsrXzR.mjs.map → comm-VV2LDX2J-z5VLja3D.mjs.map} +1 -1
  53. package/dist/config.cjs +2 -2
  54. package/dist/config.mjs +2 -2
  55. package/dist/{cp-BISAAS7A-BIV7L9eq.cjs → cp-BISAAS7A-B8yr7uOU.cjs} +2 -2
  56. package/dist/{cp-BISAAS7A-BIV7L9eq.cjs.map → cp-BISAAS7A-B8yr7uOU.cjs.map} +1 -1
  57. package/dist/{cp-BISAAS7A-LPv4X9LQ.mjs → cp-BISAAS7A-BDW_Ftsa.mjs} +2 -2
  58. package/dist/{cp-BISAAS7A-LPv4X9LQ.mjs.map → cp-BISAAS7A-BDW_Ftsa.mjs.map} +1 -1
  59. package/dist/{cut-OKARJCCV-8tOnAUTx.mjs → cut-OKARJCCV-CxnqlZqu.mjs} +3 -3
  60. package/dist/{cut-OKARJCCV-8tOnAUTx.mjs.map → cut-OKARJCCV-CxnqlZqu.mjs.map} +1 -1
  61. package/dist/{cut-OKARJCCV-R8-mNVvr.cjs → cut-OKARJCCV-DdbJ20ln.cjs} +3 -3
  62. package/dist/{cut-OKARJCCV-R8-mNVvr.cjs.map → cut-OKARJCCV-DdbJ20ln.cjs.map} +1 -1
  63. package/dist/{diff-MWJFIG7X-aAYDACUk.mjs → diff-MWJFIG7X-CGXdgUmT.mjs} +2 -2
  64. package/dist/{diff-MWJFIG7X-aAYDACUk.mjs.map → diff-MWJFIG7X-CGXdgUmT.mjs.map} +1 -1
  65. package/dist/{diff-MWJFIG7X-C1AIAesr.cjs → diff-MWJFIG7X-CXpUSmgO.cjs} +2 -2
  66. package/dist/{diff-MWJFIG7X-C1AIAesr.cjs.map → diff-MWJFIG7X-CXpUSmgO.cjs.map} +1 -1
  67. package/dist/{dist-UfTaqROI.mjs → dist-2KoUXcsr.mjs} +248 -124
  68. package/dist/dist-2KoUXcsr.mjs.map +1 -0
  69. package/dist/{dist-BI3VEIg3.mjs → dist-BVlTqMH2.mjs} +144 -91
  70. package/dist/dist-BVlTqMH2.mjs.map +1 -0
  71. package/dist/{dist-DUHTNAp_.cjs → dist-DTpv_m9a.cjs} +144 -91
  72. package/dist/dist-DTpv_m9a.cjs.map +1 -0
  73. package/dist/{dist-Dv9NRRnk.cjs → dist-DsxgrNgi.cjs} +308 -124
  74. package/dist/dist-DsxgrNgi.cjs.map +1 -0
  75. package/dist/{du-572XNP42-BD0Zs3Qz.mjs → du-572XNP42-B2I6Njvu.mjs} +2 -2
  76. package/dist/{du-572XNP42-BD0Zs3Qz.mjs.map → du-572XNP42-B2I6Njvu.mjs.map} +1 -1
  77. package/dist/{du-572XNP42-Gor9ub7v.cjs → du-572XNP42-DCWIQpN2.cjs} +2 -2
  78. package/dist/{du-572XNP42-Gor9ub7v.cjs.map → du-572XNP42-DCWIQpN2.cjs.map} +1 -1
  79. package/dist/{env-36M5BO7M-C-PYC1oQ.mjs → env-36M5BO7M-DcjiL3cp.mjs} +2 -2
  80. package/dist/{env-36M5BO7M-C-PYC1oQ.mjs.map → env-36M5BO7M-DcjiL3cp.mjs.map} +1 -1
  81. package/dist/{env-36M5BO7M-BOaquG0r.cjs → env-36M5BO7M-DrOGqPnU.cjs} +2 -2
  82. package/dist/{env-36M5BO7M-BOaquG0r.cjs.map → env-36M5BO7M-DrOGqPnU.cjs.map} +1 -1
  83. package/dist/{expand-JSPG6VOP-DDY72p2b.cjs → expand-JSPG6VOP-G5CJH3PA.cjs} +2 -2
  84. package/dist/{expand-JSPG6VOP-DDY72p2b.cjs.map → expand-JSPG6VOP-G5CJH3PA.cjs.map} +1 -1
  85. package/dist/{expand-JSPG6VOP-DkKiBzVj.mjs → expand-JSPG6VOP-GQ9M1qlE.mjs} +2 -2
  86. package/dist/{expand-JSPG6VOP-DkKiBzVj.mjs.map → expand-JSPG6VOP-GQ9M1qlE.mjs.map} +1 -1
  87. package/dist/{expr-5JAACS4X-Dppx8f72.mjs → expr-5JAACS4X-DHONkP-t.mjs} +2 -2
  88. package/dist/{expr-5JAACS4X-Dppx8f72.mjs.map → expr-5JAACS4X-DHONkP-t.mjs.map} +1 -1
  89. package/dist/{expr-5JAACS4X-CdeFE19X.cjs → expr-5JAACS4X-DuW3SNU7.cjs} +2 -2
  90. package/dist/{expr-5JAACS4X-CdeFE19X.cjs.map → expr-5JAACS4X-DuW3SNU7.cjs.map} +1 -1
  91. package/dist/{find-INTH3OLC-1l65phnN.mjs → find-INTH3OLC--hNBfGti.mjs} +3 -3
  92. package/dist/{find-INTH3OLC-1l65phnN.mjs.map → find-INTH3OLC--hNBfGti.mjs.map} +1 -1
  93. package/dist/{find-INTH3OLC-DlAfg13Y.cjs → find-INTH3OLC-D_8fgIQ0.cjs} +3 -3
  94. package/dist/{find-INTH3OLC-DlAfg13Y.cjs.map → find-INTH3OLC-D_8fgIQ0.cjs.map} +1 -1
  95. package/dist/{fold-4TQNYMSW-C1ExSlRm.mjs → fold-4TQNYMSW-BOBzzbek.mjs} +2 -2
  96. package/dist/{fold-4TQNYMSW-C1ExSlRm.mjs.map → fold-4TQNYMSW-BOBzzbek.mjs.map} +1 -1
  97. package/dist/{fold-4TQNYMSW-5komeWND.cjs → fold-4TQNYMSW-D4HFghVc.cjs} +2 -2
  98. package/dist/{fold-4TQNYMSW-5komeWND.cjs.map → fold-4TQNYMSW-D4HFghVc.cjs.map} +1 -1
  99. package/dist/{grep-V3LQVMRQ-CukE4iEL.mjs → grep-V3LQVMRQ-BQA7o3M1.mjs} +4 -4
  100. package/dist/{grep-V3LQVMRQ-CukE4iEL.mjs.map → grep-V3LQVMRQ-BQA7o3M1.mjs.map} +1 -1
  101. package/dist/{grep-V3LQVMRQ-Ca0SYUGe.cjs → grep-V3LQVMRQ-CaKVxGQk.cjs} +4 -4
  102. package/dist/{grep-V3LQVMRQ-Ca0SYUGe.cjs.map → grep-V3LQVMRQ-CaKVxGQk.cjs.map} +1 -1
  103. package/dist/{gzip-O5ASJAFY-wJ28ldi7.mjs → gzip-O5ASJAFY-BN_VNZkL.mjs} +2 -2
  104. package/dist/{gzip-O5ASJAFY-wJ28ldi7.mjs.map → gzip-O5ASJAFY-BN_VNZkL.mjs.map} +1 -1
  105. package/dist/{gzip-O5ASJAFY-D0aGDe6h.cjs → gzip-O5ASJAFY-segyQv2z.cjs} +2 -2
  106. package/dist/{gzip-O5ASJAFY-D0aGDe6h.cjs.map → gzip-O5ASJAFY-segyQv2z.cjs.map} +1 -1
  107. package/dist/{head-442HYESI-DUHiojKA.mjs → head-442HYESI-Cs4EuPOi.mjs} +2 -2
  108. package/dist/{head-442HYESI-DUHiojKA.mjs.map → head-442HYESI-Cs4EuPOi.mjs.map} +1 -1
  109. package/dist/{head-442HYESI-BOcnt5E3.cjs → head-442HYESI-CtxFkVIF.cjs} +2 -2
  110. package/dist/{head-442HYESI-BOcnt5E3.cjs.map → head-442HYESI-CtxFkVIF.cjs.map} +1 -1
  111. package/dist/{help-HZ6M2CKN-Qzl16zNq.cjs → help-HZ6M2CKN-B5tkYXb5.cjs} +2 -2
  112. package/dist/{help-HZ6M2CKN-Qzl16zNq.cjs.map → help-HZ6M2CKN-B5tkYXb5.cjs.map} +1 -1
  113. package/dist/{help-HZ6M2CKN-DLEdf0M2.mjs → help-HZ6M2CKN-Cif0Mz1E.mjs} +2 -2
  114. package/dist/{help-HZ6M2CKN-DLEdf0M2.mjs.map → help-HZ6M2CKN-Cif0Mz1E.mjs.map} +1 -1
  115. package/dist/{html-to-markdown-JW4MSQZO-BQz_VlRg.mjs → html-to-markdown-JW4MSQZO-B1mP45ME.mjs} +3 -3
  116. package/dist/{html-to-markdown-JW4MSQZO-BQz_VlRg.mjs.map → html-to-markdown-JW4MSQZO-B1mP45ME.mjs.map} +1 -1
  117. package/dist/{html-to-markdown-JW4MSQZO-BgYA4aOc.cjs → html-to-markdown-JW4MSQZO-BLzBMUTV.cjs} +3 -3
  118. package/dist/{html-to-markdown-JW4MSQZO-BgYA4aOc.cjs.map → html-to-markdown-JW4MSQZO-BLzBMUTV.cjs.map} +1 -1
  119. package/dist/internal.cjs +1 -1
  120. package/dist/internal.mjs +1 -1
  121. package/dist/{join-TBRGI3LQ-C7-r2rFy.cjs → join-TBRGI3LQ-BYjOL7Ba.cjs} +2 -2
  122. package/dist/{join-TBRGI3LQ-C7-r2rFy.cjs.map → join-TBRGI3LQ-BYjOL7Ba.cjs.map} +1 -1
  123. package/dist/{join-TBRGI3LQ-DK7LepAd.mjs → join-TBRGI3LQ-DiBTVdO3.mjs} +2 -2
  124. package/dist/{join-TBRGI3LQ-DK7LepAd.mjs.map → join-TBRGI3LQ-DiBTVdO3.mjs.map} +1 -1
  125. package/dist/{jq-4XLYLOS5-D_E-_pWV.mjs → jq-4XLYLOS5-BALq_nh9.mjs} +4 -4
  126. package/dist/{jq-4XLYLOS5-D_E-_pWV.mjs.map → jq-4XLYLOS5-BALq_nh9.mjs.map} +1 -1
  127. package/dist/{jq-4XLYLOS5-DvRkoRHs.cjs → jq-4XLYLOS5-BXxSQywX.cjs} +4 -4
  128. package/dist/{jq-4XLYLOS5-DvRkoRHs.cjs.map → jq-4XLYLOS5-BXxSQywX.cjs.map} +1 -1
  129. package/dist/{js-exec-N5KEZBH7-CMI7Q7vB.cjs → js-exec-N5KEZBH7-BQUZSyms.cjs} +3 -3
  130. package/dist/{js-exec-N5KEZBH7-CMI7Q7vB.cjs.map → js-exec-N5KEZBH7-BQUZSyms.cjs.map} +1 -1
  131. package/dist/{js-exec-N5KEZBH7-aTSi2bNc.mjs → js-exec-N5KEZBH7-DZMBJ1Pu.mjs} +3 -3
  132. package/dist/{js-exec-N5KEZBH7-aTSi2bNc.mjs.map → js-exec-N5KEZBH7-DZMBJ1Pu.mjs.map} +1 -1
  133. package/dist/{lib-rQKuhAkq.mjs → lib--NqY2m9f.mjs} +2 -2
  134. package/dist/{lib-rQKuhAkq.mjs.map → lib--NqY2m9f.mjs.map} +1 -1
  135. package/dist/{lib-CAYL_7KH.cjs → lib-B9zGTXWx.cjs} +2 -2
  136. package/dist/{lib-CAYL_7KH.cjs.map → lib-B9zGTXWx.cjs.map} +1 -1
  137. package/dist/{ln-4LGSXXGD-CDLjrDRx.cjs → ln-4LGSXXGD-LbHp0v_s.cjs} +2 -2
  138. package/dist/{ln-4LGSXXGD-CDLjrDRx.cjs.map → ln-4LGSXXGD-LbHp0v_s.cjs.map} +1 -1
  139. package/dist/{ln-4LGSXXGD-DEz2c-lc.mjs → ln-4LGSXXGD-QTMEXUOs.mjs} +2 -2
  140. package/dist/{ln-4LGSXXGD-DEz2c-lc.mjs.map → ln-4LGSXXGD-QTMEXUOs.mjs.map} +1 -1
  141. package/dist/{ls-ZJGQER7M-dtZQlOl9.cjs → ls-ZJGQER7M-B7I4CkBz.cjs} +2 -2
  142. package/dist/{ls-ZJGQER7M-dtZQlOl9.cjs.map → ls-ZJGQER7M-B7I4CkBz.cjs.map} +1 -1
  143. package/dist/{ls-ZJGQER7M-CTMWgQdb.mjs → ls-ZJGQER7M-CFGn-LL8.mjs} +2 -2
  144. package/dist/{ls-ZJGQER7M-CTMWgQdb.mjs.map → ls-ZJGQER7M-CFGn-LL8.mjs.map} +1 -1
  145. package/dist/{lzma-cXJLxnF-.cjs → lzma-BDhJKx9h.cjs} +2 -2
  146. package/dist/{lzma-cXJLxnF-.cjs.map → lzma-BDhJKx9h.cjs.map} +1 -1
  147. package/dist/{md5sum-SPU24VSG-Dv-imBX7.cjs → md5sum-SPU24VSG-CdpTF-_K.cjs} +3 -3
  148. package/dist/{md5sum-SPU24VSG-Dv-imBX7.cjs.map → md5sum-SPU24VSG-CdpTF-_K.cjs.map} +1 -1
  149. package/dist/{md5sum-SPU24VSG-0bULe4dG.mjs → md5sum-SPU24VSG-DSdkIq3n.mjs} +3 -3
  150. package/dist/{md5sum-SPU24VSG-0bULe4dG.mjs.map → md5sum-SPU24VSG-DSdkIq3n.mjs.map} +1 -1
  151. package/dist/{mkdir-MEPGZOB6-DlmASeJ8.mjs → mkdir-MEPGZOB6-BcS5Q34m.mjs} +2 -2
  152. package/dist/{mkdir-MEPGZOB6-DlmASeJ8.mjs.map → mkdir-MEPGZOB6-BcS5Q34m.mjs.map} +1 -1
  153. package/dist/{mkdir-MEPGZOB6-DbT8dn9r.cjs → mkdir-MEPGZOB6-DcImBvi6.cjs} +2 -2
  154. package/dist/{mkdir-MEPGZOB6-DbT8dn9r.cjs.map → mkdir-MEPGZOB6-DcImBvi6.cjs.map} +1 -1
  155. package/dist/{mv-W5BIQ646-BcD65P4z.cjs → mv-W5BIQ646-BSsj5pJ0.cjs} +2 -2
  156. package/dist/{mv-W5BIQ646-BcD65P4z.cjs.map → mv-W5BIQ646-BSsj5pJ0.cjs.map} +1 -1
  157. package/dist/{mv-W5BIQ646-BUScaUnN.mjs → mv-W5BIQ646-CoAyZhuD.mjs} +2 -2
  158. package/dist/{mv-W5BIQ646-BUScaUnN.mjs.map → mv-W5BIQ646-CoAyZhuD.mjs.map} +1 -1
  159. package/dist/{nl-WSDW7I4O-CZJV7yor.mjs → nl-WSDW7I4O-8GpfdAsi.mjs} +2 -2
  160. package/dist/{nl-WSDW7I4O-CZJV7yor.mjs.map → nl-WSDW7I4O-8GpfdAsi.mjs.map} +1 -1
  161. package/dist/{nl-WSDW7I4O-C6dIyqS-.cjs → nl-WSDW7I4O-BAlXwBPu.cjs} +2 -2
  162. package/dist/{nl-WSDW7I4O-C6dIyqS-.cjs.map → nl-WSDW7I4O-BAlXwBPu.cjs.map} +1 -1
  163. package/dist/{od-WOKFDJTP-D21mvx_N.cjs → od-WOKFDJTP-BwF4po_J.cjs} +2 -2
  164. package/dist/{od-WOKFDJTP-D21mvx_N.cjs.map → od-WOKFDJTP-BwF4po_J.cjs.map} +1 -1
  165. package/dist/{od-WOKFDJTP-ByzrsPyh.mjs → od-WOKFDJTP-CI6oY0LJ.mjs} +2 -2
  166. package/dist/{od-WOKFDJTP-ByzrsPyh.mjs.map → od-WOKFDJTP-CI6oY0LJ.mjs.map} +1 -1
  167. package/dist/{paste-7JC6S4DX-DLKliCxf.mjs → paste-7JC6S4DX-DTlwJFjO.mjs} +2 -2
  168. package/dist/{paste-7JC6S4DX-DLKliCxf.mjs.map → paste-7JC6S4DX-DTlwJFjO.mjs.map} +1 -1
  169. package/dist/{paste-7JC6S4DX-BnuwNZea.cjs → paste-7JC6S4DX-qCPaS90b.cjs} +2 -2
  170. package/dist/{paste-7JC6S4DX-BnuwNZea.cjs.map → paste-7JC6S4DX-qCPaS90b.cjs.map} +1 -1
  171. package/dist/{printf-TWGXF445-DTZXq0ei.cjs → printf-TWGXF445-B76DaGg_.cjs} +3 -3
  172. package/dist/{printf-TWGXF445-DTZXq0ei.cjs.map → printf-TWGXF445-B76DaGg_.cjs.map} +1 -1
  173. package/dist/{printf-TWGXF445-SeXWdm7g.mjs → printf-TWGXF445-TABq8pZA.mjs} +3 -3
  174. package/dist/{printf-TWGXF445-SeXWdm7g.mjs.map → printf-TWGXF445-TABq8pZA.mjs.map} +1 -1
  175. package/dist/{python3-POMOR4OA-Ck-wgzU7.cjs → python3-POMOR4OA-BN3Jttuk.cjs} +3 -3
  176. package/dist/{python3-POMOR4OA-Ck-wgzU7.cjs.map → python3-POMOR4OA-BN3Jttuk.cjs.map} +1 -1
  177. package/dist/{python3-POMOR4OA-DCtD8PWe.mjs → python3-POMOR4OA-DTtek62H.mjs} +3 -3
  178. package/dist/{python3-POMOR4OA-DCtD8PWe.mjs.map → python3-POMOR4OA-DTtek62H.mjs.map} +1 -1
  179. package/dist/{rev-5EHFX4EJ-BKPrCPRh.cjs → rev-5EHFX4EJ-CSyB1i8Z.cjs} +2 -2
  180. package/dist/{rev-5EHFX4EJ-BKPrCPRh.cjs.map → rev-5EHFX4EJ-CSyB1i8Z.cjs.map} +1 -1
  181. package/dist/{rev-5EHFX4EJ-TtsbZt5q.mjs → rev-5EHFX4EJ-CkoAL_TJ.mjs} +2 -2
  182. package/dist/{rev-5EHFX4EJ-TtsbZt5q.mjs.map → rev-5EHFX4EJ-CkoAL_TJ.mjs.map} +1 -1
  183. package/dist/{rg-S4FXYXWB-qJ8foUzL.mjs → rg-S4FXYXWB-DBe0_b15.mjs} +3 -3
  184. package/dist/{rg-S4FXYXWB-qJ8foUzL.mjs.map → rg-S4FXYXWB-DBe0_b15.mjs.map} +1 -1
  185. package/dist/{rg-S4FXYXWB-CWLIXiXm.cjs → rg-S4FXYXWB-bL1TqZTV.cjs} +3 -3
  186. package/dist/{rg-S4FXYXWB-CWLIXiXm.cjs.map → rg-S4FXYXWB-bL1TqZTV.cjs.map} +1 -1
  187. package/dist/{rm-SSGETQVQ-CSeUoZXG.cjs → rm-SSGETQVQ-BQHptABi.cjs} +2 -2
  188. package/dist/{rm-SSGETQVQ-CSeUoZXG.cjs.map → rm-SSGETQVQ-BQHptABi.cjs.map} +1 -1
  189. package/dist/{rm-SSGETQVQ-Yp02JM15.mjs → rm-SSGETQVQ-CZlEeKOZ.mjs} +2 -2
  190. package/dist/{rm-SSGETQVQ-Yp02JM15.mjs.map → rm-SSGETQVQ-CZlEeKOZ.mjs.map} +1 -1
  191. package/dist/{rmdir-OC4ZLPYA-BGCS0MYZ.mjs → rmdir-OC4ZLPYA-CNNN3q6l.mjs} +2 -2
  192. package/dist/{rmdir-OC4ZLPYA-BGCS0MYZ.mjs.map → rmdir-OC4ZLPYA-CNNN3q6l.mjs.map} +1 -1
  193. package/dist/{rmdir-OC4ZLPYA-7QLeoaKs.cjs → rmdir-OC4ZLPYA-D9b9P6qG.cjs} +2 -2
  194. package/dist/{rmdir-OC4ZLPYA-7QLeoaKs.cjs.map → rmdir-OC4ZLPYA-D9b9P6qG.cjs.map} +1 -1
  195. package/dist/run.cjs +1 -1
  196. package/dist/run.mjs +1 -1
  197. package/dist/{sed-S5UIK574-BS3NSfTz.cjs → sed-S5UIK574-BrzklJCA.cjs} +2 -2
  198. package/dist/{sed-S5UIK574-BS3NSfTz.cjs.map → sed-S5UIK574-BrzklJCA.cjs.map} +1 -1
  199. package/dist/{sed-S5UIK574-BVQuN_lF.mjs → sed-S5UIK574-DvzUvOnq.mjs} +2 -2
  200. package/dist/{sed-S5UIK574-BVQuN_lF.mjs.map → sed-S5UIK574-DvzUvOnq.mjs.map} +1 -1
  201. package/dist/{sha1sum-2PTOAFR6-1t4ssenS.cjs → sha1sum-2PTOAFR6-B86iY7LQ.cjs} +3 -3
  202. package/dist/{sha1sum-2PTOAFR6-1t4ssenS.cjs.map → sha1sum-2PTOAFR6-B86iY7LQ.cjs.map} +1 -1
  203. package/dist/{sha1sum-2PTOAFR6-D12ocftB.mjs → sha1sum-2PTOAFR6-CEM0r2Rz.mjs} +3 -3
  204. package/dist/{sha1sum-2PTOAFR6-D12ocftB.mjs.map → sha1sum-2PTOAFR6-CEM0r2Rz.mjs.map} +1 -1
  205. package/dist/{sha256sum-NS7D3IXX-CXylnxEZ.mjs → sha256sum-NS7D3IXX-DNbm5sa_.mjs} +3 -3
  206. package/dist/{sha256sum-NS7D3IXX-CXylnxEZ.mjs.map → sha256sum-NS7D3IXX-DNbm5sa_.mjs.map} +1 -1
  207. package/dist/{sha256sum-NS7D3IXX-27eM-Z_8.cjs → sha256sum-NS7D3IXX-DWv1gs51.cjs} +3 -3
  208. package/dist/{sha256sum-NS7D3IXX-27eM-Z_8.cjs.map → sha256sum-NS7D3IXX-DWv1gs51.cjs.map} +1 -1
  209. package/dist/{sleep-X22JJINO-4I6l2NTe.mjs → sleep-X22JJINO-DCoy_Nqt.mjs} +2 -2
  210. package/dist/{sleep-X22JJINO-4I6l2NTe.mjs.map → sleep-X22JJINO-DCoy_Nqt.mjs.map} +1 -1
  211. package/dist/{sleep-X22JJINO-Urif1Mim.cjs → sleep-X22JJINO-zYYHknIH.cjs} +2 -2
  212. package/dist/{sleep-X22JJINO-Urif1Mim.cjs.map → sleep-X22JJINO-zYYHknIH.cjs.map} +1 -1
  213. package/dist/{sort-SW2YEO5B-DPSl4CbI.mjs → sort-SW2YEO5B-CsboAjc8.mjs} +3 -3
  214. package/dist/{sort-SW2YEO5B-DPSl4CbI.mjs.map → sort-SW2YEO5B-CsboAjc8.mjs.map} +1 -1
  215. package/dist/{sort-SW2YEO5B-DHeDK9R9.cjs → sort-SW2YEO5B-ZVF-ge9u.cjs} +3 -3
  216. package/dist/{sort-SW2YEO5B-DHeDK9R9.cjs.map → sort-SW2YEO5B-ZVF-ge9u.cjs.map} +1 -1
  217. package/dist/{split-4KKZZXXE-C0NLbt_2.cjs → split-4KKZZXXE-B8N-gJB3.cjs} +2 -2
  218. package/dist/{split-4KKZZXXE-C0NLbt_2.cjs.map → split-4KKZZXXE-B8N-gJB3.cjs.map} +1 -1
  219. package/dist/{split-4KKZZXXE-Dk9lHFC8.mjs → split-4KKZZXXE-D0uthb-r.mjs} +2 -2
  220. package/dist/{split-4KKZZXXE-Dk9lHFC8.mjs.map → split-4KKZZXXE-D0uthb-r.mjs.map} +1 -1
  221. package/dist/{sqlite3-CGOEFJAO-DpLM2ecz.cjs → sqlite3-CGOEFJAO-CkK_A9Ld.cjs} +3 -3
  222. package/dist/{sqlite3-CGOEFJAO-DpLM2ecz.cjs.map → sqlite3-CGOEFJAO-CkK_A9Ld.cjs.map} +1 -1
  223. package/dist/{sqlite3-CGOEFJAO-BHYKGg1a.mjs → sqlite3-CGOEFJAO-Ct1OVItO.mjs} +3 -3
  224. package/dist/{sqlite3-CGOEFJAO-BHYKGg1a.mjs.map → sqlite3-CGOEFJAO-Ct1OVItO.mjs.map} +1 -1
  225. package/dist/{start-DAmqO4hu.mjs → start-7oMxob_7.mjs} +524 -413
  226. package/dist/start-7oMxob_7.mjs.map +1 -0
  227. package/dist/{start-DMis00-F.cjs → start-CXLVcrhR.cjs} +524 -413
  228. package/dist/start-CXLVcrhR.cjs.map +1 -0
  229. package/dist/start.cjs +1 -1
  230. package/dist/start.mjs +1 -1
  231. package/dist/{strings-6WDHLGMX-z2tCrrrz.cjs → strings-6WDHLGMX-X5aIjktj.cjs} +2 -2
  232. package/dist/{strings-6WDHLGMX-z2tCrrrz.cjs.map → strings-6WDHLGMX-X5aIjktj.cjs.map} +1 -1
  233. package/dist/{strings-6WDHLGMX-Cy1ZR56z.mjs → strings-6WDHLGMX-ufOZIkh3.mjs} +2 -2
  234. package/dist/{strings-6WDHLGMX-Cy1ZR56z.mjs.map → strings-6WDHLGMX-ufOZIkh3.mjs.map} +1 -1
  235. package/dist/{tac-2STMMJYW-D8GSnWwk.mjs → tac-2STMMJYW-BWAzF1gZ.mjs} +2 -2
  236. package/dist/{tac-2STMMJYW-D8GSnWwk.mjs.map → tac-2STMMJYW-BWAzF1gZ.mjs.map} +1 -1
  237. package/dist/{tac-2STMMJYW-BeWTeefF.cjs → tac-2STMMJYW-DJQmV0Bu.cjs} +2 -2
  238. package/dist/{tac-2STMMJYW-BeWTeefF.cjs.map → tac-2STMMJYW-DJQmV0Bu.cjs.map} +1 -1
  239. package/dist/{tail-R4PCA2C4-UBnPkuWO.cjs → tail-R4PCA2C4-8lNBMaKa.cjs} +2 -2
  240. package/dist/{tail-R4PCA2C4-UBnPkuWO.cjs.map → tail-R4PCA2C4-8lNBMaKa.cjs.map} +1 -1
  241. package/dist/{tail-R4PCA2C4-Ww4pv2Dp.mjs → tail-R4PCA2C4-BkulcngY.mjs} +2 -2
  242. package/dist/{tail-R4PCA2C4-Ww4pv2Dp.mjs.map → tail-R4PCA2C4-BkulcngY.mjs.map} +1 -1
  243. package/dist/{tar-STHHZTZ6-Bi0zxlHZ.cjs → tar-STHHZTZ6-DCjYLLQu.cjs} +5 -5
  244. package/dist/{tar-STHHZTZ6-Bi0zxlHZ.cjs.map → tar-STHHZTZ6-DCjYLLQu.cjs.map} +1 -1
  245. package/dist/{tar-STHHZTZ6-BzXQksgM.mjs → tar-STHHZTZ6-DEOAF4gq.mjs} +4 -4
  246. package/dist/{tar-STHHZTZ6-BzXQksgM.mjs.map → tar-STHHZTZ6-DEOAF4gq.mjs.map} +1 -1
  247. package/dist/{tee-YUZ2FKCJ-DR5NHLOg.cjs → tee-YUZ2FKCJ-C6ugBNOg.cjs} +2 -2
  248. package/dist/{tee-YUZ2FKCJ-DR5NHLOg.cjs.map → tee-YUZ2FKCJ-C6ugBNOg.cjs.map} +1 -1
  249. package/dist/{tee-YUZ2FKCJ-CMei1bUb.mjs → tee-YUZ2FKCJ-r5n-l2G2.mjs} +2 -2
  250. package/dist/{tee-YUZ2FKCJ-CMei1bUb.mjs.map → tee-YUZ2FKCJ-r5n-l2G2.mjs.map} +1 -1
  251. package/dist/{time-D4LNBSWX-z9IAaE5I.mjs → time-D4LNBSWX-BaTW1ba4.mjs} +2 -2
  252. package/dist/{time-D4LNBSWX-z9IAaE5I.mjs.map → time-D4LNBSWX-BaTW1ba4.mjs.map} +1 -1
  253. package/dist/{time-D4LNBSWX-BGCDzdSH.cjs → time-D4LNBSWX-CXDpBKgi.cjs} +2 -2
  254. package/dist/{time-D4LNBSWX-BGCDzdSH.cjs.map → time-D4LNBSWX-CXDpBKgi.cjs.map} +1 -1
  255. package/dist/{timeout-YDCRSLPQ-Bg3sU17C.cjs → timeout-YDCRSLPQ-Ch4mc1AF.cjs} +2 -2
  256. package/dist/{timeout-YDCRSLPQ-Bg3sU17C.cjs.map → timeout-YDCRSLPQ-Ch4mc1AF.cjs.map} +1 -1
  257. package/dist/{timeout-YDCRSLPQ-Z78PgVy2.mjs → timeout-YDCRSLPQ-tZJha6AQ.mjs} +2 -2
  258. package/dist/{timeout-YDCRSLPQ-Z78PgVy2.mjs.map → timeout-YDCRSLPQ-tZJha6AQ.mjs.map} +1 -1
  259. package/dist/{touch-UA33VN3N-U3ZomRAc.mjs → touch-UA33VN3N-FlNTn8Ds.mjs} +2 -2
  260. package/dist/{touch-UA33VN3N-U3ZomRAc.mjs.map → touch-UA33VN3N-FlNTn8Ds.mjs.map} +1 -1
  261. package/dist/{touch-UA33VN3N-0fuZVHS6.cjs → touch-UA33VN3N-_YTQfsV6.cjs} +2 -2
  262. package/dist/{touch-UA33VN3N-0fuZVHS6.cjs.map → touch-UA33VN3N-_YTQfsV6.cjs.map} +1 -1
  263. package/dist/{tr-36LHWFRQ-De0ivsL4.mjs → tr-36LHWFRQ-BPsaTkYA.mjs} +2 -2
  264. package/dist/{tr-36LHWFRQ-De0ivsL4.mjs.map → tr-36LHWFRQ-BPsaTkYA.mjs.map} +1 -1
  265. package/dist/{tr-36LHWFRQ-gutDmRkn.cjs → tr-36LHWFRQ-DXAzsI9a.cjs} +2 -2
  266. package/dist/{tr-36LHWFRQ-gutDmRkn.cjs.map → tr-36LHWFRQ-DXAzsI9a.cjs.map} +1 -1
  267. package/dist/{tree-YLD52CNT-DNAB_qw3.mjs → tree-YLD52CNT-BCAIsMqc.mjs} +2 -2
  268. package/dist/{tree-YLD52CNT-DNAB_qw3.mjs.map → tree-YLD52CNT-BCAIsMqc.mjs.map} +1 -1
  269. package/dist/{tree-YLD52CNT-BeXLduiX.cjs → tree-YLD52CNT-C1O0qAuH.cjs} +2 -2
  270. package/dist/{tree-YLD52CNT-BeXLduiX.cjs.map → tree-YLD52CNT-C1O0qAuH.cjs.map} +1 -1
  271. package/dist/{unexpand-CADSA4VO-BFtZtqw9.mjs → unexpand-CADSA4VO-DgpWR91p.mjs} +2 -2
  272. package/dist/{unexpand-CADSA4VO-BFtZtqw9.mjs.map → unexpand-CADSA4VO-DgpWR91p.mjs.map} +1 -1
  273. package/dist/{unexpand-CADSA4VO-CFnBK3Ia.cjs → unexpand-CADSA4VO-vC8hn1hf.cjs} +2 -2
  274. package/dist/{unexpand-CADSA4VO-CFnBK3Ia.cjs.map → unexpand-CADSA4VO-vC8hn1hf.cjs.map} +1 -1
  275. package/dist/{uniq-XSIZR6PB-CyG7HvmD.cjs → uniq-XSIZR6PB-BAHVNDgM.cjs} +3 -3
  276. package/dist/{uniq-XSIZR6PB-CyG7HvmD.cjs.map → uniq-XSIZR6PB-BAHVNDgM.cjs.map} +1 -1
  277. package/dist/{uniq-XSIZR6PB-BytgRQOG.mjs → uniq-XSIZR6PB-BaYViHEU.mjs} +3 -3
  278. package/dist/{uniq-XSIZR6PB-BytgRQOG.mjs.map → uniq-XSIZR6PB-BaYViHEU.mjs.map} +1 -1
  279. package/dist/{wc-LF7NU4LA-exnw0vWb.cjs → wc-LF7NU4LA-BKA5Jgg7.cjs} +3 -3
  280. package/dist/{wc-LF7NU4LA-exnw0vWb.cjs.map → wc-LF7NU4LA-BKA5Jgg7.cjs.map} +1 -1
  281. package/dist/{wc-LF7NU4LA-B_10bksl.mjs → wc-LF7NU4LA-DEaxr-il.mjs} +3 -3
  282. package/dist/{wc-LF7NU4LA-B_10bksl.mjs.map → wc-LF7NU4LA-DEaxr-il.mjs.map} +1 -1
  283. package/dist/{with-project-scope-DhPi7-gm.mjs → with-project-scope-C5w92Hd9.mjs} +2 -2
  284. package/dist/{with-project-scope-DhPi7-gm.mjs.map → with-project-scope-C5w92Hd9.mjs.map} +1 -1
  285. package/dist/{with-project-scope-D40NCS4H.cjs → with-project-scope-Cp3CRXf2.cjs} +2 -2
  286. package/dist/{with-project-scope-D40NCS4H.cjs.map → with-project-scope-Cp3CRXf2.cjs.map} +1 -1
  287. package/dist/{xan-Y6WF3IRG-D87C2Cbw.cjs → xan-Y6WF3IRG-DP-IdHxL.cjs} +6 -6
  288. package/dist/{xan-Y6WF3IRG-D87C2Cbw.cjs.map → xan-Y6WF3IRG-DP-IdHxL.cjs.map} +1 -1
  289. package/dist/{xan-Y6WF3IRG-CwjgCDhd.mjs → xan-Y6WF3IRG-lpubA7_O.mjs} +6 -6
  290. package/dist/{xan-Y6WF3IRG-CwjgCDhd.mjs.map → xan-Y6WF3IRG-lpubA7_O.mjs.map} +1 -1
  291. package/dist/{xan-view-HDVKHFC2-Bi8ZaYNn.mjs → xan-view-HDVKHFC2-BSghphCH.mjs} +3 -3
  292. package/dist/{xan-view-HDVKHFC2-Bi8ZaYNn.mjs.map → xan-view-HDVKHFC2-BSghphCH.mjs.map} +1 -1
  293. package/dist/{xan-view-HDVKHFC2-eGVB9aRf.cjs → xan-view-HDVKHFC2-nAyhWcG7.cjs} +3 -3
  294. package/dist/{xan-view-HDVKHFC2-eGVB9aRf.cjs.map → xan-view-HDVKHFC2-nAyhWcG7.cjs.map} +1 -1
  295. package/dist/{xargs-MGZPH7AX-jq42agOA.mjs → xargs-MGZPH7AX-B1CnFZg_.mjs} +2 -2
  296. package/dist/{xargs-MGZPH7AX-jq42agOA.mjs.map → xargs-MGZPH7AX-B1CnFZg_.mjs.map} +1 -1
  297. package/dist/{xargs-MGZPH7AX-C5vvLUSN.cjs → xargs-MGZPH7AX-BU6-n_Ua.cjs} +2 -2
  298. package/dist/{xargs-MGZPH7AX-C5vvLUSN.cjs.map → xargs-MGZPH7AX-BU6-n_Ua.cjs.map} +1 -1
  299. package/dist/{yq-4QJW3EQG-BrQ6vsDL.mjs → yq-4QJW3EQG-BCTiQ4M4.mjs} +3 -3
  300. package/dist/{yq-4QJW3EQG-BrQ6vsDL.mjs.map → yq-4QJW3EQG-BCTiQ4M4.mjs.map} +1 -1
  301. package/dist/{yq-4QJW3EQG-BCAl5n0x.cjs → yq-4QJW3EQG-C2kjRqdI.cjs} +3 -3
  302. package/dist/{yq-4QJW3EQG-BCAl5n0x.cjs.map → yq-4QJW3EQG-C2kjRqdI.cjs.map} +1 -1
  303. package/package.json +1 -1
  304. package/dist/dist-BI3VEIg3.mjs.map +0 -1
  305. package/dist/dist-DUHTNAp_.cjs.map +0 -1
  306. package/dist/dist-Dv9NRRnk.cjs.map +0 -1
  307. package/dist/dist-UfTaqROI.mjs.map +0 -1
  308. package/dist/start-DAmqO4hu.mjs.map +0 -1
  309. package/dist/start-DMis00-F.cjs.map +0 -1
@@ -1,8 +1,8 @@
1
- const require_dist = require("./dist-DUHTNAp_.cjs");
2
- const require_dist$1 = require("./dist-Dv9NRRnk.cjs");
1
+ const require_dist = require("./dist-DTpv_m9a.cjs");
2
+ const require_dist$1 = require("./dist-DsxgrNgi.cjs");
3
3
  require("./chunk-BZUGFHVS-7RRM7Jpb.cjs");
4
4
  const require_chunk_TN7HHBQW = require("./chunk-TN7HHBQW-D_SK6w5n.cjs");
5
- const require_with_project_scope = require("./with-project-scope-D40NCS4H.cjs");
5
+ const require_with_project_scope = require("./with-project-scope-Cp3CRXf2.cjs");
6
6
  let node_crypto = require("node:crypto");
7
7
  require("node:fs/promises");
8
8
  let _keystrokehq_database = require("@keystrokehq/database");
@@ -42,49 +42,7 @@ function setTelemetryContext(patch) {
42
42
  if (patch.sessionId !== void 0) current.sessionId = patch.sessionId;
43
43
  if (patch.client !== void 0) current.client = patch.client;
44
44
  }
45
- /**
46
- * Returns true when an error is an expected client/control-flow failure that
47
- * should not become an Error Tracking issue.
48
- */
49
- function isExpectedError(error) {
50
- if (!error || typeof error !== "object") return false;
51
- const status = readStatus(error);
52
- if (status !== void 0 && (status === 0 || status >= 400 && status < 500)) return true;
53
- if ("name" in error && typeof error.name === "string") {
54
- if (error.name === "AbortError" || error.name === "CanceledError" || error.name === "CancelledError" || error.name === "RunTimeoutError") return true;
55
- }
56
- return false;
57
- }
58
- function readStatus(error) {
59
- if ("status" in error && typeof error.status === "number") return error.status;
60
- if ("statusCode" in error && typeof error.statusCode === "number") return error.statusCode;
61
- }
62
45
  const EVENT_NAME_PATTERN = /^[a-z][a-z0-9_]*(:[a-z][a-z0-9_]*)?$/;
63
- let sink;
64
- async function captureException(input) {
65
- if (isExpectedError(input.error) || true) return;
66
- const context = getTelemetryContext();
67
- const actorId = input.actorId ?? context?.actorId;
68
- const analyticsId = input.analyticsId ?? context?.analyticsId;
69
- const organizationId = input.organizationId ?? context?.organizationId;
70
- const projectId = input.projectId ?? context?.projectId;
71
- const sessionId = input.sessionId ?? context?.sessionId;
72
- const enriched = {
73
- error: input.error,
74
- ...actorId ? { actorId } : {},
75
- ...analyticsId ? { analyticsId } : {},
76
- ...organizationId ? { organizationId } : {},
77
- ...projectId ? { projectId } : {},
78
- ...sessionId ? { sessionId } : {},
79
- ...input.operation ? { operation: input.operation } : {},
80
- ...input.properties ? { properties: input.properties } : {}
81
- };
82
- try {
83
- await sink.captureException(enriched);
84
- } catch (error) {
85
- console.error("[telemetry] captureException sink failed", error);
86
- }
87
- }
88
46
  async function event(input) {
89
47
  if (!EVENT_NAME_PATTERN.test(input.name)) {
90
48
  console.error(`[telemetry] rejected invalid event name: ${input.name}`);
@@ -20110,7 +20068,7 @@ var g = class i {
20110
20068
  endPos() {
20111
20069
  return this.end;
20112
20070
  }
20113
- }, z$8 = class extends L {
20071
+ }, z$9 = class extends L {
20114
20072
  constructor(t, e = 0, s = t.length) {
20115
20073
  super(), this.bytes = t, this.start = e, this.end = s;
20116
20074
  }
@@ -20167,7 +20125,7 @@ var g = class i {
20167
20125
  }
20168
20126
  }, R = class {
20169
20127
  static fromUTF8(t, e = 0, s = t.length) {
20170
- return new z$8(t, e, s);
20128
+ return new z$9(t, e, s);
20171
20129
  }
20172
20130
  static fromUTF16(t, e = 0, s = t.length) {
20173
20131
  return new $$1(t, e, s);
@@ -22953,43 +22911,43 @@ var tt = [
22953
22911
  },
22954
22912
  {
22955
22913
  name: "cat",
22956
- load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-DZgdWs-l.cjs"))).catCommand
22914
+ load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-D6Jv-_E6.cjs"))).catCommand
22957
22915
  },
22958
22916
  {
22959
22917
  name: "printf",
22960
- load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-DTZXq0ei.cjs"))).printfCommand
22918
+ load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-B76DaGg_.cjs"))).printfCommand
22961
22919
  },
22962
22920
  {
22963
22921
  name: "ls",
22964
- load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-dtZQlOl9.cjs"))).lsCommand
22922
+ load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-B7I4CkBz.cjs"))).lsCommand
22965
22923
  },
22966
22924
  {
22967
22925
  name: "mkdir",
22968
- load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-DbT8dn9r.cjs"))).mkdirCommand
22926
+ load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-DcImBvi6.cjs"))).mkdirCommand
22969
22927
  },
22970
22928
  {
22971
22929
  name: "rmdir",
22972
- load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-7QLeoaKs.cjs"))).rmdirCommand
22930
+ load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-D9b9P6qG.cjs"))).rmdirCommand
22973
22931
  },
22974
22932
  {
22975
22933
  name: "touch",
22976
- load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-0fuZVHS6.cjs"))).touchCommand
22934
+ load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-_YTQfsV6.cjs"))).touchCommand
22977
22935
  },
22978
22936
  {
22979
22937
  name: "rm",
22980
- load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-CSeUoZXG.cjs"))).rmCommand
22938
+ load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-BQHptABi.cjs"))).rmCommand
22981
22939
  },
22982
22940
  {
22983
22941
  name: "cp",
22984
- load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-BIV7L9eq.cjs"))).cpCommand
22942
+ load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-B8yr7uOU.cjs"))).cpCommand
22985
22943
  },
22986
22944
  {
22987
22945
  name: "mv",
22988
- load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-BcD65P4z.cjs"))).mvCommand
22946
+ load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-BSsj5pJ0.cjs"))).mvCommand
22989
22947
  },
22990
22948
  {
22991
22949
  name: "ln",
22992
- load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-CDLjrDRx.cjs"))).lnCommand
22950
+ load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-LbHp0v_s.cjs"))).lnCommand
22993
22951
  },
22994
22952
  {
22995
22953
  name: "chmod",
@@ -23005,15 +22963,15 @@ var tt = [
23005
22963
  },
23006
22964
  {
23007
22965
  name: "head",
23008
- load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-BOcnt5E3.cjs"))).headCommand
22966
+ load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-CtxFkVIF.cjs"))).headCommand
23009
22967
  },
23010
22968
  {
23011
22969
  name: "tail",
23012
- load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-UBnPkuWO.cjs"))).tailCommand
22970
+ load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-8lNBMaKa.cjs"))).tailCommand
23013
22971
  },
23014
22972
  {
23015
22973
  name: "wc",
23016
- load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-exnw0vWb.cjs"))).wcCommand
22974
+ load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-BKA5Jgg7.cjs"))).wcCommand
23017
22975
  },
23018
22976
  {
23019
22977
  name: "stat",
@@ -23021,95 +22979,95 @@ var tt = [
23021
22979
  },
23022
22980
  {
23023
22981
  name: "grep",
23024
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-Ca0SYUGe.cjs"))).grepCommand
22982
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-CaKVxGQk.cjs"))).grepCommand
23025
22983
  },
23026
22984
  {
23027
22985
  name: "fgrep",
23028
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-Ca0SYUGe.cjs"))).fgrepCommand
22986
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-CaKVxGQk.cjs"))).fgrepCommand
23029
22987
  },
23030
22988
  {
23031
22989
  name: "egrep",
23032
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-Ca0SYUGe.cjs"))).egrepCommand
22990
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-CaKVxGQk.cjs"))).egrepCommand
23033
22991
  },
23034
22992
  {
23035
22993
  name: "rg",
23036
- load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-CWLIXiXm.cjs"))).rgCommand
22994
+ load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-bL1TqZTV.cjs"))).rgCommand
23037
22995
  },
23038
22996
  {
23039
22997
  name: "sed",
23040
- load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-BS3NSfTz.cjs"))).sedCommand
22998
+ load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-BrzklJCA.cjs"))).sedCommand
23041
22999
  },
23042
23000
  {
23043
23001
  name: "awk",
23044
- load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-QJQEwtsE.cjs"))).awkCommand2
23002
+ load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-BzedwQGr.cjs"))).awkCommand2
23045
23003
  },
23046
23004
  {
23047
23005
  name: "sort",
23048
- load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-DHeDK9R9.cjs"))).sortCommand
23006
+ load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-ZVF-ge9u.cjs"))).sortCommand
23049
23007
  },
23050
23008
  {
23051
23009
  name: "uniq",
23052
- load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-CyG7HvmD.cjs"))).uniqCommand
23010
+ load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-BAHVNDgM.cjs"))).uniqCommand
23053
23011
  },
23054
23012
  {
23055
23013
  name: "comm",
23056
- load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-B8_LT80n.cjs"))).commCommand
23014
+ load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-CbKpd-8-.cjs"))).commCommand
23057
23015
  },
23058
23016
  {
23059
23017
  name: "cut",
23060
- load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-R8-mNVvr.cjs"))).cutCommand
23018
+ load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-DdbJ20ln.cjs"))).cutCommand
23061
23019
  },
23062
23020
  {
23063
23021
  name: "paste",
23064
- load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-BnuwNZea.cjs"))).pasteCommand
23022
+ load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-qCPaS90b.cjs"))).pasteCommand
23065
23023
  },
23066
23024
  {
23067
23025
  name: "tr",
23068
- load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-gutDmRkn.cjs"))).trCommand
23026
+ load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-DXAzsI9a.cjs"))).trCommand
23069
23027
  },
23070
23028
  {
23071
23029
  name: "rev",
23072
- load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-BKPrCPRh.cjs"))).rev
23030
+ load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-CSyB1i8Z.cjs"))).rev
23073
23031
  },
23074
23032
  {
23075
23033
  name: "nl",
23076
- load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-C6dIyqS-.cjs"))).nl
23034
+ load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-BAlXwBPu.cjs"))).nl
23077
23035
  },
23078
23036
  {
23079
23037
  name: "fold",
23080
- load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-5komeWND.cjs"))).fold
23038
+ load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-D4HFghVc.cjs"))).fold
23081
23039
  },
23082
23040
  {
23083
23041
  name: "expand",
23084
- load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-DDY72p2b.cjs"))).expand
23042
+ load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-G5CJH3PA.cjs"))).expand
23085
23043
  },
23086
23044
  {
23087
23045
  name: "unexpand",
23088
- load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-CFnBK3Ia.cjs"))).unexpand
23046
+ load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-vC8hn1hf.cjs"))).unexpand
23089
23047
  },
23090
23048
  {
23091
23049
  name: "strings",
23092
- load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-z2tCrrrz.cjs"))).strings
23050
+ load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-X5aIjktj.cjs"))).strings
23093
23051
  },
23094
23052
  {
23095
23053
  name: "split",
23096
- load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-C0NLbt_2.cjs"))).split
23054
+ load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-B8N-gJB3.cjs"))).split
23097
23055
  },
23098
23056
  {
23099
23057
  name: "column",
23100
- load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-D-78wzPk.cjs"))).column
23058
+ load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-Cb4XDBZJ.cjs"))).column
23101
23059
  },
23102
23060
  {
23103
23061
  name: "join",
23104
- load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-C7-r2rFy.cjs"))).join
23062
+ load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-BYjOL7Ba.cjs"))).join
23105
23063
  },
23106
23064
  {
23107
23065
  name: "tee",
23108
- load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-DR5NHLOg.cjs"))).teeCommand
23066
+ load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-C6ugBNOg.cjs"))).teeCommand
23109
23067
  },
23110
23068
  {
23111
23069
  name: "find",
23112
- load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-DlAfg13Y.cjs"))).findCommand
23070
+ load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-D_8fgIQ0.cjs"))).findCommand
23113
23071
  },
23114
23072
  {
23115
23073
  name: "basename",
@@ -23121,19 +23079,19 @@ var tt = [
23121
23079
  },
23122
23080
  {
23123
23081
  name: "tree",
23124
- load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-BeXLduiX.cjs"))).treeCommand
23082
+ load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-C1O0qAuH.cjs"))).treeCommand
23125
23083
  },
23126
23084
  {
23127
23085
  name: "du",
23128
- load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-Gor9ub7v.cjs"))).duCommand
23086
+ load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-DCWIQpN2.cjs"))).duCommand
23129
23087
  },
23130
23088
  {
23131
23089
  name: "env",
23132
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-BOaquG0r.cjs"))).envCommand
23090
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DrOGqPnU.cjs"))).envCommand
23133
23091
  },
23134
23092
  {
23135
23093
  name: "printenv",
23136
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-BOaquG0r.cjs"))).printenvCommand
23094
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DrOGqPnU.cjs"))).printenvCommand
23137
23095
  },
23138
23096
  {
23139
23097
  name: "alias",
@@ -23149,7 +23107,7 @@ var tt = [
23149
23107
  },
23150
23108
  {
23151
23109
  name: "xargs",
23152
- load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-C5vvLUSN.cjs"))).xargsCommand
23110
+ load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-BU6-n_Ua.cjs"))).xargsCommand
23153
23111
  },
23154
23112
  {
23155
23113
  name: "true",
@@ -23165,23 +23123,23 @@ var tt = [
23165
23123
  },
23166
23124
  {
23167
23125
  name: "bash",
23168
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-DMr1WrAX.cjs"))).bashCommand
23126
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-CkUuWEwi.cjs"))).bashCommand
23169
23127
  },
23170
23128
  {
23171
23129
  name: "sh",
23172
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-DMr1WrAX.cjs"))).shCommand
23130
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-CkUuWEwi.cjs"))).shCommand
23173
23131
  },
23174
23132
  {
23175
23133
  name: "jq",
23176
- load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-DvRkoRHs.cjs"))).jqCommand
23134
+ load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-BXxSQywX.cjs"))).jqCommand
23177
23135
  },
23178
23136
  {
23179
23137
  name: "base64",
23180
- load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-Bsn2MlQu.cjs"))).base64Command
23138
+ load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-DcuQcnyt.cjs"))).base64Command
23181
23139
  },
23182
23140
  {
23183
23141
  name: "diff",
23184
- load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-C1AIAesr.cjs"))).diffCommand
23142
+ load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-CXpUSmgO.cjs"))).diffCommand
23185
23143
  },
23186
23144
  {
23187
23145
  name: "date",
@@ -23189,15 +23147,15 @@ var tt = [
23189
23147
  },
23190
23148
  {
23191
23149
  name: "sleep",
23192
- load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-Urif1Mim.cjs"))).sleepCommand
23150
+ load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-zYYHknIH.cjs"))).sleepCommand
23193
23151
  },
23194
23152
  {
23195
23153
  name: "timeout",
23196
- load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-Bg3sU17C.cjs"))).timeoutCommand
23154
+ load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-Ch4mc1AF.cjs"))).timeoutCommand
23197
23155
  },
23198
23156
  {
23199
23157
  name: "time",
23200
- load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-BGCDzdSH.cjs"))).timeCommand
23158
+ load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-CXDpBKgi.cjs"))).timeCommand
23201
23159
  },
23202
23160
  {
23203
23161
  name: "seq",
@@ -23205,19 +23163,19 @@ var tt = [
23205
23163
  },
23206
23164
  {
23207
23165
  name: "expr",
23208
- load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-CdeFE19X.cjs"))).exprCommand
23166
+ load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-DuW3SNU7.cjs"))).exprCommand
23209
23167
  },
23210
23168
  {
23211
23169
  name: "md5sum",
23212
- load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-Dv-imBX7.cjs"))).md5sumCommand
23170
+ load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-CdpTF-_K.cjs"))).md5sumCommand
23213
23171
  },
23214
23172
  {
23215
23173
  name: "sha1sum",
23216
- load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-1t4ssenS.cjs"))).sha1sumCommand
23174
+ load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-B86iY7LQ.cjs"))).sha1sumCommand
23217
23175
  },
23218
23176
  {
23219
23177
  name: "sha256sum",
23220
- load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-27eM-Z_8.cjs"))).sha256sumCommand
23178
+ load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-DWv1gs51.cjs"))).sha256sumCommand
23221
23179
  },
23222
23180
  {
23223
23181
  name: "file",
@@ -23225,11 +23183,11 @@ var tt = [
23225
23183
  },
23226
23184
  {
23227
23185
  name: "html-to-markdown",
23228
- load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-BgYA4aOc.cjs"))).htmlToMarkdownCommand
23186
+ load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-BLzBMUTV.cjs"))).htmlToMarkdownCommand
23229
23187
  },
23230
23188
  {
23231
23189
  name: "help",
23232
- load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-Qzl16zNq.cjs"))).helpCommand
23190
+ load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-B5tkYXb5.cjs"))).helpCommand
23233
23191
  },
23234
23192
  {
23235
23193
  name: "which",
@@ -23237,7 +23195,7 @@ var tt = [
23237
23195
  },
23238
23196
  {
23239
23197
  name: "tac",
23240
- load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-BeWTeefF.cjs"))).tac
23198
+ load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-DJQmV0Bu.cjs"))).tac
23241
23199
  },
23242
23200
  {
23243
23201
  name: "hostname",
@@ -23249,49 +23207,49 @@ var tt = [
23249
23207
  },
23250
23208
  {
23251
23209
  name: "od",
23252
- load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-D21mvx_N.cjs"))).od
23210
+ load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-BwF4po_J.cjs"))).od
23253
23211
  },
23254
23212
  {
23255
23213
  name: "gzip",
23256
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-D0aGDe6h.cjs"))).gzipCommand
23214
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-segyQv2z.cjs"))).gzipCommand
23257
23215
  },
23258
23216
  {
23259
23217
  name: "gunzip",
23260
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-D0aGDe6h.cjs"))).gunzipCommand
23218
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-segyQv2z.cjs"))).gunzipCommand
23261
23219
  },
23262
23220
  {
23263
23221
  name: "zcat",
23264
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-D0aGDe6h.cjs"))).zcatCommand
23222
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-segyQv2z.cjs"))).zcatCommand
23265
23223
  }
23266
23224
  ];
23267
23225
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (tt.push({
23268
23226
  name: "tar",
23269
- load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-Bi0zxlHZ.cjs"))).tarCommand
23227
+ load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-DCjYLLQu.cjs"))).tarCommand
23270
23228
  }), tt.push({
23271
23229
  name: "yq",
23272
- load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-BCAl5n0x.cjs"))).yqCommand
23230
+ load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-C2kjRqdI.cjs"))).yqCommand
23273
23231
  }), tt.push({
23274
23232
  name: "xan",
23275
- load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-D87C2Cbw.cjs"))).xanCommand
23233
+ load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-DP-IdHxL.cjs"))).xanCommand
23276
23234
  }), tt.push({
23277
23235
  name: "sqlite3",
23278
- load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-DpLM2ecz.cjs"))).sqlite3Command
23236
+ load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-CkK_A9Ld.cjs"))).sqlite3Command
23279
23237
  }));
23280
23238
  var Yt = [];
23281
23239
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Yt.push({
23282
23240
  name: "python3",
23283
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-Ck-wgzU7.cjs"))).python3Command
23241
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-BN3Jttuk.cjs"))).python3Command
23284
23242
  }), Yt.push({
23285
23243
  name: "python",
23286
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-Ck-wgzU7.cjs"))).pythonCommand
23244
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-BN3Jttuk.cjs"))).pythonCommand
23287
23245
  }));
23288
23246
  var Qt = [];
23289
23247
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Qt.push({
23290
23248
  name: "js-exec",
23291
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-CMI7Q7vB.cjs"))).jsExecCommand
23249
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-BQUZSyms.cjs"))).jsExecCommand
23292
23250
  }), Qt.push({
23293
23251
  name: "node",
23294
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-CMI7Q7vB.cjs"))).nodeStubCommand
23252
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-BQUZSyms.cjs"))).nodeStubCommand
23295
23253
  }));
23296
23254
  new TextEncoder();
23297
23255
  Object.freeze({
@@ -25953,7 +25911,7 @@ function withOrganizationProjectDatabase() {
25953
25911
  trace.getTracer("keystroke.http");
25954
25912
  //#endregion
25955
25913
  //#region src/routes/account/users/me/avatar/GET.ts
25956
- const handler$102 = async (c) => {
25914
+ const handler$107 = async (c) => {
25957
25915
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(c.get("user").id);
25958
25916
  if (!dbUser) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25959
25917
  return c.json(require_dist$1.UserAvatarSchema.parse({ url: dbUser.image ?? null }));
@@ -25972,7 +25930,7 @@ function avatarExtensionForContentType(contentType) {
25972
25930
  }
25973
25931
  //#endregion
25974
25932
  //#region src/routes/account/users/me/avatar/presign/POST.ts
25975
- const handler$101 = async (c) => {
25933
+ const handler$106 = async (c) => {
25976
25934
  const parsed = require_dist$1.PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
25977
25935
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
25978
25936
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -26012,7 +25970,7 @@ async function deleteStoredImageIfOwned(input) {
26012
25970
  }
26013
25971
  //#endregion
26014
25972
  //#region src/routes/account/users/me/avatar/PATCH.ts
26015
- const handler$100 = async (c) => {
25973
+ const handler$105 = async (c) => {
26016
25974
  const parsed = require_dist$1.UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
26017
25975
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
26018
25976
  const user = c.get("user");
@@ -26054,14 +26012,14 @@ const handler$100 = async (c) => {
26054
26012
  };
26055
26013
  //#endregion
26056
26014
  //#region src/routes/account/users/me/preferences/GET.ts
26057
- const handler$99 = async (c) => {
26015
+ const handler$104 = async (c) => {
26058
26016
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(c.get("user").id);
26059
26017
  if (!dbUser) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User not found" }), 404);
26060
26018
  return c.json(require_dist$1.UserPreferencesSchema.parse(require_dist$1.normalizeUserPreferences(dbUser.preferences)));
26061
26019
  };
26062
26020
  //#endregion
26063
26021
  //#region src/routes/account/users/me/preferences/PATCH.ts
26064
- const handler$98 = async (c) => {
26022
+ const handler$103 = async (c) => {
26065
26023
  const parsed = require_dist$1.UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
26066
26024
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
26067
26025
  const user = c.get("user");
@@ -26076,7 +26034,7 @@ const handler$98 = async (c) => {
26076
26034
  };
26077
26035
  //#endregion
26078
26036
  //#region src/routes/account/organizations/GET.ts
26079
- const handler$97 = async (c) => {
26037
+ const handler$102 = async (c) => {
26080
26038
  const memberships = await (0, _keystrokehq_platform_database.selectUserOrganizations)(c.get("user").id);
26081
26039
  return c.json(require_dist$1.ListOrganizationsResponseSchema.parse(memberships.map(require_dist$1.mapUserOrganization)));
26082
26040
  };
@@ -26199,7 +26157,7 @@ function createOrganizationHandler(deps) {
26199
26157
  }
26200
26158
  //#endregion
26201
26159
  //#region src/routes/account/organizations/slug-available/GET.ts
26202
- const handler$96 = async (c) => {
26160
+ const handler$101 = async (c) => {
26203
26161
  const parsed = require_dist$1.SlugAvailabilityQuerySchema.safeParse({
26204
26162
  slug: c.req.query("slug"),
26205
26163
  excludeOrganizationId: c.req.query("excludeOrganizationId")
@@ -26210,7 +26168,7 @@ const handler$96 = async (c) => {
26210
26168
  };
26211
26169
  //#endregion
26212
26170
  //#region src/routes/account/organizations/[organizationId]/GET.ts
26213
- const handler$95 = async (c) => {
26171
+ const handler$100 = async (c) => {
26214
26172
  const { organizationId } = c.get("organization");
26215
26173
  const membership = await (0, _keystrokehq_platform_database.selectUserOrganizationMembership)(c.get("user").id, organizationId);
26216
26174
  if (!membership) throw new Error(`Organization membership missing after param guard: ${organizationId}`);
@@ -26218,7 +26176,7 @@ const handler$95 = async (c) => {
26218
26176
  };
26219
26177
  //#endregion
26220
26178
  //#region src/routes/account/organizations/[organizationId]/PATCH.ts
26221
- const handler$94 = async (c) => {
26179
+ const handler$99 = async (c) => {
26222
26180
  const organization = c.get("organization");
26223
26181
  const body = await c.req.json().catch(() => null);
26224
26182
  const parsed = require_dist$1.UpdateOrganizationRequestSchema.safeParse(body);
@@ -26243,7 +26201,7 @@ const handler$94 = async (c) => {
26243
26201
  };
26244
26202
  //#endregion
26245
26203
  //#region src/routes/account/organizations/[organizationId]/branding/GET.ts
26246
- const handler$93 = async (c) => {
26204
+ const handler$98 = async (c) => {
26247
26205
  const { organizationId } = c.get("organization");
26248
26206
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
26249
26207
  if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
@@ -26292,7 +26250,7 @@ async function finalizeOrgLogoVariant(input) {
26292
26250
  publicUrl: finalized.publicUrl
26293
26251
  };
26294
26252
  }
26295
- const handler$92 = async (c) => {
26253
+ const handler$97 = async (c) => {
26296
26254
  const parsed = require_dist$1.OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
26297
26255
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
26298
26256
  const { organizationId } = c.get("organization");
@@ -26320,7 +26278,7 @@ const handler$92 = async (c) => {
26320
26278
  };
26321
26279
  //#endregion
26322
26280
  //#region src/routes/account/organizations/[organizationId]/branding/logo/presign/POST.ts
26323
- const handler$91 = async (c) => {
26281
+ const handler$96 = async (c) => {
26324
26282
  const parsed = require_dist$1.PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
26325
26283
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
26326
26284
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -26530,7 +26488,7 @@ function buildPlatformHistoryUsage(events, durationMs) {
26530
26488
  }
26531
26489
  //#endregion
26532
26490
  //#region src/routes/account/history/GET.ts
26533
- const handler$90 = async (c) => {
26491
+ const handler$95 = async (c) => {
26534
26492
  const organization = c.get("organization");
26535
26493
  const ctx = accessContext(c);
26536
26494
  const query = require_dist$1.HistoryRunListQuerySchema.parse({
@@ -26555,7 +26513,7 @@ const handler$90 = async (c) => {
26555
26513
  };
26556
26514
  //#endregion
26557
26515
  //#region src/routes/account/history/[runId]/GET.ts
26558
- const handler$89 = async (c) => {
26516
+ const handler$94 = async (c) => {
26559
26517
  const runId = c.req.param("runId") ?? "";
26560
26518
  if (!runId) return c.json(null, 404);
26561
26519
  const core = await (0, _keystrokehq_database.findHistoryRunCore)(runId);
@@ -26615,7 +26573,7 @@ function toAgentSummary(row, options) {
26615
26573
  }
26616
26574
  //#endregion
26617
26575
  //#region src/routes/account/agents/GET.ts
26618
- const handler$88 = async (c) => {
26576
+ const handler$93 = async (c) => {
26619
26577
  const filter = await resolveListProjectIds(c, listScope(c, agentListScope(accessContext(c))), c.req.query("projectId"));
26620
26578
  if (filter === "empty") return c.json(require_dist$1.AgentSummaryListResponseSchema.parse([]));
26621
26579
  const rows = await (0, _keystrokehq_database.listActiveAgents)(filter);
@@ -26629,7 +26587,7 @@ function touchResourceActivityBestEffort(options) {
26629
26587
  }
26630
26588
  //#endregion
26631
26589
  //#region src/routes/account/agents/[agentId]/GET.ts
26632
- const handler$87 = async (c) => {
26590
+ const handler$92 = async (c) => {
26633
26591
  const agentId = c.req.param("agentId") ?? "";
26634
26592
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
26635
26593
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.AgentSummaryDetailResponseSchema.parse(null));
@@ -26652,7 +26610,7 @@ const handler$87 = async (c) => {
26652
26610
  function relativePathsFromStorageKeys(prefix, keys) {
26653
26611
  return keys.filter((key) => key.startsWith(prefix) && key.endsWith(".md")).map((key) => key.slice(prefix.length)).filter((path) => !path.startsWith(".") && !path.includes("/."));
26654
26612
  }
26655
- const handler$86 = async (c) => {
26613
+ const handler$91 = async (c) => {
26656
26614
  const agentId = c.req.param("agentId") ?? "";
26657
26615
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
26658
26616
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
@@ -26677,7 +26635,7 @@ function isStorageNotFoundError(error) {
26677
26635
  const status = typeof record.$metadata === "object" && record.$metadata !== null ? record.$metadata.httpStatusCode : void 0;
26678
26636
  return name === "NoSuchKey" || code === "NoSuchKey" || code === "NotFound" || status === 404;
26679
26637
  }
26680
- const handler$85 = async (c) => {
26638
+ const handler$90 = async (c) => {
26681
26639
  const agentId = c.req.param("agentId") ?? "";
26682
26640
  const path = c.req.query("path");
26683
26641
  if (!path) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
@@ -26731,7 +26689,7 @@ function workspaceRelativePathsFromStorageKeys(keys) {
26731
26689
  }
26732
26690
  //#endregion
26733
26691
  //#region src/routes/account/agents/[agentId]/workspace/files/GET.ts
26734
- const handler$84 = async (c) => {
26692
+ const handler$89 = async (c) => {
26735
26693
  const agentId = c.req.param("agentId") ?? "";
26736
26694
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
26737
26695
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(require_dist$1.ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
@@ -26754,7 +26712,7 @@ const handler$84 = async (c) => {
26754
26712
  };
26755
26713
  //#endregion
26756
26714
  //#region src/routes/account/agents/[agentId]/workspace/files/content/GET.ts
26757
- const handler$83 = async (c) => {
26715
+ const handler$88 = async (c) => {
26758
26716
  const agentId = c.req.param("agentId") ?? "";
26759
26717
  const path = c.req.query("path");
26760
26718
  if (!path) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
@@ -26806,7 +26764,7 @@ async function cancelHistoryRun(c, kind, cancel) {
26806
26764
  }
26807
26765
  //#endregion
26808
26766
  //#region src/routes/account/agents/sessions/[sessionId]/cancel/POST.ts
26809
- const handler$82 = (c) => cancelHistoryRun(c, "agent", _keystrokehq_database.cancelAgentSession);
26767
+ const handler$87 = (c) => cancelHistoryRun(c, "agent", _keystrokehq_database.cancelAgentSession);
26810
26768
  //#endregion
26811
26769
  //#region src/routes/account/resources/workflows.ts
26812
26770
  function toWorkflowSummary(row, options) {
@@ -26823,7 +26781,7 @@ function toWorkflowSummary(row, options) {
26823
26781
  }
26824
26782
  //#endregion
26825
26783
  //#region src/routes/account/workflows/GET.ts
26826
- const handler$81 = async (c) => {
26784
+ const handler$86 = async (c) => {
26827
26785
  const filter = await resolveListProjectIds(c, listScope(c, workflowListScope(accessContext(c))), c.req.query("projectId"));
26828
26786
  if (filter === "empty") return c.json(require_dist$1.WorkflowSummaryListResponseSchema.parse([]));
26829
26787
  const rows = await (0, _keystrokehq_database.listActiveWorkflows)(filter);
@@ -26832,7 +26790,7 @@ const handler$81 = async (c) => {
26832
26790
  };
26833
26791
  //#endregion
26834
26792
  //#region src/routes/account/workflows/[workflowId]/GET.ts
26835
- const handler$80 = async (c) => {
26793
+ const handler$85 = async (c) => {
26836
26794
  const workflowId = c.req.param("workflowId") ?? "";
26837
26795
  const row = workflowId ? await (0, _keystrokehq_database.selectActiveWorkflowById)(workflowId) : void 0;
26838
26796
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return c.json(require_dist$1.WorkflowSummaryDetailResponseSchema.parse(null));
@@ -27283,7 +27241,7 @@ function buildWorkflowCanvas(input) {
27283
27241
  //#region src/routes/account/workflows/[workflowId]/canvas/GET.ts
27284
27242
  /** Bumped when the annotation prompt/model changes, so cached annotations invalidate. */
27285
27243
  const ANNOTATIONS_GENERATOR_VERSION = "wf-canvas-annotations-v1";
27286
- const handler$79 = async (c) => {
27244
+ const handler$84 = async (c) => {
27287
27245
  const organization = c.get("organization");
27288
27246
  const workflowId = c.req.param("workflowId") ?? "";
27289
27247
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27456,7 +27414,7 @@ function toBinding(key, description) {
27456
27414
  * each of its requirements currently binds to (read-only, no decryption). Not
27457
27415
  * content-hash cached — credential state changes without a redeploy.
27458
27416
  */
27459
- const handler$78 = async (c) => {
27417
+ const handler$83 = async (c) => {
27460
27418
  const workflowId = c.req.param("workflowId") ?? "";
27461
27419
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27462
27420
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27615,7 +27573,7 @@ function toCanvasRunStatus(status) {
27615
27573
  if (status === "canceled") return "canceled";
27616
27574
  return "running";
27617
27575
  }
27618
- const handler$77 = async (c) => {
27576
+ const handler$82 = async (c) => {
27619
27577
  const workflowId = c.req.param("workflowId") ?? "";
27620
27578
  const runId = c.req.param("runId") ?? "";
27621
27579
  if (!workflowId.trim() || !runId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow or run id" }), 400);
@@ -27670,7 +27628,7 @@ async function loadWorkflowSource(organization, projectId, sourcePath) {
27670
27628
  return null;
27671
27629
  }
27672
27630
  }
27673
- const handler$76 = async (c) => {
27631
+ const handler$81 = async (c) => {
27674
27632
  const organization = c.get("organization");
27675
27633
  const workflowId = c.req.param("workflowId") ?? "";
27676
27634
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27771,7 +27729,7 @@ const handler$76 = async (c) => {
27771
27729
  };
27772
27730
  //#endregion
27773
27731
  //#region src/routes/account/workflows/[workflowId]/run-inputs/GET.ts
27774
- const handler$75 = async (c) => {
27732
+ const handler$80 = async (c) => {
27775
27733
  const workflowId = c.req.param("workflowId") ?? "";
27776
27734
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27777
27735
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27786,7 +27744,7 @@ const handler$75 = async (c) => {
27786
27744
  };
27787
27745
  //#endregion
27788
27746
  //#region src/routes/account/workflows/[workflowId]/run-inputs/PUT.ts
27789
- const handler$74 = async (c) => {
27747
+ const handler$79 = async (c) => {
27790
27748
  const workflowId = c.req.param("workflowId") ?? "";
27791
27749
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27792
27750
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27809,7 +27767,7 @@ const handler$74 = async (c) => {
27809
27767
  };
27810
27768
  //#endregion
27811
27769
  //#region src/routes/account/workflows/[workflowId]/run/POST.ts
27812
- function parseRunInput(requestSchema, input) {
27770
+ function parseRunInput$1(requestSchema, input) {
27813
27771
  if (typeof zod.z.fromJSONSchema === "function") return zod.z.fromJSONSchema(requestSchema).parse(input ?? {});
27814
27772
  return zod.z.record(zod.z.string(), zod.z.unknown()).parse(input ?? {});
27815
27773
  }
@@ -27818,7 +27776,7 @@ function parseRunInput(requestSchema, input) {
27818
27776
  * the workflow row's request schema, creates a pending run, and enqueues it on
27819
27777
  * the project's queue (drained by the project runtime worker). Returns the run id.
27820
27778
  */
27821
- const handler$73 = async (c) => {
27779
+ const handler$78 = async (c) => {
27822
27780
  const { organizationId } = c.get("organization");
27823
27781
  const workflowId = c.req.param("workflowId") ?? "";
27824
27782
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27843,7 +27801,7 @@ const handler$73 = async (c) => {
27843
27801
  workflowKey: row.slug,
27844
27802
  input: body,
27845
27803
  jobQueue: scheduler,
27846
- parseInput: (value) => parseRunInput(requestSchema, value),
27804
+ parseInput: (value) => parseRunInput$1(requestSchema, value),
27847
27805
  ranByUserId: userId
27848
27806
  });
27849
27807
  });
@@ -27854,6 +27812,106 @@ const handler$73 = async (c) => {
27854
27812
  }
27855
27813
  };
27856
27814
  //#endregion
27815
+ //#region src/lib/public-form-url.ts
27816
+ function buildPublicFormUrl(token) {
27817
+ return `${(process.env.PUBLIC_WEB_URL?.trim() || "http://localhost:3000").replace(/\/$/, "")}/forms/${encodeURIComponent(token)}`;
27818
+ }
27819
+ //#endregion
27820
+ //#region src/routes/account/workflows/[workflowId]/form/shared.ts
27821
+ function publishedFormResponse(form, workflowId) {
27822
+ return require_dist$1.PublishedFormSchema.parse({
27823
+ id: form.id,
27824
+ workflowId,
27825
+ workflowSlug: form.workflowSlug,
27826
+ enabled: form.enabled,
27827
+ title: form.title,
27828
+ description: form.description,
27829
+ fieldConfig: form.fieldConfig,
27830
+ publicUrl: buildPublicFormUrl(form.token),
27831
+ createdAt: form.createdAt.toISOString(),
27832
+ updatedAt: form.updatedAt.toISOString()
27833
+ });
27834
+ }
27835
+ async function resolveFormWorkflow(c, { requireManageAccess = false } = {}) {
27836
+ const workflowId = c.req.param("workflowId")?.trim();
27837
+ if (!workflowId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27838
+ const workflow = await resolveWorkflow(c, workflowId);
27839
+ if (!workflow) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
27840
+ if (requireManageAccess && !await canPerformProjectAction(c, workflow.projectId, projectActions.update)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Forbidden" }), 403);
27841
+ return {
27842
+ workflowId,
27843
+ projectId: workflow.projectId,
27844
+ row: workflow.row
27845
+ };
27846
+ }
27847
+ async function resolvePublishableInputSchema(projectId, row) {
27848
+ const requestSchema = await resolveWorkflowRequestSchema(projectId, row);
27849
+ if (!requestSchema) return new Response(JSON.stringify({ error: "Workflow not deployed" }), { status: 404 });
27850
+ const inputSchema = require_dist$1.jsonSchemaToWorkflowInputSchema(requestSchema);
27851
+ if (inputSchema.fields.length === 0) return new Response(JSON.stringify({ error: "Workflow does not accept inputs" }), { status: 409 });
27852
+ if (require_dist$1.schemaHasFileFields(inputSchema)) return new Response(JSON.stringify({ error: "Forms do not support file inputs yet" }), { status: 409 });
27853
+ if (require_dist$1.schemaHasUnsupportedFormFields(inputSchema)) return new Response(JSON.stringify({ error: "Forms support scalar fields and arrays of scalar fields only" }), { status: 409 });
27854
+ return inputSchema;
27855
+ }
27856
+ //#endregion
27857
+ //#region src/routes/account/workflows/[workflowId]/form/GET.ts
27858
+ const handler$77 = async (c) => {
27859
+ const resolved = await resolveFormWorkflow(c);
27860
+ if (resolved instanceof Response) return resolved;
27861
+ const { organizationId } = c.get("organization");
27862
+ const form = await (0, _keystrokehq_platform_database.selectPublishedFormForWorkflow)(organizationId, resolved.projectId, resolved.row.slug);
27863
+ return c.json(require_dist$1.WorkflowFormResponseSchema.parse(form ? publishedFormResponse(form, resolved.workflowId) : null));
27864
+ };
27865
+ //#endregion
27866
+ //#region src/routes/account/workflows/[workflowId]/form/PUT.ts
27867
+ const handler$76 = async (c) => {
27868
+ const resolved = await resolveFormWorkflow(c, { requireManageAccess: true });
27869
+ if (resolved instanceof Response) return resolved;
27870
+ const body = require_dist$1.WorkflowFormUpsertBodySchema.safeParse(await c.req.json().catch(() => null));
27871
+ if (!body.success) {
27872
+ const message = body.error.issues[0]?.message ?? "Invalid request body";
27873
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 400);
27874
+ }
27875
+ const inputSchema = await resolvePublishableInputSchema(resolved.projectId, resolved.row);
27876
+ if (inputSchema instanceof Response) return inputSchema;
27877
+ if (body.data.fieldConfig) {
27878
+ const validation = require_dist$1.validateFormFieldConfig(inputSchema, body.data.fieldConfig);
27879
+ if (!validation.ok) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: validation.error }), 400);
27880
+ }
27881
+ const { organizationId } = c.get("organization");
27882
+ const form = await (0, _keystrokehq_platform_database.upsertPublishedForm)({
27883
+ organizationId,
27884
+ projectId: resolved.projectId,
27885
+ workflowSlug: resolved.row.slug,
27886
+ createdByUserId: c.get("user").id,
27887
+ enabled: body.data.enabled ?? true,
27888
+ ...body.data.title !== void 0 ? { title: body.data.title } : {},
27889
+ ...body.data.description !== void 0 ? { description: body.data.description } : {},
27890
+ ...body.data.fieldConfig !== void 0 ? { fieldConfig: body.data.fieldConfig } : {}
27891
+ });
27892
+ return c.json(publishedFormResponse(form, resolved.workflowId));
27893
+ };
27894
+ //#endregion
27895
+ //#region src/routes/account/workflows/[workflowId]/form/DELETE.ts
27896
+ const handler$75 = async (c) => {
27897
+ const resolved = await resolveFormWorkflow(c, { requireManageAccess: true });
27898
+ if (resolved instanceof Response) return resolved;
27899
+ const { organizationId } = c.get("organization");
27900
+ const form = await (0, _keystrokehq_platform_database.unpublishFormForWorkflow)(organizationId, resolved.projectId, resolved.row.slug);
27901
+ if (!form) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
27902
+ return c.json(publishedFormResponse(form, resolved.workflowId));
27903
+ };
27904
+ //#endregion
27905
+ //#region src/routes/account/workflows/[workflowId]/form/rotate/POST.ts
27906
+ const handler$74 = async (c) => {
27907
+ const resolved = await resolveFormWorkflow(c, { requireManageAccess: true });
27908
+ if (resolved instanceof Response) return resolved;
27909
+ const { organizationId } = c.get("organization");
27910
+ const form = await (0, _keystrokehq_platform_database.rotatePublishedFormToken)(organizationId, resolved.projectId, resolved.row.slug);
27911
+ if (!form) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
27912
+ return c.json(publishedFormResponse(form, resolved.workflowId));
27913
+ };
27914
+ //#endregion
27857
27915
  //#region src/routes/account/workflows/[workflowId]/attachments/presign/POST.ts
27858
27916
  function extensionFromUpload$1(contentType, filename) {
27859
27917
  const fromName = filename.includes(".") ? filename.split(".").pop()?.toLowerCase() : void 0;
@@ -27867,7 +27925,7 @@ function extensionFromUpload$1(contentType, filename) {
27867
27925
  * hydration reads by project id + storage key, so runs read the file the same
27868
27926
  * way `storeFile` output does.
27869
27927
  */
27870
- const handler$72 = async (c) => {
27928
+ const handler$73 = async (c) => {
27871
27929
  const { organizationId } = c.get("organization");
27872
27930
  const workflowId = c.req.param("workflowId") ?? "";
27873
27931
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27892,7 +27950,7 @@ const handler$72 = async (c) => {
27892
27950
  };
27893
27951
  //#endregion
27894
27952
  //#region src/routes/account/workflows/[workflowId]/runs/GET.ts
27895
- const handler$71 = async (c) => {
27953
+ const handler$72 = async (c) => {
27896
27954
  const workflowId = c.req.param("workflowId") ?? "";
27897
27955
  if (!workflowId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27898
27956
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27915,7 +27973,7 @@ const handler$71 = async (c) => {
27915
27973
  };
27916
27974
  //#endregion
27917
27975
  //#region src/routes/account/workflows/runs/[runId]/cancel/POST.ts
27918
- const handler$70 = (c) => cancelHistoryRun(c, "workflow", _keystrokehq_database.cancelWorkflowRun);
27976
+ const handler$71 = (c) => cancelHistoryRun(c, "workflow", _keystrokehq_database.cancelWorkflowRun);
27919
27977
  //#endregion
27920
27978
  //#region src/routes/account/resources/skills.ts
27921
27979
  function toSkillSummary(row) {
@@ -27932,7 +27990,7 @@ function toSkillSummary(row) {
27932
27990
  }
27933
27991
  //#endregion
27934
27992
  //#region src/routes/account/skills/GET.ts
27935
- const handler$69 = async (c) => {
27993
+ const handler$70 = async (c) => {
27936
27994
  const filter = await resolveListProjectIds(c, listScope(c, skillListScope(accessContext(c))), c.req.query("projectId"));
27937
27995
  if (filter === "empty") return c.json(require_dist$1.SkillSummaryListResponseSchema.parse([]));
27938
27996
  const rows = await (0, _keystrokehq_database.listActiveSkills)(filter);
@@ -27940,7 +27998,7 @@ const handler$69 = async (c) => {
27940
27998
  };
27941
27999
  //#endregion
27942
28000
  //#region src/routes/account/skills/[skillId]/GET.ts
27943
- const handler$68 = async (c) => {
28001
+ const handler$69 = async (c) => {
27944
28002
  const skillId = c.req.param("skillId") ?? "";
27945
28003
  const row = skillId ? await (0, _keystrokehq_database.selectActiveSkillById)(skillId) : void 0;
27946
28004
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessSkill)) return c.json(require_dist$1.SkillSummaryDetailResponseSchema.parse(null));
@@ -28049,7 +28107,7 @@ function toWorkspaceTriggerRunSummary(item, assignments) {
28049
28107
  }
28050
28108
  //#endregion
28051
28109
  //#region src/routes/account/triggers/GET.ts
28052
- const handler$67 = async (c) => {
28110
+ const handler$68 = async (c) => {
28053
28111
  const organization = c.get("organization");
28054
28112
  const scope = listScope(c, projectListScope(accessContext(c)));
28055
28113
  const filter = await resolveListProjectIds(c, scope, c.req.query("projectId"));
@@ -28061,7 +28119,7 @@ const handler$67 = async (c) => {
28061
28119
  };
28062
28120
  //#endregion
28063
28121
  //#region src/routes/account/triggers/[triggerId]/GET.ts
28064
- const handler$66 = async (c) => {
28122
+ const handler$67 = async (c) => {
28065
28123
  const organization = c.get("organization");
28066
28124
  const triggerId = c.req.param("triggerId") ?? "";
28067
28125
  if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
@@ -28077,7 +28135,7 @@ const handler$66 = async (c) => {
28077
28135
  };
28078
28136
  //#endregion
28079
28137
  //#region src/routes/account/triggers/[triggerId]/runs/GET.ts
28080
- const handler$65 = async (c) => {
28138
+ const handler$66 = async (c) => {
28081
28139
  const triggerId = c.req.param("triggerId") ?? "";
28082
28140
  if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
28083
28141
  const filter = await resolveListProjectIds(c, listScope(c, projectListScope(accessContext(c))));
@@ -28106,7 +28164,7 @@ const handler$65 = async (c) => {
28106
28164
  };
28107
28165
  //#endregion
28108
28166
  //#region src/routes/account/triggers/[triggerId]/file/GET.ts
28109
- const handler$64 = async (c) => {
28167
+ const handler$65 = async (c) => {
28110
28168
  const { organizationId } = c.get("organization");
28111
28169
  const triggerId = c.req.param("triggerId") ?? "";
28112
28170
  if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
@@ -28143,7 +28201,7 @@ function envelope(row, status, hash) {
28143
28201
  model: row.overviewModel ?? "deepseek/deepseek-v4-flash"
28144
28202
  });
28145
28203
  }
28146
- const handler$63 = async (c) => {
28204
+ const handler$64 = async (c) => {
28147
28205
  const { organizationId } = c.get("organization");
28148
28206
  const triggerId = c.req.param("triggerId") ?? "";
28149
28207
  if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
@@ -28225,7 +28283,7 @@ async function syncNativeTriggerSchedule(organization, trigger) {
28225
28283
  }
28226
28284
  await scheduler.removeTriggerSchedule?.(trigger.slug, trigger.projectId);
28227
28285
  }
28228
- const handler$62 = async (c) => {
28286
+ const handler$63 = async (c) => {
28229
28287
  const organization = c.get("organization");
28230
28288
  const triggerId = c.req.param("triggerId") ?? "";
28231
28289
  const attachmentId = c.req.param("attachmentId") ?? "";
@@ -28297,7 +28355,7 @@ var InvokeHttpError = class extends Error {
28297
28355
  * Manually invoke a trigger from the dashboard or CLI. Validates webhook input against
28298
28356
  * stored attachment schemas, then enqueues a trigger job on the project's queue.
28299
28357
  */
28300
- const handler$61 = async (c) => {
28358
+ const handler$62 = async (c) => {
28301
28359
  const { organizationId } = c.get("organization");
28302
28360
  const triggerId = c.req.param("triggerId") ?? "";
28303
28361
  if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
@@ -28370,7 +28428,7 @@ const handler$61 = async (c) => {
28370
28428
  * Form metadata for the dashboard invoke popover: webhook request schemas and
28371
28429
  * cron's read-only static payload.
28372
28430
  */
28373
- const handler$60 = async (c) => {
28431
+ const handler$61 = async (c) => {
28374
28432
  const triggerId = c.req.param("triggerId") ?? "";
28375
28433
  if (!triggerId.trim()) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
28376
28434
  const filter = await resolveListProjectIds(c, listScope(c, projectListScope(accessContext(c))));
@@ -28436,7 +28494,7 @@ function latestRecentInteractionAt(recent) {
28436
28494
  //#endregion
28437
28495
  //#region src/routes/account/recents/GET.ts
28438
28496
  const RECENTS_LIMIT = 50;
28439
- const handler$59 = async (c) => {
28497
+ const handler$60 = async (c) => {
28440
28498
  const userId = c.get("user").id;
28441
28499
  const organization = c.get("organization");
28442
28500
  const grantedProjectIdsList = await grantedProjectIds(c, { kind: "member-only" });
@@ -28462,7 +28520,7 @@ const handler$59 = async (c) => {
28462
28520
  };
28463
28521
  //#endregion
28464
28522
  //#region src/routes/account/projects/GET.ts
28465
- const handler$58 = async (c) => {
28523
+ const handler$59 = async (c) => {
28466
28524
  const organization = c.get("organization");
28467
28525
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, projectListScope(accessContext(c))));
28468
28526
  const projects = await (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: grantedProjectIdsList });
@@ -28488,7 +28546,7 @@ function mergeProjectListMetrics(input) {
28488
28546
  }
28489
28547
  //#endregion
28490
28548
  //#region src/routes/account/projects/metrics/GET.ts
28491
- const handler$57 = async (c) => {
28549
+ const handler$58 = async (c) => {
28492
28550
  const organization = c.get("organization");
28493
28551
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, projectListScope(accessContext(c))));
28494
28552
  const [resourceCounts, lastDeploymentAtByProject] = await Promise.all([(0, _keystrokehq_database.selectProjectResourceCounts)(grantedProjectIdsList !== void 0 ? { projectIds: grantedProjectIdsList } : void 0), (0, _keystrokehq_platform_database.selectLastDeploymentAtByProject)(organization.organizationId)]);
@@ -28533,7 +28591,7 @@ function createCreateProjectHandler(projectQuotaGate) {
28533
28591
  }
28534
28592
  //#endregion
28535
28593
  //#region src/routes/account/projects/slug-available/GET.ts
28536
- const handler$55 = async (c) => {
28594
+ const handler$56 = async (c) => {
28537
28595
  const organization = c.get("organization");
28538
28596
  const parsed = require_dist$1.ProjectSlugAvailabilityQuerySchema.safeParse({
28539
28597
  slug: c.req.query("slug"),
@@ -28545,12 +28603,12 @@ const handler$55 = async (c) => {
28545
28603
  };
28546
28604
  //#endregion
28547
28605
  //#region src/routes/account/projects/[projectId]/GET.ts
28548
- const handler$54 = async (c) => {
28606
+ const handler$55 = async (c) => {
28549
28607
  return c.json(require_dist$1.ProjectResponseSchema.parse(routeProject(c.get("project"))));
28550
28608
  };
28551
28609
  //#endregion
28552
28610
  //#region src/routes/account/projects/[projectId]/PATCH.ts
28553
- const handler$53 = async (c) => {
28611
+ const handler$54 = async (c) => {
28554
28612
  const organization = c.get("organization");
28555
28613
  const project = c.get("project");
28556
28614
  const body = await c.req.json().catch(() => null);
@@ -28568,7 +28626,7 @@ const handler$53 = async (c) => {
28568
28626
  };
28569
28627
  //#endregion
28570
28628
  //#region src/routes/account/projects/[projectId]/DELETE.ts
28571
- const handler$52 = async (c) => {
28629
+ const handler$53 = async (c) => {
28572
28630
  const organization = c.get("organization");
28573
28631
  const project = c.get("project");
28574
28632
  if (!await (0, _keystrokehq_platform_database.deleteProjectForOrganization)(organization.organizationId, project.id)) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Project not found" }), 404);
@@ -28576,7 +28634,7 @@ const handler$52 = async (c) => {
28576
28634
  };
28577
28635
  //#endregion
28578
28636
  //#region src/routes/account/projects/[projectId]/deployments/GET.ts
28579
- const handler$51 = async (c) => {
28637
+ const handler$52 = async (c) => {
28580
28638
  const rows = await (0, _keystrokehq_platform_database.selectProjectDeployments)(c.get("project").id);
28581
28639
  return c.json(require_dist$1.ListProjectDeploymentsResponseSchema.parse(rows.map(require_dist$1.mapProjectDeployment)));
28582
28640
  };
@@ -28584,7 +28642,7 @@ const handler$51 = async (c) => {
28584
28642
  //#region src/routes/account/projects/[projectId]/artifacts/POST.ts
28585
28643
  const DEFAULT_PRESIGN_TTL_SECONDS$1 = 900;
28586
28644
  const ARTIFACT_CONTENT_TYPE = "application/gzip";
28587
- const handler$50 = async (c) => {
28645
+ const handler$51 = async (c) => {
28588
28646
  const project = c.get("project");
28589
28647
  const { organizationId } = c.get("organization");
28590
28648
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
@@ -28612,7 +28670,7 @@ const handler$50 = async (c) => {
28612
28670
  //#endregion
28613
28671
  //#region src/routes/account/projects/[projectId]/artifacts/active/download/GET.ts
28614
28672
  const DEFAULT_PRESIGN_TTL_SECONDS = 900;
28615
- const handler$49 = async (c) => {
28673
+ const handler$50 = async (c) => {
28616
28674
  const project = c.get("project");
28617
28675
  const { organizationId } = c.get("organization");
28618
28676
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
@@ -28631,7 +28689,7 @@ const handler$49 = async (c) => {
28631
28689
  };
28632
28690
  //#endregion
28633
28691
  //#region src/routes/account/projects/[projectId]/artifacts/active/source/GET.ts
28634
- const handler$48 = async (c) => {
28692
+ const handler$49 = async (c) => {
28635
28693
  const project = c.get("project");
28636
28694
  const active = await (0, _keystrokehq_platform_database.selectActiveArtifactSourceManifestForProject)(project.id);
28637
28695
  if (!active?.sourceManifestJson) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "No active source for project" }), 404);
@@ -28660,7 +28718,7 @@ const TRIGGER_KINDS = new Set([
28660
28718
  "trigger-poll-group",
28661
28719
  "cron-schedule"
28662
28720
  ]);
28663
- const handler$47 = async (c) => {
28721
+ const handler$48 = async (c) => {
28664
28722
  const project = c.get("project");
28665
28723
  const user = c.get("user");
28666
28724
  const artifactId = c.req.param("artifactId");
@@ -28724,7 +28782,7 @@ const handler$47 = async (c) => {
28724
28782
  //#endregion
28725
28783
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/presign/POST.ts
28726
28784
  const SOURCE_BLOB_CONTENT_TYPE = "text/plain; charset=utf-8";
28727
- const handler$46 = async (c) => {
28785
+ const handler$47 = async (c) => {
28728
28786
  const project = c.get("project");
28729
28787
  const artifactId = c.req.param("artifactId");
28730
28788
  if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -28752,7 +28810,7 @@ const handler$46 = async (c) => {
28752
28810
  };
28753
28811
  //#endregion
28754
28812
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/manifest/POST.ts
28755
- const handler$45 = async (c) => {
28813
+ const handler$46 = async (c) => {
28756
28814
  const project = c.get("project");
28757
28815
  const artifactId = c.req.param("artifactId");
28758
28816
  if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -28784,7 +28842,7 @@ function extensionFromUpload(contentType, filename) {
28784
28842
  if (fromName && /^[a-z0-9]+$/.test(fromName)) return fromName;
28785
28843
  return require_dist$1.chatAttachmentExtension(contentType) ?? "bin";
28786
28844
  }
28787
- const handler$44 = async (c) => {
28845
+ const handler$45 = async (c) => {
28788
28846
  const project = c.get("project");
28789
28847
  const slug = c.req.param("slug");
28790
28848
  if (!slug) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Agent slug is required" }), 400);
@@ -28809,7 +28867,7 @@ const handler$44 = async (c) => {
28809
28867
  };
28810
28868
  //#endregion
28811
28869
  //#region src/routes/account/projects/[projectId]/agents/[slug]/attachments/[...key]/GET.ts
28812
- const handler$43 = async (c) => {
28870
+ const handler$44 = async (c) => {
28813
28871
  const project = c.get("project");
28814
28872
  const slug = c.req.param("slug");
28815
28873
  const keyParam = c.req.param("key");
@@ -28855,7 +28913,7 @@ function resolveSourcePaths(rows, kindDir, filePaths) {
28855
28913
  }] : [];
28856
28914
  });
28857
28915
  }
28858
- const handler$42 = async (c) => {
28916
+ const handler$43 = async (c) => {
28859
28917
  const project = c.get("project");
28860
28918
  const active = await (0, _keystrokehq_platform_database.selectActiveArtifactSourceManifestForProject)(project.id);
28861
28919
  if (!active || !active.sourceManifestJson) return c.json(require_dist$1.ListProjectFilesResponseSchema.parse({
@@ -28900,7 +28958,7 @@ function ifNoneMatchMatches(ifNoneMatch, etag) {
28900
28958
  }
28901
28959
  //#endregion
28902
28960
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/files/content/GET.ts
28903
- const handler$41 = async (c) => {
28961
+ const handler$42 = async (c) => {
28904
28962
  const project = c.get("project");
28905
28963
  const artifactId = c.req.param("artifactId");
28906
28964
  if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -28946,7 +29004,7 @@ function createProjectReachabilityHandler(hosting) {
28946
29004
  }
28947
29005
  //#endregion
28948
29006
  //#region src/routes/account/projects/[projectId]/members/GET.ts
28949
- const handler$40 = async (c) => {
29007
+ const handler$41 = async (c) => {
28950
29008
  const project = c.get("project");
28951
29009
  const currentUserId = c.get("user").id;
28952
29010
  const members = await (0, _keystrokehq_platform_database.selectProjectMembers)(project.id);
@@ -28954,7 +29012,7 @@ const handler$40 = async (c) => {
28954
29012
  };
28955
29013
  //#endregion
28956
29014
  //#region src/routes/account/projects/[projectId]/members/POST.ts
28957
- const handler$39 = async (c) => {
29015
+ const handler$40 = async (c) => {
28958
29016
  const organization = c.get("organization");
28959
29017
  const project = c.get("project");
28960
29018
  const body = await c.req.json().catch(() => null);
@@ -28970,7 +29028,7 @@ const handler$39 = async (c) => {
28970
29028
  };
28971
29029
  //#endregion
28972
29030
  //#region src/routes/account/projects/[projectId]/members/[userId]/PATCH.ts
28973
- const handler$38 = async (c) => {
29031
+ const handler$39 = async (c) => {
28974
29032
  const project = c.get("project");
28975
29033
  const userId = c.req.param("userId");
28976
29034
  const body = await c.req.json().catch(() => null);
@@ -28987,7 +29045,7 @@ const handler$38 = async (c) => {
28987
29045
  };
28988
29046
  //#endregion
28989
29047
  //#region src/routes/account/projects/[projectId]/members/[userId]/DELETE.ts
28990
- const handler$37 = async (c) => {
29048
+ const handler$38 = async (c) => {
28991
29049
  const project = c.get("project");
28992
29050
  const userId = c.req.param("userId");
28993
29051
  if (!userId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
@@ -29001,7 +29059,7 @@ const handler$37 = async (c) => {
29001
29059
  };
29002
29060
  //#endregion
29003
29061
  //#region src/routes/account/projects/[projectId]/members/me/DELETE.ts
29004
- const handler$36 = async (c) => {
29062
+ const handler$37 = async (c) => {
29005
29063
  const project = c.get("project");
29006
29064
  const userId = c.get("user").id;
29007
29065
  try {
@@ -29014,13 +29072,13 @@ const handler$36 = async (c) => {
29014
29072
  };
29015
29073
  //#endregion
29016
29074
  //#region src/routes/account/projects/[projectId]/settings/GET.ts
29017
- const handler$35 = async (c) => {
29075
+ const handler$36 = async (c) => {
29018
29076
  const project = c.get("project");
29019
29077
  return c.json(require_dist$1.ProjectSettingsResponseSchema.parse(require_dist$1.mapProjectSettings(project)));
29020
29078
  };
29021
29079
  //#endregion
29022
29080
  //#region src/routes/account/projects/[projectId]/settings/PATCH.ts
29023
- const handler$34 = async (c) => {
29081
+ const handler$35 = async (c) => {
29024
29082
  const organization = c.get("organization");
29025
29083
  const project = c.get("project");
29026
29084
  const body = await c.req.json().catch(() => null);
@@ -29142,7 +29200,7 @@ async function enrichCredentialInstances(rows, organizationId) {
29142
29200
  }
29143
29201
  //#endregion
29144
29202
  //#region src/routes/account/credentials/GET.ts
29145
- const handler$33 = async (c) => {
29203
+ const handler$34 = async (c) => {
29146
29204
  const organization = c.get("organization");
29147
29205
  const user = c.get("user");
29148
29206
  const query = require_dist$1.ListCredentialsPageQuerySchema.parse({
@@ -29171,7 +29229,7 @@ function withTargetScope$1(target, fn) {
29171
29229
  if (target.projectScope) return (0, _keystrokehq_database.runWithProjectScope)(target.projectScope, fn);
29172
29230
  return fn();
29173
29231
  }
29174
- const handler$32 = async (c) => {
29232
+ const handler$33 = async (c) => {
29175
29233
  const organization = c.get("organization");
29176
29234
  const user = c.get("user");
29177
29235
  const parsed = require_dist$1.CreateCredentialsRequestSchema.safeParse(await c.req.json().catch(() => null));
@@ -29287,7 +29345,7 @@ async function canAccessCredentialRow(c, row) {
29287
29345
  }
29288
29346
  //#endregion
29289
29347
  //#region src/routes/account/credentials/[credentialId]/GET.ts
29290
- const handler$31 = async (c) => {
29348
+ const handler$32 = async (c) => {
29291
29349
  const organization = c.get("organization");
29292
29350
  const credentialId = c.req.param("credentialId") ?? "";
29293
29351
  const row = credentialId ? await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId) : void 0;
@@ -29348,7 +29406,7 @@ function sharedConnectionIdFor(row, scopeType, scopeId) {
29348
29406
  if (!row.connectionId) return row.sharedConnectionId;
29349
29407
  return require_dist$1.mcpEntityId(scopeType, scopeId);
29350
29408
  }
29351
- const handler$30 = async (c) => {
29409
+ const handler$31 = async (c) => {
29352
29410
  const organization = c.get("organization");
29353
29411
  const user = c.get("user");
29354
29412
  const credentialId = c.req.param("credentialId") ?? "";
@@ -29449,7 +29507,7 @@ function withTargetScope(target, fn) {
29449
29507
  if (target.projectScope) return (0, _keystrokehq_database.runWithProjectScope)(target.projectScope, fn);
29450
29508
  return fn();
29451
29509
  }
29452
- const handler$29 = async (c) => {
29510
+ const handler$30 = async (c) => {
29453
29511
  const organization = c.get("organization");
29454
29512
  const user = c.get("user");
29455
29513
  const credentialId = c.req.param("credentialId") ?? "";
@@ -29579,7 +29637,7 @@ function createDeleteCredentialHandler(options = {}) {
29579
29637
  }
29580
29638
  //#endregion
29581
29639
  //#region src/routes/account/members/GET.ts
29582
- const handler$28 = async (c) => {
29640
+ const handler$29 = async (c) => {
29583
29641
  const { organizationId } = c.get("organization");
29584
29642
  const query = require_dist$1.ListOrganizationMembersPageQuerySchema.parse({
29585
29643
  limit: c.req.query("limit") || void 0,
@@ -29637,7 +29695,7 @@ async function sendOrganizationInviteEmail(payload, resend$1) {
29637
29695
  }
29638
29696
  //#endregion
29639
29697
  //#region src/routes/account/members/invitations/POST.ts
29640
- const handler$27 = async (c) => {
29698
+ const handler$28 = async (c) => {
29641
29699
  const user = c.get("user");
29642
29700
  const organization = c.get("organization");
29643
29701
  const body = await c.req.json().catch(() => null);
@@ -29663,7 +29721,7 @@ const handler$27 = async (c) => {
29663
29721
  };
29664
29722
  //#endregion
29665
29723
  //#region src/routes/account/members/[userId]/PATCH.ts
29666
- const handler$26 = async (c) => {
29724
+ const handler$27 = async (c) => {
29667
29725
  const { organizationId } = c.get("organization");
29668
29726
  const userId = c.req.param("userId");
29669
29727
  const body = await c.req.json().catch(() => null);
@@ -29680,7 +29738,7 @@ const handler$26 = async (c) => {
29680
29738
  };
29681
29739
  //#endregion
29682
29740
  //#region src/routes/account/members/[userId]/DELETE.ts
29683
- const handler$25 = async (c) => {
29741
+ const handler$26 = async (c) => {
29684
29742
  const { organizationId } = c.get("organization");
29685
29743
  const userId = c.req.param("userId");
29686
29744
  if (!userId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "User id is required" }), 400);
@@ -29694,13 +29752,13 @@ const handler$25 = async (c) => {
29694
29752
  };
29695
29753
  //#endregion
29696
29754
  //#region src/routes/account/invitations/GET.ts
29697
- const handler$24 = async (c) => {
29755
+ const handler$25 = async (c) => {
29698
29756
  const invitations = await (0, _keystrokehq_platform_database.selectPendingInvitationsForUser)(c.get("user").id);
29699
29757
  return c.json(require_dist$1.ListOrganizationInvitationsResponseSchema.parse(invitations.map(require_dist$1.mapOrganizationInvitation)));
29700
29758
  };
29701
29759
  //#endregion
29702
29760
  //#region src/routes/account/invitations/[invitationId]/accept/POST.ts
29703
- const handler$23 = async (c) => {
29761
+ const handler$24 = async (c) => {
29704
29762
  const user = c.get("user");
29705
29763
  const invitationId = c.req.param("invitationId");
29706
29764
  if (!invitationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
@@ -29721,7 +29779,7 @@ const handler$23 = async (c) => {
29721
29779
  };
29722
29780
  //#endregion
29723
29781
  //#region src/routes/account/invitations/[invitationId]/decline/POST.ts
29724
- const handler$22 = async (c) => {
29782
+ const handler$23 = async (c) => {
29725
29783
  const user = c.get("user");
29726
29784
  const invitationId = c.req.param("invitationId");
29727
29785
  if (!invitationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
@@ -29807,13 +29865,13 @@ function appRowToCustomAppDetail(row) {
29807
29865
  }
29808
29866
  //#endregion
29809
29867
  //#region src/routes/account/apps/GET.ts
29810
- const handler$21 = async (c) => {
29868
+ const handler$22 = async (c) => {
29811
29869
  const apps = (await (0, _keystrokehq_platform_database.listAppsForOrganization)(c.get("organization").organizationId)).map(appRowToCatalogSummary);
29812
29870
  return c.json(require_dist$1.ListAppsResponseSchema.parse(apps));
29813
29871
  };
29814
29872
  //#endregion
29815
29873
  //#region src/routes/account/apps/POST.ts
29816
- const handler$20 = async (c) => {
29874
+ const handler$21 = async (c) => {
29817
29875
  const organization = c.get("organization");
29818
29876
  const user = c.get("user");
29819
29877
  const parsed = require_dist$1.CreateCustomAppRequestSchema.safeParse(await c.req.json().catch(() => null));
@@ -29857,7 +29915,7 @@ const handler$20 = async (c) => {
29857
29915
  };
29858
29916
  //#endregion
29859
29917
  //#region src/routes/account/apps/discover/POST.ts
29860
- const handler$19 = async (c) => {
29918
+ const handler$20 = async (c) => {
29861
29919
  const parsed = require_dist$1.McpDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
29862
29920
  if (!parsed.success) return c.json({ error: "Invalid request body" }, 400);
29863
29921
  try {
@@ -29871,7 +29929,7 @@ const handler$19 = async (c) => {
29871
29929
  };
29872
29930
  //#endregion
29873
29931
  //#region src/routes/account/apps/discover-openapi/POST.ts
29874
- const handler$18 = async (c) => {
29932
+ const handler$19 = async (c) => {
29875
29933
  const parsed = require_dist$1.OpenApiDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
29876
29934
  if (!parsed.success) return c.json({ error: "Invalid request body" }, 400);
29877
29935
  try {
@@ -29888,7 +29946,7 @@ const handler$18 = async (c) => {
29888
29946
  };
29889
29947
  //#endregion
29890
29948
  //#region src/routes/account/apps/discover-graphql/POST.ts
29891
- const handler$17 = async (c) => {
29949
+ const handler$18 = async (c) => {
29892
29950
  const parsed = require_dist$1.GraphqlDiscoverRequestSchema.safeParse(await c.req.json().catch(() => null));
29893
29951
  if (!parsed.success) return c.json({ error: "Invalid request body" }, 400);
29894
29952
  try {
@@ -29905,7 +29963,7 @@ const handler$17 = async (c) => {
29905
29963
  };
29906
29964
  //#endregion
29907
29965
  //#region src/routes/account/apps/[slug]/mcp/oauth/connections/POST.ts
29908
- const handler$16 = async (c) => {
29966
+ const handler$17 = async (c) => {
29909
29967
  const organization = c.get("organization");
29910
29968
  const user = c.get("user");
29911
29969
  const appSlug = c.req.param("slug")?.trim();
@@ -29965,7 +30023,7 @@ function buildOAuthWebLandingUrl(webOrigin, params) {
29965
30023
  }
29966
30024
  //#endregion
29967
30025
  //#region src/routes/account/mcp/oauth/callback/GET.ts
29968
- const handler$15 = async (c) => {
30026
+ const handler$16 = async (c) => {
29969
30027
  const code = c.req.query("code")?.trim();
29970
30028
  const state = c.req.query("state")?.trim();
29971
30029
  const oauthError = c.req.query("error")?.trim();
@@ -30063,7 +30121,7 @@ const handler$15 = async (c) => {
30063
30121
  };
30064
30122
  //#endregion
30065
30123
  //#region src/routes/account/apps/slug-available/GET.ts
30066
- const handler$14 = async (c) => {
30124
+ const handler$15 = async (c) => {
30067
30125
  const organization = c.get("organization");
30068
30126
  const parsed = require_dist$1.AppSlugAvailabilityQuerySchema.safeParse({ slug: c.req.query("slug") });
30069
30127
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
@@ -30074,7 +30132,7 @@ const handler$14 = async (c) => {
30074
30132
  };
30075
30133
  //#endregion
30076
30134
  //#region src/routes/account/apps/[slug]/GET.ts
30077
- const handler$13 = async (c) => {
30135
+ const handler$14 = async (c) => {
30078
30136
  const organization = c.get("organization");
30079
30137
  const slug = c.req.param("slug") ?? "";
30080
30138
  if (!slug) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "App not found" }), 404);
@@ -30089,7 +30147,7 @@ const handler$13 = async (c) => {
30089
30147
  //#endregion
30090
30148
  //#region src/routes/account/apps/[slug]/catalog/GET.ts
30091
30149
  /** Full catalog entry (scopes + credential template) for connect UI. */
30092
- const handler$12 = async (c) => {
30150
+ const handler$13 = async (c) => {
30093
30151
  const organization = c.get("organization");
30094
30152
  const slug = c.req.param("slug") ?? "";
30095
30153
  if (!slug) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "App not found" }), 404);
@@ -30122,14 +30180,14 @@ function projectChannelPlatform(row) {
30122
30180
  });
30123
30181
  }
30124
30182
  /** Gateway platforms only — avoids downloading the full apps catalog. */
30125
- const handler$11 = async (c) => {
30183
+ const handler$12 = async (c) => {
30126
30184
  const organization = c.get("organization");
30127
30185
  const platforms = (await Promise.all(Object.keys(GATEWAY_BY_APP_SLUG).map((slug) => (0, _keystrokehq_platform_database.selectAppForOrganization)(organization.organizationId, slug)))).flatMap((row) => row ? [projectChannelPlatform(row)] : []);
30128
30186
  return c.json(require_dist$1.ListChannelPlatformsResponseSchema.parse(platforms));
30129
30187
  };
30130
30188
  //#endregion
30131
30189
  //#region src/routes/account/api-keys/GET.ts
30132
- const handler$10 = async (c) => {
30190
+ const handler$11 = async (c) => {
30133
30191
  const { organizationId } = c.get("organization");
30134
30192
  const user = c.get("user");
30135
30193
  const records = apiKeyListScope(accessContext(c)).kind === "all" ? await (0, _keystrokehq_platform_database.listOrgPlatformApiKeysForOrganization)(organizationId) : await (0, _keystrokehq_platform_database.listOrgPlatformApiKeysForUser)(organizationId, user.id);
@@ -30146,7 +30204,7 @@ const handler$10 = async (c) => {
30146
30204
  };
30147
30205
  //#endregion
30148
30206
  //#region src/routes/account/api-keys/POST.ts
30149
- const handler$9 = async (c) => {
30207
+ const handler$10 = async (c) => {
30150
30208
  const { organizationId } = c.get("organization");
30151
30209
  const user = c.get("user");
30152
30210
  const body = require_dist$1.CreateApiKeyRequestSchema.parse(await c.req.json());
@@ -30169,7 +30227,7 @@ const handler$9 = async (c) => {
30169
30227
  };
30170
30228
  //#endregion
30171
30229
  //#region src/routes/account/api-keys/[apiKeyId]/DELETE.ts
30172
- const handler$8 = async (c) => {
30230
+ const handler$9 = async (c) => {
30173
30231
  const { organizationId } = c.get("organization");
30174
30232
  const user = c.get("user");
30175
30233
  const apiKeyId = c.req.param("apiKeyId");
@@ -30194,7 +30252,7 @@ const handler$8 = async (c) => {
30194
30252
  };
30195
30253
  //#endregion
30196
30254
  //#region src/routes/account/managed-service-credentials/GET.ts
30197
- const handler$7 = async (c) => {
30255
+ const handler$8 = async (c) => {
30198
30256
  const { organizationId } = c.get("organization");
30199
30257
  const user = c.get("user");
30200
30258
  const kindParam = c.req.query("kind");
@@ -30214,7 +30272,7 @@ const handler$7 = async (c) => {
30214
30272
  };
30215
30273
  //#endregion
30216
30274
  //#region src/routes/account/managed-service-credentials/POST.ts
30217
- const handler$6 = async (c) => {
30275
+ const handler$7 = async (c) => {
30218
30276
  const { organizationId } = c.get("organization");
30219
30277
  const user = c.get("user");
30220
30278
  const body = require_dist$1.ConnectManagedServiceCredentialRequestSchema.parse(await c.req.json());
@@ -30243,7 +30301,7 @@ const handler$6 = async (c) => {
30243
30301
  };
30244
30302
  //#endregion
30245
30303
  //#region src/routes/account/managed-service-credentials/[id]/PATCH.ts
30246
- const handler$5 = async (c) => {
30304
+ const handler$6 = async (c) => {
30247
30305
  const { organizationId } = c.get("organization");
30248
30306
  const user = c.get("user");
30249
30307
  const credentialId = c.req.param("id");
@@ -30274,7 +30332,7 @@ const handler$5 = async (c) => {
30274
30332
  };
30275
30333
  //#endregion
30276
30334
  //#region src/routes/account/managed-service-credentials/[id]/DELETE.ts
30277
- const handler$4 = async (c) => {
30335
+ const handler$5 = async (c) => {
30278
30336
  const { organizationId } = c.get("organization");
30279
30337
  const credentialId = c.req.param("id");
30280
30338
  if (!credentialId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Credential id is required" }), 400);
@@ -30393,7 +30451,7 @@ async function postTeamRequestToSlack(input) {
30393
30451
  }
30394
30452
  //#endregion
30395
30453
  //#region src/routes/account/team-requests/POST.ts
30396
- const handler$3 = async (c) => {
30454
+ const handler$4 = async (c) => {
30397
30455
  const user = c.get("user");
30398
30456
  const organizationContext = c.get("organization");
30399
30457
  const parsed = require_dist$1.SubmitTeamRequestRequestSchema.safeParse(await c.req.json().catch(() => null));
@@ -30438,7 +30496,7 @@ function mountAccountRoutes(options) {
30438
30496
  const projectScoped = new hono.Hono();
30439
30497
  const protect = requireSession((0, _keystrokehq_auth.createDefaultAuthJwtVerifier)());
30440
30498
  const deleteCredential = createDeleteCredentialHandler({ mcp: options.mcp });
30441
- account.get("/mcp/oauth/callback", handler$15);
30499
+ account.get("/mcp/oauth/callback", handler$16);
30442
30500
  account.use("/*", protect);
30443
30501
  orgScoped.use("/*", protect);
30444
30502
  orgScoped.use("/*", requireOrganization());
@@ -30460,109 +30518,113 @@ function mountAccountRoutes(options) {
30460
30518
  const requireProjectManageMembers = authorize(projectActions.manageMembers);
30461
30519
  const requireInvitableProjectRole = authorizePayload(require_dist$1.InviteProjectMembersRequestSchema, ({ c, ctx, body }) => canInviteToProject(ctx, { invitePermission: getProjectInvitePermission(c) }, body.role));
30462
30520
  const requireOrgParam = requireOrganizationParam();
30463
- account.get("/organizations", handler$97);
30464
- account.get("/organizations/slug-available", handler$96);
30521
+ account.get("/organizations", handler$102);
30522
+ account.get("/organizations/slug-available", handler$101);
30465
30523
  account.post("/organizations", createOrganizationHandler(options));
30466
- account.get("/organizations/:organizationId", requireOrgParam, handler$95);
30467
- account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$94);
30468
- account.get("/organizations/:organizationId/branding", requireOrgParam, handler$93);
30469
- account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$92);
30470
- account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$91);
30471
- account.get("/invitations", handler$24);
30472
- account.post("/invitations/:invitationId/accept", handler$23);
30473
- account.post("/invitations/:invitationId/decline", handler$22);
30474
- account.get("/users/me/avatar", handler$102);
30475
- account.post("/users/me/avatar/presign", handler$101);
30476
- account.patch("/users/me/avatar", handler$100);
30477
- account.get("/users/me/preferences", handler$99);
30478
- account.patch("/users/me/preferences", handler$98);
30524
+ account.get("/organizations/:organizationId", requireOrgParam, handler$100);
30525
+ account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$99);
30526
+ account.get("/organizations/:organizationId/branding", requireOrgParam, handler$98);
30527
+ account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$97);
30528
+ account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$96);
30529
+ account.get("/invitations", handler$25);
30530
+ account.post("/invitations/:invitationId/accept", handler$24);
30531
+ account.post("/invitations/:invitationId/decline", handler$23);
30532
+ account.get("/users/me/avatar", handler$107);
30533
+ account.post("/users/me/avatar/presign", handler$106);
30534
+ account.patch("/users/me/avatar", handler$105);
30535
+ account.get("/users/me/preferences", handler$104);
30536
+ account.patch("/users/me/preferences", handler$103);
30479
30537
  const withOrgDb = withOrganizationProjectDatabase();
30480
- orgScoped.get("/apps", handler$21);
30481
- orgScoped.get("/apps/slug-available", handler$14);
30482
- orgScoped.get("/channel-platforms", handler$11);
30483
- orgScoped.post("/apps/discover", requireOrgUpdate, handler$19);
30484
- orgScoped.post("/apps/discover-openapi", requireOrgUpdate, handler$18);
30485
- orgScoped.post("/apps/discover-graphql", requireOrgUpdate, handler$17);
30486
- orgScoped.post("/apps", requireOrgUpdate, handler$20);
30487
- orgScoped.post("/apps/:slug/mcp/oauth/connections", requireOrgUpdate, withOrgDb, handler$16);
30488
- orgScoped.get("/apps/:slug/catalog", handler$12);
30489
- orgScoped.get("/apps/:slug", handler$13);
30490
- account.post("/team-requests", requireOrganization(), handler$3);
30491
- orgScoped.get("/members", handler$28);
30492
- orgScoped.post("/members/invitations", requireUserInvite, requireInvitableRole, handler$27);
30493
- orgScoped.patch("/members/:userId", requireUserManage, handler$26);
30494
- orgScoped.delete("/members/:userId", requireUserManage, handler$25);
30495
- orgScoped.get("/api-keys", handler$10);
30496
- orgScoped.post("/api-keys", requireApiKeyCreate, handler$9);
30497
- orgScoped.delete("/api-keys/:apiKeyId", handler$8);
30498
- orgScoped.get("/managed-service-credentials", requireManagedServicesRead, handler$7);
30499
- orgScoped.post("/managed-service-credentials", requireManagedServicesManage, handler$6);
30500
- orgScoped.patch("/managed-service-credentials/:id", requireManagedServicesManage, handler$5);
30501
- orgScoped.delete("/managed-service-credentials/:id", requireManagedServicesManage, handler$4);
30502
- orgScoped.get("/agents", withOrgDb, handler$88);
30503
- orgScoped.get("/agents/:agentId", withOrgDb, handler$87);
30504
- orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$86);
30505
- orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$85);
30506
- orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, handler$84);
30507
- orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, handler$83);
30508
- orgScoped.get("/workflows", withOrgDb, handler$81);
30509
- orgScoped.get("/workflows/:workflowId", withOrgDb, handler$80);
30510
- orgScoped.get("/workflows/:workflowId/canvas", withOrgDb, handler$79);
30511
- orgScoped.get("/workflows/:workflowId/canvas/credentials", withOrgDb, handler$78);
30512
- orgScoped.get("/workflows/:workflowId/canvas/runs/:runId", withOrgDb, handler$77);
30513
- orgScoped.get("/workflows/:workflowId/overview", withOrgDb, handler$76);
30514
- orgScoped.get("/workflows/:workflowId/runs", withOrgDb, handler$71);
30515
- orgScoped.get("/workflows/:workflowId/run-inputs", withOrgDb, handler$75);
30516
- orgScoped.put("/workflows/:workflowId/run-inputs", withOrgDb, handler$74);
30517
- orgScoped.post("/workflows/:workflowId/run", withOrgDb, handler$73);
30518
- orgScoped.post("/workflows/:workflowId/attachments/presign", withOrgDb, handler$72);
30519
- orgScoped.get("/skills", withOrgDb, handler$69);
30520
- orgScoped.get("/skills/:skillId", withOrgDb, handler$68);
30521
- orgScoped.get("/triggers", withOrgDb, handler$67);
30522
- orgScoped.get("/triggers/:triggerId", withOrgDb, handler$66);
30523
- orgScoped.get("/triggers/:triggerId/runs", withOrgDb, handler$65);
30524
- orgScoped.get("/triggers/:triggerId/file", withOrgDb, handler$64);
30525
- orgScoped.get("/triggers/:triggerId/overview", withOrgDb, handler$63);
30526
- orgScoped.get("/triggers/:triggerId/invoke-inputs", withOrgDb, handler$60);
30527
- orgScoped.post("/triggers/:triggerId/invoke", withOrgDb, handler$61);
30528
- orgScoped.patch("/triggers/:triggerId/attachments/:attachmentId", withOrgDb, handler$62);
30529
- orgScoped.get("/recents", withOrgDb, handler$59);
30530
- orgScoped.get("/history", withOrgDb, handler$90);
30531
- orgScoped.get("/history/:runId", withOrgDb, handler$89);
30532
- orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$70);
30533
- orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$82);
30534
- orgScoped.get("/credentials", withOrgDb, handler$33);
30535
- orgScoped.post("/credentials", withOrgDb, handler$32);
30536
- orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$31(c, next));
30537
- orgScoped.patch("/credentials/:credentialId", withOrgDb, handler$30);
30538
- orgScoped.post("/credentials/:credentialId/duplicate", withOrgDb, handler$29);
30538
+ orgScoped.get("/apps", handler$22);
30539
+ orgScoped.get("/apps/slug-available", handler$15);
30540
+ orgScoped.get("/channel-platforms", handler$12);
30541
+ orgScoped.post("/apps/discover", requireOrgUpdate, handler$20);
30542
+ orgScoped.post("/apps/discover-openapi", requireOrgUpdate, handler$19);
30543
+ orgScoped.post("/apps/discover-graphql", requireOrgUpdate, handler$18);
30544
+ orgScoped.post("/apps", requireOrgUpdate, handler$21);
30545
+ orgScoped.post("/apps/:slug/mcp/oauth/connections", requireOrgUpdate, withOrgDb, handler$17);
30546
+ orgScoped.get("/apps/:slug/catalog", handler$13);
30547
+ orgScoped.get("/apps/:slug", handler$14);
30548
+ account.post("/team-requests", requireOrganization(), handler$4);
30549
+ orgScoped.get("/members", handler$29);
30550
+ orgScoped.post("/members/invitations", requireUserInvite, requireInvitableRole, handler$28);
30551
+ orgScoped.patch("/members/:userId", requireUserManage, handler$27);
30552
+ orgScoped.delete("/members/:userId", requireUserManage, handler$26);
30553
+ orgScoped.get("/api-keys", handler$11);
30554
+ orgScoped.post("/api-keys", requireApiKeyCreate, handler$10);
30555
+ orgScoped.delete("/api-keys/:apiKeyId", handler$9);
30556
+ orgScoped.get("/managed-service-credentials", requireManagedServicesRead, handler$8);
30557
+ orgScoped.post("/managed-service-credentials", requireManagedServicesManage, handler$7);
30558
+ orgScoped.patch("/managed-service-credentials/:id", requireManagedServicesManage, handler$6);
30559
+ orgScoped.delete("/managed-service-credentials/:id", requireManagedServicesManage, handler$5);
30560
+ orgScoped.get("/agents", withOrgDb, handler$93);
30561
+ orgScoped.get("/agents/:agentId", withOrgDb, handler$92);
30562
+ orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$91);
30563
+ orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$90);
30564
+ orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, handler$89);
30565
+ orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, handler$88);
30566
+ orgScoped.get("/workflows", withOrgDb, handler$86);
30567
+ orgScoped.get("/workflows/:workflowId", withOrgDb, handler$85);
30568
+ orgScoped.get("/workflows/:workflowId/canvas", withOrgDb, handler$84);
30569
+ orgScoped.get("/workflows/:workflowId/canvas/credentials", withOrgDb, handler$83);
30570
+ orgScoped.get("/workflows/:workflowId/canvas/runs/:runId", withOrgDb, handler$82);
30571
+ orgScoped.get("/workflows/:workflowId/overview", withOrgDb, handler$81);
30572
+ orgScoped.get("/workflows/:workflowId/runs", withOrgDb, handler$72);
30573
+ orgScoped.get("/workflows/:workflowId/run-inputs", withOrgDb, handler$80);
30574
+ orgScoped.put("/workflows/:workflowId/run-inputs", withOrgDb, handler$79);
30575
+ orgScoped.post("/workflows/:workflowId/run", withOrgDb, handler$78);
30576
+ orgScoped.get("/workflows/:workflowId/form", withOrgDb, handler$77);
30577
+ orgScoped.put("/workflows/:workflowId/form", withOrgDb, handler$76);
30578
+ orgScoped.delete("/workflows/:workflowId/form", withOrgDb, handler$75);
30579
+ orgScoped.post("/workflows/:workflowId/form/rotate", withOrgDb, handler$74);
30580
+ orgScoped.post("/workflows/:workflowId/attachments/presign", withOrgDb, handler$73);
30581
+ orgScoped.get("/skills", withOrgDb, handler$70);
30582
+ orgScoped.get("/skills/:skillId", withOrgDb, handler$69);
30583
+ orgScoped.get("/triggers", withOrgDb, handler$68);
30584
+ orgScoped.get("/triggers/:triggerId", withOrgDb, handler$67);
30585
+ orgScoped.get("/triggers/:triggerId/runs", withOrgDb, handler$66);
30586
+ orgScoped.get("/triggers/:triggerId/file", withOrgDb, handler$65);
30587
+ orgScoped.get("/triggers/:triggerId/overview", withOrgDb, handler$64);
30588
+ orgScoped.get("/triggers/:triggerId/invoke-inputs", withOrgDb, handler$61);
30589
+ orgScoped.post("/triggers/:triggerId/invoke", withOrgDb, handler$62);
30590
+ orgScoped.patch("/triggers/:triggerId/attachments/:attachmentId", withOrgDb, handler$63);
30591
+ orgScoped.get("/recents", withOrgDb, handler$60);
30592
+ orgScoped.get("/history", withOrgDb, handler$95);
30593
+ orgScoped.get("/history/:runId", withOrgDb, handler$94);
30594
+ orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$71);
30595
+ orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$87);
30596
+ orgScoped.get("/credentials", withOrgDb, handler$34);
30597
+ orgScoped.post("/credentials", withOrgDb, handler$33);
30598
+ orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$32(c, next));
30599
+ orgScoped.patch("/credentials/:credentialId", withOrgDb, handler$31);
30600
+ orgScoped.post("/credentials/:credentialId/duplicate", withOrgDb, handler$30);
30539
30601
  orgScoped.delete("/credentials/:credentialId", withOrgDb, deleteCredential);
30540
- orgScoped.get("/projects", handler$58);
30541
- orgScoped.get("/projects/slug-available", handler$55);
30542
- orgScoped.get("/projects/metrics", withOrgDb, handler$57);
30602
+ orgScoped.get("/projects", handler$59);
30603
+ orgScoped.get("/projects/slug-available", handler$56);
30604
+ orgScoped.get("/projects/metrics", withOrgDb, handler$58);
30543
30605
  orgScoped.post("/projects", createCreateProjectHandler(options.projectQuotaGate));
30544
- projectScoped.get("/:projectId", requireProject(), requireProjectMember, handler$54);
30545
- projectScoped.patch("/:projectId", requireProject(), requireProjectMember, requireProjectUpdate, handler$53);
30546
- projectScoped.delete("/:projectId", requireProject(), requireProjectMember, requireProjectDelete, handler$52);
30547
- projectScoped.get("/:projectId/settings", requireProject(), requireProjectMember, handler$35);
30548
- projectScoped.patch("/:projectId/settings", requireProject(), requireProjectMember, requireProjectUpdate, handler$34);
30549
- projectScoped.get("/:projectId/members", requireProject(), requireProjectMember, handler$40);
30550
- projectScoped.post("/:projectId/members", requireProject(), requireProjectMember, requireInvitableProjectRole, handler$39);
30551
- projectScoped.patch("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$38);
30552
- projectScoped.delete("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$37);
30553
- projectScoped.delete("/:projectId/members/me", requireProject(), requireProjectMember, handler$36);
30606
+ projectScoped.get("/:projectId", requireProject(), requireProjectMember, handler$55);
30607
+ projectScoped.patch("/:projectId", requireProject(), requireProjectMember, requireProjectUpdate, handler$54);
30608
+ projectScoped.delete("/:projectId", requireProject(), requireProjectMember, requireProjectDelete, handler$53);
30609
+ projectScoped.get("/:projectId/settings", requireProject(), requireProjectMember, handler$36);
30610
+ projectScoped.patch("/:projectId/settings", requireProject(), requireProjectMember, requireProjectUpdate, handler$35);
30611
+ projectScoped.get("/:projectId/members", requireProject(), requireProjectMember, handler$41);
30612
+ projectScoped.post("/:projectId/members", requireProject(), requireProjectMember, requireInvitableProjectRole, handler$40);
30613
+ projectScoped.patch("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$39);
30614
+ projectScoped.delete("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$38);
30615
+ projectScoped.delete("/:projectId/members/me", requireProject(), requireProjectMember, handler$37);
30554
30616
  projectScoped.get("/:projectId/reachability", requireProject(), requireProjectMember, createProjectReachabilityHandler(options.hosting));
30555
- projectScoped.get("/:projectId/files", requireProject(), requireProjectMember, withOrgDb, handler$42);
30556
- projectScoped.post("/:projectId/agents/:slug/attachments/presign", requireProject(), requireProjectMember, withOrgDb, handler$44);
30557
- projectScoped.get("/:projectId/agents/:slug/attachments/:key{.+}", requireProject(), requireProjectMember, withOrgDb, handler$43);
30558
- projectScoped.get("/:projectId/artifacts/:artifactId/files/content", requireProject(), requireProjectMember, handler$41);
30559
- projectScoped.get("/:projectId/deployments", requireProject(), requireProjectMember, handler$51);
30560
- projectScoped.get("/:projectId/artifacts/active/download", requireProject(), requireProjectMember, requireProjectDeploy, handler$49);
30561
- projectScoped.get("/:projectId/artifacts/active/source", requireProject(), requireProjectMember, withOrgDb, handler$48);
30562
- projectScoped.post("/:projectId/artifacts", requireProject(), requireProjectMember, requireProjectDeploy, handler$50);
30563
- projectScoped.post("/:projectId/artifacts/:artifactId/complete", requireProject(), requireProjectMember, requireProjectDeploy, handler$47);
30564
- projectScoped.post("/:projectId/artifacts/:artifactId/source/presign", requireProject(), requireProjectMember, requireProjectDeploy, handler$46);
30565
- projectScoped.post("/:projectId/artifacts/:artifactId/source/manifest", requireProject(), requireProjectMember, requireProjectDeploy, handler$45);
30617
+ projectScoped.get("/:projectId/files", requireProject(), requireProjectMember, withOrgDb, handler$43);
30618
+ projectScoped.post("/:projectId/agents/:slug/attachments/presign", requireProject(), requireProjectMember, withOrgDb, handler$45);
30619
+ projectScoped.get("/:projectId/agents/:slug/attachments/:key{.+}", requireProject(), requireProjectMember, withOrgDb, handler$44);
30620
+ projectScoped.get("/:projectId/artifacts/:artifactId/files/content", requireProject(), requireProjectMember, handler$42);
30621
+ projectScoped.get("/:projectId/deployments", requireProject(), requireProjectMember, handler$52);
30622
+ projectScoped.get("/:projectId/artifacts/active/download", requireProject(), requireProjectMember, requireProjectDeploy, handler$50);
30623
+ projectScoped.get("/:projectId/artifacts/active/source", requireProject(), requireProjectMember, withOrgDb, handler$49);
30624
+ projectScoped.post("/:projectId/artifacts", requireProject(), requireProjectMember, requireProjectDeploy, handler$51);
30625
+ projectScoped.post("/:projectId/artifacts/:artifactId/complete", requireProject(), requireProjectMember, requireProjectDeploy, handler$48);
30626
+ projectScoped.post("/:projectId/artifacts/:artifactId/source/presign", requireProject(), requireProjectMember, requireProjectDeploy, handler$47);
30627
+ projectScoped.post("/:projectId/artifacts/:artifactId/source/manifest", requireProject(), requireProjectMember, requireProjectDeploy, handler$46);
30566
30628
  orgScoped.route("/projects", projectScoped);
30567
30629
  account.route("/", orgScoped);
30568
30630
  return account;
@@ -30620,7 +30682,7 @@ var DbProxyRejectedError = class extends Error {
30620
30682
  }
30621
30683
  };
30622
30684
  /** Reject multi-statement SQL and explicit transaction/session control. */
30623
- const FORBIDDEN_SQL = /\b(BEGIN|COMMIT|ROLLBACK|START\s+TRANSACTION|SET\s+ROLE|SET\s+SESSION|RESET\s+ROLE|SET\s+LOCAL\s+ROLE)\b/i;
30685
+ const FORBIDDEN_SQL = /\b(BEGIN|COMMIT|ROLLBACK|START\s+TRANSACTION|SET\s+ROLE|SET\s+SESSION|RESET\s+ROLE|SET\s+LOCAL\s+ROLE|SET\s+CONFIG|SELECT\s+SET_CONFIG)\b/i;
30624
30686
  function assertSingleSafeStatement(sql) {
30625
30687
  const trimmed = sql.trim();
30626
30688
  if (!trimmed) throw new DbProxyRejectedError("Empty SQL is not allowed");
@@ -30630,46 +30692,23 @@ function assertSingleSafeStatement(sql) {
30630
30692
  if (withoutLiterals.split(";").map((part) => part.trim()).filter(Boolean).length > 1) throw new DbProxyRejectedError("Only one SQL statement is allowed per proxy request");
30631
30693
  }
30632
30694
  }
30633
- function resolveUntrustedOrgProxyOptions(organization) {
30695
+ /** Shared platform pool + signed organization claim (RLS). */
30696
+ function resolveTenantProxyOptions(organization) {
30634
30697
  return {
30635
- url: (0, _keystrokehq_platform_database.resolveOrgDatabaseUrl)(organization),
30636
- searchPath: organization.dbSchema
30698
+ url: (0, _keystrokehq_platform_database.resolvePlatformDatabaseUrl)(),
30699
+ organizationId: organization.id
30637
30700
  };
30638
30701
  }
30639
- async function resetProxySession(client) {
30640
- await client.query("ROLLBACK").catch(() => void 0);
30641
- await client.query("DISCARD ALL").catch(() => void 0);
30642
- }
30643
30702
  async function runOrgDatabaseQuery(options, query) {
30644
30703
  assertSingleSafeStatement(query.sql);
30645
30704
  const handle = await (0, _keystrokehq_database.acquireProjectDatabasePool)(options);
30646
30705
  try {
30647
30706
  if (handle.dialect !== "postgres") throw new Error("DB proxy requires postgres");
30648
- const client = await handle.pool.connect();
30649
- try {
30650
- return { rows: (await client.query({
30651
- text: query.sql,
30652
- values: query.params,
30653
- rowMode: query.method === "all" ? "array" : void 0
30654
- })).rows };
30655
- } finally {
30656
- await resetProxySession(client);
30657
- client.release();
30658
- }
30659
- } finally {
30660
- (0, _keystrokehq_database.releaseProjectDatabasePool)(options);
30661
- }
30662
- }
30663
- /**
30664
- * Apply platform-owned org schema migrations. Worker-supplied SQL is ignored —
30665
- * only embedded `@keystrokehq/database` migrations run under the org login.
30666
- */
30667
- async function runOrgDatabaseMigrations(options) {
30668
- const handle = await (0, _keystrokehq_database.acquireProjectDatabasePool)(options);
30669
- try {
30670
- if (handle.dialect !== "postgres") throw new Error("DB proxy requires postgres");
30671
- await (0, _keystrokehq_database.runMigrations)(handle, (0, _keystrokehq_database.resolveMigrationsFolder)("postgres"));
30672
- return [];
30707
+ return { rows: (await handle.pool.query({
30708
+ text: query.sql,
30709
+ values: query.params,
30710
+ rowMode: query.method === "all" ? "array" : void 0
30711
+ })).rows };
30673
30712
  } finally {
30674
30713
  (0, _keystrokehq_database.releaseProjectDatabasePool)(options);
30675
30714
  }
@@ -30695,7 +30734,7 @@ function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp) {
30695
30734
  error: "Invalid request body",
30696
30735
  details: parsed.error.flatten()
30697
30736
  }, 400);
30698
- const options = resolveUntrustedOrgProxyOptions(organization);
30737
+ const options = resolveTenantProxyOptions(organization);
30699
30738
  try {
30700
30739
  return c.json(await runOrgDatabaseQuery(options, parsed.data));
30701
30740
  } catch (error) {
@@ -30714,25 +30753,6 @@ function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp) {
30714
30753
  }, 500);
30715
30754
  }
30716
30755
  });
30717
- internal.post("/orgs/:organizationId/db/migrate", async (c) => {
30718
- const organizationId = c.req.param("organizationId");
30719
- const organization = await getCachedOrganization(organizationId);
30720
- if (!organization) return c.json({ error: "Organization not found" }, 404);
30721
- const options = resolveUntrustedOrgProxyOptions(organization);
30722
- try {
30723
- return c.json({ results: await runOrgDatabaseMigrations(options) });
30724
- } catch (error) {
30725
- console.error("Database proxy migration failed", {
30726
- organizationId,
30727
- error
30728
- });
30729
- const message = error instanceof Error ? error.message : "Database proxy migration failed.";
30730
- return c.json({
30731
- error: "db_proxy_migrate_failed",
30732
- message
30733
- }, 500);
30734
- }
30735
- });
30736
30756
  internal.use("/*", protect);
30737
30757
  internal.use("/projects/:projectId/*", async (c, next) => {
30738
30758
  const verified = require_dist.verifyOrgWorkerToken(workerToken, require_with_project_scope.readWorkerTokenFromRequest(c));
@@ -30838,7 +30858,7 @@ async function loadModelIds() {
30838
30858
  })();
30839
30859
  return pendingFetch;
30840
30860
  }
30841
- async function handler$2(c) {
30861
+ async function handler$3(c) {
30842
30862
  try {
30843
30863
  const models = await loadModelIds();
30844
30864
  return c.json(require_dist$1.PublicModelsResponseSchema.parse({ models }));
@@ -30849,21 +30869,34 @@ async function handler$2(c) {
30849
30869
  }
30850
30870
  }
30851
30871
  //#endregion
30872
+ //#region src/lib/client-ip.ts
30873
+ function clientIp(c) {
30874
+ const forwarded = c.req.header("x-forwarded-for")?.split(",")[0]?.trim();
30875
+ if (forwarded) return forwarded;
30876
+ const realIp = c.req.header("x-real-ip")?.trim();
30877
+ if (realIp) return realIp;
30878
+ try {
30879
+ return (0, _hono_node_server_conninfo.getConnInfo)(c).remote.address ?? "unknown";
30880
+ } catch {
30881
+ return "unknown";
30882
+ }
30883
+ }
30884
+ //#endregion
30852
30885
  //#region src/lib/contact-rate-limit.ts
30853
- const WINDOW_MS = 6e4;
30854
- const MAX_REQUESTS_PER_WINDOW = 5;
30855
- const hits = /* @__PURE__ */ new Map();
30886
+ const WINDOW_MS$1 = 6e4;
30887
+ const MAX_REQUESTS_PER_WINDOW$1 = 5;
30888
+ const hits$1 = /* @__PURE__ */ new Map();
30856
30889
  function consumeContactRateLimit(key) {
30857
30890
  const now = Date.now();
30858
- const entry = hits.get(key);
30891
+ const entry = hits$1.get(key);
30859
30892
  if (!entry || now >= entry.resetAt) {
30860
- hits.set(key, {
30893
+ hits$1.set(key, {
30861
30894
  count: 1,
30862
- resetAt: now + WINDOW_MS
30895
+ resetAt: now + WINDOW_MS$1
30863
30896
  });
30864
30897
  return true;
30865
30898
  }
30866
- if (entry.count >= MAX_REQUESTS_PER_WINDOW) return false;
30899
+ if (entry.count >= MAX_REQUESTS_PER_WINDOW$1) return false;
30867
30900
  entry.count += 1;
30868
30901
  return true;
30869
30902
  }
@@ -30919,18 +30952,7 @@ async function postMarketingContactToSlack(input) {
30919
30952
  }
30920
30953
  //#endregion
30921
30954
  //#region src/routes/public/contact/POST.ts
30922
- function clientIp(c) {
30923
- const forwarded = c.req.header("x-forwarded-for")?.split(",")[0]?.trim();
30924
- if (forwarded) return forwarded;
30925
- const realIp = c.req.header("x-real-ip")?.trim();
30926
- if (realIp) return realIp;
30927
- try {
30928
- return (0, _hono_node_server_conninfo.getConnInfo)(c).remote.address ?? "unknown";
30929
- } catch {
30930
- return "unknown";
30931
- }
30932
- }
30933
- async function handler$1(c) {
30955
+ async function handler$2(c) {
30934
30956
  if (!consumeContactRateLimit(clientIp(c))) return c.json({ error: "Too many requests" }, 429);
30935
30957
  const parsed = require_dist$1.SubmitMarketingContactRequestSchema.safeParse(await c.req.json().catch(() => null));
30936
30958
  if (!parsed.success) {
@@ -30952,6 +30974,115 @@ async function handler$1(c) {
30952
30974
  return c.json(require_dist$1.SubmitMarketingContactResponseSchema.parse({ ok: true }), 200);
30953
30975
  }
30954
30976
  //#endregion
30977
+ //#region src/routes/public/forms/resolve.ts
30978
+ async function resolvePublicWorkflowForm(token) {
30979
+ const publishedForm = await (0, _keystrokehq_platform_database.selectEnabledPublishedFormByToken)(token);
30980
+ if (!publishedForm) return null;
30981
+ const workflow = await require_with_project_scope.withProjectScope(publishedForm.project.id, () => (0, _keystrokehq_database.selectActiveWorkflowBySlug)(publishedForm.form.workflowSlug));
30982
+ if (!workflow) return null;
30983
+ const requestSchema = await resolveWorkflowRequestSchema(publishedForm.project.id, workflow);
30984
+ if (!requestSchema) return null;
30985
+ const inputSchema = require_dist$1.jsonSchemaToWorkflowInputSchema(requestSchema);
30986
+ if (inputSchema.fields.length === 0 || require_dist$1.schemaHasFileFields(inputSchema) || require_dist$1.schemaHasUnsupportedFormFields(inputSchema)) return null;
30987
+ return {
30988
+ publishedForm,
30989
+ workflow,
30990
+ requestSchema,
30991
+ inputSchema
30992
+ };
30993
+ }
30994
+ //#endregion
30995
+ //#region src/routes/public/forms/GET.ts
30996
+ async function handler$1(c) {
30997
+ const token = c.req.param("token")?.trim();
30998
+ if (!token) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
30999
+ const resolved = await resolvePublicWorkflowForm(token);
31000
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
31001
+ const { publishedForm, workflow, inputSchema } = resolved;
31002
+ const branding = publishedForm.organization;
31003
+ return c.json(require_dist$1.PublicFormMetadataSchema.parse({
31004
+ title: publishedForm.form.title ?? workflow.name,
31005
+ description: publishedForm.form.description ?? workflow.description,
31006
+ fields: require_dist$1.resolvePublicFormFields(inputSchema, publishedForm.form.fieldConfig),
31007
+ branding: {
31008
+ organizationName: branding.name,
31009
+ projectName: publishedForm.project.name,
31010
+ logoLightUrl: branding.customLogoEnabled ? branding.logoLightUrl : null,
31011
+ logoDarkUrl: branding.customLogoEnabled ? branding.logoDarkUrl : null,
31012
+ logoHeightPx: branding.logoHeightPx
31013
+ }
31014
+ }));
31015
+ }
31016
+ //#endregion
31017
+ //#region src/lib/public-form-rate-limit.ts
31018
+ const WINDOW_MS = 6e4;
31019
+ const MAX_REQUESTS_PER_WINDOW = 5;
31020
+ const hits = /* @__PURE__ */ new Map();
31021
+ /** Limits a visitor's submissions to one published form. */
31022
+ function consumePublicFormRateLimit(formToken, ip) {
31023
+ const key = `${formToken}:${ip}`;
31024
+ const now = Date.now();
31025
+ const entry = hits.get(key);
31026
+ if (!entry || now >= entry.resetAt) {
31027
+ hits.set(key, {
31028
+ count: 1,
31029
+ resetAt: now + WINDOW_MS
31030
+ });
31031
+ return true;
31032
+ }
31033
+ if (entry.count >= MAX_REQUESTS_PER_WINDOW) return false;
31034
+ entry.count += 1;
31035
+ return true;
31036
+ }
31037
+ //#endregion
31038
+ //#region src/routes/public/forms/submit/POST.ts
31039
+ function parseRunInput(requestSchema, input) {
31040
+ if (typeof zod.z.fromJSONSchema === "function") return zod.z.fromJSONSchema(requestSchema).parse(input ?? {});
31041
+ return zod.z.record(zod.z.string(), zod.z.unknown()).parse(input ?? {});
31042
+ }
31043
+ function createHandler(promptCreditGate) {
31044
+ return async (c) => {
31045
+ const token = c.req.param("token")?.trim();
31046
+ if (!token) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
31047
+ const resolved = await resolvePublicWorkflowForm(token);
31048
+ if (!resolved) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
31049
+ if (!consumePublicFormRateLimit(token, clientIp(c))) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Too many requests" }), 429);
31050
+ const parsed = require_dist$1.PublicFormSubmitBodySchema.safeParse(await c.req.json().catch(() => null));
31051
+ if (!parsed.success) {
31052
+ const message = parsed.error.issues[0]?.message ?? "Invalid request body";
31053
+ return c.json(require_dist$1.ErrorResponseSchema.parse({ error: message }), 400);
31054
+ }
31055
+ if (parsed.data.website?.trim()) return c.json(require_dist$1.PublicFormSubmitResponseSchema.parse({ ok: true }), 202);
31056
+ const { publishedForm, requestSchema, workflow } = resolved;
31057
+ if (promptCreditGate) try {
31058
+ const creditResult = await promptCreditGate(publishedForm.organization.id);
31059
+ if (!creditResult.allow) return c.json(require_dist$1.ErrorResponseSchema.parse({
31060
+ error: creditResult.reason,
31061
+ message: "This workspace is out of credits. Add credits in billing settings to run workflows."
31062
+ }), 402);
31063
+ } catch (error) {
31064
+ console.error("[public-forms] prompt credit gate failed (allowing):", error);
31065
+ }
31066
+ const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(publishedForm.organization.id);
31067
+ if (!organization) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Form not found" }), 404);
31068
+ try {
31069
+ await require_with_project_scope.withProjectScope(publishedForm.project.id, async () => {
31070
+ const scheduler = await (0, _keystrokehq_http.getProjectScheduler)(organization, publishedForm.project.id);
31071
+ await (0, _keystrokehq_runtime.enqueueWorkflowRunByKey)({
31072
+ workflowKey: workflow.slug,
31073
+ input: parsed.data.values,
31074
+ jobQueue: scheduler,
31075
+ parseInput: (value) => parseRunInput(requestSchema, value)
31076
+ });
31077
+ });
31078
+ } catch (error) {
31079
+ if (error instanceof zod.ZodError) return c.json(require_dist$1.validationErrorResponse(error, "Invalid workflow input"), 400);
31080
+ throw error;
31081
+ }
31082
+ return c.json(require_dist$1.PublicFormSubmitResponseSchema.parse({ ok: true }), 202);
31083
+ };
31084
+ }
31085
+ //#endregion
30955
31086
  //#region src/routes/well-known/oauth-client-metadata/GET.ts
30956
31087
  /** Public CIMD document for outbound MCP OAuth (no session required). */
30957
31088
  async function handler(c) {
@@ -30978,8 +31109,10 @@ async function createApp(auth, options) {
30978
31109
  },
30979
31110
  mountAccount: async (app) => {
30980
31111
  app.get(OAUTH_CLIENT_METADATA_PATH, handler);
30981
- app.post("/api/public/contact", handler$1);
30982
- app.get("/api/public/models", handler$2);
31112
+ app.post("/api/public/contact", handler$2);
31113
+ app.get("/api/public/models", handler$3);
31114
+ app.get("/api/public/forms/:token", handler$1);
31115
+ app.post("/api/public/forms/:token/submit", createHandler(options.promptCreditGate));
30983
31116
  app.route("/api", mountAccountRoutes({
30984
31117
  hosting: options.hosting,
30985
31118
  storage: options.storage,
@@ -31025,28 +31158,6 @@ function usesPgBossScheduler(platformConfig) {
31025
31158
  async function startPlatformServer(platformConfig, hooks = {}) {
31026
31159
  const runtime = platformConfig.hosting.createRuntime();
31027
31160
  await (0, _keystrokehq_platform_database.initDatabase)();
31028
- (0, _keystrokehq_platform_database.migrateAllOrgSchemas)({ tryLock: true }).then(async ({ organizationCount, migratedCount, failures, skipped }) => {
31029
- if (skipped) {
31030
- console.log("[platform] org schema migrate-all skipped (another machine holds the cluster lock)");
31031
- return;
31032
- }
31033
- console.log(`Applied org runtime migrations for ${migratedCount}/${organizationCount} organization(s).`);
31034
- for (const failure of failures) {
31035
- console.error(`[platform] org schema migration failed for ${failure.organizationId} (${failure.dbSchema})`, failure.error);
31036
- await captureException({
31037
- error: failure.error,
31038
- organizationId: failure.organizationId,
31039
- operation: "platform.migrate_org_schema",
31040
- properties: { db_schema: failure.dbSchema }
31041
- });
31042
- }
31043
- }).catch((error) => {
31044
- console.error("[platform] background org schema migrate-all failed", error);
31045
- captureException({
31046
- error,
31047
- operation: "platform.migrate_org_schema"
31048
- });
31049
- });
31050
31161
  await require_dist$1.ensureKeystrokeAssetsBucket();
31051
31162
  await (0, _keystrokehq_runtime.seedOAuthAppsFromEnvForAllOrganizations)();
31052
31163
  if (usesPgBossScheduler(platformConfig)) await (0, _keystrokehq_platform_database.ensureProjectPgBossGrants)();
@@ -31272,4 +31383,4 @@ Object.defineProperty(exports, "x$1", {
31272
31383
  }
31273
31384
  });
31274
31385
 
31275
- //# sourceMappingURL=start-DMis00-F.cjs.map
31386
+ //# sourceMappingURL=start-CXLVcrhR.cjs.map