@keystrokehq/platform 0.1.156 → 0.1.158

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 (330) hide show
  1. package/dist/{awk2-LA3USKJP-ByfczQFR.mjs → awk2-LA3USKJP-BKuMVeOB.mjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-ByfczQFR.mjs.map → awk2-LA3USKJP-BKuMVeOB.mjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-DMwZ6QQr.cjs → awk2-LA3USKJP-uE6zOSil.cjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-DMwZ6QQr.cjs.map → awk2-LA3USKJP-uE6zOSil.cjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-TPM8YCIT.cjs → base64-C2AIWVNC-CDGwGwLv.cjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-TPM8YCIT.cjs.map → base64-C2AIWVNC-CDGwGwLv.cjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-DhLdSVMT.mjs → base64-C2AIWVNC-DJcPDkRK.mjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-DhLdSVMT.mjs.map → base64-C2AIWVNC-DJcPDkRK.mjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-0JXMDwY6.mjs → bash-YZ33HQZQ-BC6yOs7H.mjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-0JXMDwY6.mjs.map → bash-YZ33HQZQ-BC6yOs7H.mjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-3gtMzQUb.cjs → bash-YZ33HQZQ-ySQQCFf9.cjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-3gtMzQUb.cjs.map → bash-YZ33HQZQ-ySQQCFf9.cjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-DGwUv9Kz.cjs → cat-TSFMZVYS--RzScLHz.cjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-DGwUv9Kz.cjs.map → cat-TSFMZVYS--RzScLHz.cjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-pOt--woU.mjs → cat-TSFMZVYS-CJ6mQfvI.mjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-pOt--woU.mjs.map → cat-TSFMZVYS-CJ6mQfvI.mjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-IFTXCE4s.mjs → chunk-5H5SCKJM-BdQ2tIwA.mjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-IFTXCE4s.mjs.map → chunk-5H5SCKJM-BdQ2tIwA.mjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-Dfxe1gZt.cjs → chunk-5H5SCKJM-CZxhImiD.cjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-Dfxe1gZt.cjs.map → chunk-5H5SCKJM-CZxhImiD.cjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-F3UFTyNi.cjs → chunk-AQ6FYS2X-Zc2W4QMU.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-F3UFTyNi.cjs.map → chunk-AQ6FYS2X-Zc2W4QMU.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-CeO3SltC.mjs → chunk-AQ6FYS2X-tGyu7HwM.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-CeO3SltC.mjs.map → chunk-AQ6FYS2X-tGyu7HwM.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-ahdwSYy4.cjs → chunk-CHFEPBH4-B3olJhLL.cjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-ahdwSYy4.cjs.map → chunk-CHFEPBH4-B3olJhLL.cjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-DXT2jaxl.mjs → chunk-CHFEPBH4-CkdOgmKT.mjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-DXT2jaxl.mjs.map → chunk-CHFEPBH4-CkdOgmKT.mjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-Dlc9htiv.cjs → chunk-EBAPSGAO-B_b5_B0U.cjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-Dlc9htiv.cjs.map → chunk-EBAPSGAO-B_b5_B0U.cjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-BH9U8nRM.mjs → chunk-EBAPSGAO-CTOjh6Dk.mjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-BH9U8nRM.mjs.map → chunk-EBAPSGAO-CTOjh6Dk.mjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-CN3XABuh.mjs → chunk-LEKBROJD-9J-ouZmr.mjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-CN3XABuh.mjs.map → chunk-LEKBROJD-9J-ouZmr.mjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-CyvuoMFA.cjs → chunk-LEKBROJD-CaQZRDQo.cjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-CyvuoMFA.cjs.map → chunk-LEKBROJD-CaQZRDQo.cjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-B1fgFmr7.cjs → chunk-VPADYNBD-Df6eBFS5.cjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-B1fgFmr7.cjs.map → chunk-VPADYNBD-Df6eBFS5.cjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-CoDQW9rd.mjs → chunk-VPADYNBD-rUjh3V91.mjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-CoDQW9rd.mjs.map → chunk-VPADYNBD-rUjh3V91.mjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-Bqhg2MlS.mjs → chunk-YCLFEX4T-ZlD89Xad.mjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-Bqhg2MlS.mjs.map → chunk-YCLFEX4T-ZlD89Xad.mjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-BhkOyHi8.cjs → chunk-YCLFEX4T-uHkQ9RlV.cjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-BhkOyHi8.cjs.map → chunk-YCLFEX4T-uHkQ9RlV.cjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-2pQbXs2k.mjs → column-XT6UFXNQ-CqVWzha1.mjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-2pQbXs2k.mjs.map → column-XT6UFXNQ-CqVWzha1.mjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-vx9cFrby.cjs → column-XT6UFXNQ-M29JNaKQ.cjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-vx9cFrby.cjs.map → column-XT6UFXNQ-M29JNaKQ.cjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-BqGE2v_-.mjs → comm-VV2LDX2J-DmVZ2wGn.mjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-BqGE2v_-.mjs.map → comm-VV2LDX2J-DmVZ2wGn.mjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-BOZDvYIa.cjs → comm-VV2LDX2J-k1LAn-UX.cjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-BOZDvYIa.cjs.map → comm-VV2LDX2J-k1LAn-UX.cjs.map} +1 -1
  53. package/dist/{config-7QWAcHEf.d.mts → config-3ZXCaTiz.d.mts} +34 -8
  54. package/dist/{config-Bc0kWwBk.d.cts → config-C1blpLvD.d.cts} +34 -8
  55. package/dist/{config-BEXGfMWX.mjs → config-CqA6LTcB.mjs} +3 -3
  56. package/dist/config-CqA6LTcB.mjs.map +1 -0
  57. package/dist/{config-BXIsWKDr.cjs → config-Vk9Uvgd6.cjs} +3 -3
  58. package/dist/config-Vk9Uvgd6.cjs.map +1 -0
  59. package/dist/config.cjs +2 -2
  60. package/dist/config.d.cts +2 -2
  61. package/dist/config.d.mts +2 -2
  62. package/dist/config.mjs +2 -2
  63. package/dist/{cp-BISAAS7A-B8FLyvxG.mjs → cp-BISAAS7A-CJkhs863.mjs} +2 -2
  64. package/dist/{cp-BISAAS7A-B8FLyvxG.mjs.map → cp-BISAAS7A-CJkhs863.mjs.map} +1 -1
  65. package/dist/{cp-BISAAS7A-BPMpNsAw.cjs → cp-BISAAS7A-LMQ-Lgu3.cjs} +2 -2
  66. package/dist/{cp-BISAAS7A-BPMpNsAw.cjs.map → cp-BISAAS7A-LMQ-Lgu3.cjs.map} +1 -1
  67. package/dist/{cut-OKARJCCV-D0Odc3Jf.cjs → cut-OKARJCCV-BiAZwS61.cjs} +3 -3
  68. package/dist/{cut-OKARJCCV-D0Odc3Jf.cjs.map → cut-OKARJCCV-BiAZwS61.cjs.map} +1 -1
  69. package/dist/{cut-OKARJCCV-D8thql_D.mjs → cut-OKARJCCV-CtFH2BBH.mjs} +3 -3
  70. package/dist/{cut-OKARJCCV-D8thql_D.mjs.map → cut-OKARJCCV-CtFH2BBH.mjs.map} +1 -1
  71. package/dist/{diff-MWJFIG7X-oslL1LAV.cjs → diff-MWJFIG7X-B9KQ6sp2.cjs} +2 -2
  72. package/dist/{diff-MWJFIG7X-oslL1LAV.cjs.map → diff-MWJFIG7X-B9KQ6sp2.cjs.map} +1 -1
  73. package/dist/{diff-MWJFIG7X-Drqts0Ou.mjs → diff-MWJFIG7X-CCt8XQbx.mjs} +2 -2
  74. package/dist/{diff-MWJFIG7X-Drqts0Ou.mjs.map → diff-MWJFIG7X-CCt8XQbx.mjs.map} +1 -1
  75. package/dist/{dist-kYSK2aR1.cjs → dist-DCBZwccy.cjs} +10 -2
  76. package/dist/dist-DCBZwccy.cjs.map +1 -0
  77. package/dist/{dist-CGVfb4k_.mjs → dist-knpBLc4g.mjs} +10 -2
  78. package/dist/{dist-CGVfb4k_.mjs.map → dist-knpBLc4g.mjs.map} +1 -1
  79. package/dist/{du-572XNP42-CELJ23aS.mjs → du-572XNP42-Cfmnvzp8.mjs} +2 -2
  80. package/dist/{du-572XNP42-CELJ23aS.mjs.map → du-572XNP42-Cfmnvzp8.mjs.map} +1 -1
  81. package/dist/{du-572XNP42-DmOYu76Z.cjs → du-572XNP42-TQqS6aEh.cjs} +2 -2
  82. package/dist/{du-572XNP42-DmOYu76Z.cjs.map → du-572XNP42-TQqS6aEh.cjs.map} +1 -1
  83. package/dist/{env-36M5BO7M-DZfbg9cL.cjs → env-36M5BO7M-DB1ByvdV.cjs} +2 -2
  84. package/dist/{env-36M5BO7M-DZfbg9cL.cjs.map → env-36M5BO7M-DB1ByvdV.cjs.map} +1 -1
  85. package/dist/{env-36M5BO7M-CNN23vys.mjs → env-36M5BO7M-DzamDw0x.mjs} +2 -2
  86. package/dist/{env-36M5BO7M-CNN23vys.mjs.map → env-36M5BO7M-DzamDw0x.mjs.map} +1 -1
  87. package/dist/{expand-JSPG6VOP-PLyckfMd.mjs → expand-JSPG6VOP-CBZ5VTZh.mjs} +2 -2
  88. package/dist/{expand-JSPG6VOP-PLyckfMd.mjs.map → expand-JSPG6VOP-CBZ5VTZh.mjs.map} +1 -1
  89. package/dist/{expand-JSPG6VOP-Bi-8GRhN.cjs → expand-JSPG6VOP-wdcwExNq.cjs} +2 -2
  90. package/dist/{expand-JSPG6VOP-Bi-8GRhN.cjs.map → expand-JSPG6VOP-wdcwExNq.cjs.map} +1 -1
  91. package/dist/{expr-5JAACS4X-BqIxQcAx.mjs → expr-5JAACS4X-C-EnCCF2.mjs} +2 -2
  92. package/dist/{expr-5JAACS4X-BqIxQcAx.mjs.map → expr-5JAACS4X-C-EnCCF2.mjs.map} +1 -1
  93. package/dist/{expr-5JAACS4X-BNy25DC2.cjs → expr-5JAACS4X-CKlqA3rx.cjs} +2 -2
  94. package/dist/{expr-5JAACS4X-BNy25DC2.cjs.map → expr-5JAACS4X-CKlqA3rx.cjs.map} +1 -1
  95. package/dist/{find-INTH3OLC-2piuR3-O.cjs → find-INTH3OLC-CkQ9J21w.cjs} +3 -3
  96. package/dist/{find-INTH3OLC-2piuR3-O.cjs.map → find-INTH3OLC-CkQ9J21w.cjs.map} +1 -1
  97. package/dist/{find-INTH3OLC-DH8DXZHk.mjs → find-INTH3OLC-DkRilJpD.mjs} +3 -3
  98. package/dist/{find-INTH3OLC-DH8DXZHk.mjs.map → find-INTH3OLC-DkRilJpD.mjs.map} +1 -1
  99. package/dist/{fold-4TQNYMSW-Bd1uAxr4.cjs → fold-4TQNYMSW-B-REYZ2T.cjs} +2 -2
  100. package/dist/{fold-4TQNYMSW-Bd1uAxr4.cjs.map → fold-4TQNYMSW-B-REYZ2T.cjs.map} +1 -1
  101. package/dist/{fold-4TQNYMSW-CsMYO96e.mjs → fold-4TQNYMSW-CsYQfT6n.mjs} +2 -2
  102. package/dist/{fold-4TQNYMSW-CsMYO96e.mjs.map → fold-4TQNYMSW-CsYQfT6n.mjs.map} +1 -1
  103. package/dist/{grep-V3LQVMRQ-Cds5pG3P.mjs → grep-V3LQVMRQ-CCkpNQq2.mjs} +4 -4
  104. package/dist/{grep-V3LQVMRQ-Cds5pG3P.mjs.map → grep-V3LQVMRQ-CCkpNQq2.mjs.map} +1 -1
  105. package/dist/{grep-V3LQVMRQ-DBBMtXpt.cjs → grep-V3LQVMRQ-Dqvc044Y.cjs} +4 -4
  106. package/dist/{grep-V3LQVMRQ-DBBMtXpt.cjs.map → grep-V3LQVMRQ-Dqvc044Y.cjs.map} +1 -1
  107. package/dist/{gzip-O5ASJAFY-CdOkcay5.cjs → gzip-O5ASJAFY-CxrvMOo3.cjs} +2 -2
  108. package/dist/{gzip-O5ASJAFY-CdOkcay5.cjs.map → gzip-O5ASJAFY-CxrvMOo3.cjs.map} +1 -1
  109. package/dist/{gzip-O5ASJAFY-BUdYCD74.mjs → gzip-O5ASJAFY-DgV2lPtN.mjs} +2 -2
  110. package/dist/{gzip-O5ASJAFY-BUdYCD74.mjs.map → gzip-O5ASJAFY-DgV2lPtN.mjs.map} +1 -1
  111. package/dist/{head-442HYESI-DpretS3H.cjs → head-442HYESI-BNn4Zd5W.cjs} +2 -2
  112. package/dist/{head-442HYESI-DpretS3H.cjs.map → head-442HYESI-BNn4Zd5W.cjs.map} +1 -1
  113. package/dist/{head-442HYESI-_V6c_Y8y.mjs → head-442HYESI-DW-UZKJE.mjs} +2 -2
  114. package/dist/{head-442HYESI-_V6c_Y8y.mjs.map → head-442HYESI-DW-UZKJE.mjs.map} +1 -1
  115. package/dist/{help-HZ6M2CKN-CWp0eQ2z.cjs → help-HZ6M2CKN-C62cNKDA.cjs} +2 -2
  116. package/dist/{help-HZ6M2CKN-CWp0eQ2z.cjs.map → help-HZ6M2CKN-C62cNKDA.cjs.map} +1 -1
  117. package/dist/{help-HZ6M2CKN-BqaLEgp2.mjs → help-HZ6M2CKN-Qo4lB8OP.mjs} +2 -2
  118. package/dist/{help-HZ6M2CKN-BqaLEgp2.mjs.map → help-HZ6M2CKN-Qo4lB8OP.mjs.map} +1 -1
  119. package/dist/{html-to-markdown-JW4MSQZO-CAcZBrRZ.mjs → html-to-markdown-JW4MSQZO-CKrnTTGV.mjs} +3 -3
  120. package/dist/{html-to-markdown-JW4MSQZO-CAcZBrRZ.mjs.map → html-to-markdown-JW4MSQZO-CKrnTTGV.mjs.map} +1 -1
  121. package/dist/{html-to-markdown-JW4MSQZO-DcGBGpbg.cjs → html-to-markdown-JW4MSQZO-DXxS5cxI.cjs} +3 -3
  122. package/dist/{html-to-markdown-JW4MSQZO-DcGBGpbg.cjs.map → html-to-markdown-JW4MSQZO-DXxS5cxI.cjs.map} +1 -1
  123. package/dist/internal.cjs +2 -2
  124. package/dist/internal.d.cts +2 -2
  125. package/dist/internal.d.mts +2 -2
  126. package/dist/internal.mjs +2 -2
  127. package/dist/{join-TBRGI3LQ-CzqTCyC_.cjs → join-TBRGI3LQ-8cSkvs72.cjs} +2 -2
  128. package/dist/{join-TBRGI3LQ-CzqTCyC_.cjs.map → join-TBRGI3LQ-8cSkvs72.cjs.map} +1 -1
  129. package/dist/{join-TBRGI3LQ-A6BX1u07.mjs → join-TBRGI3LQ-CRFay7fz.mjs} +2 -2
  130. package/dist/{join-TBRGI3LQ-A6BX1u07.mjs.map → join-TBRGI3LQ-CRFay7fz.mjs.map} +1 -1
  131. package/dist/{jq-4XLYLOS5-BJYQ4YMc.mjs → jq-4XLYLOS5-DfZRPbAf.mjs} +4 -4
  132. package/dist/{jq-4XLYLOS5-BJYQ4YMc.mjs.map → jq-4XLYLOS5-DfZRPbAf.mjs.map} +1 -1
  133. package/dist/{jq-4XLYLOS5-Dzk1Cr1F.cjs → jq-4XLYLOS5-edqMm9y9.cjs} +4 -4
  134. package/dist/{jq-4XLYLOS5-Dzk1Cr1F.cjs.map → jq-4XLYLOS5-edqMm9y9.cjs.map} +1 -1
  135. package/dist/{js-exec-N5KEZBH7-QGZXHyY0.mjs → js-exec-N5KEZBH7-DLlRvb2Z.mjs} +3 -3
  136. package/dist/{js-exec-N5KEZBH7-QGZXHyY0.mjs.map → js-exec-N5KEZBH7-DLlRvb2Z.mjs.map} +1 -1
  137. package/dist/{js-exec-N5KEZBH7-Bcd8otKl.cjs → js-exec-N5KEZBH7-Zyo2F6Ti.cjs} +3 -3
  138. package/dist/{js-exec-N5KEZBH7-Bcd8otKl.cjs.map → js-exec-N5KEZBH7-Zyo2F6Ti.cjs.map} +1 -1
  139. package/dist/lib/public-models.cjs +40 -11
  140. package/dist/lib/public-models.cjs.map +1 -1
  141. package/dist/lib/public-models.d.cts +25 -4
  142. package/dist/lib/public-models.d.mts +25 -4
  143. package/dist/lib/public-models.mjs +39 -12
  144. package/dist/lib/public-models.mjs.map +1 -1
  145. package/dist/{lib-DDGDxczq.cjs → lib-Bs77v-gS.cjs} +2 -2
  146. package/dist/{lib-DDGDxczq.cjs.map → lib-Bs77v-gS.cjs.map} +1 -1
  147. package/dist/{lib-Jj_eXohJ.mjs → lib-CFo1OZlw.mjs} +2 -2
  148. package/dist/{lib-Jj_eXohJ.mjs.map → lib-CFo1OZlw.mjs.map} +1 -1
  149. package/dist/{ln-4LGSXXGD-C5UT-Ujb.cjs → ln-4LGSXXGD-C1lfOtP2.cjs} +2 -2
  150. package/dist/{ln-4LGSXXGD-C5UT-Ujb.cjs.map → ln-4LGSXXGD-C1lfOtP2.cjs.map} +1 -1
  151. package/dist/{ln-4LGSXXGD-aZgyO6BG.mjs → ln-4LGSXXGD-DbgzmDmw.mjs} +2 -2
  152. package/dist/{ln-4LGSXXGD-aZgyO6BG.mjs.map → ln-4LGSXXGD-DbgzmDmw.mjs.map} +1 -1
  153. package/dist/{ls-ZJGQER7M-C3KTKhlL.mjs → ls-ZJGQER7M-BIbwj43R.mjs} +2 -2
  154. package/dist/{ls-ZJGQER7M-C3KTKhlL.mjs.map → ls-ZJGQER7M-BIbwj43R.mjs.map} +1 -1
  155. package/dist/{ls-ZJGQER7M-CzK8vxkc.cjs → ls-ZJGQER7M-D3t0QDQM.cjs} +2 -2
  156. package/dist/{ls-ZJGQER7M-CzK8vxkc.cjs.map → ls-ZJGQER7M-D3t0QDQM.cjs.map} +1 -1
  157. package/dist/{lzma-wgqkUDaW.cjs → lzma-Bsuh228D.cjs} +2 -2
  158. package/dist/{lzma-wgqkUDaW.cjs.map → lzma-Bsuh228D.cjs.map} +1 -1
  159. package/dist/{md5sum-SPU24VSG-CmI2Hsa_.mjs → md5sum-SPU24VSG-BiWtAKaM.mjs} +3 -3
  160. package/dist/{md5sum-SPU24VSG-CmI2Hsa_.mjs.map → md5sum-SPU24VSG-BiWtAKaM.mjs.map} +1 -1
  161. package/dist/{md5sum-SPU24VSG-BcSybbbv.cjs → md5sum-SPU24VSG-DJIgz_9a.cjs} +3 -3
  162. package/dist/{md5sum-SPU24VSG-BcSybbbv.cjs.map → md5sum-SPU24VSG-DJIgz_9a.cjs.map} +1 -1
  163. package/dist/{mkdir-MEPGZOB6-Dz0ilrHF.mjs → mkdir-MEPGZOB6-B1i3E32f.mjs} +2 -2
  164. package/dist/{mkdir-MEPGZOB6-Dz0ilrHF.mjs.map → mkdir-MEPGZOB6-B1i3E32f.mjs.map} +1 -1
  165. package/dist/{mkdir-MEPGZOB6-Bks_xob7.cjs → mkdir-MEPGZOB6-BqMED7DB.cjs} +2 -2
  166. package/dist/{mkdir-MEPGZOB6-Bks_xob7.cjs.map → mkdir-MEPGZOB6-BqMED7DB.cjs.map} +1 -1
  167. package/dist/{mv-W5BIQ646-BQe2vxEx.cjs → mv-W5BIQ646-DFL2qoA8.cjs} +2 -2
  168. package/dist/{mv-W5BIQ646-BQe2vxEx.cjs.map → mv-W5BIQ646-DFL2qoA8.cjs.map} +1 -1
  169. package/dist/{mv-W5BIQ646-BYWL1wkh.mjs → mv-W5BIQ646-nkURfvBY.mjs} +2 -2
  170. package/dist/{mv-W5BIQ646-BYWL1wkh.mjs.map → mv-W5BIQ646-nkURfvBY.mjs.map} +1 -1
  171. package/dist/{nl-WSDW7I4O-CHu4o_ve.cjs → nl-WSDW7I4O-WXzYOkjQ.cjs} +2 -2
  172. package/dist/{nl-WSDW7I4O-CHu4o_ve.cjs.map → nl-WSDW7I4O-WXzYOkjQ.cjs.map} +1 -1
  173. package/dist/{nl-WSDW7I4O-DWG5wZv2.mjs → nl-WSDW7I4O-rSBgQURn.mjs} +2 -2
  174. package/dist/{nl-WSDW7I4O-DWG5wZv2.mjs.map → nl-WSDW7I4O-rSBgQURn.mjs.map} +1 -1
  175. package/dist/{od-WOKFDJTP-C0KKUEqR.mjs → od-WOKFDJTP-CJFl9Ohq.mjs} +2 -2
  176. package/dist/{od-WOKFDJTP-C0KKUEqR.mjs.map → od-WOKFDJTP-CJFl9Ohq.mjs.map} +1 -1
  177. package/dist/{od-WOKFDJTP-BEdRBpH3.cjs → od-WOKFDJTP-DHLzLIii.cjs} +2 -2
  178. package/dist/{od-WOKFDJTP-BEdRBpH3.cjs.map → od-WOKFDJTP-DHLzLIii.cjs.map} +1 -1
  179. package/dist/{paste-7JC6S4DX-4f_UlCmY.mjs → paste-7JC6S4DX-Bml6SXf_.mjs} +2 -2
  180. package/dist/{paste-7JC6S4DX-4f_UlCmY.mjs.map → paste-7JC6S4DX-Bml6SXf_.mjs.map} +1 -1
  181. package/dist/{paste-7JC6S4DX-D2Mx-pNX.cjs → paste-7JC6S4DX-DD5eWGK0.cjs} +2 -2
  182. package/dist/{paste-7JC6S4DX-D2Mx-pNX.cjs.map → paste-7JC6S4DX-DD5eWGK0.cjs.map} +1 -1
  183. package/dist/{printf-TWGXF445-Cku6hGej.mjs → printf-TWGXF445-Bmuv2_VM.mjs} +3 -3
  184. package/dist/{printf-TWGXF445-Cku6hGej.mjs.map → printf-TWGXF445-Bmuv2_VM.mjs.map} +1 -1
  185. package/dist/{printf-TWGXF445-DCHSwRN6.cjs → printf-TWGXF445-CbiNvLS5.cjs} +3 -3
  186. package/dist/{printf-TWGXF445-DCHSwRN6.cjs.map → printf-TWGXF445-CbiNvLS5.cjs.map} +1 -1
  187. package/dist/{project-draft-notifier-DlWmyn5m.cjs → project-draft-notifier-BTrhFlJq.cjs} +799 -26
  188. package/dist/project-draft-notifier-BTrhFlJq.cjs.map +1 -0
  189. package/dist/{project-draft-notifier-B7K0aaAp.mjs → project-draft-notifier-DbGvx0CD.mjs} +746 -27
  190. package/dist/project-draft-notifier-DbGvx0CD.mjs.map +1 -0
  191. package/dist/{python3-POMOR4OA-DSAcZLAU.cjs → python3-POMOR4OA-BsOUiq4A.cjs} +3 -3
  192. package/dist/{python3-POMOR4OA-DSAcZLAU.cjs.map → python3-POMOR4OA-BsOUiq4A.cjs.map} +1 -1
  193. package/dist/{python3-POMOR4OA-BcBrl1X2.mjs → python3-POMOR4OA-SOzmJUy_.mjs} +3 -3
  194. package/dist/{python3-POMOR4OA-BcBrl1X2.mjs.map → python3-POMOR4OA-SOzmJUy_.mjs.map} +1 -1
  195. package/dist/{rev-5EHFX4EJ-Dmo6hsDY.mjs → rev-5EHFX4EJ-D8G5f0B8.mjs} +2 -2
  196. package/dist/{rev-5EHFX4EJ-Dmo6hsDY.mjs.map → rev-5EHFX4EJ-D8G5f0B8.mjs.map} +1 -1
  197. package/dist/{rev-5EHFX4EJ-u03jP4f-.cjs → rev-5EHFX4EJ-DiP5cwEi.cjs} +2 -2
  198. package/dist/{rev-5EHFX4EJ-u03jP4f-.cjs.map → rev-5EHFX4EJ-DiP5cwEi.cjs.map} +1 -1
  199. package/dist/{rg-S4FXYXWB-CTWDqqzD.cjs → rg-S4FXYXWB-B4PncTdP.cjs} +3 -3
  200. package/dist/{rg-S4FXYXWB-CTWDqqzD.cjs.map → rg-S4FXYXWB-B4PncTdP.cjs.map} +1 -1
  201. package/dist/{rg-S4FXYXWB-C5rIiKqa.mjs → rg-S4FXYXWB-DCoDd-co.mjs} +3 -3
  202. package/dist/{rg-S4FXYXWB-C5rIiKqa.mjs.map → rg-S4FXYXWB-DCoDd-co.mjs.map} +1 -1
  203. package/dist/{rm-SSGETQVQ-CMqCuC6-.cjs → rm-SSGETQVQ-B9SMhBSB.cjs} +2 -2
  204. package/dist/{rm-SSGETQVQ-CMqCuC6-.cjs.map → rm-SSGETQVQ-B9SMhBSB.cjs.map} +1 -1
  205. package/dist/{rm-SSGETQVQ-SVr6JZrX.mjs → rm-SSGETQVQ-DYztIM5O.mjs} +2 -2
  206. package/dist/{rm-SSGETQVQ-SVr6JZrX.mjs.map → rm-SSGETQVQ-DYztIM5O.mjs.map} +1 -1
  207. package/dist/{rmdir-OC4ZLPYA-xNbbN8z9.cjs → rmdir-OC4ZLPYA-D7HEcQAy.cjs} +2 -2
  208. package/dist/{rmdir-OC4ZLPYA-xNbbN8z9.cjs.map → rmdir-OC4ZLPYA-D7HEcQAy.cjs.map} +1 -1
  209. package/dist/{rmdir-OC4ZLPYA-DhpPwVcw.mjs → rmdir-OC4ZLPYA-xWQ-tIg9.mjs} +2 -2
  210. package/dist/{rmdir-OC4ZLPYA-DhpPwVcw.mjs.map → rmdir-OC4ZLPYA-xWQ-tIg9.mjs.map} +1 -1
  211. package/dist/run.cjs +4 -4
  212. package/dist/run.mjs +4 -4
  213. package/dist/{sed-S5UIK574-B9o7Evcw.cjs → sed-S5UIK574-Du8IExJm.cjs} +2 -2
  214. package/dist/{sed-S5UIK574-B9o7Evcw.cjs.map → sed-S5UIK574-Du8IExJm.cjs.map} +1 -1
  215. package/dist/{sed-S5UIK574-CwkMwpF4.mjs → sed-S5UIK574-bm0JFNZc.mjs} +2 -2
  216. package/dist/{sed-S5UIK574-CwkMwpF4.mjs.map → sed-S5UIK574-bm0JFNZc.mjs.map} +1 -1
  217. package/dist/{sha1sum-2PTOAFR6-CGWtyGkR.cjs → sha1sum-2PTOAFR6-Bq-v3RHV.cjs} +3 -3
  218. package/dist/{sha1sum-2PTOAFR6-CGWtyGkR.cjs.map → sha1sum-2PTOAFR6-Bq-v3RHV.cjs.map} +1 -1
  219. package/dist/{sha1sum-2PTOAFR6-Cad6_7os.mjs → sha1sum-2PTOAFR6-C5l_CLHS.mjs} +3 -3
  220. package/dist/{sha1sum-2PTOAFR6-Cad6_7os.mjs.map → sha1sum-2PTOAFR6-C5l_CLHS.mjs.map} +1 -1
  221. package/dist/{sha256sum-NS7D3IXX-QeeptGn3.mjs → sha256sum-NS7D3IXX-BZcZdhxE.mjs} +3 -3
  222. package/dist/{sha256sum-NS7D3IXX-QeeptGn3.mjs.map → sha256sum-NS7D3IXX-BZcZdhxE.mjs.map} +1 -1
  223. package/dist/{sha256sum-NS7D3IXX-Tkb8bOpJ.cjs → sha256sum-NS7D3IXX-hHNRLdA_.cjs} +3 -3
  224. package/dist/{sha256sum-NS7D3IXX-Tkb8bOpJ.cjs.map → sha256sum-NS7D3IXX-hHNRLdA_.cjs.map} +1 -1
  225. package/dist/{sleep-X22JJINO-SSB0_xkn.mjs → sleep-X22JJINO-CLwFdFCo.mjs} +2 -2
  226. package/dist/{sleep-X22JJINO-SSB0_xkn.mjs.map → sleep-X22JJINO-CLwFdFCo.mjs.map} +1 -1
  227. package/dist/{sleep-X22JJINO-Dlhdt3UF.cjs → sleep-X22JJINO-CgS_ip5Q.cjs} +2 -2
  228. package/dist/{sleep-X22JJINO-Dlhdt3UF.cjs.map → sleep-X22JJINO-CgS_ip5Q.cjs.map} +1 -1
  229. package/dist/{sort-SW2YEO5B-DHu-IjJK.mjs → sort-SW2YEO5B-0zTxs9YD.mjs} +3 -3
  230. package/dist/{sort-SW2YEO5B-DHu-IjJK.mjs.map → sort-SW2YEO5B-0zTxs9YD.mjs.map} +1 -1
  231. package/dist/{sort-SW2YEO5B-CfN8qsOe.cjs → sort-SW2YEO5B-wNs-q9FY.cjs} +3 -3
  232. package/dist/{sort-SW2YEO5B-CfN8qsOe.cjs.map → sort-SW2YEO5B-wNs-q9FY.cjs.map} +1 -1
  233. package/dist/{split-4KKZZXXE-DRFoW0C-.mjs → split-4KKZZXXE-3Go-xLDT.mjs} +2 -2
  234. package/dist/{split-4KKZZXXE-DRFoW0C-.mjs.map → split-4KKZZXXE-3Go-xLDT.mjs.map} +1 -1
  235. package/dist/{split-4KKZZXXE-B8plYwAH.cjs → split-4KKZZXXE-CRC14l7P.cjs} +2 -2
  236. package/dist/{split-4KKZZXXE-B8plYwAH.cjs.map → split-4KKZZXXE-CRC14l7P.cjs.map} +1 -1
  237. package/dist/{sqlite3-CGOEFJAO-racIOTTD.cjs → sqlite3-CGOEFJAO-V3zmhkJY.cjs} +3 -3
  238. package/dist/{sqlite3-CGOEFJAO-racIOTTD.cjs.map → sqlite3-CGOEFJAO-V3zmhkJY.cjs.map} +1 -1
  239. package/dist/{sqlite3-CGOEFJAO-CF1nf3bu.mjs → sqlite3-CGOEFJAO-rN_cPAaW.mjs} +3 -3
  240. package/dist/{sqlite3-CGOEFJAO-CF1nf3bu.mjs.map → sqlite3-CGOEFJAO-rN_cPAaW.mjs.map} +1 -1
  241. package/dist/{start-bgZZCOmu.cjs → start-BJw3ihFS.cjs} +584 -190
  242. package/dist/start-BJw3ihFS.cjs.map +1 -0
  243. package/dist/{start-BBW9vi1A.mjs → start-t_pBPQsU.mjs} +581 -188
  244. package/dist/start-t_pBPQsU.mjs.map +1 -0
  245. package/dist/start.cjs +1 -1
  246. package/dist/start.d.cts +1 -1
  247. package/dist/start.d.mts +1 -1
  248. package/dist/start.mjs +1 -1
  249. package/dist/{strings-6WDHLGMX-B8ogXPoK.cjs → strings-6WDHLGMX-BljfjANt.cjs} +2 -2
  250. package/dist/{strings-6WDHLGMX-B8ogXPoK.cjs.map → strings-6WDHLGMX-BljfjANt.cjs.map} +1 -1
  251. package/dist/{strings-6WDHLGMX-D-8gxmaP.mjs → strings-6WDHLGMX-DGdL1td6.mjs} +2 -2
  252. package/dist/{strings-6WDHLGMX-D-8gxmaP.mjs.map → strings-6WDHLGMX-DGdL1td6.mjs.map} +1 -1
  253. package/dist/{tac-2STMMJYW-GqCFVlMI.cjs → tac-2STMMJYW-DMhQEe5q.cjs} +2 -2
  254. package/dist/{tac-2STMMJYW-GqCFVlMI.cjs.map → tac-2STMMJYW-DMhQEe5q.cjs.map} +1 -1
  255. package/dist/{tac-2STMMJYW-BXvN_CFk.mjs → tac-2STMMJYW-u_39KuCC.mjs} +2 -2
  256. package/dist/{tac-2STMMJYW-BXvN_CFk.mjs.map → tac-2STMMJYW-u_39KuCC.mjs.map} +1 -1
  257. package/dist/{tail-R4PCA2C4-C0ugHzL2.mjs → tail-R4PCA2C4-tgyT7wGC.mjs} +2 -2
  258. package/dist/{tail-R4PCA2C4-C0ugHzL2.mjs.map → tail-R4PCA2C4-tgyT7wGC.mjs.map} +1 -1
  259. package/dist/{tail-R4PCA2C4-Drjdjemt.cjs → tail-R4PCA2C4-xZalNeK5.cjs} +2 -2
  260. package/dist/{tail-R4PCA2C4-Drjdjemt.cjs.map → tail-R4PCA2C4-xZalNeK5.cjs.map} +1 -1
  261. package/dist/{tar-STHHZTZ6-BsgloKrW.mjs → tar-STHHZTZ6-0gdvsCju.mjs} +4 -4
  262. package/dist/{tar-STHHZTZ6-BsgloKrW.mjs.map → tar-STHHZTZ6-0gdvsCju.mjs.map} +1 -1
  263. package/dist/{tar-STHHZTZ6-BuhlrLgy.cjs → tar-STHHZTZ6-pvdoWQbG.cjs} +5 -5
  264. package/dist/{tar-STHHZTZ6-BuhlrLgy.cjs.map → tar-STHHZTZ6-pvdoWQbG.cjs.map} +1 -1
  265. package/dist/{tee-YUZ2FKCJ-BhRQUMAz.cjs → tee-YUZ2FKCJ-DXiSfvar.cjs} +2 -2
  266. package/dist/{tee-YUZ2FKCJ-BhRQUMAz.cjs.map → tee-YUZ2FKCJ-DXiSfvar.cjs.map} +1 -1
  267. package/dist/{tee-YUZ2FKCJ-BbF6VRAs.mjs → tee-YUZ2FKCJ-LRZMywwS.mjs} +2 -2
  268. package/dist/{tee-YUZ2FKCJ-BbF6VRAs.mjs.map → tee-YUZ2FKCJ-LRZMywwS.mjs.map} +1 -1
  269. package/dist/{time-D4LNBSWX-BG4ZXuon.mjs → time-D4LNBSWX-RRPjvylO.mjs} +2 -2
  270. package/dist/{time-D4LNBSWX-BG4ZXuon.mjs.map → time-D4LNBSWX-RRPjvylO.mjs.map} +1 -1
  271. package/dist/{time-D4LNBSWX-BMJlkpiY.cjs → time-D4LNBSWX-XYvudP3x.cjs} +2 -2
  272. package/dist/{time-D4LNBSWX-BMJlkpiY.cjs.map → time-D4LNBSWX-XYvudP3x.cjs.map} +1 -1
  273. package/dist/{timeout-YDCRSLPQ-CuD519Dt.cjs → timeout-YDCRSLPQ-B9nIcBSB.cjs} +2 -2
  274. package/dist/{timeout-YDCRSLPQ-CuD519Dt.cjs.map → timeout-YDCRSLPQ-B9nIcBSB.cjs.map} +1 -1
  275. package/dist/{timeout-YDCRSLPQ-C4E3RCT1.mjs → timeout-YDCRSLPQ-auteC3Gb.mjs} +2 -2
  276. package/dist/{timeout-YDCRSLPQ-C4E3RCT1.mjs.map → timeout-YDCRSLPQ-auteC3Gb.mjs.map} +1 -1
  277. package/dist/{touch-UA33VN3N-Dr7gGPKc.mjs → touch-UA33VN3N-CTkCho8K.mjs} +2 -2
  278. package/dist/{touch-UA33VN3N-Dr7gGPKc.mjs.map → touch-UA33VN3N-CTkCho8K.mjs.map} +1 -1
  279. package/dist/{touch-UA33VN3N-BvhbAbJ5.cjs → touch-UA33VN3N-C_lnOJKi.cjs} +2 -2
  280. package/dist/{touch-UA33VN3N-BvhbAbJ5.cjs.map → touch-UA33VN3N-C_lnOJKi.cjs.map} +1 -1
  281. package/dist/{tr-36LHWFRQ-tCkx_1H_.cjs → tr-36LHWFRQ-CRO2ZQcO.cjs} +2 -2
  282. package/dist/{tr-36LHWFRQ-tCkx_1H_.cjs.map → tr-36LHWFRQ-CRO2ZQcO.cjs.map} +1 -1
  283. package/dist/{tr-36LHWFRQ-BAzZcYrH.mjs → tr-36LHWFRQ-DI-dtBA6.mjs} +2 -2
  284. package/dist/{tr-36LHWFRQ-BAzZcYrH.mjs.map → tr-36LHWFRQ-DI-dtBA6.mjs.map} +1 -1
  285. package/dist/{tree-YLD52CNT-2CgZVKNz.mjs → tree-YLD52CNT-C8_F9fOy.mjs} +2 -2
  286. package/dist/{tree-YLD52CNT-2CgZVKNz.mjs.map → tree-YLD52CNT-C8_F9fOy.mjs.map} +1 -1
  287. package/dist/{tree-YLD52CNT-CtxzyzyK.cjs → tree-YLD52CNT-DY8dtHDR.cjs} +2 -2
  288. package/dist/{tree-YLD52CNT-CtxzyzyK.cjs.map → tree-YLD52CNT-DY8dtHDR.cjs.map} +1 -1
  289. package/dist/{unexpand-CADSA4VO-DN7WjSgJ.mjs → unexpand-CADSA4VO-CrIzgXCI.mjs} +2 -2
  290. package/dist/{unexpand-CADSA4VO-DN7WjSgJ.mjs.map → unexpand-CADSA4VO-CrIzgXCI.mjs.map} +1 -1
  291. package/dist/{unexpand-CADSA4VO-uMt0rf4X.cjs → unexpand-CADSA4VO-sC6d7vYD.cjs} +2 -2
  292. package/dist/{unexpand-CADSA4VO-uMt0rf4X.cjs.map → unexpand-CADSA4VO-sC6d7vYD.cjs.map} +1 -1
  293. package/dist/{uniq-XSIZR6PB-i4UN8_wj.mjs → uniq-XSIZR6PB-BMIaoH6r.mjs} +3 -3
  294. package/dist/{uniq-XSIZR6PB-i4UN8_wj.mjs.map → uniq-XSIZR6PB-BMIaoH6r.mjs.map} +1 -1
  295. package/dist/{uniq-XSIZR6PB-BkO2mNi8.cjs → uniq-XSIZR6PB-B_Eb3B42.cjs} +3 -3
  296. package/dist/{uniq-XSIZR6PB-BkO2mNi8.cjs.map → uniq-XSIZR6PB-B_Eb3B42.cjs.map} +1 -1
  297. package/dist/{wc-LF7NU4LA-DbAal6fW.cjs → wc-LF7NU4LA-BN8uD5xw.cjs} +3 -3
  298. package/dist/{wc-LF7NU4LA-DbAal6fW.cjs.map → wc-LF7NU4LA-BN8uD5xw.cjs.map} +1 -1
  299. package/dist/{wc-LF7NU4LA-B5iKJ_sK.mjs → wc-LF7NU4LA-I7kgqxq0.mjs} +3 -3
  300. package/dist/{wc-LF7NU4LA-B5iKJ_sK.mjs.map → wc-LF7NU4LA-I7kgqxq0.mjs.map} +1 -1
  301. package/dist/{with-project-scope-D2Nxb_81.cjs → with-project-scope-BUYH3etZ.cjs} +20 -4
  302. package/dist/with-project-scope-BUYH3etZ.cjs.map +1 -0
  303. package/dist/{with-project-scope-BLKH8VDX.mjs → with-project-scope-DpiIxlik.mjs} +20 -4
  304. package/dist/with-project-scope-DpiIxlik.mjs.map +1 -0
  305. package/dist/{xan-Y6WF3IRG-PLXYTtLn.cjs → xan-Y6WF3IRG-Do49tZ_W.cjs} +6 -6
  306. package/dist/{xan-Y6WF3IRG-PLXYTtLn.cjs.map → xan-Y6WF3IRG-Do49tZ_W.cjs.map} +1 -1
  307. package/dist/{xan-Y6WF3IRG-B5YnpCBT.mjs → xan-Y6WF3IRG-rkkOjnpn.mjs} +6 -6
  308. package/dist/{xan-Y6WF3IRG-B5YnpCBT.mjs.map → xan-Y6WF3IRG-rkkOjnpn.mjs.map} +1 -1
  309. package/dist/{xan-view-HDVKHFC2-C4U_Ysf1.cjs → xan-view-HDVKHFC2-D8RIM5n-.cjs} +3 -3
  310. package/dist/{xan-view-HDVKHFC2-C4U_Ysf1.cjs.map → xan-view-HDVKHFC2-D8RIM5n-.cjs.map} +1 -1
  311. package/dist/{xan-view-HDVKHFC2-WJOBrjRv.mjs → xan-view-HDVKHFC2-jFIMBk6E.mjs} +3 -3
  312. package/dist/{xan-view-HDVKHFC2-WJOBrjRv.mjs.map → xan-view-HDVKHFC2-jFIMBk6E.mjs.map} +1 -1
  313. package/dist/{xargs-MGZPH7AX-CWF0HdOV.cjs → xargs-MGZPH7AX-WBopvhsi.cjs} +2 -2
  314. package/dist/{xargs-MGZPH7AX-CWF0HdOV.cjs.map → xargs-MGZPH7AX-WBopvhsi.cjs.map} +1 -1
  315. package/dist/{xargs-MGZPH7AX-D85Ko7xE.mjs → xargs-MGZPH7AX-oK7VOww8.mjs} +2 -2
  316. package/dist/{xargs-MGZPH7AX-D85Ko7xE.mjs.map → xargs-MGZPH7AX-oK7VOww8.mjs.map} +1 -1
  317. package/dist/{yq-4QJW3EQG-BcuExFs8.mjs → yq-4QJW3EQG-BclNWUX9.mjs} +3 -3
  318. package/dist/{yq-4QJW3EQG-BcuExFs8.mjs.map → yq-4QJW3EQG-BclNWUX9.mjs.map} +1 -1
  319. package/dist/{yq-4QJW3EQG-BSSwWyVt.cjs → yq-4QJW3EQG-DafLngnL.cjs} +3 -3
  320. package/dist/{yq-4QJW3EQG-BSSwWyVt.cjs.map → yq-4QJW3EQG-DafLngnL.cjs.map} +1 -1
  321. package/package.json +1 -1
  322. package/dist/config-BEXGfMWX.mjs.map +0 -1
  323. package/dist/config-BXIsWKDr.cjs.map +0 -1
  324. package/dist/dist-kYSK2aR1.cjs.map +0 -1
  325. package/dist/project-draft-notifier-B7K0aaAp.mjs.map +0 -1
  326. package/dist/project-draft-notifier-DlWmyn5m.cjs.map +0 -1
  327. package/dist/start-BBW9vi1A.mjs.map +0 -1
  328. package/dist/start-bgZZCOmu.cjs.map +0 -1
  329. package/dist/with-project-scope-BLKH8VDX.mjs.map +0 -1
  330. package/dist/with-project-scope-D2Nxb_81.cjs.map +0 -1
@@ -5,6 +5,7 @@ import { join } from "node:path";
5
5
  import { tmpdir } from "node:os";
6
6
  import { spawnSync } from "node:child_process";
7
7
  import { CreateBucketCommand, DeleteBucketCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, PutBucketAclCommand, PutBucketPolicyCommand, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
8
+ import { createPresignedPost } from "@aws-sdk/s3-presigned-post";
8
9
  import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
9
10
  //#region ../../packages/hosting/dist/runtime-BmfsHLrk.mjs
10
11
  /** Builds base64 `KEYSTROKE_ORG_ARTIFACTS` payload for org worker containers. */
@@ -356,7 +357,7 @@ function isCredentialInput(value) {
356
357
  }
357
358
  const credentialInputSchema = z.custom((value) => isCredentialInput(value), "must be a credential requirement");
358
359
  //#endregion
359
- //#region ../../packages/shared/dist/billing-Ig0pw49a.mjs
360
+ //#region ../../packages/shared/dist/billing-Bar2XMfx.mjs
360
361
  /**
361
362
  * Money is integer micro-credits (µc). 1 credit = $1 = 1,000,000 µc.
362
363
  * Shared so the web dashboard and the cloud billing packages agree on the
@@ -500,20 +501,25 @@ z.object({
500
501
  const BillingUsageEventSourceSchema = z.enum([
501
502
  "ai_gateway",
502
503
  "sandbox",
504
+ "browser",
503
505
  "web_proxy",
504
506
  "storage",
505
507
  "dispatch",
506
- "poll"
508
+ "poll",
509
+ "brain"
507
510
  ]);
508
511
  const BillingUsageMeterKeySchema = z.enum([
509
512
  "llm",
510
513
  "vm_second",
514
+ "browser_second",
511
515
  "web_search",
512
516
  "web_fetch",
513
517
  "workflow_run",
514
518
  "agent_run",
515
519
  "poll_trigger",
516
- "tigris_storage"
520
+ "tigris_storage",
521
+ "brain_search",
522
+ "brain_indexing"
517
523
  ]);
518
524
  const BillingUsageKeySourceSchema = z.enum(["platform", "byok"]);
519
525
  const BillingUsageRunKindSchema = z.enum([
@@ -544,7 +550,7 @@ z.object({
544
550
  chargeMicroCredits: z.number().int().nonnegative()
545
551
  });
546
552
  //#endregion
547
- //#region ../../packages/shared/dist/credential-runtime-Cbm2X9rK.mjs
553
+ //#region ../../packages/shared/dist/credential-runtime-B1aMt2H1.mjs
548
554
  const ACTIVE_ORG_HEADER = "x-keystroke-org-id";
549
555
  function isValidIanaTimezone(value) {
550
556
  try {
@@ -1177,6 +1183,16 @@ const ORGANIZATION_NAME_APOSTROPHE_PATTERN = /[''\u2018\u2019]/g;
1177
1183
  function normalizeOrganizationNameToSlugBase(name) {
1178
1184
  return name.trim().toLowerCase().replace(ORGANIZATION_NAME_APOSTROPHE_PATTERN, "").replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
1179
1185
  }
1186
+ const BrowserTabSchema = z.object({
1187
+ url: z.string(),
1188
+ title: z.string().optional(),
1189
+ active: z.boolean()
1190
+ });
1191
+ const BrowserResumeStateSchema = z.object({
1192
+ tabs: z.array(BrowserTabSchema),
1193
+ lastScreenshotStorageKey: z.string().optional(),
1194
+ capturedAt: z.string()
1195
+ });
1180
1196
  /** Same format as organization slugs — org-scoped, no global reserved list. */
1181
1197
  const ProjectSlugSchema = OrganizationSlugSchema;
1182
1198
  const PROJECT_SLUG_TAKEN_MESSAGE = "That slug is already taken.";
@@ -1329,6 +1345,619 @@ function jsonSchemaToZod(schema) {
1329
1345
  }
1330
1346
  /** Legacy flat catalog — kept during dual-write so runtime/storage stay unchanged. */
1331
1347
  const ROUTE_MANIFEST_REL_PATH = "dist/.keystroke/route-manifest.json";
1348
+ /** Lowercase dash-separated Brain slug (2–64 chars). */
1349
+ const BrainSlugSchema = z.string().trim().toLowerCase().min(2, "Slug must be at least 2 characters").max(64, "Slug must be at most 64 characters").regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "Use lowercase letters, numbers, and dashes only");
1350
+ /** Splits on the first `:` and validates each component as a Brain slug. */
1351
+ function parseBrainReference(value) {
1352
+ const separatorIndex = value.indexOf(":");
1353
+ if (separatorIndex === -1) {
1354
+ const slug = BrainSlugSchema.safeParse(value);
1355
+ return slug.success ? {
1356
+ brainSlug: slug.data,
1357
+ filterSlug: null
1358
+ } : void 0;
1359
+ }
1360
+ const brain = BrainSlugSchema.safeParse(value.slice(0, separatorIndex));
1361
+ const filter = BrainSlugSchema.safeParse(value.slice(separatorIndex + 1));
1362
+ if (!brain.success || !filter.success) return;
1363
+ return {
1364
+ brainSlug: brain.data,
1365
+ filterSlug: filter.data
1366
+ };
1367
+ }
1368
+ /** Base Brain slug or qualified `{brain}:{filter}` reference. */
1369
+ const BrainReferenceSchema = z.string().trim().toLowerCase().refine((value) => parseBrainReference(value) !== void 0, { message: "Expected a Brain slug or a {brain}:{filter} reference" });
1370
+ /**
1371
+ * Where a document's content originated (`linear`, `notion`, `slack`,
1372
+ * `manual`, or a customer-defined slug). Required on every upload and distinct
1373
+ * from trusted provisioner provenance (how the version entered the Brain).
1374
+ * Not a closed enum: known sources get branded presentation, unknown valid
1375
+ * sources remain supported.
1376
+ */
1377
+ const BrainSourceSchema = z.string().trim().toLowerCase().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/, "Use 1-64 lowercase letters, numbers, dashes, and underscores (starting alphanumeric)");
1378
+ /** Required, non-empty human description shown in list/detail views and agent tool catalogs. */
1379
+ const BrainDescriptionSchema = z.string().trim().min(1).max(2e3);
1380
+ const BRAIN_MAX_FILE_BYTES = 100 * 1024 * 1024;
1381
+ const BRAIN_MAX_FOLDER_FILES = 1e3;
1382
+ const BRAIN_READ_MAX_CHARS = 2e4;
1383
+ /** Inline `content` / `blocks` put payload cap; larger content must use the file upload flow. */
1384
+ const BRAIN_MAX_INLINE_CONTENT_CHARS = 2e6;
1385
+ const BRAIN_MAX_BLOCKS_PER_DOCUMENT = 5e3;
1386
+ const BRAIN_MAX_BLOCK_CHARS = 4e4;
1387
+ const BRAIN_MAX_METADATA_STRING_CHARS = 1024;
1388
+ const BRAIN_CHUNK_DEFAULT_MAX_CHARACTERS = 8e3;
1389
+ const BRAIN_CHUNK_MAX_CHARACTERS = 4e4;
1390
+ z.enum([
1391
+ "doc",
1392
+ "docx",
1393
+ "docm",
1394
+ "ppt",
1395
+ "pps",
1396
+ "pot",
1397
+ "pptx",
1398
+ "pptm",
1399
+ "ppsx",
1400
+ "ppsm",
1401
+ "xls",
1402
+ "xlsx",
1403
+ "xlsm",
1404
+ "xlsb",
1405
+ "odt",
1406
+ "ods",
1407
+ "odp",
1408
+ "rtf",
1409
+ "epub",
1410
+ "csv",
1411
+ "pdf",
1412
+ "txt",
1413
+ "md",
1414
+ "markdown",
1415
+ "html",
1416
+ "htm",
1417
+ "json",
1418
+ "xml",
1419
+ "yaml",
1420
+ "yml"
1421
+ ]);
1422
+ z.enum([
1423
+ "doc",
1424
+ "docx",
1425
+ "ppt",
1426
+ "pptx",
1427
+ "xlsx",
1428
+ "odt",
1429
+ "ods",
1430
+ "odp",
1431
+ "rtf",
1432
+ "epub",
1433
+ "csv",
1434
+ "pdf",
1435
+ "txt",
1436
+ "md",
1437
+ "html",
1438
+ "json",
1439
+ "xml",
1440
+ "yaml"
1441
+ ]);
1442
+ const BrainStatusSchema = z.enum([
1443
+ "active",
1444
+ "rebuilding",
1445
+ "rebuild_failed",
1446
+ "deleting"
1447
+ ]);
1448
+ /** Brain resource membership roles. Owners additionally manage members and deletion. */
1449
+ const BrainMemberRoleSchema = z.enum(["owner", "admin"]);
1450
+ /** `write` implies read. Grants authorize deployed project runtimes, not humans. */
1451
+ const BrainGrantAccessSchema = z.enum(["read", "write"]);
1452
+ const BrainDocumentVersionStatusSchema = z.enum([
1453
+ "pending_upload",
1454
+ "pending_ingest",
1455
+ "queued",
1456
+ "processing",
1457
+ "ready",
1458
+ "failed"
1459
+ ]);
1460
+ const BrainDocumentFailureCodeSchema = z.enum([
1461
+ "format_mismatch",
1462
+ "invalid_document",
1463
+ "encrypted_document",
1464
+ "unsupported_encoding",
1465
+ "needs_ocr",
1466
+ "no_extractable_text",
1467
+ "extracted_content_too_large",
1468
+ "too_many_chunks",
1469
+ "parser_timeout",
1470
+ "parser_resource_limit",
1471
+ "parser_unavailable",
1472
+ "embedding_failed",
1473
+ "index_write_failed"
1474
+ ]);
1475
+ const BrainSkippedReasonSchema = z.enum([
1476
+ "unsupported_extension",
1477
+ "empty_file",
1478
+ "file_too_large",
1479
+ "duplicate_path",
1480
+ "invalid_relative_path",
1481
+ "hidden_path",
1482
+ "operation_limit"
1483
+ ]);
1484
+ const BrainDocumentWriteInputKindSchema = z.enum([
1485
+ "content",
1486
+ "blocks",
1487
+ "file"
1488
+ ]);
1489
+ const BrainDocumentWriteOutcomeSchema = z.enum([
1490
+ "pending",
1491
+ "ready",
1492
+ "unchanged",
1493
+ "failed"
1494
+ ]);
1495
+ /**
1496
+ * Gateway embedding model id (`provider/model`). The catalog is discovered at
1497
+ * runtime from the Vercel AI Gateway, so this is a bounded shape check only;
1498
+ * existence and `type === 'embedding'` are validated server-side against a
1499
+ * cached catalog at Brain create/update.
1500
+ */
1501
+ const BrainEmbeddingModelSchema = z.string().trim().min(3).max(128).regex(/^[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/i, "Expected a provider/model embedding id");
1502
+ const BRAIN_EMBEDDING_MODEL_DEFAULT = "voyage/voyage-4";
1503
+ const BrainLanguageSchema = z.enum([
1504
+ "multilingual",
1505
+ "arabic",
1506
+ "danish",
1507
+ "dutch",
1508
+ "english",
1509
+ "finnish",
1510
+ "french",
1511
+ "german",
1512
+ "greek",
1513
+ "hungarian",
1514
+ "italian",
1515
+ "norwegian",
1516
+ "portuguese",
1517
+ "romanian",
1518
+ "russian",
1519
+ "spanish",
1520
+ "swedish",
1521
+ "tamil",
1522
+ "turkish"
1523
+ ]);
1524
+ const BRAIN_LANGUAGE_DEFAULT = "english";
1525
+ /**
1526
+ * Character-exact chunk controls. An exact separator is preferred when
1527
+ * present; chunks still respect maxCharacters.
1528
+ */
1529
+ const BrainCharacterChunkingSchema = z.object({
1530
+ maxCharacters: z.number().int().min(1).max(BRAIN_CHUNK_MAX_CHARACTERS).default(BRAIN_CHUNK_DEFAULT_MAX_CHARACTERS),
1531
+ overlapCharacters: z.number().int().nonnegative().default(0),
1532
+ separator: z.string().min(1).optional()
1533
+ }).strict().refine((value) => value.overlapCharacters < value.maxCharacters, {
1534
+ message: "overlapCharacters must be less than maxCharacters",
1535
+ path: ["overlapCharacters"]
1536
+ });
1537
+ const BrainIndexConfigSchema = z.object({
1538
+ embeddingModel: BrainEmbeddingModelSchema.default(BRAIN_EMBEDDING_MODEL_DEFAULT),
1539
+ chunking: BrainCharacterChunkingSchema.prefault({}),
1540
+ language: BrainLanguageSchema.default(BRAIN_LANGUAGE_DEFAULT)
1541
+ }).strict();
1542
+ const BRAIN_RESERVED_ATTRIBUTE_NAMES = [
1543
+ "id",
1544
+ "documentId",
1545
+ "brainId",
1546
+ "versionId",
1547
+ "revision",
1548
+ "generation",
1549
+ "chunkIndex",
1550
+ "title",
1551
+ "text",
1552
+ "source",
1553
+ "vector"
1554
+ ];
1555
+ const BrainMetadataKeySchema = z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,63}$/, "Metadata keys must start with a letter and use letters, numbers, and underscores").refine((key) => !BRAIN_RESERVED_ATTRIBUTE_NAMES.includes(key) && !key.startsWith("titleFts") && !key.startsWith("textFts"), { message: "Metadata key collides with a reserved index attribute" });
1556
+ const BrainMetadataScalarSchema = z.union([
1557
+ z.string().max(BRAIN_MAX_METADATA_STRING_CHARS),
1558
+ z.number().finite(),
1559
+ z.boolean()
1560
+ ]);
1561
+ const BrainMetadataValueSchema = z.union([BrainMetadataScalarSchema, z.array(z.string().max(BRAIN_MAX_METADATA_STRING_CHARS)).max(64)]);
1562
+ const BrainDocumentMetadataSchema = z.record(BrainMetadataKeySchema, BrainMetadataValueSchema).refine((value) => Object.keys(value).length <= 32, { message: `At most 32 metadata keys are allowed` });
1563
+ /**
1564
+ * Flat filter over metadata attributes: scalar → equals, array → any-of
1565
+ * (In for scalar attributes, ContainsAny for array attributes). Entries AND
1566
+ * together.
1567
+ */
1568
+ const BrainMetadataFilterSchema = z.record(BrainMetadataKeySchema, z.union([BrainMetadataScalarSchema, z.array(BrainMetadataScalarSchema).min(1).max(64)])).refine((value) => Object.keys(value).length <= 32, { message: `At most 32 filter keys are allowed` });
1569
+ /**
1570
+ * Filter expression persisted by Brain filters and accepted as query-time
1571
+ * narrowing: an optional reserved `source` operand (scalar equals or any-of)
1572
+ * plus a flat metadata filter. Entries AND together. The stored document
1573
+ * `source` is always one scalar string; an array here only widens matching.
1574
+ */
1575
+ const BrainFilterExpressionSchema = z.object({
1576
+ source: z.union([BrainSourceSchema, z.array(BrainSourceSchema).min(1).max(64)]).optional(),
1577
+ metadata: BrainMetadataFilterSchema.optional()
1578
+ }).strict().refine((value) => value.source !== void 0 || value.metadata !== void 0 && Object.keys(value.metadata).length > 0, { message: "Filter requires a source or at least one metadata entry" });
1579
+ const BrainSummarySchema = z.object({
1580
+ id: z.string().min(1),
1581
+ slug: BrainSlugSchema,
1582
+ name: z.string().min(1),
1583
+ description: BrainDescriptionSchema,
1584
+ indexConfig: BrainIndexConfigSchema,
1585
+ status: BrainStatusSchema,
1586
+ /** Number of filters defined on this Brain (rendered as “Filtered views”). */
1587
+ filterCount: z.number().int().nonnegative(),
1588
+ /** Requesting user's Brain membership role (management surfaces are membership-only). */
1589
+ callerRole: BrainMemberRoleSchema,
1590
+ createdAt: z.string().datetime(),
1591
+ updatedAt: z.string().datetime()
1592
+ });
1593
+ BrainSummarySchema.extend({
1594
+ createdByUserId: z.string().min(1).nullable(),
1595
+ documentCount: z.number().int().nonnegative(),
1596
+ readyDocumentCount: z.number().int().nonnegative()
1597
+ });
1598
+ const BrainNameSchema = z.string().trim().min(1).max(120);
1599
+ z.object({
1600
+ name: BrainNameSchema,
1601
+ slug: BrainSlugSchema.optional(),
1602
+ description: BrainDescriptionSchema,
1603
+ indexConfig: BrainIndexConfigSchema.prefault({})
1604
+ }).strict();
1605
+ z.object({
1606
+ name: BrainNameSchema.optional(),
1607
+ description: BrainDescriptionSchema.optional(),
1608
+ indexConfig: BrainIndexConfigSchema.optional()
1609
+ }).strict().refine((value) => Object.values(value).some((field) => field !== void 0), { message: "At least one field is required" });
1610
+ z.object({
1611
+ brain: BrainSummarySchema,
1612
+ /** Set when an indexConfig change kicked off a rebuild. */
1613
+ rebuildStarted: z.boolean()
1614
+ });
1615
+ z.object({ brains: z.array(BrainSummarySchema) });
1616
+ const BrainMemberSchema = z.object({
1617
+ userId: z.string().min(1),
1618
+ role: BrainMemberRoleSchema,
1619
+ createdByUserId: z.string().min(1).nullable(),
1620
+ createdAt: z.string().datetime(),
1621
+ updatedAt: z.string().datetime()
1622
+ });
1623
+ z.object({
1624
+ userId: z.string().min(1),
1625
+ role: BrainMemberRoleSchema.default("admin")
1626
+ }).strict();
1627
+ z.object({ role: BrainMemberRoleSchema }).strict();
1628
+ z.object({ members: z.array(BrainMemberSchema) });
1629
+ const BrainGrantSchema = z.object({
1630
+ id: z.string().min(1),
1631
+ brainId: z.string().min(1),
1632
+ projectId: z.string().min(1),
1633
+ access: BrainGrantAccessSchema,
1634
+ createdByUserId: z.string().min(1).nullable(),
1635
+ createdAt: z.string().datetime()
1636
+ });
1637
+ z.object({
1638
+ projectId: z.string().min(1),
1639
+ access: BrainGrantAccessSchema.default("read")
1640
+ }).strict();
1641
+ z.object({ grants: z.array(BrainGrantSchema) });
1642
+ const BrainFilterSummarySchema = z.object({
1643
+ id: z.string().min(1),
1644
+ /** Local slug, unique per Brain and colon-free. */
1645
+ slug: BrainSlugSchema,
1646
+ /** `{brain-slug}:{filter-slug}` — the externally addressable reference. */
1647
+ qualifiedSlug: BrainReferenceSchema,
1648
+ name: z.string().min(1),
1649
+ description: BrainDescriptionSchema,
1650
+ filter: BrainFilterExpressionSchema,
1651
+ createdByUserId: z.string().min(1).nullable(),
1652
+ createdAt: z.string().datetime(),
1653
+ updatedAt: z.string().datetime()
1654
+ });
1655
+ z.object({
1656
+ name: BrainNameSchema,
1657
+ slug: BrainSlugSchema.optional(),
1658
+ description: BrainDescriptionSchema,
1659
+ filter: BrainFilterExpressionSchema
1660
+ }).strict();
1661
+ z.object({
1662
+ name: BrainNameSchema.optional(),
1663
+ description: BrainDescriptionSchema.optional(),
1664
+ filter: BrainFilterExpressionSchema.optional()
1665
+ }).strict().refine((value) => Object.values(value).some((field) => field !== void 0), { message: "At least one field is required" });
1666
+ z.object({ filters: z.array(BrainFilterSummarySchema) });
1667
+ const BrainDocumentIdSchema = z.string().trim().min(1).max(512).refine((value) => ![...value].some((ch) => ch.charCodeAt(0) < 32 || ch.charCodeAt(0) === 127), { message: "documentId must not contain control characters" });
1668
+ const BrainDocumentTitleSchema = z.string().trim().min(1).max(500);
1669
+ const BrainEmbeddingContextSchema = z.string().trim().min(1).max(2e3);
1670
+ const BrainDocumentRevisionSchema = z.string().trim().min(1).max(256);
1671
+ z.string().trim().min(1).max(1024).refine((value) => ![...value].some((ch) => ch.charCodeAt(0) < 32 || ch.charCodeAt(0) === 127), { message: "file name must not contain control characters" });
1672
+ z.string().trim().min(1).max(256);
1673
+ /** Authored semantic block: one caller-supplied block becomes one exact chunk. */
1674
+ const BrainDocumentBlockSchema = z.object({
1675
+ text: z.string().min(1).max(BRAIN_MAX_BLOCK_CHARS),
1676
+ heading: z.string().trim().min(1).max(500).optional(),
1677
+ meta: z.record(z.string().max(64), z.string().max(BRAIN_MAX_METADATA_STRING_CHARS)).optional()
1678
+ }).strict();
1679
+ const sha256Hex$2 = z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
1680
+ z.object({
1681
+ documentId: BrainDocumentIdSchema,
1682
+ title: BrainDocumentTitleSchema.optional(),
1683
+ /** Where the content originated (`linear`, `notion`, `manual`, …). Required. */
1684
+ source: BrainSourceSchema,
1685
+ content: z.string().min(1).max(BRAIN_MAX_INLINE_CONTENT_CHARS).optional(),
1686
+ blocks: z.array(BrainDocumentBlockSchema).min(1).max(BRAIN_MAX_BLOCKS_PER_DOCUMENT).optional(),
1687
+ metadata: BrainDocumentMetadataSchema.optional(),
1688
+ /** Extra text prefixed into chunk embeddings (like the title); never returned by read. */
1689
+ embeddingContext: BrainEmbeddingContextSchema.optional(),
1690
+ revision: BrainDocumentRevisionSchema.optional(),
1691
+ chunking: BrainCharacterChunkingSchema.optional()
1692
+ }).strict().refine((value) => value.content !== void 0 !== (value.blocks !== void 0), { message: "Provide exactly one of content or blocks" }).refine((value) => value.blocks === void 0 || value.chunking === void 0, {
1693
+ message: "Chunking controls are not allowed with blocks",
1694
+ path: ["chunking"]
1695
+ });
1696
+ z.object({
1697
+ documentId: BrainDocumentIdSchema,
1698
+ /** `queued` created a new version; `unchanged` skipped (revision or content hash matched). */
1699
+ outcome: z.enum(["queued", "unchanged"]),
1700
+ versionId: z.string().min(1).nullable(),
1701
+ metadataUpdated: z.boolean()
1702
+ });
1703
+ z.object({
1704
+ /** Full replacement of the document's metadata attributes; never re-embeds. */
1705
+ metadata: BrainDocumentMetadataSchema }).strict();
1706
+ z.object({ documentIds: z.array(BrainDocumentIdSchema).min(1).max(100) }).strict();
1707
+ z.object({ deletedDocumentIds: z.array(BrainDocumentIdSchema) });
1708
+ const BrainProvisionerKindSchema = z.enum(["workflow", "manual"]);
1709
+ /**
1710
+ * Trusted system provenance for how a version entered the Brain: a workflow
1711
+ * run (project-scoped) or a manual Brain-admin upload (organization-scoped,
1712
+ * user identity only). Distinct from document `source` (content origin).
1713
+ */
1714
+ const BrainDocumentProvisionerSchema = z.discriminatedUnion("kind", [z.object({
1715
+ kind: z.literal("workflow"),
1716
+ projectId: z.string().min(1),
1717
+ workflowRunId: z.string().min(1),
1718
+ workflowSlug: z.string().min(1),
1719
+ correlationId: z.string().min(1)
1720
+ }).strict(), z.object({
1721
+ kind: z.literal("manual"),
1722
+ userId: z.string().min(1)
1723
+ }).strict()]);
1724
+ const BrainDocumentWriteEventSchema = z.object({
1725
+ id: z.string().min(1),
1726
+ documentId: BrainDocumentIdSchema,
1727
+ provisioner: BrainDocumentProvisionerSchema,
1728
+ inputKind: BrainDocumentWriteInputKindSchema,
1729
+ outcome: BrainDocumentWriteOutcomeSchema,
1730
+ failureCode: z.string().trim().min(1).max(128).nullable().optional(),
1731
+ failureMessage: z.string().trim().min(1).max(2e3).nullable().optional(),
1732
+ submittedAt: z.string().datetime(),
1733
+ contentReceivedAt: z.string().datetime().nullable().optional(),
1734
+ completedAt: z.string().datetime().nullable().optional()
1735
+ }).strict().superRefine((event, context) => {
1736
+ const hasFailure = event.failureCode != null || event.failureMessage != null;
1737
+ if (event.outcome === "pending") {
1738
+ if (event.completedAt != null || hasFailure) context.addIssue({
1739
+ code: "custom",
1740
+ message: "Pending writes cannot have completion or failure fields"
1741
+ });
1742
+ return;
1743
+ }
1744
+ if (event.completedAt == null) context.addIssue({
1745
+ code: "custom",
1746
+ message: "Terminal writes require completedAt",
1747
+ path: ["completedAt"]
1748
+ });
1749
+ if (event.outcome !== "failed" && hasFailure) context.addIssue({
1750
+ code: "custom",
1751
+ message: "Failure fields are only valid for failed writes"
1752
+ });
1753
+ });
1754
+ /** List entry doubling as the ETL diffing primitive (compare sha256 / revision, then put). */
1755
+ const BrainDocumentSummarySchema = z.object({
1756
+ documentId: BrainDocumentIdSchema,
1757
+ title: z.string().min(1),
1758
+ /** Where the current content originated (`linear`, `notion`, `manual`, …). */
1759
+ source: BrainSourceSchema,
1760
+ status: BrainDocumentVersionStatusSchema.nullable(),
1761
+ /** Content hash of the live version; null until first ingest completes. */
1762
+ sha256: z.string().nullable(),
1763
+ /** Caller-supplied revision fingerprint from the last put. */
1764
+ revision: z.string().nullable(),
1765
+ failureCode: BrainDocumentFailureCodeSchema.nullable().optional(),
1766
+ failureMessage: z.string().nullable().optional(),
1767
+ byteSize: z.number().int().nonnegative().nullable().optional(),
1768
+ chunkCount: z.number().int().nonnegative().nullable().optional(),
1769
+ /**
1770
+ * Provenance for the event whose version is current. Null means legacy or
1771
+ * unavailable provenance; later failed/unchanged writes never replace it.
1772
+ */
1773
+ currentProvenance: BrainDocumentWriteEventSchema.nullable(),
1774
+ createdAt: z.string().datetime(),
1775
+ updatedAt: z.string().datetime()
1776
+ });
1777
+ BrainDocumentSummarySchema.extend({
1778
+ metadata: BrainDocumentMetadataSchema.nullable(),
1779
+ contentType: z.string().nullable(),
1780
+ format: z.string().nullable()
1781
+ });
1782
+ /** Accepts one repeated query param or an array; normalizes to an array. */
1783
+ function queryList(schema) {
1784
+ return z.union([schema, z.array(schema).min(1)]).transform((value) => Array.isArray(value) ? value : [value]).optional();
1785
+ }
1786
+ const ListBrainDocumentsQuerySchema = z.object({
1787
+ /** Filters documentIds by prefix (e.g. `slack:C123:`). */
1788
+ prefix: z.string().min(1).max(512).optional(),
1789
+ /** Case-insensitive substring over title and documentId. */
1790
+ search: z.string().trim().min(1).max(256).optional(),
1791
+ /** Any-of filter over document source. */
1792
+ source: queryList(BrainSourceSchema),
1793
+ /** Any-of filter over the current version's provisioner kind. */
1794
+ provisionerKind: queryList(BrainProvisionerKindSchema),
1795
+ /** Applies one persisted Brain filter expression (local filter slug). */
1796
+ filterSlug: BrainSlugSchema.optional(),
1797
+ cursor: z.string().min(1).optional(),
1798
+ limit: z.coerce.number().int().min(1).max(500).default(100)
1799
+ });
1800
+ z.object({
1801
+ documents: z.array(BrainDocumentSummarySchema),
1802
+ nextCursor: z.string().nullable()
1803
+ });
1804
+ z.object({
1805
+ documentId: BrainDocumentIdSchema,
1806
+ cursor: z.string().min(1).optional(),
1807
+ limit: z.coerce.number().int().min(1).max(100).default(50)
1808
+ });
1809
+ z.object({
1810
+ writes: z.array(BrainDocumentWriteEventSchema),
1811
+ nextCursor: z.string().nullable()
1812
+ });
1813
+ const BrainUploadFileInputSchema = z.object({
1814
+ idempotencyId: z.string().uuid(),
1815
+ /** Doubles as the documentId; normalized as a relative path. */
1816
+ documentId: BrainDocumentIdSchema,
1817
+ size: z.number().int().nonnegative().max(BRAIN_MAX_FILE_BYTES),
1818
+ contentType: z.string().min(1).max(255),
1819
+ /** Local hash, verified by the worker and used for safe prepare-time dedupe. */
1820
+ sha256: sha256Hex$2,
1821
+ /** Where the content originated; manual UI uploads default to `manual`. */
1822
+ source: BrainSourceSchema,
1823
+ metadata: BrainDocumentMetadataSchema.optional()
1824
+ });
1825
+ z.object({ files: z.array(BrainUploadFileInputSchema).min(1).max(BRAIN_MAX_FOLDER_FILES) }).strict();
1826
+ const BrainUploadAcceptedSchema = z.object({
1827
+ idempotencyId: z.string().uuid(),
1828
+ documentId: BrainDocumentIdSchema,
1829
+ versionId: z.string().min(1),
1830
+ /**
1831
+ * Null when a verified content-addressed blob was reused and ingestion was
1832
+ * queued immediately. Otherwise, submit the file as multipart form data.
1833
+ */
1834
+ upload: z.object({
1835
+ method: z.literal("POST"),
1836
+ url: z.string().url(),
1837
+ fields: z.record(z.string(), z.string())
1838
+ }).nullable()
1839
+ });
1840
+ const BrainUploadSkippedSchema = z.object({
1841
+ documentId: BrainDocumentIdSchema,
1842
+ reason: BrainSkippedReasonSchema,
1843
+ message: z.string().min(1).optional()
1844
+ });
1845
+ z.object({
1846
+ accepted: z.array(BrainUploadAcceptedSchema),
1847
+ skipped: z.array(BrainUploadSkippedSchema)
1848
+ });
1849
+ z.object({ versionIds: z.array(z.string().min(1)).min(1).max(100) }).strict();
1850
+ const FinalizeBrainUploadResultSchema = z.object({
1851
+ versionId: z.string().min(1),
1852
+ documentId: BrainDocumentIdSchema,
1853
+ status: BrainDocumentVersionStatusSchema,
1854
+ failureCode: BrainDocumentFailureCodeSchema.nullable().optional(),
1855
+ failureMessage: z.string().nullable().optional()
1856
+ });
1857
+ z.object({ results: z.array(FinalizeBrainUploadResultSchema) });
1858
+ /** `hybrid` = ANN + BM25 with server fusion; `semantic` / `keyword` drop one leg. */
1859
+ const BrainSearchModeSchema = z.enum([
1860
+ "hybrid",
1861
+ "semantic",
1862
+ "keyword"
1863
+ ]);
1864
+ z.object({
1865
+ query: z.string().trim().min(1).max(4e3),
1866
+ mode: BrainSearchModeSchema.default("hybrid"),
1867
+ limit: z.number().int().min(1).max(20).default(5),
1868
+ minScore: z.number().min(0).max(1).optional(),
1869
+ rerank: z.boolean().default(true),
1870
+ /** Query-time narrowing; ANDs with the persisted filter when a qualified reference is searched. */
1871
+ filters: BrainFilterExpressionSchema.optional()
1872
+ }).strict();
1873
+ const BrainSearchHitSchema = z.object({
1874
+ /** Reference the hit was served through (qualified when searching a filter). */
1875
+ brain: BrainReferenceSchema,
1876
+ documentId: BrainDocumentIdSchema,
1877
+ chunkId: z.string().min(1),
1878
+ score: z.number(),
1879
+ title: z.string().min(1),
1880
+ text: z.string().min(1),
1881
+ /** Where the document's content originated. */
1882
+ source: BrainSourceSchema,
1883
+ /** Human-readable location within the document (page/slide/heading) when known. */
1884
+ locationLabel: z.string().nullable(),
1885
+ metadata: BrainDocumentMetadataSchema.nullable()
1886
+ });
1887
+ z.object({
1888
+ hits: z.array(BrainSearchHitSchema),
1889
+ reranked: z.boolean()
1890
+ });
1891
+ z.object({
1892
+ query: z.string().trim().min(1).max(4e3),
1893
+ hits: z.array(BrainSearchHitSchema).min(1).max(320),
1894
+ limit: z.number().int().min(1).max(20)
1895
+ }).strict();
1896
+ z.object({
1897
+ offset: z.coerce.number().int().nonnegative().default(0),
1898
+ maxChars: z.coerce.number().int().min(1).max(BRAIN_READ_MAX_CHARS).default(BRAIN_READ_MAX_CHARS)
1899
+ });
1900
+ z.object({
1901
+ brain: BrainReferenceSchema,
1902
+ documentId: BrainDocumentIdSchema,
1903
+ title: z.string().min(1),
1904
+ offset: z.number().int().nonnegative(),
1905
+ text: z.string(),
1906
+ truncated: z.boolean()
1907
+ });
1908
+ z.object({
1909
+ /** Reference the agent addresses (base slug or qualified `{brain}:{filter}`). */
1910
+ slug: BrainReferenceSchema,
1911
+ name: z.string().min(1),
1912
+ description: BrainDescriptionSchema,
1913
+ /** Base Brain that owns the documents and index. */
1914
+ brainSlug: BrainSlugSchema,
1915
+ /** Filter slug when attached through a qualified reference; null otherwise. */
1916
+ filterSlug: BrainSlugSchema.nullable(),
1917
+ /** Persisted narrowing applied over the base Brain; null for base references. */
1918
+ filter: BrainFilterExpressionSchema.nullable()
1919
+ });
1920
+ z.object({
1921
+ brainId: z.string().min(1),
1922
+ status: BrainStatusSchema,
1923
+ /** Namespace generation the rebuild is writing into. */
1924
+ targetGeneration: z.number().int().positive()
1925
+ });
1926
+ const BrainOperationIdSchema = z.string().regex(/^[a-f0-9]{64}$/);
1927
+ const BrainRuntimeJobCommonSchema = z.object({
1928
+ operationId: BrainOperationIdSchema,
1929
+ /** Originating project for workflow-scoped jobs; null for organization-scoped
1930
+ * operations (manual uploads, admin rebuilds/deletes). */
1931
+ projectId: z.string().min(1).nullable(),
1932
+ brainId: z.string().min(1),
1933
+ brainSlug: BrainSlugSchema
1934
+ }).strict();
1935
+ z.discriminatedUnion("operation", [
1936
+ BrainRuntimeJobCommonSchema.extend({
1937
+ operation: z.literal("ingest-version"),
1938
+ versionId: z.string().min(1)
1939
+ }),
1940
+ BrainRuntimeJobCommonSchema.extend({ operation: z.literal("rebuild-brain") }),
1941
+ BrainRuntimeJobCommonSchema.extend({
1942
+ operation: z.literal("reconcile-metadata"),
1943
+ documentId: BrainDocumentIdSchema
1944
+ }),
1945
+ BrainRuntimeJobCommonSchema.extend({
1946
+ operation: z.literal("cleanup-document"),
1947
+ documentRowId: z.string().min(1),
1948
+ deletionEpoch: z.number().int().positive(),
1949
+ versionIds: z.array(z.string().min(1))
1950
+ }),
1951
+ BrainRuntimeJobCommonSchema.extend({
1952
+ operation: z.literal("cleanup-version"),
1953
+ versionId: z.string().min(1)
1954
+ }),
1955
+ BrainRuntimeJobCommonSchema.extend({
1956
+ operation: z.literal("cleanup-generation"),
1957
+ generation: z.number().int().positive()
1958
+ }),
1959
+ BrainRuntimeJobCommonSchema.extend({ operation: z.literal("delete-brain") })
1960
+ ]);
1332
1961
  const TriggerTypeSchema = z.enum([
1333
1962
  "webhook",
1334
1963
  "poll",
@@ -1416,6 +2045,7 @@ const WorkflowCanvasNodeTypeSchema = z.enum([
1416
2045
  z.enum([
1417
2046
  "workflow-step",
1418
2047
  "agent",
2048
+ "brain",
1419
2049
  "llm",
1420
2050
  "wait",
1421
2051
  "hook",
@@ -1627,6 +2257,7 @@ const storedRouteManifestEntryV2Schema = z.discriminatedUnion("kind", [
1627
2257
  toolCount: z.number().int().nonnegative(),
1628
2258
  credentialCount: z.number().int().nonnegative(),
1629
2259
  sandboxMode: AgentSandboxModeSchema.optional(),
2260
+ brainSlugs: z.array(BrainReferenceSchema).default([]),
1630
2261
  appSlugs: z.array(z.string()).default([]),
1631
2262
  toolSlugs: z.array(z.string()).default([]),
1632
2263
  /** Credential requirements per tool slug (the agent's credential consumer key). */
@@ -1777,6 +2408,7 @@ const AgentManifestShardSchema = z.object({
1777
2408
  toolCount: z.number().int().nonnegative(),
1778
2409
  credentialCount: z.number().int().nonnegative(),
1779
2410
  sandboxMode: AgentSandboxModeSchema.optional(),
2411
+ brainSlugs: z.array(BrainReferenceSchema).default([]),
1780
2412
  appSlugs: z.array(z.string()).default([]),
1781
2413
  toolSlugs: z.array(z.string()).default([]),
1782
2414
  toolRequirements: z.record(z.string(), z.array(CredentialRequirementSummarySchema)).optional(),
@@ -3171,6 +3803,20 @@ const SubmitMarketingContactRequestSchema = z.object({
3171
3803
  companyWebsite: z.string().optional()
3172
3804
  });
3173
3805
  const SubmitMarketingContactResponseSchema = SubmitTeamRequestResponseSchema;
3806
+ /**
3807
+ * One embedding model from the AI Gateway catalog (`type === "embedding"`),
3808
+ * as served by `GET /api/embedding-models`. Any `id` here is a valid
3809
+ * `indexConfig.embeddingModel` for a Brain.
3810
+ */
3811
+ const EmbeddingModelSchema = z.object({
3812
+ id: BrainEmbeddingModelSchema,
3813
+ name: z.string().min(1),
3814
+ provider: z.string().min(1),
3815
+ contextWindow: z.number().int().positive().optional(),
3816
+ /** USD per 1M input tokens, when the catalog prices the model. */
3817
+ inputPerMillionUsd: z.number().nonnegative().optional()
3818
+ });
3819
+ z.object({ models: z.array(EmbeddingModelSchema) });
3174
3820
  const CredentialAccessUnavailableReasonSchema = z.enum(["request_access", "reconnect_required"]);
3175
3821
  z.object({
3176
3822
  error: z.literal("credential_access_unavailable"),
@@ -4772,7 +5418,7 @@ const ModuleBlobRefSchema = z.object({
4772
5418
  });
4773
5419
  const isoDateTime = z.string().datetime();
4774
5420
  /** Snapshot/content-addressed blob digests are always lowercase sha256. */
4775
- const sha256Hex$2 = z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
5421
+ const sha256Hex$3 = z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
4776
5422
  /** Max bytes for a single source file collected or served from a deploy tree. */
4777
5423
  const PROJECT_SOURCE_MAX_FILE_BYTES = 256 * 1024;
4778
5424
  /** Max total bytes across all source files in a deploy tree listing. */
@@ -4851,17 +5497,17 @@ const ListProjectFilesResponseSchema = z.object({
4851
5497
  z.object({
4852
5498
  path: z.string().min(1),
4853
5499
  contents: z.string(),
4854
- hash: sha256Hex$2
5500
+ hash: sha256Hex$3
4855
5501
  });
4856
5502
  /** A blob the CLI may need to upload, keyed by content hash. */
4857
5503
  const SourceBlobRefSchema = z.object({
4858
- hash: sha256Hex$2,
5504
+ hash: sha256Hex$3,
4859
5505
  size: z.number().int().nonnegative()
4860
5506
  });
4861
5507
  /** Request: ask the platform which blobs are missing and get presigned PUTs. */
4862
5508
  const PresignProjectSourceRequestSchema = z.object({ blobs: z.array(SourceBlobRefSchema) });
4863
5509
  const PresignedBlobUploadSchema = z.object({
4864
- hash: sha256Hex$2,
5510
+ hash: sha256Hex$3,
4865
5511
  url: z.string().url()
4866
5512
  });
4867
5513
  /** Response: presigned PUTs for the subset of blobs not already stored. */
@@ -4869,7 +5515,7 @@ const PresignProjectSourceResponseSchema = z.object({ uploads: z.array(Presigned
4869
5515
  /** A file reference in a manifest upload: where the path's content lives. */
4870
5516
  const ManifestFileRefSchema = z.object({
4871
5517
  path: z.string().min(1),
4872
- hash: sha256Hex$2
5518
+ hash: sha256Hex$3
4873
5519
  });
4874
5520
  /** Request body the CLI sends to finalize a deploy's source manifest. */
4875
5521
  const UploadProjectSourceManifestRequestSchema = z.object({ files: z.array(ManifestFileRefSchema) });
@@ -4881,7 +5527,7 @@ const UploadProjectSourceResponseSchema = z.object({
4881
5527
  const StoredManifestFileSchema = z.object({
4882
5528
  id: z.string(),
4883
5529
  path: z.string().min(1),
4884
- hash: sha256Hex$2
5530
+ hash: sha256Hex$3
4885
5531
  });
4886
5532
  /** The immutable per-deploy manifest persisted to object storage. */
4887
5533
  const StoredProjectSourceManifestSchema = z.object({
@@ -6045,6 +6691,23 @@ function runTar(args, options = {}) {
6045
6691
  });
6046
6692
  }
6047
6693
  //#endregion
6694
+ //#region ../../packages/storage/dist/collect-artifact-modules-CApdro3d.mjs
6695
+ /** Lowercase hex sha256 of raw bytes. */
6696
+ function sha256Hex(bytes) {
6697
+ return createHash("sha256").update(bytes).digest("hex");
6698
+ }
6699
+ /**
6700
+ * Assert a content-addressed module blob matches its declared size and SHA-256 hash.
6701
+ * Returns a Buffer copy suitable for disk write / JSON parse.
6702
+ */
6703
+ function assertModuleBlobMatchesHash(input) {
6704
+ if (input.bytes.byteLength !== input.expectedSize) throw new Error(`Module blob size mismatch for ${input.path}: expected ${input.expectedSize}, got ${input.bytes.byteLength}`);
6705
+ const actual = sha256Hex(input.bytes);
6706
+ const expected = input.expectedHash.toLowerCase();
6707
+ if (actual !== expected) throw new Error(`Module blob hash mismatch for ${input.path}: expected ${expected}, got ${actual}`);
6708
+ return Buffer.from(input.bytes);
6709
+ }
6710
+ //#endregion
6048
6711
  //#region ../../packages/storage/dist/index.mjs
6049
6712
  function readEnv$1(env, ...keys) {
6050
6713
  for (const key of keys) {
@@ -6132,6 +6795,19 @@ function projectSourceBlobKey(projectId, hash) {
6132
6795
  return `projects/${projectId}/sources/blobs/${hash}`;
6133
6796
  }
6134
6797
  const AVATAR_EXTENSION = /^[a-z0-9]+$/;
6798
+ /** Agent-scoped Browser Use profile metadata. */
6799
+ function browserProfileMetaStorageKey(options) {
6800
+ return `browser-media/${options.projectId}/${options.agentId}/profile.json`;
6801
+ }
6802
+ /** Session metadata JSON for live URL / recording pointers. */
6803
+ function browserSessionMetaStorageKey(options) {
6804
+ return `browser-media/${options.projectId}/${options.agentId}/${options.sessionId}/meta.json`;
6805
+ }
6806
+ /** True when `key` is browser media owned by this project/agent/session. */
6807
+ function isBrowserMediaStorageKey(key, projectId, agentId, sessionId) {
6808
+ const prefix = agentId && sessionId ? `browser-media/${projectId}/${agentId}/${sessionId}/` : agentId ? `browser-media/${projectId}/${agentId}/` : `browser-media/${projectId}/`;
6809
+ return key.startsWith(prefix) && key.length > prefix.length;
6810
+ }
6135
6811
  /** Object key for a chat attachment in org-private storage. */
6136
6812
  function chatAttachmentStorageKey(projectId, id, ext) {
6137
6813
  const normalizedExt = ext.replace(/^\./, "").toLowerCase();
@@ -6401,6 +7077,23 @@ function createStorage(config) {
6401
7077
  ContentType: input.contentType ?? "application/gzip"
6402
7078
  }), { expiresIn: input.expiresInSeconds ?? DEFAULT_PRESIGN_TTL_SECONDS });
6403
7079
  },
7080
+ async presignPost(input) {
7081
+ return createPresignedPost(client, {
7082
+ Bucket: config.bucket,
7083
+ Key: input.key,
7084
+ Conditions: [[
7085
+ "content-length-range",
7086
+ input.contentLength,
7087
+ input.contentLength
7088
+ ], [
7089
+ "eq",
7090
+ "$Content-Type",
7091
+ input.contentType
7092
+ ]],
7093
+ Fields: { "Content-Type": input.contentType },
7094
+ Expires: input.expiresInSeconds ?? DEFAULT_PRESIGN_TTL_SECONDS
7095
+ });
7096
+ },
6404
7097
  async deleteObject(key) {
6405
7098
  await client.send(new DeleteObjectCommand({
6406
7099
  Bucket: config.bucket,
@@ -6482,21 +7175,6 @@ function extractRouteManifestFromArtifact(archive) {
6482
7175
  });
6483
7176
  }
6484
7177
  }
6485
- /** Lowercase hex sha256 of raw bytes. */
6486
- function sha256Hex(bytes) {
6487
- return createHash("sha256").update(bytes).digest("hex");
6488
- }
6489
- /**
6490
- * Assert a content-addressed module blob matches its declared size and SHA-256 hash.
6491
- * Returns a Buffer copy suitable for disk write / JSON parse.
6492
- */
6493
- function assertModuleBlobMatchesHash(input) {
6494
- if (input.bytes.byteLength !== input.expectedSize) throw new Error(`Module blob size mismatch for ${input.path}: expected ${input.expectedSize}, got ${input.bytes.byteLength}`);
6495
- const actual = sha256Hex(input.bytes);
6496
- const expected = input.expectedHash.toLowerCase();
6497
- if (actual !== expected) throw new Error(`Module blob hash mismatch for ${input.path}: expected ${expected}, got ${actual}`);
6498
- return Buffer.from(input.bytes);
6499
- }
6500
7178
  /** Parse index JSON bytes from object storage. */
6501
7179
  function parseProjectArtifactIndex(bytes) {
6502
7180
  return ProjectArtifactIndexSchema.parse(JSON.parse(Buffer.from(bytes).toString("utf8")));
@@ -6559,6 +7237,47 @@ async function prefetchCanvasShards(access, workflowSlug) {
6559
7237
  ];
6560
7238
  await access.prefetchKeystrokeJson(paths);
6561
7239
  }
7240
+ async function putBrowserProfileMeta(storage, options) {
7241
+ const key = browserProfileMetaStorageKey(options);
7242
+ const meta = {
7243
+ cloudProfileId: options.cloudProfileId,
7244
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
7245
+ };
7246
+ await storage.putObject({
7247
+ key,
7248
+ body: Buffer.from(JSON.stringify(meta, null, 2), "utf8"),
7249
+ contentType: "application/json"
7250
+ });
7251
+ return key;
7252
+ }
7253
+ async function getBrowserProfileMeta(storage, options) {
7254
+ try {
7255
+ const bytes = await storage.getObject(browserProfileMetaStorageKey(options));
7256
+ return JSON.parse(new TextDecoder().decode(bytes));
7257
+ } catch {
7258
+ return null;
7259
+ }
7260
+ }
7261
+ /** Persist browser session metadata JSON on the org bucket. */
7262
+ async function putBrowserSessionMeta(storage, options) {
7263
+ const key = browserSessionMetaStorageKey(options);
7264
+ await storage.putObject({
7265
+ key,
7266
+ body: Buffer.from(JSON.stringify(options.meta, null, 2), "utf8"),
7267
+ contentType: "application/json"
7268
+ });
7269
+ return key;
7270
+ }
7271
+ async function getBrowserSessionMeta(storage, options) {
7272
+ const key = browserSessionMetaStorageKey(options);
7273
+ try {
7274
+ const bytes = await storage.getObject(key);
7275
+ const text = new TextDecoder().decode(bytes);
7276
+ return JSON.parse(text);
7277
+ } catch {
7278
+ return null;
7279
+ }
7280
+ }
6562
7281
  /** Shared bucket for cross-org public assets (avatars, org sidebar logos). */
6563
7282
  const KEYSTROKE_ASSETS_BUCKET = "keystroke-assets";
6564
7283
  /** Env var for the browser-facing origin of public asset objects (no trailing slash). */
@@ -6812,6 +7531,6 @@ async function publishDraftUpdateBestEffort(notifier, input) {
6812
7531
  }
6813
7532
  }
6814
7533
  //#endregion
6815
- export { CompleteManagedDeployArtifactResponseSchema as $, projectFileId as $i, PublicFormSubmitResponseSchema as $n, UserPreferencesSchema as $r, ListAgentWorkspaceFilesResponseSchema as $t, projectArtifactKey as A, resolvePublicPlatformApiOrigin as Aa, isProbablyBinaryProjectSource as Ai, PROJECT_SOURCE_MAX_FILE_BYTES as An, SubmitTeamRequestRequestSchema as Ar, DraftRevisionResponseSchema as At, AgentEnvImageSnapshotResponseSchema as B, mapProjectDeployment as Bi, PresignUserAvatarRequestSchema as Bn, UpdateManagedServiceCredentialRequestSchema as Br, GetTemplateResponseSchema as Bt, loadProjectSourceFiles as C, mintOrgWorkerToken as Ca, displayCredentialAppName as Ci, OpenApiDiscoverResponseSchema as Cn, StartMcpOAuthConnectionInputSchema as Cr, DbProxyQueryRequestSchema as Ct, prefetchCanvasShards as D, waitForHealth as Da, isHelloWorldTemplateSlug as Di, PROJECT_DRAFT_DIFF_MAX_BYTES as Dn, SubmitAgentFeedbackResponseSchema as Dr, DraftCommitResponseSchema as Dt, orgLogoStorageKey as E, verifyOrgWorkerToken as Ea, isDraftSnapshotPlaceholderCommitSha as Ei, PLATFORM_RESOURCE_UNSUPPORTED_TEXT as En, SubmitAgentFeedbackRequestSchema as Er, DownloadActiveProjectSourceResponseSchema as Et, userAvatarStorageKey as F, listenPortFromPublicUrl as Fi, PresignCustomAppLogoResponseSchema as Fn, TriggerInvokeInputsSchema as Fr, FinalizeCustomAppLogoRequestSchema as Ft, AgentSummarySchema as G, mergeUserPreferences as Gi, ProjectReachabilityResponseSchema as Gn, UpdateProjectMemberResponseSchema as Gr, HistoryRunDetailResponseSchema as Gt, AgentMemoryFileSummarySchema as H, mapProjectSettings as Hi, ProjectGitRemoteRequestSchema as Hn, UpdateOrganizationMemberResponseSchema as Hr, GraphqlDiscoverResponseSchema as Ht, AcceptOrganizationInvitationResponseSchema as I, mapOrganizationInvitation as Ii, PresignOrgLogoRequestSchema as In, TriggerInvokeRequestSchema as Ir, FinalizeCustomAppLogoResponseSchema as It, AppSlugAvailabilityResponseSchema as J, openApiSpecToAppTemplate as Ji, ProjectSlugAvailabilityQuerySchema as Jn, UploadProjectSourceManifestRequestSchema as Jr, InviteOrganizationMembersRequestSchema as Jt, AgentWorkspaceFileSummarySchema as K, normalizeSlackAppHandle as Ki, ProjectResponseSchema as Kn, UpdateProjectRequestSchema as Kr, HistoryRunListQuerySchema as Kt, ActionsCatalogShardSchema as L, mapOrganizationMember as Li, PresignOrgLogoResponseSchema as Ln, TriggerInvokeResponseSchema as Lr, GetAppCatalogEntryResponseSchema as Lt, projectSourceBlobKey as M, isSlackCustomAppOauthSlug as Mi, PrepareManagedDeployRequestSchema as Mn, TemplateFilesResponseSchema as Mr, DuplicateCredentialRequestSchema as Mt, publicKeystrokeAssetsObjectUrl as N, jsonSchemaToWorkflowInputSchema as Ni, PrepareManagedDeployResponseSchema as Nn, TemplateKindSchema as Nr, DuplicateCredentialsResponseSchema as Nt, projectArtifactBlobKey as O, DEFAULT_CLOUD_PLATFORM_ORIGIN as Oa, isIgnoredProjectSourcePath as Oi, PROJECT_SLUG_TAKEN_MESSAGE as On, SubmitMarketingContactRequestSchema as Or, DraftConflictResponseSchema as Ot, sha256Hex as P, jsonSchemaToZod as Pi, PresignCustomAppLogoRequestSchema as Pn, TriggerAttachmentUpdateRequestSchema as Pr, ErrorResponseSchema as Pt, CompleteManagedDeployArtifactRequestSchema as Q, parseStoredRouteManifest as Qi, PublicFormSubmitBodySchema as Qn, UserPreferencesPatchSchema as Qr, ListAgentMemoryFilesResponseSchema as Qt, ActiveOrganizationResponseSchema as R, mapProject as Ri, PresignProjectSourceRequestSchema as Rn, TriggerRunListQuerySchema as Rr, GetCredentialResponseSchema as Rt, keystrokeAssetsOrgLogoKeyFromPublicUrl as S, formatDockerEnv as Sa, deriveCredentialInstanceSlug as Si, OpenApiDiscoverRequestSchema as Sn, SlugAvailabilityResponseSchema as Sr, DRAFT_SNAPSHOT_PLACEHOLDER_COMMIT_SHA as St, openModularArtifactShards as T, resolveWorkerRuntimeConfig as Ta, inferGraphqlAuthFromProbe as Ti, OrganizationSidebarBrandingSchema as Tn, StoredProjectSourceManifestSchema as Tr, DownloadActiveProjectArtifactResponseSchema as Tt, AgentSummaryDetailResponseSchema as U, mapUserOrganization as Ui, ProjectGitRemoteResponseSchema as Un, UpdateOrganizationRequestSchema as Ur, HeartbeatManagedDeployResponseSchema as Ut, AgentManifestShardSchema as V, mapProjectMember as Vi, PresignUserAvatarResponseSchema as Vn, UpdateOrganizationMemberRequestSchema as Vr, GraphqlDiscoverRequestSchema as Vt, AgentSummaryListResponseSchema as W, mcpProbeToAppTemplate as Wi, ProjectGitStatusResponseSchema as Wn, UpdateProjectMemberRequestSchema as Wr, HistoryRunCancelResponseSchema as Wt, CancelManagedDeployResponseSchema as X, organizationSlugErrorCodeFromMessage as Xi, ProjectSourceResourcesSchema as Xn, UserAvatarPatchSchema as Xr, InviteProjectMembersRequestSchema as Xt, CancelManagedDeployRequestSchema as Y, organizationInvitationAcceptPath as Yi, ProjectSlugAvailabilityResponseSchema as Yn, UploadProjectSourceResponseSchema as Yr, InviteOrganizationMembersResponseSchema as Yt, ChannelPlatformSchema as Z, parseAppSlug as Zi, PublicFormMetadataSchema as Zn, UserAvatarSchema as Zr, InviteProjectMembersResponseSchema as Zt, isStorageBucketNotFoundError as _, isAllowedChatAttachmentMediaType as _a, WorkspaceWorkflowOverviewSchema as _i, ListTemplatesResponseSchema as _n, SlackAppInstallStartResponseSchema as _r, CreateSlackAppRequestSchema as _t, createAssetsStorageClient as a, slackCustomAppHandleFromSlug as aa, WorkflowManifestFlowShardSchema as ai, ListDraftFilesResponseSchema as an, RecentResourceSchema as ar, CreateCredentialsRequestSchema as at, keystrokeAssetsAppLogoKeyFromPublicUrl as b, requiredDisplayTextSchema as ba, buildCredentialInstanceLabel as bi, McpDiscoverRequestSchema as bn, SlackAppManifestResponseSchema as br, DEFAULT_WORKFLOW_CANVAS_MODEL as bt, formatStorageErrorDetail as c, validateFormFieldConfig as ca, WorkflowRunInputsSchema as ci, ListOrganizationInvitationsResponseSchema as cn, SLACK_CUSTOM_APP_BOT_SCOPES as cr, CreateCustomAppResponseSchema as ct, isKeystrokeAssetsAppLogoPublicUrl as d, ACTIVE_ORG_HEADER as da, WorkflowSummarySchema as di, ListOrganizationsResponseSchema as dn, SLACK_GATEWAY_OAUTH_APP_KEY as dr, CreateOrganizationRequestSchema as dt, resolvePublicFormFields as ea, WorkflowCanvasCredentialBindingsSchema as ei, ListApiKeysResponseSchema as en, PublishManagedDeployCandidateRequestSchema as er, CompleteProjectArtifactRequestSchema as et, isKeystrokeAssetsAvatarPublicUrl as f, FilePartSchema as fa, WorkspaceTriggerDetailSchema as fi, ListProjectDeploymentsResponseSchema as fn, SLACK_KEYSTROKE_APP_BOT_SCOPES as fr, CreateOrganizationResponseSchema as ft, isProjectArtifactTarballKey as g, chatAttachmentExtension as ga, WorkspaceTriggerRunListResponseSchema as gi, ListProjectsResponseSchema as gn, SkillSummarySchema as gr, CreateProjectResponseSchema as gt, isProjectArtifactIndexKey as h, PublicModelsResponseSchema as ha, WorkspaceTriggerOverviewSchema as hi, ListProjectMetricsResponseSchema as hn, SkillSummaryListResponseSchema as hr, CreateProjectRequestSchema as ht, chatAttachmentStorageKey as i, slackAppBindingChannelId as ia, WorkflowFormUpsertBodySchema as ii, ListCredentialsPageResponseSchema as in, RecentResourceListResponseSchema as ir, CreateApiKeyResponseSchema as it, projectModuleBlobKey as j, resolvePublicPlatformOrigin as ja, isRecord as ji, PROJECT_SOURCE_MAX_TOTAL_BYTES as jn, SubmitTeamRequestResponseSchema as jr, DraftUpdateEventSchema as jt, projectArtifactIndexKey as k, resolveExternalPlatformOrigin as ka, isLlmProviderSlug as ki, PROJECT_SOURCE_MAX_FILES as kn, SubmitMarketingContactResponseSchema as kr, DraftFileContentQuerySchema as kt, isAppLogoStorageKey as l, validateWorkflowRunInputValues as la, WorkflowSummaryDetailResponseSchema as li, ListOrganizationMembersPageQuerySchema as ln, SLACK_CUSTOM_APP_CREDENTIAL_SLUG as lr, CreateDraftCommitRequestSchema as lt, isOrgLogoStorageKey as m, PresignChatAttachmentResponseSchema as ma, WorkspaceTriggerListResponseSchema as mi, ListProjectMembersResponseSchema as mn, SkillSummaryDetailResponseSchema as mr, CreateProjectArtifactResponseSchema as mt, publishDraftUpdateBestEffort as n, schemaHasFileFields as na, WorkflowCanvasSchema as ni, ListChannelPlatformsResponseSchema as nn, PublishedFormListResponseSchema as nr, ConnectManagedServiceCredentialRequestSchema as nt, ensureKeystrokeAssetsBucket as o, slackCustomAppOauthSlug as oa, WorkflowManifestMetaShardSchema as oi, ListManagedServiceCredentialsResponseSchema as on, RenewManagedDeployUploadRequestSchema as or, CreateCredentialsResponseSchema as ot, isKeystrokeAssetsOrgLogoPublicUrl as p, PresignChatAttachmentRequestSchema as pa, WorkspaceTriggerFileSchema as pi, ListProjectFilesResponseSchema as pn, SLACK_KEYSTROKE_APP_SLUG as pr, CreateProjectArtifactRequestSchema as pt, AppSlugAvailabilityQuerySchema as q, normalizeUserPreferences as qi, ProjectSettingsResponseSchema as qn, UpdateProjectSettingsRequestSchema as qr, HistoryRunListResponseSchema as qt, appLogoStorageKey as r, schemaHasUnsupportedFormFields as ra, WorkflowFormResponseSchema as ri, ListCredentialsPageQuerySchema as rn, PublishedFormSchema as rr, CreateApiKeyRequestSchema as rt, extractRouteManifestFromArtifact as s, validateCredentialValueAgainstFields as sa, WorkflowRunInputsPutBodySchema as si, ListMcpAppToolsResponseSchema as sn, RenewManagedDeployUploadResponseSchema as sr, CreateCustomAppRequestSchema as st, createInProcessProjectDraftNotifier as t, resolveUniqueCredentialInstanceLabel as ta, WorkflowCanvasRunSchema as ti, ListAppsResponseSchema as tn, PublishManagedDeployCandidateResponseSchema as tr, CompleteProjectArtifactResponseSchema as tt, isChatAttachmentStorageKey as u, validationErrorResponse as ua, WorkflowSummaryListResponseSchema as ui, ListOrganizationMembersPageResponseSchema as un, SLACK_CUSTOM_APP_SLUG_PREFIX as ur, CreateDraftDiffCommitRequestSchema as ut, isStorageNotFoundError as v, MICRO_CREDITS_PER_CREDIT as va, agentMemoryFileId as vi, ManagedServiceCredentialSchema as vn, SlackAppListResponseSchema as vr, CreateSlackAppResponseSchema as vt, minioStoragePlugin as w, resolveRuntimeLaunch as wa, graphqlIntrospectionToAppTemplate as wi, OrganizationSidebarBrandingPatchSchema as wn, StartMcpOAuthConnectionResultSchema as wr, DeclineOrganizationInvitationResponseSchema as wt, keystrokeAssetsAvatarKeyFromPublicUrl as x, PROJECT_SERVER_HEALTH as xa, buildSlackAppManifest as xi, McpDiscoverResponseSchema as xn, SlugAvailabilityQuerySchema as xr, DEFAULT_WORKFLOW_OVERVIEW_MODEL as xt, isUserAvatarStorageKey as y, credentialInputSchema as ya, agentWorkspaceFileId as yi, ManagedServiceKindSchema as yn, SlackAppManifestRequestSchema as yr, DEFAULT_TRIGGER_OVERVIEW_MODEL as yt, ActiveProjectSourceRevisionSchema as z, mapProjectArtifact as zi, PresignProjectSourceResponseSchema as zn, UpdateCredentialRequestSchema as zr, GetCustomAppResponseSchema as zt };
7534
+ export { AppSlugAvailabilityResponseSchema as $, mcpProbeToAppTemplate as $i, ProjectGitStatusResponseSchema as $n, UpdateProjectMemberRequestSchema as $r, HistoryRunDetailResponseSchema as $t, prefetchCanvasShards as A, PROJECT_SERVER_HEALTH as Aa, buildSlackAppManifest as Ai, McpDiscoverResponseSchema as An, SlugAvailabilityQuerySchema as Ar, DRAFT_SNAPSHOT_PLACEHOLDER_COMMIT_SHA as At, sha256Hex as B, resolvePublicPlatformOrigin as Ba, isRecord as Bi, PROJECT_SOURCE_MAX_TOTAL_BYTES as Bn, SubmitTeamRequestResponseSchema as Br, DuplicateCredentialRequestSchema as Bt, keystrokeAssetsAppLogoKeyFromPublicUrl as C, PresignChatAttachmentResponseSchema as Ca, WorkspaceTriggerListResponseSchema as Ci, ListProjectMembersResponseSchema as Cn, SkillSummaryDetailResponseSchema as Cr, CreateProjectRequestSchema as Ct, minioStoragePlugin as D, MICRO_CREDITS_PER_CREDIT as Da, agentMemoryFileId as Di, ManagedServiceCredentialSchema as Dn, SlackAppListResponseSchema as Dr, DEFAULT_TRIGGER_OVERVIEW_MODEL as Dt, loadProjectSourceFiles as E, isAllowedChatAttachmentMediaType as Ea, WorkspaceWorkflowOverviewSchema as Ei, ListTemplatesResponseSchema as En, SlackAppInstallStartResponseSchema as Er, CreateSlackAppResponseSchema as Et, projectSourceBlobKey as F, verifyOrgWorkerToken as Fa, isDraftSnapshotPlaceholderCommitSha as Fi, PLATFORM_RESOURCE_UNSUPPORTED_TEXT as Fn, SubmitAgentFeedbackRequestSchema as Fr, DraftCommitResponseSchema as Ft, AgentEnvImageSnapshotResponseSchema as G, mapOrganizationInvitation as Gi, PresignOrgLogoRequestSchema as Gn, TriggerInvokeRequestSchema as Gr, GetAppCatalogEntryResponseSchema as Gt, ActionsCatalogShardSchema as H, jsonSchemaToWorkflowInputSchema as Hi, PrepareManagedDeployResponseSchema as Hn, TemplateKindSchema as Hr, ErrorResponseSchema as Ht, publicKeystrokeAssetsObjectUrl as I, waitForHealth as Ia, isHelloWorldTemplateSlug as Ii, PROJECT_DRAFT_DIFF_MAX_BYTES as In, SubmitAgentFeedbackResponseSchema as Ir, DraftConflictResponseSchema as It, AgentSummaryDetailResponseSchema as J, mapProjectArtifact as Ji, PresignProjectSourceResponseSchema as Jn, UpdateCredentialRequestSchema as Jr, GetTemplateResponseSchema as Jt, AgentManifestShardSchema as K, mapOrganizationMember as Ki, PresignOrgLogoResponseSchema as Kn, TriggerInvokeResponseSchema as Kr, GetCredentialResponseSchema as Kt, putBrowserProfileMeta as L, DEFAULT_CLOUD_PLATFORM_ORIGIN as La, isIgnoredProjectSourcePath as Li, PROJECT_SLUG_TAKEN_MESSAGE as Ln, SubmitMarketingContactRequestSchema as Lr, DraftFileContentQuerySchema as Lt, projectArtifactIndexKey as M, mintOrgWorkerToken as Ma, displayCredentialAppName as Mi, OpenApiDiscoverResponseSchema as Mn, StartMcpOAuthConnectionInputSchema as Mr, DeclineOrganizationInvitationResponseSchema as Mt, projectArtifactKey as N, resolveRuntimeLaunch as Na, graphqlIntrospectionToAppTemplate as Ni, OrganizationSidebarBrandingPatchSchema as Nn, StartMcpOAuthConnectionResultSchema as Nr, DownloadActiveProjectArtifactResponseSchema as Nt, openModularArtifactShards as O, credentialInputSchema as Oa, agentWorkspaceFileId as Oi, ManagedServiceKindSchema as On, SlackAppManifestRequestSchema as Or, DEFAULT_WORKFLOW_CANVAS_MODEL as Ot, projectModuleBlobKey as P, resolveWorkerRuntimeConfig as Pa, inferGraphqlAuthFromProbe as Pi, OrganizationSidebarBrandingSchema as Pn, StoredProjectSourceManifestSchema as Pr, DownloadActiveProjectSourceResponseSchema as Pt, AppSlugAvailabilityQuerySchema as Q, mapUserOrganization as Qi, ProjectGitRemoteResponseSchema as Qn, UpdateOrganizationRequestSchema as Qr, HistoryRunCancelResponseSchema as Qt, putBrowserSessionMeta as R, resolveExternalPlatformOrigin as Ra, isLlmProviderSlug as Ri, PROJECT_SOURCE_MAX_FILES as Rn, SubmitMarketingContactResponseSchema as Rr, DraftRevisionResponseSchema as Rt, isUserAvatarStorageKey as S, PresignChatAttachmentRequestSchema as Sa, WorkspaceTriggerFileSchema as Si, ListProjectFilesResponseSchema as Sn, SLACK_KEYSTROKE_APP_SLUG as Sr, CreateProjectArtifactResponseSchema as St, keystrokeAssetsOrgLogoKeyFromPublicUrl as T, chatAttachmentExtension as Ta, WorkspaceTriggerRunListResponseSchema as Ti, ListProjectsResponseSchema as Tn, SkillSummarySchema as Tr, CreateSlackAppRequestSchema as Tt, ActiveOrganizationResponseSchema as U, jsonSchemaToZod as Ui, PresignCustomAppLogoRequestSchema as Un, TriggerAttachmentUpdateRequestSchema as Ur, FinalizeCustomAppLogoRequestSchema as Ut, AcceptOrganizationInvitationResponseSchema as V, isSlackCustomAppOauthSlug as Vi, PrepareManagedDeployRequestSchema as Vn, TemplateFilesResponseSchema as Vr, DuplicateCredentialsResponseSchema as Vt, ActiveProjectSourceRevisionSchema as W, listenPortFromPublicUrl as Wi, PresignCustomAppLogoResponseSchema as Wn, TriggerInvokeInputsSchema as Wr, FinalizeCustomAppLogoResponseSchema as Wt, AgentSummarySchema as X, mapProjectMember as Xi, PresignUserAvatarResponseSchema as Xn, UpdateOrganizationMemberRequestSchema as Xr, GraphqlDiscoverResponseSchema as Xt, AgentSummaryListResponseSchema as Y, mapProjectDeployment as Yi, PresignUserAvatarRequestSchema as Yn, UpdateManagedServiceCredentialRequestSchema as Yr, GraphqlDiscoverRequestSchema as Yt, AgentWorkspaceFileSummarySchema as Z, mapProjectSettings as Zi, ProjectGitRemoteRequestSchema as Zn, UpdateOrganizationMemberResponseSchema as Zr, HeartbeatManagedDeployResponseSchema as Zt, isOrgLogoStorageKey as _, validateFormFieldConfig as _a, WorkflowRunInputsSchema as _i, ListOrganizationInvitationsResponseSchema as _n, SLACK_CUSTOM_APP_BOT_SCOPES as _r, CreateDraftCommitRequestSchema as _t, createAssetsStorageClient as a, organizationSlugErrorCodeFromMessage as aa, UserAvatarPatchSchema as ai, InviteProjectMembersResponseSchema as an, ProjectSourceResourcesSchema as ar, ChannelPlatformSchema as at, isStorageBucketNotFoundError as b, ACTIVE_ORG_HEADER as ba, WorkflowSummarySchema as bi, ListOrganizationsResponseSchema as bn, SLACK_GATEWAY_OAUTH_APP_KEY as br, CreateOrganizationResponseSchema as bt, formatStorageErrorDetail as c, projectFileId as ca, UserPreferencesSchema as ci, ListApiKeysResponseSchema as cn, PublicFormSubmitResponseSchema as cr, CompleteProjectArtifactRequestSchema as ct, isAppLogoStorageKey as d, schemaHasFileFields as da, WorkflowCanvasSchema as di, ListChannelPlatformsResponseSchema as dn, PublishedFormListResponseSchema as dr, CreateApiKeyRequestSchema as dt, mergeUserPreferences as ea, UpdateProjectMemberResponseSchema as ei, HistoryRunListQuerySchema as en, ProjectReachabilityResponseSchema as er, BrainDocumentIdSchema as et, isBrowserMediaStorageKey as f, schemaHasUnsupportedFormFields as fa, WorkflowFormResponseSchema as fi, ListCredentialsPageQuerySchema as fn, PublishedFormSchema as fr, CreateApiKeyResponseSchema as ft, isKeystrokeAssetsOrgLogoPublicUrl as g, validateCredentialValueAgainstFields as ga, WorkflowRunInputsPutBodySchema as gi, ListMcpAppToolsResponseSchema as gn, RenewManagedDeployUploadResponseSchema as gr, CreateCustomAppResponseSchema as gt, isKeystrokeAssetsAvatarPublicUrl as h, slackCustomAppOauthSlug as ha, WorkflowManifestMetaShardSchema as hi, ListManagedServiceCredentialsResponseSchema as hn, RenewManagedDeployUploadRequestSchema as hr, CreateCustomAppRequestSchema as ht, chatAttachmentStorageKey as i, organizationInvitationAcceptPath as ia, UploadProjectSourceResponseSchema as ii, InviteProjectMembersRequestSchema as in, ProjectSlugAvailabilityResponseSchema as ir, CancelManagedDeployResponseSchema as it, projectArtifactBlobKey as j, formatDockerEnv as ja, deriveCredentialInstanceSlug as ji, OpenApiDiscoverRequestSchema as jn, SlugAvailabilityResponseSchema as jr, DbProxyQueryRequestSchema as jt, orgLogoStorageKey as k, requiredDisplayTextSchema as ka, buildCredentialInstanceLabel as ki, McpDiscoverRequestSchema as kn, SlackAppManifestResponseSchema as kr, DEFAULT_WORKFLOW_OVERVIEW_MODEL as kt, getBrowserProfileMeta as l, resolvePublicFormFields as la, WorkflowCanvasCredentialBindingsSchema as li, ListAppsResponseSchema as ln, PublishManagedDeployCandidateRequestSchema as lr, CompleteProjectArtifactResponseSchema as lt, isKeystrokeAssetsAppLogoPublicUrl as m, slackCustomAppHandleFromSlug as ma, WorkflowManifestFlowShardSchema as mi, ListDraftFilesResponseSchema as mn, RecentResourceSchema as mr, CreateCredentialsResponseSchema as mt, publishDraftUpdateBestEffort as n, normalizeUserPreferences as na, UpdateProjectSettingsRequestSchema as ni, InviteOrganizationMembersRequestSchema as nn, ProjectSettingsResponseSchema as nr, BrowserResumeStateSchema as nt, ensureKeystrokeAssetsBucket as o, parseAppSlug as oa, UserAvatarSchema as oi, ListAgentMemoryFilesResponseSchema as on, PublicFormMetadataSchema as or, CompleteManagedDeployArtifactRequestSchema as ot, isChatAttachmentStorageKey as p, slackAppBindingChannelId as pa, WorkflowFormUpsertBodySchema as pi, ListCredentialsPageResponseSchema as pn, RecentResourceListResponseSchema as pr, CreateCredentialsRequestSchema as pt, AgentMemoryFileSummarySchema as q, mapProject as qi, PresignProjectSourceRequestSchema as qn, TriggerRunListQuerySchema as qr, GetCustomAppResponseSchema as qt, appLogoStorageKey as r, openApiSpecToAppTemplate as ra, UploadProjectSourceManifestRequestSchema as ri, InviteOrganizationMembersResponseSchema as rn, ProjectSlugAvailabilityQuerySchema as rr, CancelManagedDeployRequestSchema as rt, extractRouteManifestFromArtifact as s, parseStoredRouteManifest as sa, UserPreferencesPatchSchema as si, ListAgentWorkspaceFilesResponseSchema as sn, PublicFormSubmitBodySchema as sr, CompleteManagedDeployArtifactResponseSchema as st, createInProcessProjectDraftNotifier as t, normalizeSlackAppHandle as ta, UpdateProjectRequestSchema as ti, HistoryRunListResponseSchema as tn, ProjectResponseSchema as tr, BrainReferenceSchema as tt, getBrowserSessionMeta as u, resolveUniqueCredentialInstanceLabel as ua, WorkflowCanvasRunSchema as ui, ListBrainDocumentsQuerySchema as un, PublishManagedDeployCandidateResponseSchema as ur, ConnectManagedServiceCredentialRequestSchema as ut, isProjectArtifactIndexKey as v, validateWorkflowRunInputValues as va, WorkflowSummaryDetailResponseSchema as vi, ListOrganizationMembersPageQuerySchema as vn, SLACK_CUSTOM_APP_CREDENTIAL_SLUG as vr, CreateDraftDiffCommitRequestSchema as vt, keystrokeAssetsAvatarKeyFromPublicUrl as w, PublicModelsResponseSchema as wa, WorkspaceTriggerOverviewSchema as wi, ListProjectMetricsResponseSchema as wn, SkillSummaryListResponseSchema as wr, CreateProjectResponseSchema as wt, isStorageNotFoundError as x, FilePartSchema as xa, WorkspaceTriggerDetailSchema as xi, ListProjectDeploymentsResponseSchema as xn, SLACK_KEYSTROKE_APP_BOT_SCOPES as xr, CreateProjectArtifactRequestSchema as xt, isProjectArtifactTarballKey as y, validationErrorResponse as ya, WorkflowSummaryListResponseSchema as yi, ListOrganizationMembersPageResponseSchema as yn, SLACK_CUSTOM_APP_SLUG_PREFIX as yr, CreateOrganizationRequestSchema as yt, userAvatarStorageKey as z, resolvePublicPlatformApiOrigin as za, isProbablyBinaryProjectSource as zi, PROJECT_SOURCE_MAX_FILE_BYTES as zn, SubmitTeamRequestRequestSchema as zr, DraftUpdateEventSchema as zt };
6816
7535
 
6817
- //# sourceMappingURL=project-draft-notifier-B7K0aaAp.mjs.map
7536
+ //# sourceMappingURL=project-draft-notifier-DbGvx0CD.mjs.map