@keystrokehq/platform 0.1.117 → 0.1.119

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-Dvoy0Jo4.cjs → awk2-LA3USKJP-BW5gD7Ek.cjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-Dvoy0Jo4.cjs.map → awk2-LA3USKJP-BW5gD7Ek.cjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-DpvnYjX2.mjs → awk2-LA3USKJP-C_uJ9UTC.mjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-DpvnYjX2.mjs.map → awk2-LA3USKJP-C_uJ9UTC.mjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-CTQAdSG0.cjs → base64-C2AIWVNC-Deofn7Tz.cjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-CTQAdSG0.cjs.map → base64-C2AIWVNC-Deofn7Tz.cjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-DNibLND0.mjs → base64-C2AIWVNC-Dj_3ikno.mjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-DNibLND0.mjs.map → base64-C2AIWVNC-Dj_3ikno.mjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-BBhsNCSj.mjs → bash-YZ33HQZQ-0OgzIjsV.mjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-BBhsNCSj.mjs.map → bash-YZ33HQZQ-0OgzIjsV.mjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-CqiP9-IN.cjs → bash-YZ33HQZQ-DiCTIB0C.cjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-CqiP9-IN.cjs.map → bash-YZ33HQZQ-DiCTIB0C.cjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-CzLIxs_Y.mjs → cat-TSFMZVYS-19ZMdpAq.mjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-CzLIxs_Y.mjs.map → cat-TSFMZVYS-19ZMdpAq.mjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-BqA9dC8-.cjs → cat-TSFMZVYS-DPSpsOSF.cjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-BqA9dC8-.cjs.map → cat-TSFMZVYS-DPSpsOSF.cjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-bwO1_x66.mjs → chunk-5H5SCKJM-DZPFrWS7.mjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-bwO1_x66.mjs.map → chunk-5H5SCKJM-DZPFrWS7.mjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-DbJ6QWgq.cjs → chunk-5H5SCKJM-mInR0aVw.cjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-DbJ6QWgq.cjs.map → chunk-5H5SCKJM-mInR0aVw.cjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-dyvh_3_k.cjs → chunk-AQ6FYS2X-BSdtBwzs.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-dyvh_3_k.cjs.map → chunk-AQ6FYS2X-BSdtBwzs.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-BlpUjVwc.mjs → chunk-AQ6FYS2X-Z7TDlycS.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-BlpUjVwc.mjs.map → chunk-AQ6FYS2X-Z7TDlycS.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-PkR6Rg7k.cjs → chunk-CHFEPBH4-34GTMZQg.cjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-PkR6Rg7k.cjs.map → chunk-CHFEPBH4-34GTMZQg.cjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-B3-VFcQl.mjs → chunk-CHFEPBH4-CAH6NdaH.mjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-B3-VFcQl.mjs.map → chunk-CHFEPBH4-CAH6NdaH.mjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-CB7OXdxC.mjs → chunk-EBAPSGAO-DkISHjdI.mjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-CB7OXdxC.mjs.map → chunk-EBAPSGAO-DkISHjdI.mjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-Crn54yub.cjs → chunk-EBAPSGAO-mqIfq_c1.cjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-Crn54yub.cjs.map → chunk-EBAPSGAO-mqIfq_c1.cjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-B3cLm6oa.mjs → chunk-LEKBROJD-CSy2cC7R.mjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-B3cLm6oa.mjs.map → chunk-LEKBROJD-CSy2cC7R.mjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-BAKGB8s6.cjs → chunk-LEKBROJD-D44MqVtt.cjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-BAKGB8s6.cjs.map → chunk-LEKBROJD-D44MqVtt.cjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-BuWaBJwi.cjs → chunk-VPADYNBD-DNBSUueR.cjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-BuWaBJwi.cjs.map → chunk-VPADYNBD-DNBSUueR.cjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-B902D9e8.mjs → chunk-VPADYNBD-l5-X8hMy.mjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-B902D9e8.mjs.map → chunk-VPADYNBD-l5-X8hMy.mjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-Dn4vKiDg.cjs → chunk-YCLFEX4T-CMZ-flBc.cjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-Dn4vKiDg.cjs.map → chunk-YCLFEX4T-CMZ-flBc.cjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-LIwTH9SY.mjs → chunk-YCLFEX4T-uJ2V8d7w.mjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-LIwTH9SY.mjs.map → chunk-YCLFEX4T-uJ2V8d7w.mjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-kaZr3ck1.mjs → column-XT6UFXNQ-B8k4MbkY.mjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-kaZr3ck1.mjs.map → column-XT6UFXNQ-B8k4MbkY.mjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-Boj04bYt.cjs → column-XT6UFXNQ-DqZnm5qa.cjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-Boj04bYt.cjs.map → column-XT6UFXNQ-DqZnm5qa.cjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-BcfPIK9n.mjs → comm-VV2LDX2J-C3W7A-jn.mjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-BcfPIK9n.mjs.map → comm-VV2LDX2J-C3W7A-jn.mjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-DgVwT105.cjs → comm-VV2LDX2J-CR1wbzGf.cjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-DgVwT105.cjs.map → comm-VV2LDX2J-CR1wbzGf.cjs.map} +1 -1
  53. package/dist/config.cjs +2 -2
  54. package/dist/config.mjs +2 -2
  55. package/dist/{cp-BISAAS7A-Bcf_ba9y.cjs → cp-BISAAS7A-CEFW3zU-.cjs} +2 -2
  56. package/dist/{cp-BISAAS7A-Bcf_ba9y.cjs.map → cp-BISAAS7A-CEFW3zU-.cjs.map} +1 -1
  57. package/dist/{cp-BISAAS7A-D85tMW1Y.mjs → cp-BISAAS7A-aP1UYqJd.mjs} +2 -2
  58. package/dist/{cp-BISAAS7A-D85tMW1Y.mjs.map → cp-BISAAS7A-aP1UYqJd.mjs.map} +1 -1
  59. package/dist/{cut-OKARJCCV-B1JE4QQ8.mjs → cut-OKARJCCV-DfCVAblN.mjs} +3 -3
  60. package/dist/{cut-OKARJCCV-B1JE4QQ8.mjs.map → cut-OKARJCCV-DfCVAblN.mjs.map} +1 -1
  61. package/dist/{cut-OKARJCCV-JizvZoF6.cjs → cut-OKARJCCV-YbUZRW2m.cjs} +3 -3
  62. package/dist/{cut-OKARJCCV-JizvZoF6.cjs.map → cut-OKARJCCV-YbUZRW2m.cjs.map} +1 -1
  63. package/dist/{diff-MWJFIG7X-DNpSNYB2.mjs → diff-MWJFIG7X-Db23ZFvu.mjs} +2 -2
  64. package/dist/{diff-MWJFIG7X-DNpSNYB2.mjs.map → diff-MWJFIG7X-Db23ZFvu.mjs.map} +1 -1
  65. package/dist/{diff-MWJFIG7X-BMYp-iAk.cjs → diff-MWJFIG7X-uzFU7vBr.cjs} +2 -2
  66. package/dist/{diff-MWJFIG7X-BMYp-iAk.cjs.map → diff-MWJFIG7X-uzFU7vBr.cjs.map} +1 -1
  67. package/dist/{dist-Cj3RPKwD.mjs → dist-B2lPLfrR.mjs} +415 -158
  68. package/dist/dist-B2lPLfrR.mjs.map +1 -0
  69. package/dist/{dist-AKkRwuhE.cjs → dist-CkBSbX2_.cjs} +414 -157
  70. package/dist/dist-CkBSbX2_.cjs.map +1 -0
  71. package/dist/{dist-D7eFCDTR.mjs → dist-D_ICFiVc.mjs} +21 -4
  72. package/dist/dist-D_ICFiVc.mjs.map +1 -0
  73. package/dist/{dist-bLC4LOvt.cjs → dist-QS2Dafen.cjs} +21 -4
  74. package/dist/dist-QS2Dafen.cjs.map +1 -0
  75. package/dist/{du-572XNP42-BwvbhLB4.mjs → du-572XNP42-B724WDI9.mjs} +2 -2
  76. package/dist/{du-572XNP42-BwvbhLB4.mjs.map → du-572XNP42-B724WDI9.mjs.map} +1 -1
  77. package/dist/{du-572XNP42-tSkGjDhu.cjs → du-572XNP42-CX6RDfLF.cjs} +2 -2
  78. package/dist/{du-572XNP42-tSkGjDhu.cjs.map → du-572XNP42-CX6RDfLF.cjs.map} +1 -1
  79. package/dist/{env-36M5BO7M-ClR8f-u_.mjs → env-36M5BO7M-BLMWIQAH.mjs} +2 -2
  80. package/dist/{env-36M5BO7M-ClR8f-u_.mjs.map → env-36M5BO7M-BLMWIQAH.mjs.map} +1 -1
  81. package/dist/{env-36M5BO7M-BwKubobQ.cjs → env-36M5BO7M-okDipi6p.cjs} +2 -2
  82. package/dist/{env-36M5BO7M-BwKubobQ.cjs.map → env-36M5BO7M-okDipi6p.cjs.map} +1 -1
  83. package/dist/{expand-JSPG6VOP-BeHkk5Oo.cjs → expand-JSPG6VOP-BRdJhhzq.cjs} +2 -2
  84. package/dist/{expand-JSPG6VOP-BeHkk5Oo.cjs.map → expand-JSPG6VOP-BRdJhhzq.cjs.map} +1 -1
  85. package/dist/{expand-JSPG6VOP-BWU9TNYW.mjs → expand-JSPG6VOP-DUj7F9Cu.mjs} +2 -2
  86. package/dist/{expand-JSPG6VOP-BWU9TNYW.mjs.map → expand-JSPG6VOP-DUj7F9Cu.mjs.map} +1 -1
  87. package/dist/{expr-5JAACS4X-DjCkxQwm.mjs → expr-5JAACS4X-CfrWhuNY.mjs} +2 -2
  88. package/dist/{expr-5JAACS4X-DjCkxQwm.mjs.map → expr-5JAACS4X-CfrWhuNY.mjs.map} +1 -1
  89. package/dist/{expr-5JAACS4X-CuMpHcmU.cjs → expr-5JAACS4X-XEZLTHHs.cjs} +2 -2
  90. package/dist/{expr-5JAACS4X-CuMpHcmU.cjs.map → expr-5JAACS4X-XEZLTHHs.cjs.map} +1 -1
  91. package/dist/{find-INTH3OLC-CGo48GJL.cjs → find-INTH3OLC-ChUCh5M0.cjs} +3 -3
  92. package/dist/{find-INTH3OLC-CGo48GJL.cjs.map → find-INTH3OLC-ChUCh5M0.cjs.map} +1 -1
  93. package/dist/{find-INTH3OLC-ANEYvUZg.mjs → find-INTH3OLC-CxFHfo_D.mjs} +3 -3
  94. package/dist/{find-INTH3OLC-ANEYvUZg.mjs.map → find-INTH3OLC-CxFHfo_D.mjs.map} +1 -1
  95. package/dist/{fold-4TQNYMSW-BmpYm0H1.mjs → fold-4TQNYMSW-B8TGVC7j.mjs} +2 -2
  96. package/dist/{fold-4TQNYMSW-BmpYm0H1.mjs.map → fold-4TQNYMSW-B8TGVC7j.mjs.map} +1 -1
  97. package/dist/{fold-4TQNYMSW-C8GWRkk8.cjs → fold-4TQNYMSW-D5LbDNK2.cjs} +2 -2
  98. package/dist/{fold-4TQNYMSW-C8GWRkk8.cjs.map → fold-4TQNYMSW-D5LbDNK2.cjs.map} +1 -1
  99. package/dist/{grep-V3LQVMRQ-FFO9h2h8.mjs → grep-V3LQVMRQ-DN1wiZly.mjs} +4 -4
  100. package/dist/{grep-V3LQVMRQ-FFO9h2h8.mjs.map → grep-V3LQVMRQ-DN1wiZly.mjs.map} +1 -1
  101. package/dist/{grep-V3LQVMRQ-9V45Njd7.cjs → grep-V3LQVMRQ-WVUeOxin.cjs} +4 -4
  102. package/dist/{grep-V3LQVMRQ-9V45Njd7.cjs.map → grep-V3LQVMRQ-WVUeOxin.cjs.map} +1 -1
  103. package/dist/{gzip-O5ASJAFY-CRDFlLbr.mjs → gzip-O5ASJAFY-C7v6CBdm.mjs} +2 -2
  104. package/dist/{gzip-O5ASJAFY-CRDFlLbr.mjs.map → gzip-O5ASJAFY-C7v6CBdm.mjs.map} +1 -1
  105. package/dist/{gzip-O5ASJAFY-B43NZFRO.cjs → gzip-O5ASJAFY-DFGo8ssh.cjs} +2 -2
  106. package/dist/{gzip-O5ASJAFY-B43NZFRO.cjs.map → gzip-O5ASJAFY-DFGo8ssh.cjs.map} +1 -1
  107. package/dist/{head-442HYESI-CXxOStnC.mjs → head-442HYESI-DYhCEt04.mjs} +2 -2
  108. package/dist/{head-442HYESI-CXxOStnC.mjs.map → head-442HYESI-DYhCEt04.mjs.map} +1 -1
  109. package/dist/{head-442HYESI-CmVujDWk.cjs → head-442HYESI-oqGD9fkS.cjs} +2 -2
  110. package/dist/{head-442HYESI-CmVujDWk.cjs.map → head-442HYESI-oqGD9fkS.cjs.map} +1 -1
  111. package/dist/{help-HZ6M2CKN-DO23r8PQ.cjs → help-HZ6M2CKN-CQnNa3uh.cjs} +2 -2
  112. package/dist/{help-HZ6M2CKN-DO23r8PQ.cjs.map → help-HZ6M2CKN-CQnNa3uh.cjs.map} +1 -1
  113. package/dist/{help-HZ6M2CKN-_fBE8i_X.mjs → help-HZ6M2CKN-WHmZpsJe.mjs} +2 -2
  114. package/dist/{help-HZ6M2CKN-_fBE8i_X.mjs.map → help-HZ6M2CKN-WHmZpsJe.mjs.map} +1 -1
  115. package/dist/{html-to-markdown-JW4MSQZO-CaYVbaxu.cjs → html-to-markdown-JW4MSQZO-BRaey0zy.cjs} +3 -3
  116. package/dist/{html-to-markdown-JW4MSQZO-CaYVbaxu.cjs.map → html-to-markdown-JW4MSQZO-BRaey0zy.cjs.map} +1 -1
  117. package/dist/{html-to-markdown-JW4MSQZO-B_ZXZPwG.mjs → html-to-markdown-JW4MSQZO-CezmhFZv.mjs} +3 -3
  118. package/dist/{html-to-markdown-JW4MSQZO-B_ZXZPwG.mjs.map → html-to-markdown-JW4MSQZO-CezmhFZv.mjs.map} +1 -1
  119. package/dist/internal.cjs +1 -1
  120. package/dist/internal.mjs +1 -1
  121. package/dist/{join-TBRGI3LQ-BKh_m7Ck.cjs → join-TBRGI3LQ-DGC98Vff.cjs} +2 -2
  122. package/dist/{join-TBRGI3LQ-BKh_m7Ck.cjs.map → join-TBRGI3LQ-DGC98Vff.cjs.map} +1 -1
  123. package/dist/{join-TBRGI3LQ-Bryan1uc.mjs → join-TBRGI3LQ-DavcUkrI.mjs} +2 -2
  124. package/dist/{join-TBRGI3LQ-Bryan1uc.mjs.map → join-TBRGI3LQ-DavcUkrI.mjs.map} +1 -1
  125. package/dist/{jq-4XLYLOS5-DlA0DGTU.mjs → jq-4XLYLOS5-BIRMGhL2.mjs} +4 -4
  126. package/dist/{jq-4XLYLOS5-DlA0DGTU.mjs.map → jq-4XLYLOS5-BIRMGhL2.mjs.map} +1 -1
  127. package/dist/{jq-4XLYLOS5-BxFW6--8.cjs → jq-4XLYLOS5-DwHcJv8h.cjs} +4 -4
  128. package/dist/{jq-4XLYLOS5-BxFW6--8.cjs.map → jq-4XLYLOS5-DwHcJv8h.cjs.map} +1 -1
  129. package/dist/{js-exec-N5KEZBH7-hTtZY8cm.cjs → js-exec-N5KEZBH7-BfEgJ3O-.cjs} +3 -3
  130. package/dist/{js-exec-N5KEZBH7-hTtZY8cm.cjs.map → js-exec-N5KEZBH7-BfEgJ3O-.cjs.map} +1 -1
  131. package/dist/{js-exec-N5KEZBH7-1jBR3z1f.mjs → js-exec-N5KEZBH7-CENniwUd.mjs} +3 -3
  132. package/dist/{js-exec-N5KEZBH7-1jBR3z1f.mjs.map → js-exec-N5KEZBH7-CENniwUd.mjs.map} +1 -1
  133. package/dist/{lib-DLNAr9hM.mjs → lib-r4uXvKzY.mjs} +2 -2
  134. package/dist/{lib-DLNAr9hM.mjs.map → lib-r4uXvKzY.mjs.map} +1 -1
  135. package/dist/{lib-DEuFQ8jW.cjs → lib-s1Tq9Ck6.cjs} +2 -2
  136. package/dist/{lib-DEuFQ8jW.cjs.map → lib-s1Tq9Ck6.cjs.map} +1 -1
  137. package/dist/{ln-4LGSXXGD-DoMwqtWM.mjs → ln-4LGSXXGD-Bm1sddvE.mjs} +2 -2
  138. package/dist/{ln-4LGSXXGD-DoMwqtWM.mjs.map → ln-4LGSXXGD-Bm1sddvE.mjs.map} +1 -1
  139. package/dist/{ln-4LGSXXGD-DZ20jRcK.cjs → ln-4LGSXXGD-C2-zvnH-.cjs} +2 -2
  140. package/dist/{ln-4LGSXXGD-DZ20jRcK.cjs.map → ln-4LGSXXGD-C2-zvnH-.cjs.map} +1 -1
  141. package/dist/{ls-ZJGQER7M-B5gaVKxE.mjs → ls-ZJGQER7M-EzhpSJMB.mjs} +2 -2
  142. package/dist/{ls-ZJGQER7M-B5gaVKxE.mjs.map → ls-ZJGQER7M-EzhpSJMB.mjs.map} +1 -1
  143. package/dist/{ls-ZJGQER7M-Dethi67D.cjs → ls-ZJGQER7M-Kk7mhuiM.cjs} +2 -2
  144. package/dist/{ls-ZJGQER7M-Dethi67D.cjs.map → ls-ZJGQER7M-Kk7mhuiM.cjs.map} +1 -1
  145. package/dist/{lzma-O8OSBX-9.cjs → lzma-Bss45nA5.cjs} +2 -2
  146. package/dist/{lzma-O8OSBX-9.cjs.map → lzma-Bss45nA5.cjs.map} +1 -1
  147. package/dist/{md5sum-SPU24VSG-Dh6HTP0G.cjs → md5sum-SPU24VSG-DpKxsaMc.cjs} +3 -3
  148. package/dist/{md5sum-SPU24VSG-Dh6HTP0G.cjs.map → md5sum-SPU24VSG-DpKxsaMc.cjs.map} +1 -1
  149. package/dist/{md5sum-SPU24VSG-CAE_-OrT.mjs → md5sum-SPU24VSG-DuY3W47X.mjs} +3 -3
  150. package/dist/{md5sum-SPU24VSG-CAE_-OrT.mjs.map → md5sum-SPU24VSG-DuY3W47X.mjs.map} +1 -1
  151. package/dist/{mkdir-MEPGZOB6-BaXX8tym.mjs → mkdir-MEPGZOB6-B54I-co9.mjs} +2 -2
  152. package/dist/{mkdir-MEPGZOB6-BaXX8tym.mjs.map → mkdir-MEPGZOB6-B54I-co9.mjs.map} +1 -1
  153. package/dist/{mkdir-MEPGZOB6-D5whvinj.cjs → mkdir-MEPGZOB6-CQG6PmsH.cjs} +2 -2
  154. package/dist/{mkdir-MEPGZOB6-D5whvinj.cjs.map → mkdir-MEPGZOB6-CQG6PmsH.cjs.map} +1 -1
  155. package/dist/{mv-W5BIQ646-CwWkCaw1.mjs → mv-W5BIQ646-BOGImyXG.mjs} +2 -2
  156. package/dist/{mv-W5BIQ646-CwWkCaw1.mjs.map → mv-W5BIQ646-BOGImyXG.mjs.map} +1 -1
  157. package/dist/{mv-W5BIQ646-Bkt3Wkxb.cjs → mv-W5BIQ646-W82Guf5l.cjs} +2 -2
  158. package/dist/{mv-W5BIQ646-Bkt3Wkxb.cjs.map → mv-W5BIQ646-W82Guf5l.cjs.map} +1 -1
  159. package/dist/{nl-WSDW7I4O-DKNWPtTC.mjs → nl-WSDW7I4O-C5Tn3qyh.mjs} +2 -2
  160. package/dist/{nl-WSDW7I4O-DKNWPtTC.mjs.map → nl-WSDW7I4O-C5Tn3qyh.mjs.map} +1 -1
  161. package/dist/{nl-WSDW7I4O-DgLzrg9w.cjs → nl-WSDW7I4O-DHCupEKS.cjs} +2 -2
  162. package/dist/{nl-WSDW7I4O-DgLzrg9w.cjs.map → nl-WSDW7I4O-DHCupEKS.cjs.map} +1 -1
  163. package/dist/{od-WOKFDJTP-8pORtSkj.cjs → od-WOKFDJTP-CQQETIge.cjs} +2 -2
  164. package/dist/{od-WOKFDJTP-8pORtSkj.cjs.map → od-WOKFDJTP-CQQETIge.cjs.map} +1 -1
  165. package/dist/{od-WOKFDJTP-Ci-7AUKD.mjs → od-WOKFDJTP-Dhall4HD.mjs} +2 -2
  166. package/dist/{od-WOKFDJTP-Ci-7AUKD.mjs.map → od-WOKFDJTP-Dhall4HD.mjs.map} +1 -1
  167. package/dist/{paste-7JC6S4DX-By-QZFhH.mjs → paste-7JC6S4DX-CQu-heii.mjs} +2 -2
  168. package/dist/{paste-7JC6S4DX-By-QZFhH.mjs.map → paste-7JC6S4DX-CQu-heii.mjs.map} +1 -1
  169. package/dist/{paste-7JC6S4DX-CcluY3SW.cjs → paste-7JC6S4DX-DRUvmKbL.cjs} +2 -2
  170. package/dist/{paste-7JC6S4DX-CcluY3SW.cjs.map → paste-7JC6S4DX-DRUvmKbL.cjs.map} +1 -1
  171. package/dist/{printf-TWGXF445-B2JFcHkJ.cjs → printf-TWGXF445-BL70_Mu8.cjs} +3 -3
  172. package/dist/{printf-TWGXF445-B2JFcHkJ.cjs.map → printf-TWGXF445-BL70_Mu8.cjs.map} +1 -1
  173. package/dist/{printf-TWGXF445-BIL2LikJ.mjs → printf-TWGXF445-Dt9gKujx.mjs} +3 -3
  174. package/dist/{printf-TWGXF445-BIL2LikJ.mjs.map → printf-TWGXF445-Dt9gKujx.mjs.map} +1 -1
  175. package/dist/{python3-POMOR4OA-CRUFjgTB.mjs → python3-POMOR4OA-CudEUuqu.mjs} +3 -3
  176. package/dist/{python3-POMOR4OA-CRUFjgTB.mjs.map → python3-POMOR4OA-CudEUuqu.mjs.map} +1 -1
  177. package/dist/{python3-POMOR4OA-Bn9o5xa_.cjs → python3-POMOR4OA-k99Mukqm.cjs} +3 -3
  178. package/dist/{python3-POMOR4OA-Bn9o5xa_.cjs.map → python3-POMOR4OA-k99Mukqm.cjs.map} +1 -1
  179. package/dist/{rev-5EHFX4EJ-DupNIGct.cjs → rev-5EHFX4EJ-BncrTaPe.cjs} +2 -2
  180. package/dist/{rev-5EHFX4EJ-DupNIGct.cjs.map → rev-5EHFX4EJ-BncrTaPe.cjs.map} +1 -1
  181. package/dist/{rev-5EHFX4EJ-CVOJJds6.mjs → rev-5EHFX4EJ-Da-_OtYp.mjs} +2 -2
  182. package/dist/{rev-5EHFX4EJ-CVOJJds6.mjs.map → rev-5EHFX4EJ-Da-_OtYp.mjs.map} +1 -1
  183. package/dist/{rg-S4FXYXWB-CezCFXCC.mjs → rg-S4FXYXWB-DpNsd4K9.mjs} +3 -3
  184. package/dist/{rg-S4FXYXWB-CezCFXCC.mjs.map → rg-S4FXYXWB-DpNsd4K9.mjs.map} +1 -1
  185. package/dist/{rg-S4FXYXWB-DT3iZWlx.cjs → rg-S4FXYXWB-k-o32NUm.cjs} +3 -3
  186. package/dist/{rg-S4FXYXWB-DT3iZWlx.cjs.map → rg-S4FXYXWB-k-o32NUm.cjs.map} +1 -1
  187. package/dist/{rm-SSGETQVQ-Dpw1qQmO.cjs → rm-SSGETQVQ-BdEQdiqA.cjs} +2 -2
  188. package/dist/{rm-SSGETQVQ-Dpw1qQmO.cjs.map → rm-SSGETQVQ-BdEQdiqA.cjs.map} +1 -1
  189. package/dist/{rm-SSGETQVQ-DamSzyVi.mjs → rm-SSGETQVQ-D3OzLKaR.mjs} +2 -2
  190. package/dist/{rm-SSGETQVQ-DamSzyVi.mjs.map → rm-SSGETQVQ-D3OzLKaR.mjs.map} +1 -1
  191. package/dist/{rmdir-OC4ZLPYA-BgRhHhqc.cjs → rmdir-OC4ZLPYA-CwNexp-K.cjs} +2 -2
  192. package/dist/{rmdir-OC4ZLPYA-BgRhHhqc.cjs.map → rmdir-OC4ZLPYA-CwNexp-K.cjs.map} +1 -1
  193. package/dist/{rmdir-OC4ZLPYA-CjhUuzYY.mjs → rmdir-OC4ZLPYA-Vs8pjIJ4.mjs} +2 -2
  194. package/dist/{rmdir-OC4ZLPYA-CjhUuzYY.mjs.map → rmdir-OC4ZLPYA-Vs8pjIJ4.mjs.map} +1 -1
  195. package/dist/run.cjs +1 -1
  196. package/dist/run.mjs +1 -1
  197. package/dist/{sed-S5UIK574-CAB4O14o.cjs → sed-S5UIK574-CmYMd5gV.cjs} +2 -2
  198. package/dist/{sed-S5UIK574-CAB4O14o.cjs.map → sed-S5UIK574-CmYMd5gV.cjs.map} +1 -1
  199. package/dist/{sed-S5UIK574-W9sjT6JH.mjs → sed-S5UIK574-DyJHugnM.mjs} +2 -2
  200. package/dist/{sed-S5UIK574-W9sjT6JH.mjs.map → sed-S5UIK574-DyJHugnM.mjs.map} +1 -1
  201. package/dist/{sha1sum-2PTOAFR6-CjO1AnCs.mjs → sha1sum-2PTOAFR6-BNMNnH4a.mjs} +3 -3
  202. package/dist/{sha1sum-2PTOAFR6-CjO1AnCs.mjs.map → sha1sum-2PTOAFR6-BNMNnH4a.mjs.map} +1 -1
  203. package/dist/{sha1sum-2PTOAFR6-CQXvW7hE.cjs → sha1sum-2PTOAFR6-CHkmBbuF.cjs} +3 -3
  204. package/dist/{sha1sum-2PTOAFR6-CQXvW7hE.cjs.map → sha1sum-2PTOAFR6-CHkmBbuF.cjs.map} +1 -1
  205. package/dist/{sha256sum-NS7D3IXX-CfwCHZAO.cjs → sha256sum-NS7D3IXX-D8Ows_EQ.cjs} +3 -3
  206. package/dist/{sha256sum-NS7D3IXX-CfwCHZAO.cjs.map → sha256sum-NS7D3IXX-D8Ows_EQ.cjs.map} +1 -1
  207. package/dist/{sha256sum-NS7D3IXX-CUL2cnM9.mjs → sha256sum-NS7D3IXX-DCiObRGK.mjs} +3 -3
  208. package/dist/{sha256sum-NS7D3IXX-CUL2cnM9.mjs.map → sha256sum-NS7D3IXX-DCiObRGK.mjs.map} +1 -1
  209. package/dist/{sleep-X22JJINO-DterE54A.mjs → sleep-X22JJINO-DCiATAgx.mjs} +2 -2
  210. package/dist/{sleep-X22JJINO-DterE54A.mjs.map → sleep-X22JJINO-DCiATAgx.mjs.map} +1 -1
  211. package/dist/{sleep-X22JJINO-f7XVUQXn.cjs → sleep-X22JJINO-DgywhtkX.cjs} +2 -2
  212. package/dist/{sleep-X22JJINO-f7XVUQXn.cjs.map → sleep-X22JJINO-DgywhtkX.cjs.map} +1 -1
  213. package/dist/{sort-SW2YEO5B-Bwsz5nWP.mjs → sort-SW2YEO5B-BIld1500.mjs} +3 -3
  214. package/dist/{sort-SW2YEO5B-Bwsz5nWP.mjs.map → sort-SW2YEO5B-BIld1500.mjs.map} +1 -1
  215. package/dist/{sort-SW2YEO5B-CxI3IB8r.cjs → sort-SW2YEO5B-K29bZEkt.cjs} +3 -3
  216. package/dist/{sort-SW2YEO5B-CxI3IB8r.cjs.map → sort-SW2YEO5B-K29bZEkt.cjs.map} +1 -1
  217. package/dist/{split-4KKZZXXE-CbYicfn8.cjs → split-4KKZZXXE-C2sHnk6E.cjs} +2 -2
  218. package/dist/{split-4KKZZXXE-CbYicfn8.cjs.map → split-4KKZZXXE-C2sHnk6E.cjs.map} +1 -1
  219. package/dist/{split-4KKZZXXE-CSlaFM2x.mjs → split-4KKZZXXE-C682TL18.mjs} +2 -2
  220. package/dist/{split-4KKZZXXE-CSlaFM2x.mjs.map → split-4KKZZXXE-C682TL18.mjs.map} +1 -1
  221. package/dist/{sqlite3-CGOEFJAO-c1BPhcI3.mjs → sqlite3-CGOEFJAO-BCIPkSxm.mjs} +3 -3
  222. package/dist/{sqlite3-CGOEFJAO-c1BPhcI3.mjs.map → sqlite3-CGOEFJAO-BCIPkSxm.mjs.map} +1 -1
  223. package/dist/{sqlite3-CGOEFJAO-ZWNmR0V9.cjs → sqlite3-CGOEFJAO-Dh0oqw-k.cjs} +3 -3
  224. package/dist/{sqlite3-CGOEFJAO-ZWNmR0V9.cjs.map → sqlite3-CGOEFJAO-Dh0oqw-k.cjs.map} +1 -1
  225. package/dist/{start-CKxh9Ozm.mjs → start-C8A5Y1es.mjs} +180 -124
  226. package/dist/start-C8A5Y1es.mjs.map +1 -0
  227. package/dist/{start-MBSz5HQb.cjs → start-DcC-zxF1.cjs} +180 -124
  228. package/dist/start-DcC-zxF1.cjs.map +1 -0
  229. package/dist/start.cjs +1 -1
  230. package/dist/start.mjs +1 -1
  231. package/dist/{strings-6WDHLGMX-DiYPNtXb.mjs → strings-6WDHLGMX-DfgljZYU.mjs} +2 -2
  232. package/dist/{strings-6WDHLGMX-DiYPNtXb.mjs.map → strings-6WDHLGMX-DfgljZYU.mjs.map} +1 -1
  233. package/dist/{strings-6WDHLGMX-BdetudYk.cjs → strings-6WDHLGMX-DljwAIWz.cjs} +2 -2
  234. package/dist/{strings-6WDHLGMX-BdetudYk.cjs.map → strings-6WDHLGMX-DljwAIWz.cjs.map} +1 -1
  235. package/dist/{tac-2STMMJYW-B7OoWT_U.mjs → tac-2STMMJYW-B3AcXTdf.mjs} +2 -2
  236. package/dist/{tac-2STMMJYW-B7OoWT_U.mjs.map → tac-2STMMJYW-B3AcXTdf.mjs.map} +1 -1
  237. package/dist/{tac-2STMMJYW-BSY6Cwj8.cjs → tac-2STMMJYW-BnVw01dK.cjs} +2 -2
  238. package/dist/{tac-2STMMJYW-BSY6Cwj8.cjs.map → tac-2STMMJYW-BnVw01dK.cjs.map} +1 -1
  239. package/dist/{tail-R4PCA2C4-DjxLbbV-.cjs → tail-R4PCA2C4-8A3op41b.cjs} +2 -2
  240. package/dist/{tail-R4PCA2C4-DjxLbbV-.cjs.map → tail-R4PCA2C4-8A3op41b.cjs.map} +1 -1
  241. package/dist/{tail-R4PCA2C4-CLN95T7S.mjs → tail-R4PCA2C4-BrONSl6R.mjs} +2 -2
  242. package/dist/{tail-R4PCA2C4-CLN95T7S.mjs.map → tail-R4PCA2C4-BrONSl6R.mjs.map} +1 -1
  243. package/dist/{tar-STHHZTZ6-DF-n62Vs.mjs → tar-STHHZTZ6-BAXlUOR5.mjs} +4 -4
  244. package/dist/{tar-STHHZTZ6-DF-n62Vs.mjs.map → tar-STHHZTZ6-BAXlUOR5.mjs.map} +1 -1
  245. package/dist/{tar-STHHZTZ6-DvB6AkG2.cjs → tar-STHHZTZ6-DIkfQzE0.cjs} +5 -5
  246. package/dist/{tar-STHHZTZ6-DvB6AkG2.cjs.map → tar-STHHZTZ6-DIkfQzE0.cjs.map} +1 -1
  247. package/dist/{tee-YUZ2FKCJ-CksTNads.cjs → tee-YUZ2FKCJ-BkwF9rxX.cjs} +2 -2
  248. package/dist/{tee-YUZ2FKCJ-CksTNads.cjs.map → tee-YUZ2FKCJ-BkwF9rxX.cjs.map} +1 -1
  249. package/dist/{tee-YUZ2FKCJ-_l9qTJch.mjs → tee-YUZ2FKCJ-DBlSS73M.mjs} +2 -2
  250. package/dist/{tee-YUZ2FKCJ-_l9qTJch.mjs.map → tee-YUZ2FKCJ-DBlSS73M.mjs.map} +1 -1
  251. package/dist/{time-D4LNBSWX-40_1kPdP.mjs → time-D4LNBSWX-7MVmAtQo.mjs} +2 -2
  252. package/dist/{time-D4LNBSWX-40_1kPdP.mjs.map → time-D4LNBSWX-7MVmAtQo.mjs.map} +1 -1
  253. package/dist/{time-D4LNBSWX-DiI0vjvV.cjs → time-D4LNBSWX-alYfSUdv.cjs} +2 -2
  254. package/dist/{time-D4LNBSWX-DiI0vjvV.cjs.map → time-D4LNBSWX-alYfSUdv.cjs.map} +1 -1
  255. package/dist/{timeout-YDCRSLPQ-cmqLQn-O.cjs → timeout-YDCRSLPQ-D7uw71ZK.cjs} +2 -2
  256. package/dist/{timeout-YDCRSLPQ-cmqLQn-O.cjs.map → timeout-YDCRSLPQ-D7uw71ZK.cjs.map} +1 -1
  257. package/dist/{timeout-YDCRSLPQ-CUgf7efV.mjs → timeout-YDCRSLPQ-V4Gc33PA.mjs} +2 -2
  258. package/dist/{timeout-YDCRSLPQ-CUgf7efV.mjs.map → timeout-YDCRSLPQ-V4Gc33PA.mjs.map} +1 -1
  259. package/dist/{touch-UA33VN3N-02vOLkJx.mjs → touch-UA33VN3N-BvdCDNvh.mjs} +2 -2
  260. package/dist/{touch-UA33VN3N-02vOLkJx.mjs.map → touch-UA33VN3N-BvdCDNvh.mjs.map} +1 -1
  261. package/dist/{touch-UA33VN3N-B3rLDkVA.cjs → touch-UA33VN3N-rmsOL84Q.cjs} +2 -2
  262. package/dist/{touch-UA33VN3N-B3rLDkVA.cjs.map → touch-UA33VN3N-rmsOL84Q.cjs.map} +1 -1
  263. package/dist/{tr-36LHWFRQ-BfGf2mLy.cjs → tr-36LHWFRQ-D672NK0o.cjs} +2 -2
  264. package/dist/{tr-36LHWFRQ-BfGf2mLy.cjs.map → tr-36LHWFRQ-D672NK0o.cjs.map} +1 -1
  265. package/dist/{tr-36LHWFRQ-BwnDmJhv.mjs → tr-36LHWFRQ-DQL-CWbQ.mjs} +2 -2
  266. package/dist/{tr-36LHWFRQ-BwnDmJhv.mjs.map → tr-36LHWFRQ-DQL-CWbQ.mjs.map} +1 -1
  267. package/dist/{tree-YLD52CNT-B3eXfjPn.cjs → tree-YLD52CNT-B9MlNWhD.cjs} +2 -2
  268. package/dist/{tree-YLD52CNT-B3eXfjPn.cjs.map → tree-YLD52CNT-B9MlNWhD.cjs.map} +1 -1
  269. package/dist/{tree-YLD52CNT-DqLUz109.mjs → tree-YLD52CNT-LmR2Tdyi.mjs} +2 -2
  270. package/dist/{tree-YLD52CNT-DqLUz109.mjs.map → tree-YLD52CNT-LmR2Tdyi.mjs.map} +1 -1
  271. package/dist/{unexpand-CADSA4VO-VlwyRCQP.mjs → unexpand-CADSA4VO-BlcDiLij.mjs} +2 -2
  272. package/dist/{unexpand-CADSA4VO-VlwyRCQP.mjs.map → unexpand-CADSA4VO-BlcDiLij.mjs.map} +1 -1
  273. package/dist/{unexpand-CADSA4VO-CdhtwV2v.cjs → unexpand-CADSA4VO-DHAAlelL.cjs} +2 -2
  274. package/dist/{unexpand-CADSA4VO-CdhtwV2v.cjs.map → unexpand-CADSA4VO-DHAAlelL.cjs.map} +1 -1
  275. package/dist/{uniq-XSIZR6PB-DAXqaH8E.mjs → uniq-XSIZR6PB-3tHE1GmH.mjs} +3 -3
  276. package/dist/{uniq-XSIZR6PB-DAXqaH8E.mjs.map → uniq-XSIZR6PB-3tHE1GmH.mjs.map} +1 -1
  277. package/dist/{uniq-XSIZR6PB-Ch7QSVAZ.cjs → uniq-XSIZR6PB-DEfJnyaW.cjs} +3 -3
  278. package/dist/{uniq-XSIZR6PB-Ch7QSVAZ.cjs.map → uniq-XSIZR6PB-DEfJnyaW.cjs.map} +1 -1
  279. package/dist/{wc-LF7NU4LA-Ny3uANGM.cjs → wc-LF7NU4LA-DMBDVHsS.cjs} +3 -3
  280. package/dist/{wc-LF7NU4LA-Ny3uANGM.cjs.map → wc-LF7NU4LA-DMBDVHsS.cjs.map} +1 -1
  281. package/dist/{wc-LF7NU4LA-Q1EAygpb.mjs → wc-LF7NU4LA-DRj3yyc9.mjs} +3 -3
  282. package/dist/{wc-LF7NU4LA-Q1EAygpb.mjs.map → wc-LF7NU4LA-DRj3yyc9.mjs.map} +1 -1
  283. package/dist/{with-project-scope-BqDYOg9O.mjs → with-project-scope-DkQ6P3hm.mjs} +2 -2
  284. package/dist/{with-project-scope-BqDYOg9O.mjs.map → with-project-scope-DkQ6P3hm.mjs.map} +1 -1
  285. package/dist/{with-project-scope-CYWdNoND.cjs → with-project-scope-DtpKIH7m.cjs} +2 -2
  286. package/dist/{with-project-scope-CYWdNoND.cjs.map → with-project-scope-DtpKIH7m.cjs.map} +1 -1
  287. package/dist/{xan-Y6WF3IRG-unqwcLj2.mjs → xan-Y6WF3IRG-Bk9GoBFW.mjs} +6 -6
  288. package/dist/{xan-Y6WF3IRG-unqwcLj2.mjs.map → xan-Y6WF3IRG-Bk9GoBFW.mjs.map} +1 -1
  289. package/dist/{xan-Y6WF3IRG-QiEtoTG4.cjs → xan-Y6WF3IRG-C6Rea9i5.cjs} +6 -6
  290. package/dist/{xan-Y6WF3IRG-QiEtoTG4.cjs.map → xan-Y6WF3IRG-C6Rea9i5.cjs.map} +1 -1
  291. package/dist/{xan-view-HDVKHFC2-BuH-MKEl.cjs → xan-view-HDVKHFC2-D8wWmUlF.cjs} +3 -3
  292. package/dist/{xan-view-HDVKHFC2-BuH-MKEl.cjs.map → xan-view-HDVKHFC2-D8wWmUlF.cjs.map} +1 -1
  293. package/dist/{xan-view-HDVKHFC2-Dg8w1JPa.mjs → xan-view-HDVKHFC2-DU4gFwCD.mjs} +3 -3
  294. package/dist/{xan-view-HDVKHFC2-Dg8w1JPa.mjs.map → xan-view-HDVKHFC2-DU4gFwCD.mjs.map} +1 -1
  295. package/dist/{xargs-MGZPH7AX-BbxYcwaV.cjs → xargs-MGZPH7AX-B_25UIWm.cjs} +2 -2
  296. package/dist/{xargs-MGZPH7AX-BbxYcwaV.cjs.map → xargs-MGZPH7AX-B_25UIWm.cjs.map} +1 -1
  297. package/dist/{xargs-MGZPH7AX-2U3kL7dv.mjs → xargs-MGZPH7AX-Bokgq8NQ.mjs} +2 -2
  298. package/dist/{xargs-MGZPH7AX-2U3kL7dv.mjs.map → xargs-MGZPH7AX-Bokgq8NQ.mjs.map} +1 -1
  299. package/dist/{yq-4QJW3EQG-DxlASFGb.cjs → yq-4QJW3EQG-BfnftBmC.cjs} +3 -3
  300. package/dist/{yq-4QJW3EQG-DxlASFGb.cjs.map → yq-4QJW3EQG-BfnftBmC.cjs.map} +1 -1
  301. package/dist/{yq-4QJW3EQG-DNbPHGic.mjs → yq-4QJW3EQG-D-gf6DFH.mjs} +3 -3
  302. package/dist/{yq-4QJW3EQG-DNbPHGic.mjs.map → yq-4QJW3EQG-D-gf6DFH.mjs.map} +1 -1
  303. package/package.json +1 -1
  304. package/dist/dist-AKkRwuhE.cjs.map +0 -1
  305. package/dist/dist-Cj3RPKwD.mjs.map +0 -1
  306. package/dist/dist-D7eFCDTR.mjs.map +0 -1
  307. package/dist/dist-bLC4LOvt.cjs.map +0 -1
  308. package/dist/start-CKxh9Ozm.mjs.map +0 -1
  309. package/dist/start-MBSz5HQb.cjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from "node:module";
2
- import { createCipheriv, createDecipheriv, createHash, randomBytes, randomUUID } from "node:crypto";
2
+ import { createCipheriv, createDecipheriv, createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
3
3
  import { DEFAULT_DATABASE_URL, claimDueTriggers, claimDueTriggersForOrg, claimNextJob, clearCredentialInstanceDefaults, createPostgresCancelChannel, decryptCredentialPayload, disableAllTriggerSchedules, disableTriggerSchedulesNotInSlugs, encryptCredentialPayload, enqueueJob, ensureOAuthCredentialInstance, failAgentSession, failWorkflowRun, getProjectScopeId, getServerTenantScopeId, inferDialect, isDatabaseInitialized, listCredentialAssignmentsByTarget, listEnabledScheduledTriggers, listExecutableAttachmentsByTriggerIds, markJobComplete, markJobFailed, requeueExpiredLeases, resolvePostgresUrlFromEnv, resolveProjectDatabaseUrlFromEnv, scheduleJobRetry, selectActiveEphemeralScheduledTriggerSlugs, selectCredentialInstancesByIds, selectCredentialInstancesForScope, selectCredentialInstancesForScopes, selectTriggerBySlug, setTriggerScheduleEnabled, triggerTimezoneFromConfig, upsertCredentialInstance, upsertTriggerScheduleFields } from "@keystrokehq/database";
4
4
  import EventEmitter$1, { EventEmitter } from "node:events";
5
5
  import { z } from "zod";
6
6
  import { AsyncLocalStorage } from "node:async_hooks";
7
- import { deleteManagedServiceCredential, deleteSecretValuesForRef, ensureOAuthApp, getManagedServiceCredential, getOrganizationScopeId, insertManagedServiceCredential, saveOAuthConnection, selectSecretValue, updateManagedServiceCredentialValue, upsertSecretValue } from "@keystrokehq/platform-database";
7
+ import { deleteManagedServiceCredential, deleteSecretValuesForRef, ensureOAuthApp, getDecryptedOAuthAppBySlug, getManagedServiceCredential, getOrganizationScopeId, insertManagedServiceCredential, putOAuthPendingState, saveOAuthConnection, selectSecretValue, takeOAuthPendingState, updateManagedServiceCredentialValue, upsertSecretValue } from "@keystrokehq/platform-database";
8
8
  import * as z$1 from "zod/v4";
9
9
  import "zod/v3";
10
10
  import * as z4mini from "zod/v4-mini";
@@ -10243,6 +10243,7 @@ function mcpProbeToAppTemplate(probe) {
10243
10243
  };
10244
10244
  return {
10245
10245
  authKind: "api_key",
10246
+ credentialScheme: "NO_AUTH",
10246
10247
  credentialFields: {},
10247
10248
  oauthScopes: [],
10248
10249
  url
@@ -10743,10 +10744,10 @@ const CreateCredentialsRequestSchema = CredentialTargetsFieldsSchema.extend({
10743
10744
  message: "OAuth credentials are created via the OAuth callback",
10744
10745
  path: ["connectionKind"]
10745
10746
  });
10746
- if (input.connectionKind === "none") ctx.addIssue({
10747
+ if (input.connectionKind === "none" && input.value) ctx.addIssue({
10747
10748
  code: "custom",
10748
- message: "No-auth credentials are created via the connect dialog",
10749
- path: ["connectionKind"]
10749
+ message: "value is not allowed for no-auth connections",
10750
+ path: ["value"]
10750
10751
  });
10751
10752
  });
10752
10753
  /** Request body for `PATCH /api/credentials/:id`. */
@@ -13206,7 +13207,7 @@ function registerWorkflowRunGetter(fn) {
13206
13207
  }
13207
13208
  new AsyncLocalStorage();
13208
13209
  //#endregion
13209
- //#region ../../packages/credentials/dist/store-C6DRzb2o.mjs
13210
+ //#region ../../packages/credentials/dist/store-B7IWQPwD.mjs
13210
13211
  function normalizeRow(row) {
13211
13212
  const { projectId: _projectId, ...rest } = row;
13212
13213
  return rest;
@@ -24862,21 +24863,29 @@ var StreamableHTTPClientTransport = class {
24862
24863
  };
24863
24864
  //#endregion
24864
24865
  //#region ../../packages/mcp/dist/index.mjs
24865
- /** Union OAuth scope names from metadata sources, preserving first-seen order. */
24866
- function mergeOAuthScopes(...lists) {
24867
- const seen = /* @__PURE__ */ new Set();
24868
- const result = [];
24869
- for (const list of lists) {
24870
- if (!list?.length) continue;
24871
- for (const scope of list) {
24872
- const trimmed = scope.trim();
24873
- if (trimmed && !seen.has(trimmed)) {
24874
- seen.add(trimmed);
24875
- result.push(trimmed);
24876
- }
24877
- }
24878
- }
24879
- return result;
24866
+ function challengeParameter(value, name) {
24867
+ const match = new RegExp(`(?:^|,)\\s*${name}\\s*=\\s*(?:"((?:[^"\\\\]|\\\\.)*)"|([^,\\s]+))`, "i").exec(value);
24868
+ return (match?.[1] ?? match?.[2])?.replace(/\\(["\\])/g, "$1").trim() || void 0;
24869
+ }
24870
+ /** Parse the Bearer challenge even when another authentication scheme appears first. */
24871
+ function parseMcpBearerChallenge(response) {
24872
+ const header = response.headers.get("www-authenticate");
24873
+ if (!header) return {};
24874
+ const bearer = /(?:^|,)\s*Bearer(?:\s+|$)/i.exec(header);
24875
+ if (!bearer) return {};
24876
+ const parameters = header.slice(bearer.index + bearer[0].length);
24877
+ const resourceMetadata = challengeParameter(parameters, "resource_metadata");
24878
+ const scope = challengeParameter(parameters, "scope");
24879
+ const error = challengeParameter(parameters, "error");
24880
+ let resourceMetadataUrl;
24881
+ if (resourceMetadata) try {
24882
+ resourceMetadataUrl = new URL(resourceMetadata);
24883
+ } catch {}
24884
+ return {
24885
+ ...resourceMetadataUrl ? { resourceMetadataUrl } : {},
24886
+ ...scope ? { scope } : {},
24887
+ ...error ? { error } : {}
24888
+ };
24880
24889
  }
24881
24890
  /** Thrown when a URL is not safe for server-side outbound fetch (SSRF guard). */
24882
24891
  var PublicHttpUrlError = class extends Error {
@@ -24989,6 +24998,7 @@ function createPublicHttpFetch(fetchFn = fetch) {
24989
24998
  });
24990
24999
  };
24991
25000
  }
25001
+ const MCP_AUTHORIZATION_PROTOCOL_VERSION = "2025-11-25";
24992
25002
  function resourceNameFromMetadata(metadata) {
24993
25003
  return metadata?.resource_name?.trim() || void 0;
24994
25004
  }
@@ -25008,6 +25018,74 @@ async function probeUnauthenticatedStatus(url, fetchFn) {
25008
25018
  return {};
25009
25019
  }
25010
25020
  }
25021
+ function assertHttps(value, label) {
25022
+ if (new URL(value).protocol !== "https:") throw new Error(`${label} must use HTTPS`);
25023
+ }
25024
+ function assertPublicHttpsUrl(value, label) {
25025
+ assertPublicHttpUrl(value);
25026
+ assertHttps(value, label);
25027
+ }
25028
+ function assertResourceIdentity(serverUrl, resource) {
25029
+ const resourceUrl = new URL(resource);
25030
+ if (serverUrl.hash || resourceUrl.hash || resourceUrl.toString() !== serverUrl.toString()) throw new Error("MCP protected resource does not match the requested MCP server URL");
25031
+ }
25032
+ function validateAuthorizationServerMetadata(authorizationServerUrl, metadata) {
25033
+ if (metadata.issuer !== authorizationServerUrl) throw new Error("MCP authorization server metadata issuer does not match authorization server");
25034
+ if (!metadata.authorization_endpoint || !metadata.token_endpoint) throw new Error("MCP authorization server metadata is missing required endpoints");
25035
+ assertPublicHttpsUrl(metadata.authorization_endpoint, "MCP authorization endpoint");
25036
+ assertPublicHttpsUrl(metadata.token_endpoint, "MCP token endpoint");
25037
+ if (metadata.registration_endpoint) assertPublicHttpsUrl(metadata.registration_endpoint, "MCP registration endpoint");
25038
+ }
25039
+ async function discoverMcpOAuthServerFromProbe(url, safeFetch, initial) {
25040
+ const serverUrl = new URL(url);
25041
+ assertHttps(serverUrl, "MCP server URL");
25042
+ const { status } = initial;
25043
+ const wwwAuthenticate = status === 401 ? initial.wwwAuthenticate : void 0;
25044
+ let resourceMetadataUrl;
25045
+ let challengeScope;
25046
+ if (wwwAuthenticate) {
25047
+ const params = parseMcpBearerChallenge(new Response(null, { headers: { "www-authenticate": wwwAuthenticate } }));
25048
+ resourceMetadataUrl = params.resourceMetadataUrl;
25049
+ challengeScope = params.scope?.trim() || void 0;
25050
+ if (resourceMetadataUrl) {
25051
+ assertPublicHttpUrl(resourceMetadataUrl.toString());
25052
+ assertHttps(resourceMetadataUrl, "MCP resource metadata URL");
25053
+ }
25054
+ }
25055
+ const resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, {
25056
+ protocolVersion: MCP_AUTHORIZATION_PROTOCOL_VERSION,
25057
+ ...resourceMetadataUrl ? { resourceMetadataUrl } : {}
25058
+ }, safeFetch);
25059
+ if (!resourceMetadata.resource) throw new Error("MCP protected resource metadata is missing resource");
25060
+ if (!resourceMetadata.authorization_servers?.length) throw new Error("MCP protected resource metadata is missing authorization_servers");
25061
+ assertResourceIdentity(serverUrl, resourceMetadata.resource);
25062
+ const authorizationServerUrl = resourceMetadata.authorization_servers[0];
25063
+ if (!authorizationServerUrl) throw new Error("MCP protected resource metadata is missing authorization_servers");
25064
+ assertPublicHttpsUrl(authorizationServerUrl, "MCP authorization server URL");
25065
+ const authorizationServerMetadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, {
25066
+ fetchFn: safeFetch,
25067
+ protocolVersion: MCP_AUTHORIZATION_PROTOCOL_VERSION
25068
+ });
25069
+ if (!authorizationServerMetadata) throw new Error("MCP authorization server metadata was not found");
25070
+ validateAuthorizationServerMetadata(authorizationServerUrl, authorizationServerMetadata);
25071
+ return {
25072
+ authorizationServerUrl,
25073
+ authorizationServerMetadata,
25074
+ resourceMetadata,
25075
+ ...resourceMetadataUrl ? { resourceMetadataUrl: resourceMetadataUrl.toString() } : {},
25076
+ ...challengeScope ? { challengeScope } : {},
25077
+ ...status !== void 0 ? { unauthenticatedStatus: status } : {}
25078
+ };
25079
+ }
25080
+ /**
25081
+ * Discover an MCP authorization server without the legacy origin fallback.
25082
+ * MCP 2025-11-25 requires protected-resource metadata for AS selection.
25083
+ */
25084
+ async function discoverMcpOAuthServer(url, fetchFn = fetch) {
25085
+ assertPublicHttpUrl(url);
25086
+ const safeFetch = createPublicHttpFetch(fetchFn);
25087
+ return discoverMcpOAuthServerFromProbe(url, safeFetch, await probeUnauthenticatedStatus(url, safeFetch));
25088
+ }
25011
25089
  function scopesFromMetadata(metadata) {
25012
25090
  if (!metadata?.scopes_supported?.length) return [];
25013
25091
  return metadata.scopes_supported;
@@ -25020,68 +25098,37 @@ function logProbeFallback(phase, error) {
25020
25098
  async function probeMcpAuth(url, fetchFn = fetch) {
25021
25099
  assertPublicHttpUrl(url);
25022
25100
  const safeFetch = createPublicHttpFetch(fetchFn);
25023
- const serverUrl = new URL(url);
25024
- const { status, wwwAuthenticate } = await probeUnauthenticatedStatus(url, safeFetch);
25025
- let resourceMetadataUrl;
25026
- if (wwwAuthenticate) {
25027
- resourceMetadataUrl = extractWWWAuthenticateParams(new Response(null, { headers: { "www-authenticate": wwwAuthenticate } })).resourceMetadataUrl?.toString();
25028
- if (resourceMetadataUrl) assertPublicHttpUrl(resourceMetadataUrl);
25029
- }
25101
+ const initial = await probeUnauthenticatedStatus(url, safeFetch);
25030
25102
  try {
25031
- const discovered = await discoverOAuthServerInfo(serverUrl, {
25032
- fetchFn: safeFetch,
25033
- ...resourceMetadataUrl ? { resourceMetadataUrl: new URL(resourceMetadataUrl) } : {}
25034
- });
25103
+ const discovered = await discoverMcpOAuthServerFromProbe(url, safeFetch, initial);
25035
25104
  const metadata = discovered.authorizationServerMetadata;
25036
25105
  if (metadata?.authorization_endpoint && metadata.token_endpoint) return {
25037
25106
  url,
25038
25107
  mode: "oauth",
25039
- unauthenticatedStatus: status,
25108
+ unauthenticatedStatus: initial.status,
25040
25109
  oauth: {
25041
25110
  issuer: metadata.issuer,
25042
25111
  authorizationEndpoint: metadata.authorization_endpoint,
25043
25112
  tokenEndpoint: metadata.token_endpoint,
25044
25113
  registrationEndpoint: metadata.registration_endpoint,
25045
- scopes: mergeOAuthScopes(scopesFromMetadata(metadata), scopesFromMetadata(discovered.resourceMetadata)),
25114
+ scopes: discovered.challengeScope ? discovered.challengeScope.split(/\s+/).filter(Boolean) : scopesFromMetadata(discovered.resourceMetadata),
25046
25115
  resource: discovered.resourceMetadata?.resource,
25047
25116
  resourceName: resourceNameFromMetadata(discovered.resourceMetadata)
25048
25117
  }
25049
25118
  };
25050
25119
  } catch (error) {
25051
- logProbeFallback("discoverOAuthServerInfo", error);
25052
- }
25053
- try {
25054
- const protectedResource = await discoverOAuthProtectedResourceMetadata(serverUrl, {}, safeFetch);
25055
- const authorizationServerUrl = protectedResource.authorization_servers?.[0] ?? serverUrl.origin;
25056
- assertPublicHttpUrl(authorizationServerUrl);
25057
- const metadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn: safeFetch });
25058
- if (metadata?.authorization_endpoint && metadata.token_endpoint) return {
25059
- url,
25060
- mode: "oauth",
25061
- unauthenticatedStatus: status,
25062
- oauth: {
25063
- issuer: metadata.issuer,
25064
- authorizationEndpoint: metadata.authorization_endpoint,
25065
- tokenEndpoint: metadata.token_endpoint,
25066
- registrationEndpoint: metadata.registration_endpoint,
25067
- scopes: mergeOAuthScopes(scopesFromMetadata(metadata), scopesFromMetadata(protectedResource)),
25068
- resource: protectedResource.resource,
25069
- resourceName: resourceNameFromMetadata(protectedResource)
25070
- }
25071
- };
25072
- } catch (error) {
25073
- logProbeFallback("discoverOAuthProtectedResourceMetadata", error);
25120
+ logProbeFallback("discoverMcpOAuthServer", error);
25074
25121
  }
25075
- if (status === 401 || status === 403) return {
25122
+ if (initial.status === 401 || initial.status === 403) return {
25076
25123
  url,
25077
25124
  mode: "token",
25078
- unauthenticatedStatus: status,
25125
+ unauthenticatedStatus: initial.status,
25079
25126
  scheme: "BEARER_TOKEN"
25080
25127
  };
25081
25128
  return {
25082
25129
  url,
25083
25130
  mode: "none",
25084
- unauthenticatedStatus: status
25131
+ unauthenticatedStatus: initial.status
25085
25132
  };
25086
25133
  }
25087
25134
  /** Best-effort server metadata for no-auth MCP servers (initialize handshake). */
@@ -31898,11 +31945,70 @@ async function describeCredentialBindings(requirements, context) {
31898
31945
  preload
31899
31946
  }, preload));
31900
31947
  }
31901
- function encodeOAuthState(payload) {
31902
- return encryptCredentialPayload(JSON.stringify(payload));
31903
- }
31904
- function decodeOAuthState(state) {
31905
- return JSON.parse(decryptCredentialPayload(state));
31948
+ const DEFAULT_STATE_TTL_MS = 600 * 1e3;
31949
+ function defaultSigningKey() {
31950
+ const secret = process.env.CREDENTIALS_ENCRYPTION_KEY?.trim();
31951
+ if (!secret) throw new Error("CREDENTIALS_ENCRYPTION_KEY is required");
31952
+ return secret;
31953
+ }
31954
+ function signPayload(payload, signingKey) {
31955
+ return createHmac("sha256", signingKey()).update(payload).digest("base64url");
31956
+ }
31957
+ function createOAuthState(options = {}) {
31958
+ const signingKey = options.signingKey ?? defaultSigningKey;
31959
+ const payload = options.payload ?? {};
31960
+ const payloadSegment = (options.serializePayload ?? (() => ""))(payload);
31961
+ const id = randomBytes(16).toString("hex");
31962
+ const expiresAt = Date.now() + (options.ttlMs ?? DEFAULT_STATE_TTL_MS);
31963
+ const signedPayload = payloadSegment ? `${id}.${expiresAt}.${payloadSegment}` : `${id}.${expiresAt}`;
31964
+ return {
31965
+ state: `${signedPayload}.${signPayload(signedPayload, signingKey)}`,
31966
+ payload,
31967
+ id,
31968
+ expiresAt
31969
+ };
31970
+ }
31971
+ function verifyOAuthState(options, state) {
31972
+ if (!state) return null;
31973
+ const hasPayload = Boolean(options.deserializePayload);
31974
+ const parts = state.split(".");
31975
+ if (parts.length !== (hasPayload ? 4 : 3)) return null;
31976
+ const [id, expiresRaw] = parts;
31977
+ const signature = parts.at(-1);
31978
+ if (!id || !expiresRaw || !signature) return null;
31979
+ const payloadSegment = hasPayload ? parts[2] ?? "" : "";
31980
+ const expected = signPayload(hasPayload ? `${id}.${expiresRaw}.${payloadSegment}` : `${id}.${expiresRaw}`, options.signingKey ?? defaultSigningKey);
31981
+ const signatureBuffer = Buffer.from(signature);
31982
+ const expectedBuffer = Buffer.from(expected);
31983
+ if (signatureBuffer.length !== expectedBuffer.length || !timingSafeEqual(signatureBuffer, expectedBuffer)) return null;
31984
+ const expiresAt = Number(expiresRaw);
31985
+ if (!Number.isFinite(expiresAt) || expiresAt < Date.now()) return null;
31986
+ if (!hasPayload) return {};
31987
+ return options.deserializePayload(payloadSegment);
31988
+ }
31989
+ async function encodeOAuthState(payload, ttlMs) {
31990
+ const { state, id, expiresAt } = createOAuthState({
31991
+ payload,
31992
+ ttlMs
31993
+ });
31994
+ await putOAuthPendingState({
31995
+ id,
31996
+ payloadCiphertext: encryptCredentialPayload(JSON.stringify(payload)),
31997
+ expiresAt: new Date(expiresAt)
31998
+ });
31999
+ return state;
32000
+ }
32001
+ async function decodeOAuthState(state) {
32002
+ const verified = verifyOAuthState({}, state);
32003
+ const id = state.split(".")[0];
32004
+ if (!verified || !id) throw new Error("OAuth state is invalid or expired");
32005
+ const ciphertext = await takeOAuthPendingState(id);
32006
+ if (!ciphertext) throw new Error("OAuth state is invalid or expired");
32007
+ try {
32008
+ return JSON.parse(decryptCredentialPayload(ciphertext));
32009
+ } catch {
32010
+ throw new Error("OAuth state is invalid or expired");
32011
+ }
31906
32012
  }
31907
32013
  function oauthAppMetadata(oauth, mcpUrl, options) {
31908
32014
  return {
@@ -31913,7 +32019,9 @@ function oauthAppMetadata(oauth, mcpUrl, options) {
31913
32019
  resource: oauth.resource,
31914
32020
  issuer: oauth.issuer,
31915
32021
  scopes: oauth.scopes,
31916
- ...options?.tokenEndpointAuthMethod ? { tokenEndpointAuthMethod: options.tokenEndpointAuthMethod } : {}
32022
+ ...options?.tokenEndpointAuthMethod ? { tokenEndpointAuthMethod: options.tokenEndpointAuthMethod } : {},
32023
+ ...options?.clientRegistrationMode ? { clientRegistrationMode: options.clientRegistrationMode } : {},
32024
+ ...options?.redirectUri ? { redirectUri: options.redirectUri } : {}
31917
32025
  };
31918
32026
  }
31919
32027
  function oauthClientSecretForStorage(clientSecret) {
@@ -31944,14 +32052,62 @@ async function discoverMcpApp(url) {
31944
32052
  };
31945
32053
  }
31946
32054
  var McpOAuthConnectError = class extends Error {
32055
+ phase;
31947
32056
  diagnostics;
31948
- phase = "dynamic_client_registration";
31949
- constructor(cause, diagnostics) {
31950
- super(cause instanceof Error ? cause.message : "Dynamic client registration failed", { cause });
32057
+ constructor(phase, message, diagnostics = {}) {
32058
+ super(message);
32059
+ this.phase = phase;
31951
32060
  this.diagnostics = diagnostics;
31952
32061
  this.name = "McpOAuthConnectError";
31953
32062
  }
31954
32063
  };
32064
+ function oauthErrorCode(error) {
32065
+ if (!error || typeof error !== "object" || !("errorCode" in error)) return;
32066
+ const value = Reflect.get(error, "errorCode");
32067
+ return typeof value === "string" && /^[a-z0-9_]+$/i.test(value) ? value : void 0;
32068
+ }
32069
+ const SUPPORTED_TOKEN_AUTH_METHODS = [
32070
+ "client_secret_basic",
32071
+ "client_secret_post",
32072
+ "none"
32073
+ ];
32074
+ function requireHttpsUrl(value, label) {
32075
+ const url = new URL(value);
32076
+ if (url.protocol !== "https:") throw new Error(`${label} must use HTTPS`);
32077
+ return url;
32078
+ }
32079
+ function validateRedirectUri(value) {
32080
+ const url = new URL(value);
32081
+ const isLocalhost = url.hostname === "localhost" || url.hostname === "127.0.0.1";
32082
+ if (url.protocol !== "https:" && !(url.protocol === "http:" && isLocalhost)) throw new Error("OAuth redirect URI must use HTTPS or HTTP localhost");
32083
+ }
32084
+ function validateMcpResource(mcpUrl, resourceUrl) {
32085
+ const serverUrl = new URL(mcpUrl);
32086
+ if (serverUrl.hash || resourceUrl.hash || resourceUrl.toString() !== serverUrl.toString()) throw new Error("MCP protected resource does not identify the requested MCP server");
32087
+ }
32088
+ function selectTokenEndpointAuthMethod(metadata) {
32089
+ const advertised = metadata.token_endpoint_auth_methods_supported;
32090
+ const supported = advertised?.length ? advertised : ["client_secret_basic"];
32091
+ const selected = SUPPORTED_TOKEN_AUTH_METHODS.find((method) => supported.includes(method));
32092
+ if (!selected) throw new Error(`MCP authorization server only supports unsupported token endpoint authentication methods: ${supported.join(", ")}`);
32093
+ return selected;
32094
+ }
32095
+ function validateAuthorizationCapabilities(metadata) {
32096
+ if (!metadata.response_types_supported?.includes("code")) throw new Error("MCP authorization server does not support the code response type");
32097
+ if (metadata.grant_types_supported?.length && !metadata.grant_types_supported.includes("authorization_code")) throw new Error("MCP authorization server does not support authorization_code");
32098
+ if (!metadata.code_challenge_methods_supported?.includes("S256")) throw new Error("MCP authorization server does not advertise PKCE S256 support");
32099
+ }
32100
+ function validateRegisteredClientInformation(clientInformation, requestedMethod, advertisedMethods) {
32101
+ const assignedMethod = clientInformation.token_endpoint_auth_method ?? requestedMethod;
32102
+ if (!SUPPORTED_TOKEN_AUTH_METHODS.includes(assignedMethod)) throw new Error(`MCP authorization server assigned unsupported token endpoint authentication method: ${assignedMethod}`);
32103
+ if (!advertisedMethods.includes(assignedMethod)) throw new Error(`MCP authorization server assigned an unadvertised token endpoint authentication method: ${assignedMethod}`);
32104
+ if (assignedMethod !== "none" && !clientInformation.client_secret?.trim()) throw new Error(`MCP authorization server assigned ${assignedMethod} without a client_secret`);
32105
+ return {
32106
+ ...clientInformation,
32107
+ token_endpoint_auth_method: assignedMethod,
32108
+ registrationMode: "dcr"
32109
+ };
32110
+ }
31955
32111
  /**
31956
32112
  * Prefer CIMD (URL client_id) when the AS advertises support and we have an
31957
32113
  * HTTPS metadata URL; otherwise DCR. Localhost HTTP cannot be a CIMD client_id
@@ -31962,15 +32118,27 @@ var McpOAuthConnectError = class extends Error {
31962
32118
  */
31963
32119
  async function resolveMcpOAuthClientInformation(options) {
31964
32120
  const supportsCimd = options.metadata.client_id_metadata_document_supported === true;
31965
- if (supportsCimd && Boolean(options.clientMetadataUrl) && isHttpsUrl(options.clientMetadataUrl) && options.clientMetadataUrl) return {
32121
+ const supportsPublicClient = options.metadata.token_endpoint_auth_methods_supported?.includes("none") === true;
32122
+ if (supportsCimd && supportsPublicClient && Boolean(options.clientMetadataUrl) && isHttpsUrl(options.clientMetadataUrl) && options.clientMetadataUrl) return {
31966
32123
  client_id: options.clientMetadataUrl,
31967
- token_endpoint_auth_method: "none"
32124
+ token_endpoint_auth_method: "none",
32125
+ registrationMode: "cimd"
31968
32126
  };
31969
32127
  if (options.metadata.registration_endpoint) {
31970
- const grantTypes = ["authorization_code", "refresh_token"];
31971
- const tokenEndpointAuthMethod = "client_secret_post";
32128
+ const grantTypes = ["authorization_code", ...options.metadata.grant_types_supported?.includes("refresh_token") ? ["refresh_token"] : []];
32129
+ const tokenEndpointAuthMethod = selectTokenEndpointAuthMethod(options.metadata);
32130
+ const currentlySupportedAuthMethods = options.metadata.token_endpoint_auth_methods_supported?.length ? options.metadata.token_endpoint_auth_methods_supported : ["client_secret_basic"];
32131
+ const existing = await getDecryptedOAuthAppBySlug(options.appSlug);
32132
+ if (existing?.provider === "mcp" && existing.metadata?.clientRegistrationMode === "dcr" && existing.metadata.issuer === options.metadata.issuer && existing.metadata.registrationEndpoint === options.metadata.registration_endpoint && existing.metadata.resource === options.resource && existing.metadata.redirectUri === options.redirectUri && existing.metadata.tokenEndpointAuthMethod && SUPPORTED_TOKEN_AUTH_METHODS.includes(existing.metadata.tokenEndpointAuthMethod) && currentlySupportedAuthMethods.includes(existing.metadata.tokenEndpointAuthMethod)) return {
32133
+ client_id: existing.clientId,
32134
+ ...existing.clientSecret ? { client_secret: existing.clientSecret } : {},
32135
+ token_endpoint_auth_method: existing.metadata.tokenEndpointAuthMethod,
32136
+ registrationMode: "dcr"
32137
+ };
32138
+ let providerHttpStatus;
31972
32139
  try {
31973
- return await registerClient(options.authorizationServerUrl, {
32140
+ const safeFetch = createPublicHttpFetch();
32141
+ return validateRegisteredClientInformation(await registerClient(options.authorizationServerUrl, {
31974
32142
  metadata: options.metadata,
31975
32143
  clientMetadata: {
31976
32144
  client_name: "Keystroke",
@@ -31979,54 +32147,112 @@ async function resolveMcpOAuthClientInformation(options) {
31979
32147
  response_types: ["code"],
31980
32148
  token_endpoint_auth_method: tokenEndpointAuthMethod
31981
32149
  },
31982
- scope: options.scope
31983
- });
32150
+ scope: options.scope,
32151
+ fetchFn: async (input, init) => {
32152
+ const response = await safeFetch(input, init);
32153
+ providerHttpStatus = response.status;
32154
+ return response;
32155
+ }
32156
+ }), tokenEndpointAuthMethod, currentlySupportedAuthMethods);
31984
32157
  } catch (error) {
31985
- throw new McpOAuthConnectError(error, {
32158
+ throw new McpOAuthConnectError("client_registration", providerHttpStatus === 403 ? "MCP server rejected dynamic client registration; it may require a pre-approved OAuth client" : "MCP OAuth client registration failed", {
32159
+ correlationId: options.correlationId,
31986
32160
  authorizationServerUrl: options.authorizationServerUrl,
31987
32161
  registrationEndpoint: options.metadata.registration_endpoint,
31988
32162
  grantTypes,
31989
- tokenEndpointAuthMethod
32163
+ tokenEndpointAuthMethod,
32164
+ ...providerHttpStatus ? { providerHttpStatus } : {},
32165
+ ...oauthErrorCode(error) ? { oauthError: oauthErrorCode(error) } : {}
31990
32166
  });
31991
32167
  }
31992
32168
  }
31993
- if (supportsCimd) throw new Error("Authorization server requires Client ID Metadata Documents, but Keystroke has no HTTPS client metadata URL configured (set PUBLIC_PLATFORM_URL or PUBLIC_PLATFORM_PROXY_URL to an HTTPS origin)");
32169
+ if (supportsCimd) throw new Error("Authorization server supports Client ID Metadata Documents, but not Keystroke's public-client authentication or HTTPS metadata URL");
31994
32170
  throw new Error("MCP authorization server does not support Client ID Metadata Documents or Dynamic Client Registration");
31995
32171
  }
31996
32172
  async function beginMcpOAuthConnect(options) {
31997
32173
  const appUrl = options.app.url?.trim();
31998
32174
  if (!appUrl || options.app.source !== "mcp" || options.app.authKind !== "oauth") throw new Error("App is not a direct MCP OAuth app");
31999
- const discovered = await discoverOAuthServerInfo(new URL(appUrl), {});
32175
+ const correlationId = crypto.randomUUID();
32176
+ let discovered;
32177
+ try {
32178
+ validateRedirectUri(options.redirectUri);
32179
+ requireHttpsUrl(appUrl, "MCP server URL");
32180
+ discovered = await discoverMcpOAuthServer(appUrl);
32181
+ } catch {
32182
+ throw new McpOAuthConnectError("resource_discovery", "Failed to discover MCP OAuth protected-resource metadata", { correlationId });
32183
+ }
32000
32184
  const metadata = discovered.authorizationServerMetadata;
32001
- if (!metadata?.authorization_endpoint || !metadata.token_endpoint) throw new Error("MCP server does not expose OAuth authorization metadata");
32185
+ try {
32186
+ if (!metadata?.authorization_endpoint || !metadata.token_endpoint) throw new Error("MCP server does not expose OAuth authorization metadata");
32187
+ validateAuthorizationCapabilities(metadata);
32188
+ requireHttpsUrl(discovered.authorizationServerUrl, "OAuth authorization server URL");
32189
+ requireHttpsUrl(metadata.authorization_endpoint, "OAuth authorization endpoint");
32190
+ requireHttpsUrl(metadata.token_endpoint, "OAuth token endpoint");
32191
+ if (metadata.registration_endpoint) requireHttpsUrl(metadata.registration_endpoint, "OAuth registration endpoint");
32192
+ } catch {
32193
+ throw new McpOAuthConnectError("authorization_server_discovery", "MCP authorization server metadata is incompatible", {
32194
+ correlationId,
32195
+ authorizationServerUrl: discovered.authorizationServerUrl
32196
+ });
32197
+ }
32198
+ let resourceUrl;
32199
+ try {
32200
+ resourceUrl = requireHttpsUrl(discovered.resourceMetadata.resource, "MCP protected resource");
32201
+ if (resourceUrl.hash) throw new Error("MCP protected resource must not include a fragment");
32202
+ validateMcpResource(appUrl, resourceUrl);
32203
+ } catch {
32204
+ throw new McpOAuthConnectError("resource_discovery", "MCP protected-resource metadata contains an invalid resource", { correlationId });
32205
+ }
32002
32206
  const oauth = {
32003
32207
  issuer: metadata.issuer,
32004
32208
  authorizationEndpoint: metadata.authorization_endpoint,
32005
32209
  tokenEndpoint: metadata.token_endpoint,
32006
32210
  registrationEndpoint: metadata.registration_endpoint,
32007
- scopes: mergeOAuthScopes(metadata.scopes_supported, discovered.resourceMetadata?.scopes_supported, options.app.oauthScopes.map((scope) => scope.name)),
32008
- resource: discovered.resourceMetadata?.resource,
32211
+ scopes: discovered.challengeScope ? discovered.challengeScope.split(/\s+/).filter(Boolean) : discovered.resourceMetadata.scopes_supported ?? [],
32212
+ resource: resourceUrl.toString(),
32009
32213
  resourceName: discovered.resourceMetadata?.resource_name?.trim() || void 0
32010
32214
  };
32011
- const defaultScopeNames = options.app.oauthScopes.flatMap((entry) => entry.defaultSelected !== false ? [entry.name] : []);
32012
- const scope = options.input.scopes?.join(" ") || (defaultScopeNames.length > 0 ? defaultScopeNames.join(" ") : oauth.scopes.join(" "));
32013
- const clientInformation = await resolveMcpOAuthClientInformation({
32014
- authorizationServerUrl: discovered.authorizationServerUrl,
32015
- metadata,
32016
- redirectUri: options.redirectUri,
32017
- scope: scope || void 0,
32018
- clientMetadataUrl: options.clientMetadataUrl
32019
- });
32020
- await ensureOAuthApp({
32021
- slug: options.app.slug,
32022
- provider: "mcp",
32023
- tokenStrategy: "refresh",
32024
- clientId: clientInformation.client_id,
32025
- clientSecret: oauthClientSecretForStorage(clientInformation.client_secret),
32026
- metadata: oauthAppMetadata(oauth, appUrl, { tokenEndpointAuthMethod: clientInformation.token_endpoint_auth_method })
32027
- });
32028
- const resourceUrl = oauth.resource ? new URL(oauth.resource) : new URL(appUrl);
32215
+ const requestedScopes = options.input.scopes?.map((value) => value.trim()).filter(Boolean) ?? [];
32216
+ const challengedScopes = discovered.challengeScope?.split(/\s+/).filter(Boolean) ?? [];
32217
+ const selectedScopes = challengedScopes.length > 0 ? [...new Set([...challengedScopes, ...requestedScopes])] : requestedScopes.length > 0 ? requestedScopes : discovered.resourceMetadata.scopes_supported ?? [];
32218
+ const scope = selectedScopes.length > 0 ? selectedScopes.join(" ") : void 0;
32219
+ let clientInformation;
32220
+ try {
32221
+ clientInformation = await resolveMcpOAuthClientInformation({
32222
+ appSlug: options.app.slug,
32223
+ correlationId,
32224
+ authorizationServerUrl: discovered.authorizationServerUrl,
32225
+ metadata,
32226
+ resource: resourceUrl.toString(),
32227
+ redirectUri: options.redirectUri,
32228
+ scope,
32229
+ clientMetadataUrl: options.clientMetadataUrl
32230
+ });
32231
+ } catch (error) {
32232
+ if (error instanceof McpOAuthConnectError) throw error;
32233
+ throw new McpOAuthConnectError("client_registration", "MCP authorization server does not support a compatible client registration", {
32234
+ correlationId,
32235
+ authorizationServerUrl: discovered.authorizationServerUrl
32236
+ });
32237
+ }
32238
+ try {
32239
+ await ensureOAuthApp({
32240
+ slug: options.app.slug,
32241
+ provider: "mcp",
32242
+ tokenStrategy: "refresh",
32243
+ clientId: clientInformation.client_id,
32244
+ clientSecret: oauthClientSecretForStorage(clientInformation.client_secret),
32245
+ metadata: oauthAppMetadata(oauth, appUrl, {
32246
+ tokenEndpointAuthMethod: clientInformation.token_endpoint_auth_method,
32247
+ clientRegistrationMode: clientInformation.registrationMode,
32248
+ redirectUri: options.redirectUri
32249
+ })
32250
+ });
32251
+ } catch {
32252
+ throw new McpOAuthConnectError("credential_persistence", "Failed to save MCP OAuth client registration", { correlationId });
32253
+ }
32029
32254
  const statePayload = {
32255
+ correlationId,
32030
32256
  codeVerifier: "",
32031
32257
  appSlug: options.app.slug,
32032
32258
  organizationId: options.organizationId,
@@ -32038,76 +32264,107 @@ async function beginMcpOAuthConnect(options) {
32038
32264
  authorizationServerUrl: discovered.authorizationServerUrl,
32039
32265
  resource: oauth.resource,
32040
32266
  oauthMetadata: oauth,
32267
+ authorizationServerMetadata: metadata,
32041
32268
  mcpUrl: appUrl,
32042
32269
  redirectUri: options.redirectUri,
32043
32270
  clientId: clientInformation.client_id,
32044
32271
  clientSecret: clientInformation.client_secret,
32045
32272
  tokenEndpointAuthMethod: clientInformation.token_endpoint_auth_method,
32273
+ clientRegistrationMode: clientInformation.registrationMode,
32046
32274
  label: options.input.label,
32047
32275
  credentialInstanceId: options.input.credentialInstanceId
32048
32276
  };
32049
- const { authorizationUrl, codeVerifier } = await startAuthorization(discovered.authorizationServerUrl, {
32050
- metadata,
32051
- clientInformation,
32052
- redirectUrl: options.redirectUri,
32053
- scope: scope || void 0,
32054
- resource: resourceUrl
32055
- });
32277
+ let authorizationUrl;
32278
+ let codeVerifier;
32279
+ try {
32280
+ ({authorizationUrl, codeVerifier} = await startAuthorization(discovered.authorizationServerUrl, {
32281
+ metadata,
32282
+ clientInformation,
32283
+ redirectUrl: options.redirectUri,
32284
+ scope,
32285
+ resource: resourceUrl
32286
+ }));
32287
+ } catch (error) {
32288
+ throw new McpOAuthConnectError("authorization_start", "Failed to start MCP authorization", {
32289
+ correlationId,
32290
+ authorizationServerUrl: discovered.authorizationServerUrl,
32291
+ ...oauthErrorCode(error) ? { oauthError: oauthErrorCode(error) } : {}
32292
+ });
32293
+ }
32056
32294
  statePayload.codeVerifier = codeVerifier;
32057
- const state = encodeOAuthState(statePayload);
32295
+ const state = await encodeOAuthState(statePayload);
32058
32296
  authorizationUrl.searchParams.set("state", state);
32059
32297
  return { authorizeUrl: authorizationUrl.toString() };
32060
32298
  }
32061
32299
  async function completeMcpOAuthConnect(options) {
32062
- const payload = decodeOAuthState(options.state);
32063
- const metadata = {
32064
- issuer: payload.oauthMetadata.issuer ?? payload.authorizationServerUrl,
32065
- authorization_endpoint: payload.oauthMetadata.authorizationEndpoint,
32066
- token_endpoint: payload.oauthMetadata.tokenEndpoint,
32067
- registration_endpoint: payload.oauthMetadata.registrationEndpoint,
32068
- scopes_supported: payload.oauthMetadata.scopes,
32069
- response_types_supported: ["code"],
32070
- code_challenge_methods_supported: ["S256"]
32071
- };
32300
+ const { payload } = options;
32072
32301
  const resourceUrl = payload.resource ? new URL(payload.resource) : void 0;
32073
- const tokens = await exchangeAuthorization(payload.authorizationServerUrl, {
32074
- metadata,
32075
- clientInformation: {
32076
- client_id: payload.clientId,
32077
- ...payload.clientSecret ? { client_secret: payload.clientSecret } : {},
32078
- ...payload.tokenEndpointAuthMethod ? { token_endpoint_auth_method: payload.tokenEndpointAuthMethod } : {}
32079
- },
32080
- authorizationCode: options.code,
32081
- codeVerifier: payload.codeVerifier,
32082
- redirectUri: payload.redirectUri,
32083
- resource: resourceUrl
32084
- });
32085
- const { id: oauthAppId } = await ensureOAuthApp({
32086
- slug: payload.appSlug,
32087
- provider: "mcp",
32088
- tokenStrategy: "refresh",
32089
- clientId: payload.clientId,
32090
- clientSecret: oauthClientSecretForStorage(payload.clientSecret),
32091
- metadata: oauthAppMetadata(payload.oauthMetadata, payload.mcpUrl, { tokenEndpointAuthMethod: payload.tokenEndpointAuthMethod })
32092
- });
32093
- const connectionId = await saveOAuthConnection({
32094
- appId: oauthAppId,
32095
- externalId: payload.userId,
32096
- accessToken: tokens.access_token,
32097
- refreshToken: tokens.refresh_token,
32098
- accessTokenExpiresAt: accessTokenExpiresAt(tokens.expires_in),
32099
- grantedScopes: grantedScopesFromToken(tokens.scope, payload.oauthMetadata.scopes),
32100
- metadata: { mcpUrl: payload.oauthMetadata.resource }
32101
- });
32102
- await ensureOAuthCredentialInstance({
32103
- credentialKey: payload.appSlug,
32104
- connectionId,
32105
- accountLabel: payload.label,
32106
- externalId: payload.userId,
32107
- userLabel: payload.label,
32108
- targets: payload.scopeTargets,
32109
- credentialInstanceId: payload.credentialInstanceId
32110
- });
32302
+ if (!resourceUrl) throw new McpOAuthConnectError("authorization_callback", "OAuth callback state is missing the MCP resource", { correlationId: payload.correlationId });
32303
+ let tokens;
32304
+ let providerHttpStatus;
32305
+ try {
32306
+ const safeFetch = createPublicHttpFetch();
32307
+ tokens = await exchangeAuthorization(payload.authorizationServerUrl, {
32308
+ metadata: payload.authorizationServerMetadata,
32309
+ clientInformation: {
32310
+ client_id: payload.clientId,
32311
+ ...payload.clientSecret ? { client_secret: payload.clientSecret } : {},
32312
+ ...payload.tokenEndpointAuthMethod ? { token_endpoint_auth_method: payload.tokenEndpointAuthMethod } : {}
32313
+ },
32314
+ authorizationCode: options.code,
32315
+ codeVerifier: payload.codeVerifier,
32316
+ redirectUri: payload.redirectUri,
32317
+ resource: resourceUrl,
32318
+ fetchFn: async (input, init) => {
32319
+ const response = await safeFetch(input, init);
32320
+ providerHttpStatus = response.status;
32321
+ return response;
32322
+ }
32323
+ });
32324
+ } catch (error) {
32325
+ throw new McpOAuthConnectError("token_exchange", "MCP OAuth token exchange failed", {
32326
+ correlationId: payload.correlationId,
32327
+ authorizationServerUrl: payload.authorizationServerUrl,
32328
+ ...providerHttpStatus ? { providerHttpStatus } : {},
32329
+ ...oauthErrorCode(error) ? { oauthError: oauthErrorCode(error) } : {}
32330
+ });
32331
+ }
32332
+ let oauthAppId;
32333
+ let connectionId;
32334
+ try {
32335
+ ({id: oauthAppId} = await ensureOAuthApp({
32336
+ slug: payload.appSlug,
32337
+ provider: "mcp",
32338
+ tokenStrategy: "refresh",
32339
+ clientId: payload.clientId,
32340
+ clientSecret: oauthClientSecretForStorage(payload.clientSecret),
32341
+ metadata: oauthAppMetadata(payload.oauthMetadata, payload.mcpUrl, {
32342
+ tokenEndpointAuthMethod: payload.tokenEndpointAuthMethod,
32343
+ clientRegistrationMode: payload.clientRegistrationMode,
32344
+ redirectUri: payload.redirectUri
32345
+ })
32346
+ }));
32347
+ connectionId = await saveOAuthConnection({
32348
+ appId: oauthAppId,
32349
+ externalId: payload.userId,
32350
+ accessToken: tokens.access_token,
32351
+ refreshToken: tokens.refresh_token,
32352
+ accessTokenExpiresAt: accessTokenExpiresAt(tokens.expires_in),
32353
+ grantedScopes: grantedScopesFromToken(tokens.scope, payload.oauthMetadata.scopes),
32354
+ metadata: { mcpUrl: payload.oauthMetadata.resource }
32355
+ });
32356
+ await ensureOAuthCredentialInstance({
32357
+ credentialKey: payload.appSlug,
32358
+ connectionId,
32359
+ accountLabel: payload.label,
32360
+ externalId: payload.userId,
32361
+ userLabel: payload.label,
32362
+ targets: payload.scopeTargets,
32363
+ credentialInstanceId: payload.credentialInstanceId
32364
+ });
32365
+ } catch {
32366
+ throw new McpOAuthConnectError("credential_persistence", "Failed to save the MCP OAuth credential", { correlationId: payload.correlationId });
32367
+ }
32111
32368
  return {
32112
32369
  appSlug: payload.appSlug,
32113
32370
  connectionId,
@@ -37740,4 +37997,4 @@ function minioStoragePlugin(options = {}) {
37740
37997
  //#endregion
37741
37998
  export { ChannelPlatformSchema as $, TemplateKindSchema as $n, mapProjectSettings as $r, ListProjectDeploymentsResponseSchema as $t, decodeOAuthState as A, ProjectSlugAvailabilityResponseSchema as An, WorkspaceTriggerDetailSchema as Ar, GetTemplateResponseSchema as At, readCredentialInstanceSecret as B, SkillSummaryDetailResponseSchema as Bn, deriveCredentialInstanceSlug as Br, InviteProjectMembersResponseSchema as Bt, userAvatarStorageKey as C, PresignProjectSourceResponseSchema as Cn, WorkflowFormResponseSchema as Cr, ErrorResponseSchema as Ct, McpOAuthConnectError as D, ProjectResponseSchema as Dn, WorkflowSummaryDetailResponseSchema as Dr, GetAppCatalogEntryResponseSchema as Dt, cronPayloadSchema as E, ProjectReachabilityResponseSchema as En, WorkflowRunInputsSchema as Er, FinalizeCustomAppLogoResponseSchema as Et, isDiscoveryError as F, PublicModelsResponseSchema as Fn, WorkspaceWorkflowOverviewSchema as Fr, HistoryRunListQuerySchema as Ft, ActiveOrganizationResponseSchema as G, StartMcpOAuthConnectionInputSchema as Gn, jsonSchemaToWorkflowInputSchema as Gr, ListChannelPlatformsResponseSchema as Gt, setManagedServiceCredential as H, SkillSummarySchema as Hn, isAllowedChatAttachmentMediaType as Hr, ListAgentWorkspaceFilesResponseSchema as Ht, withCredentialAssignments as I, PublishedFormListResponseSchema as In, agentMemoryFileId as Ir, HistoryRunListResponseSchema as It, AgentSummaryListResponseSchema as J, SubmitMarketingContactRequestSchema as Jn, mapOrganizationMember as Jr, ListManagedServiceCredentialsResponseSchema as Jt, AgentMemoryFileSummarySchema as K, StartMcpOAuthConnectionResultSchema as Kn, listenPortFromPublicUrl as Kr, ListCredentialsPageQuerySchema as Kt, PublicHttpUrlError as L, PublishedFormSchema as Ln, agentWorkspaceFileId as Lr, InviteOrganizationMembersRequestSchema as Lt, discoverGraphqlApp as M, PublicFormMetadataSchema as Mn, WorkspaceTriggerListResponseSchema as Mr, GraphqlDiscoverResponseSchema as Mt, discoverMcpApp as N, PublicFormSubmitBodySchema as Nn, WorkspaceTriggerOverviewSchema as Nr, HistoryRunCancelResponseSchema as Nt, beginMcpOAuthConnect as O, ProjectSettingsResponseSchema as On, WorkflowSummaryListResponseSchema as Or, GetCredentialResponseSchema as Ot, discoverOpenApiApp as P, PublicFormSubmitResponseSchema as Pn, WorkspaceTriggerRunListResponseSchema as Pr, HistoryRunDetailResponseSchema as Pt, AppSlugAvailabilityResponseSchema as Q, TemplateFilesResponseSchema as Qn, mapProjectMember as Qr, ListOrganizationsResponseSchema as Qt, deleteCredentialInstanceSecret as R, RecentResourceListResponseSchema as Rn, buildCredentialInstanceLabel as Rr, InviteOrganizationMembersResponseSchema as Rt, publicKeystrokeAssetsObjectUrl as S, PresignProjectSourceRequestSchema as Sn, WorkflowCanvasSchema as Sr, DuplicateCredentialsResponseSchema as St, defaultSchedulerPlugin as T, PresignUserAvatarResponseSchema as Tn, WorkflowRunInputsPutBodySchema as Tr, FinalizeCustomAppLogoRequestSchema as Tt, ACTIVE_ORG_HEADER as U, SlugAvailabilityQuerySchema as Un, isHelloWorldTemplateSlug as Ur, ListApiKeysResponseSchema as Ut, setCredentialInstanceSecret as V, SkillSummaryListResponseSchema as Vn, displayCredentialAppName as Vr, ListAgentMemoryFilesResponseSchema as Vt, AcceptOrganizationInvitationResponseSchema as W, SlugAvailabilityResponseSchema as Wn, isLlmProviderSlug as Wr, ListAppsResponseSchema as Wt, AgentWorkspaceFileSummarySchema as X, SubmitTeamRequestRequestSchema as Xn, mapProjectArtifact as Xr, ListOrganizationMembersPageQuerySchema as Xt, AgentSummarySchema as Y, SubmitMarketingContactResponseSchema as Yn, mapProject as Yr, ListOrganizationInvitationsResponseSchema as Yt, AppSlugAvailabilityQuerySchema as Z, SubmitTeamRequestResponseSchema as Zn, mapProjectDeployment as Zr, ListOrganizationMembersPageResponseSchema as Zt, loadProjectSourceFiles as _, validationErrorResponse as _i, PresignChatAttachmentResponseSchema as _n, UserAvatarSchema as _r, DbProxyQueryRequestSchema as _t, ensureKeystrokeAssetsBucket as a, organizationSlugErrorCodeFromMessage as ai, MICRO_CREDITS_PER_CREDIT as an, UpdateCredentialRequestSchema as ar, CreateCredentialsResponseSchema as at, projectArtifactKey as b, __toESM as bi, PresignOrgLogoRequestSchema as bn, WorkflowCanvasCredentialBindingsSchema as br, DownloadActiveProjectSourceResponseSchema as bt, isChatAttachmentStorageKey as c, projectFileId as ci, McpDiscoverRequestSchema as cn, UpdateOrganizationMemberResponseSchema as cr, CreateOrganizationRequestSchema as ct, isOrgLogoStorageKey as d, resolveUniqueCredentialInstanceLabel as di, OpenApiDiscoverResponseSchema as dn, UpdateProjectMemberResponseSchema as dr, CreateProjectRequestSchema as dt, mapUserOrganization as ei, ListProjectFilesResponseSchema as en, TriggerAttachmentUpdateRequestSchema as er, CompleteProjectArtifactResponseSchema as et, isStorageBucketNotFoundError as f, schemaHasFileFields as fi, OrganizationSidebarBrandingPatchSchema as fn, UpdateProjectRequestSchema as fr, CreateProjectResponseSchema as ft, keystrokeAssetsOrgLogoKeyFromPublicUrl as g, validateWorkflowRunInputValues as gi, PresignChatAttachmentRequestSchema as gn, UserAvatarPatchSchema as gr, DEFAULT_WORKFLOW_OVERVIEW_MODEL as gt, keystrokeAssetsAvatarKeyFromPublicUrl as h, validateFormFieldConfig as hi, PROJECT_SLUG_TAKEN_MESSAGE as hn, UploadProjectSourceResponseSchema as hr, DEFAULT_WORKFLOW_CANVAS_MODEL as ht, createAssetsStorageClient as i, organizationInvitationAcceptPath as ii, ListTemplatesResponseSchema as in, TriggerRunListQuerySchema as ir, CreateCredentialsRequestSchema as it, describeCredentialBindings as j, ProjectSourceResourcesSchema as jn, WorkspaceTriggerFileSchema as jr, GraphqlDiscoverRequestSchema as jt, completeMcpOAuthConnect as k, ProjectSlugAvailabilityQuerySchema as kn, WorkflowSummarySchema as kr, GetCustomAppResponseSchema as kt, isKeystrokeAssetsAvatarPublicUrl as l, resolveExternalPlatformOrigin as li, McpDiscoverResponseSchema as ln, UpdateOrganizationRequestSchema as lr, CreateOrganizationResponseSchema as lt, isUserAvatarStorageKey as m, validateCredentialValueAgainstFields as mi, PLATFORM_RESOURCE_UNSUPPORTED_TEXT as mn, UploadProjectSourceManifestRequestSchema as mr, DEFAULT_TRIGGER_OVERVIEW_MODEL as mt, appLogoStorageKey as n, mergeUserPreferences as ni, ListProjectMetricsResponseSchema as nn, TriggerInvokeRequestSchema as nr, CreateApiKeyRequestSchema as nt, extractRouteManifestFromArtifact as o, parseAppSlug as oi, ManagedServiceCredentialSchema as on, UpdateManagedServiceCredentialRequestSchema as or, CreateCustomAppRequestSchema as ot, isStorageNotFoundError as p, schemaHasUnsupportedFormFields as pi, OrganizationSidebarBrandingSchema as pn, UpdateProjectSettingsRequestSchema as pr, DEFAULT_CLOUD_PLATFORM_ORIGIN as pt, AgentSummaryDetailResponseSchema as q, StoredProjectSourceManifestSchema as qn, mapOrganizationInvitation as qr, ListCredentialsPageResponseSchema as qt, chatAttachmentStorageKey as r, normalizeUserPreferences as ri, ListProjectsResponseSchema as rn, TriggerInvokeResponseSchema as rr, CreateApiKeyResponseSchema as rt, isAppLogoStorageKey as s, parseStoredRouteManifest as si, ManagedServiceKindSchema as sn, UpdateOrganizationMemberRequestSchema as sr, CreateCustomAppResponseSchema as st, RouteManifestNotFoundError as t, mcpEntityId as ti, ListProjectMembersResponseSchema as tn, TriggerInvokeInputsSchema as tr, ConnectManagedServiceCredentialRequestSchema as tt, isKeystrokeAssetsOrgLogoPublicUrl as u, resolvePublicFormFields as ui, OpenApiDiscoverRequestSchema as un, UpdateProjectMemberRequestSchema as ur, CreateProjectArtifactResponseSchema as ut, minioStoragePlugin as v, __commonJSMin as vi, PresignCustomAppLogoRequestSchema as vn, UserPreferencesPatchSchema as vr, DeclineOrganizationInvitationResponseSchema as vt, createJobQueue as w, PresignUserAvatarRequestSchema as wn, WorkflowFormUpsertBodySchema as wr, FilePartSchema as wt, projectSourceBlobKey as x, PresignOrgLogoResponseSchema as xn, WorkflowCanvasRunSchema as xr, DuplicateCredentialRequestSchema as xt, orgLogoStorageKey as y, __require as yi, PresignCustomAppLogoResponseSchema as yn, UserPreferencesSchema as yr, DownloadActiveProjectArtifactResponseSchema as yt, deleteManagedServiceCredential$1 as z, RecentResourceSchema as zn, chatAttachmentExtension as zr, InviteProjectMembersRequestSchema as zt };
37742
37999
 
37743
- //# sourceMappingURL=dist-Cj3RPKwD.mjs.map
38000
+ //# sourceMappingURL=dist-B2lPLfrR.mjs.map