@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 @@ let node_path = require("node:path");
5
5
  let node_os = require("node:os");
6
6
  let node_child_process = require("node:child_process");
7
7
  let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
8
+ let _aws_sdk_s3_presigned_post = require("@aws-sdk/s3-presigned-post");
8
9
  let _aws_sdk_s3_request_presigner = require("@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 = zod.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 @@ zod.z.object({
500
501
  const BillingUsageEventSourceSchema = zod.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 = zod.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 = zod.z.enum(["platform", "byok"]);
519
525
  const BillingUsageRunKindSchema = zod.z.enum([
@@ -544,7 +550,7 @@ zod.z.object({
544
550
  chargeMicroCredits: zod.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 = zod.z.object({
1187
+ url: zod.z.string(),
1188
+ title: zod.z.string().optional(),
1189
+ active: zod.z.boolean()
1190
+ });
1191
+ const BrowserResumeStateSchema = zod.z.object({
1192
+ tabs: zod.z.array(BrowserTabSchema),
1193
+ lastScreenshotStorageKey: zod.z.string().optional(),
1194
+ capturedAt: zod.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 = zod.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 = zod.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 = zod.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 = zod.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
+ zod.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
+ zod.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 = zod.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 = zod.z.enum(["owner", "admin"]);
1450
+ /** `write` implies read. Grants authorize deployed project runtimes, not humans. */
1451
+ const BrainGrantAccessSchema = zod.z.enum(["read", "write"]);
1452
+ const BrainDocumentVersionStatusSchema = zod.z.enum([
1453
+ "pending_upload",
1454
+ "pending_ingest",
1455
+ "queued",
1456
+ "processing",
1457
+ "ready",
1458
+ "failed"
1459
+ ]);
1460
+ const BrainDocumentFailureCodeSchema = zod.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 = zod.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 = zod.z.enum([
1485
+ "content",
1486
+ "blocks",
1487
+ "file"
1488
+ ]);
1489
+ const BrainDocumentWriteOutcomeSchema = zod.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 = zod.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 = zod.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 = zod.z.object({
1530
+ maxCharacters: zod.z.number().int().min(1).max(BRAIN_CHUNK_MAX_CHARACTERS).default(BRAIN_CHUNK_DEFAULT_MAX_CHARACTERS),
1531
+ overlapCharacters: zod.z.number().int().nonnegative().default(0),
1532
+ separator: zod.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 = zod.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 = zod.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 = zod.z.union([
1557
+ zod.z.string().max(BRAIN_MAX_METADATA_STRING_CHARS),
1558
+ zod.z.number().finite(),
1559
+ zod.z.boolean()
1560
+ ]);
1561
+ const BrainMetadataValueSchema = zod.z.union([BrainMetadataScalarSchema, zod.z.array(zod.z.string().max(BRAIN_MAX_METADATA_STRING_CHARS)).max(64)]);
1562
+ const BrainDocumentMetadataSchema = zod.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 = zod.z.record(BrainMetadataKeySchema, zod.z.union([BrainMetadataScalarSchema, zod.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 = zod.z.object({
1576
+ source: zod.z.union([BrainSourceSchema, zod.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 = zod.z.object({
1580
+ id: zod.z.string().min(1),
1581
+ slug: BrainSlugSchema,
1582
+ name: zod.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: zod.z.number().int().nonnegative(),
1588
+ /** Requesting user's Brain membership role (management surfaces are membership-only). */
1589
+ callerRole: BrainMemberRoleSchema,
1590
+ createdAt: zod.z.string().datetime(),
1591
+ updatedAt: zod.z.string().datetime()
1592
+ });
1593
+ BrainSummarySchema.extend({
1594
+ createdByUserId: zod.z.string().min(1).nullable(),
1595
+ documentCount: zod.z.number().int().nonnegative(),
1596
+ readyDocumentCount: zod.z.number().int().nonnegative()
1597
+ });
1598
+ const BrainNameSchema = zod.z.string().trim().min(1).max(120);
1599
+ zod.z.object({
1600
+ name: BrainNameSchema,
1601
+ slug: BrainSlugSchema.optional(),
1602
+ description: BrainDescriptionSchema,
1603
+ indexConfig: BrainIndexConfigSchema.prefault({})
1604
+ }).strict();
1605
+ zod.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
+ zod.z.object({
1611
+ brain: BrainSummarySchema,
1612
+ /** Set when an indexConfig change kicked off a rebuild. */
1613
+ rebuildStarted: zod.z.boolean()
1614
+ });
1615
+ zod.z.object({ brains: zod.z.array(BrainSummarySchema) });
1616
+ const BrainMemberSchema = zod.z.object({
1617
+ userId: zod.z.string().min(1),
1618
+ role: BrainMemberRoleSchema,
1619
+ createdByUserId: zod.z.string().min(1).nullable(),
1620
+ createdAt: zod.z.string().datetime(),
1621
+ updatedAt: zod.z.string().datetime()
1622
+ });
1623
+ zod.z.object({
1624
+ userId: zod.z.string().min(1),
1625
+ role: BrainMemberRoleSchema.default("admin")
1626
+ }).strict();
1627
+ zod.z.object({ role: BrainMemberRoleSchema }).strict();
1628
+ zod.z.object({ members: zod.z.array(BrainMemberSchema) });
1629
+ const BrainGrantSchema = zod.z.object({
1630
+ id: zod.z.string().min(1),
1631
+ brainId: zod.z.string().min(1),
1632
+ projectId: zod.z.string().min(1),
1633
+ access: BrainGrantAccessSchema,
1634
+ createdByUserId: zod.z.string().min(1).nullable(),
1635
+ createdAt: zod.z.string().datetime()
1636
+ });
1637
+ zod.z.object({
1638
+ projectId: zod.z.string().min(1),
1639
+ access: BrainGrantAccessSchema.default("read")
1640
+ }).strict();
1641
+ zod.z.object({ grants: zod.z.array(BrainGrantSchema) });
1642
+ const BrainFilterSummarySchema = zod.z.object({
1643
+ id: zod.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: zod.z.string().min(1),
1649
+ description: BrainDescriptionSchema,
1650
+ filter: BrainFilterExpressionSchema,
1651
+ createdByUserId: zod.z.string().min(1).nullable(),
1652
+ createdAt: zod.z.string().datetime(),
1653
+ updatedAt: zod.z.string().datetime()
1654
+ });
1655
+ zod.z.object({
1656
+ name: BrainNameSchema,
1657
+ slug: BrainSlugSchema.optional(),
1658
+ description: BrainDescriptionSchema,
1659
+ filter: BrainFilterExpressionSchema
1660
+ }).strict();
1661
+ zod.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
+ zod.z.object({ filters: zod.z.array(BrainFilterSummarySchema) });
1667
+ const BrainDocumentIdSchema = zod.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 = zod.z.string().trim().min(1).max(500);
1669
+ const BrainEmbeddingContextSchema = zod.z.string().trim().min(1).max(2e3);
1670
+ const BrainDocumentRevisionSchema = zod.z.string().trim().min(1).max(256);
1671
+ zod.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
+ zod.z.string().trim().min(1).max(256);
1673
+ /** Authored semantic block: one caller-supplied block becomes one exact chunk. */
1674
+ const BrainDocumentBlockSchema = zod.z.object({
1675
+ text: zod.z.string().min(1).max(BRAIN_MAX_BLOCK_CHARS),
1676
+ heading: zod.z.string().trim().min(1).max(500).optional(),
1677
+ meta: zod.z.record(zod.z.string().max(64), zod.z.string().max(BRAIN_MAX_METADATA_STRING_CHARS)).optional()
1678
+ }).strict();
1679
+ const sha256Hex$2 = zod.z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
1680
+ zod.z.object({
1681
+ documentId: BrainDocumentIdSchema,
1682
+ title: BrainDocumentTitleSchema.optional(),
1683
+ /** Where the content originated (`linear`, `notion`, `manual`, …). Required. */
1684
+ source: BrainSourceSchema,
1685
+ content: zod.z.string().min(1).max(BRAIN_MAX_INLINE_CONTENT_CHARS).optional(),
1686
+ blocks: zod.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
+ zod.z.object({
1697
+ documentId: BrainDocumentIdSchema,
1698
+ /** `queued` created a new version; `unchanged` skipped (revision or content hash matched). */
1699
+ outcome: zod.z.enum(["queued", "unchanged"]),
1700
+ versionId: zod.z.string().min(1).nullable(),
1701
+ metadataUpdated: zod.z.boolean()
1702
+ });
1703
+ zod.z.object({
1704
+ /** Full replacement of the document's metadata attributes; never re-embeds. */
1705
+ metadata: BrainDocumentMetadataSchema }).strict();
1706
+ zod.z.object({ documentIds: zod.z.array(BrainDocumentIdSchema).min(1).max(100) }).strict();
1707
+ zod.z.object({ deletedDocumentIds: zod.z.array(BrainDocumentIdSchema) });
1708
+ const BrainProvisionerKindSchema = zod.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 = zod.z.discriminatedUnion("kind", [zod.z.object({
1715
+ kind: zod.z.literal("workflow"),
1716
+ projectId: zod.z.string().min(1),
1717
+ workflowRunId: zod.z.string().min(1),
1718
+ workflowSlug: zod.z.string().min(1),
1719
+ correlationId: zod.z.string().min(1)
1720
+ }).strict(), zod.z.object({
1721
+ kind: zod.z.literal("manual"),
1722
+ userId: zod.z.string().min(1)
1723
+ }).strict()]);
1724
+ const BrainDocumentWriteEventSchema = zod.z.object({
1725
+ id: zod.z.string().min(1),
1726
+ documentId: BrainDocumentIdSchema,
1727
+ provisioner: BrainDocumentProvisionerSchema,
1728
+ inputKind: BrainDocumentWriteInputKindSchema,
1729
+ outcome: BrainDocumentWriteOutcomeSchema,
1730
+ failureCode: zod.z.string().trim().min(1).max(128).nullable().optional(),
1731
+ failureMessage: zod.z.string().trim().min(1).max(2e3).nullable().optional(),
1732
+ submittedAt: zod.z.string().datetime(),
1733
+ contentReceivedAt: zod.z.string().datetime().nullable().optional(),
1734
+ completedAt: zod.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 = zod.z.object({
1756
+ documentId: BrainDocumentIdSchema,
1757
+ title: zod.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: zod.z.string().nullable(),
1763
+ /** Caller-supplied revision fingerprint from the last put. */
1764
+ revision: zod.z.string().nullable(),
1765
+ failureCode: BrainDocumentFailureCodeSchema.nullable().optional(),
1766
+ failureMessage: zod.z.string().nullable().optional(),
1767
+ byteSize: zod.z.number().int().nonnegative().nullable().optional(),
1768
+ chunkCount: zod.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: zod.z.string().datetime(),
1775
+ updatedAt: zod.z.string().datetime()
1776
+ });
1777
+ BrainDocumentSummarySchema.extend({
1778
+ metadata: BrainDocumentMetadataSchema.nullable(),
1779
+ contentType: zod.z.string().nullable(),
1780
+ format: zod.z.string().nullable()
1781
+ });
1782
+ /** Accepts one repeated query param or an array; normalizes to an array. */
1783
+ function queryList(schema) {
1784
+ return zod.z.union([schema, zod.z.array(schema).min(1)]).transform((value) => Array.isArray(value) ? value : [value]).optional();
1785
+ }
1786
+ const ListBrainDocumentsQuerySchema = zod.z.object({
1787
+ /** Filters documentIds by prefix (e.g. `slack:C123:`). */
1788
+ prefix: zod.z.string().min(1).max(512).optional(),
1789
+ /** Case-insensitive substring over title and documentId. */
1790
+ search: zod.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: zod.z.string().min(1).optional(),
1798
+ limit: zod.z.coerce.number().int().min(1).max(500).default(100)
1799
+ });
1800
+ zod.z.object({
1801
+ documents: zod.z.array(BrainDocumentSummarySchema),
1802
+ nextCursor: zod.z.string().nullable()
1803
+ });
1804
+ zod.z.object({
1805
+ documentId: BrainDocumentIdSchema,
1806
+ cursor: zod.z.string().min(1).optional(),
1807
+ limit: zod.z.coerce.number().int().min(1).max(100).default(50)
1808
+ });
1809
+ zod.z.object({
1810
+ writes: zod.z.array(BrainDocumentWriteEventSchema),
1811
+ nextCursor: zod.z.string().nullable()
1812
+ });
1813
+ const BrainUploadFileInputSchema = zod.z.object({
1814
+ idempotencyId: zod.z.string().uuid(),
1815
+ /** Doubles as the documentId; normalized as a relative path. */
1816
+ documentId: BrainDocumentIdSchema,
1817
+ size: zod.z.number().int().nonnegative().max(BRAIN_MAX_FILE_BYTES),
1818
+ contentType: zod.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
+ zod.z.object({ files: zod.z.array(BrainUploadFileInputSchema).min(1).max(BRAIN_MAX_FOLDER_FILES) }).strict();
1826
+ const BrainUploadAcceptedSchema = zod.z.object({
1827
+ idempotencyId: zod.z.string().uuid(),
1828
+ documentId: BrainDocumentIdSchema,
1829
+ versionId: zod.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: zod.z.object({
1835
+ method: zod.z.literal("POST"),
1836
+ url: zod.z.string().url(),
1837
+ fields: zod.z.record(zod.z.string(), zod.z.string())
1838
+ }).nullable()
1839
+ });
1840
+ const BrainUploadSkippedSchema = zod.z.object({
1841
+ documentId: BrainDocumentIdSchema,
1842
+ reason: BrainSkippedReasonSchema,
1843
+ message: zod.z.string().min(1).optional()
1844
+ });
1845
+ zod.z.object({
1846
+ accepted: zod.z.array(BrainUploadAcceptedSchema),
1847
+ skipped: zod.z.array(BrainUploadSkippedSchema)
1848
+ });
1849
+ zod.z.object({ versionIds: zod.z.array(zod.z.string().min(1)).min(1).max(100) }).strict();
1850
+ const FinalizeBrainUploadResultSchema = zod.z.object({
1851
+ versionId: zod.z.string().min(1),
1852
+ documentId: BrainDocumentIdSchema,
1853
+ status: BrainDocumentVersionStatusSchema,
1854
+ failureCode: BrainDocumentFailureCodeSchema.nullable().optional(),
1855
+ failureMessage: zod.z.string().nullable().optional()
1856
+ });
1857
+ zod.z.object({ results: zod.z.array(FinalizeBrainUploadResultSchema) });
1858
+ /** `hybrid` = ANN + BM25 with server fusion; `semantic` / `keyword` drop one leg. */
1859
+ const BrainSearchModeSchema = zod.z.enum([
1860
+ "hybrid",
1861
+ "semantic",
1862
+ "keyword"
1863
+ ]);
1864
+ zod.z.object({
1865
+ query: zod.z.string().trim().min(1).max(4e3),
1866
+ mode: BrainSearchModeSchema.default("hybrid"),
1867
+ limit: zod.z.number().int().min(1).max(20).default(5),
1868
+ minScore: zod.z.number().min(0).max(1).optional(),
1869
+ rerank: zod.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 = zod.z.object({
1874
+ /** Reference the hit was served through (qualified when searching a filter). */
1875
+ brain: BrainReferenceSchema,
1876
+ documentId: BrainDocumentIdSchema,
1877
+ chunkId: zod.z.string().min(1),
1878
+ score: zod.z.number(),
1879
+ title: zod.z.string().min(1),
1880
+ text: zod.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: zod.z.string().nullable(),
1885
+ metadata: BrainDocumentMetadataSchema.nullable()
1886
+ });
1887
+ zod.z.object({
1888
+ hits: zod.z.array(BrainSearchHitSchema),
1889
+ reranked: zod.z.boolean()
1890
+ });
1891
+ zod.z.object({
1892
+ query: zod.z.string().trim().min(1).max(4e3),
1893
+ hits: zod.z.array(BrainSearchHitSchema).min(1).max(320),
1894
+ limit: zod.z.number().int().min(1).max(20)
1895
+ }).strict();
1896
+ zod.z.object({
1897
+ offset: zod.z.coerce.number().int().nonnegative().default(0),
1898
+ maxChars: zod.z.coerce.number().int().min(1).max(BRAIN_READ_MAX_CHARS).default(BRAIN_READ_MAX_CHARS)
1899
+ });
1900
+ zod.z.object({
1901
+ brain: BrainReferenceSchema,
1902
+ documentId: BrainDocumentIdSchema,
1903
+ title: zod.z.string().min(1),
1904
+ offset: zod.z.number().int().nonnegative(),
1905
+ text: zod.z.string(),
1906
+ truncated: zod.z.boolean()
1907
+ });
1908
+ zod.z.object({
1909
+ /** Reference the agent addresses (base slug or qualified `{brain}:{filter}`). */
1910
+ slug: BrainReferenceSchema,
1911
+ name: zod.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
+ zod.z.object({
1921
+ brainId: zod.z.string().min(1),
1922
+ status: BrainStatusSchema,
1923
+ /** Namespace generation the rebuild is writing into. */
1924
+ targetGeneration: zod.z.number().int().positive()
1925
+ });
1926
+ const BrainOperationIdSchema = zod.z.string().regex(/^[a-f0-9]{64}$/);
1927
+ const BrainRuntimeJobCommonSchema = zod.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: zod.z.string().min(1).nullable(),
1932
+ brainId: zod.z.string().min(1),
1933
+ brainSlug: BrainSlugSchema
1934
+ }).strict();
1935
+ zod.z.discriminatedUnion("operation", [
1936
+ BrainRuntimeJobCommonSchema.extend({
1937
+ operation: zod.z.literal("ingest-version"),
1938
+ versionId: zod.z.string().min(1)
1939
+ }),
1940
+ BrainRuntimeJobCommonSchema.extend({ operation: zod.z.literal("rebuild-brain") }),
1941
+ BrainRuntimeJobCommonSchema.extend({
1942
+ operation: zod.z.literal("reconcile-metadata"),
1943
+ documentId: BrainDocumentIdSchema
1944
+ }),
1945
+ BrainRuntimeJobCommonSchema.extend({
1946
+ operation: zod.z.literal("cleanup-document"),
1947
+ documentRowId: zod.z.string().min(1),
1948
+ deletionEpoch: zod.z.number().int().positive(),
1949
+ versionIds: zod.z.array(zod.z.string().min(1))
1950
+ }),
1951
+ BrainRuntimeJobCommonSchema.extend({
1952
+ operation: zod.z.literal("cleanup-version"),
1953
+ versionId: zod.z.string().min(1)
1954
+ }),
1955
+ BrainRuntimeJobCommonSchema.extend({
1956
+ operation: zod.z.literal("cleanup-generation"),
1957
+ generation: zod.z.number().int().positive()
1958
+ }),
1959
+ BrainRuntimeJobCommonSchema.extend({ operation: zod.z.literal("delete-brain") })
1960
+ ]);
1332
1961
  const TriggerTypeSchema = zod.z.enum([
1333
1962
  "webhook",
1334
1963
  "poll",
@@ -1416,6 +2045,7 @@ const WorkflowCanvasNodeTypeSchema = zod.z.enum([
1416
2045
  zod.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 = zod.z.discriminatedUnion("kind", [
1627
2257
  toolCount: zod.z.number().int().nonnegative(),
1628
2258
  credentialCount: zod.z.number().int().nonnegative(),
1629
2259
  sandboxMode: AgentSandboxModeSchema.optional(),
2260
+ brainSlugs: zod.z.array(BrainReferenceSchema).default([]),
1630
2261
  appSlugs: zod.z.array(zod.z.string()).default([]),
1631
2262
  toolSlugs: zod.z.array(zod.z.string()).default([]),
1632
2263
  /** Credential requirements per tool slug (the agent's credential consumer key). */
@@ -1777,6 +2408,7 @@ const AgentManifestShardSchema = zod.z.object({
1777
2408
  toolCount: zod.z.number().int().nonnegative(),
1778
2409
  credentialCount: zod.z.number().int().nonnegative(),
1779
2410
  sandboxMode: AgentSandboxModeSchema.optional(),
2411
+ brainSlugs: zod.z.array(BrainReferenceSchema).default([]),
1780
2412
  appSlugs: zod.z.array(zod.z.string()).default([]),
1781
2413
  toolSlugs: zod.z.array(zod.z.string()).default([]),
1782
2414
  toolRequirements: zod.z.record(zod.z.string(), zod.z.array(CredentialRequirementSummarySchema)).optional(),
@@ -3171,6 +3803,20 @@ const SubmitMarketingContactRequestSchema = zod.z.object({
3171
3803
  companyWebsite: zod.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 = zod.z.object({
3812
+ id: BrainEmbeddingModelSchema,
3813
+ name: zod.z.string().min(1),
3814
+ provider: zod.z.string().min(1),
3815
+ contextWindow: zod.z.number().int().positive().optional(),
3816
+ /** USD per 1M input tokens, when the catalog prices the model. */
3817
+ inputPerMillionUsd: zod.z.number().nonnegative().optional()
3818
+ });
3819
+ zod.z.object({ models: zod.z.array(EmbeddingModelSchema) });
3174
3820
  const CredentialAccessUnavailableReasonSchema = zod.z.enum(["request_access", "reconnect_required"]);
3175
3821
  zod.z.object({
3176
3822
  error: zod.z.literal("credential_access_unavailable"),
@@ -4772,7 +5418,7 @@ const ModuleBlobRefSchema = zod.z.object({
4772
5418
  });
4773
5419
  const isoDateTime = zod.z.string().datetime();
4774
5420
  /** Snapshot/content-addressed blob digests are always lowercase sha256. */
4775
- const sha256Hex$2 = zod.z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
5421
+ const sha256Hex$3 = zod.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 = zod.z.object({
4851
5497
  zod.z.object({
4852
5498
  path: zod.z.string().min(1),
4853
5499
  contents: zod.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 = zod.z.object({
4858
- hash: sha256Hex$2,
5504
+ hash: sha256Hex$3,
4859
5505
  size: zod.z.number().int().nonnegative()
4860
5506
  });
4861
5507
  /** Request: ask the platform which blobs are missing and get presigned PUTs. */
4862
5508
  const PresignProjectSourceRequestSchema = zod.z.object({ blobs: zod.z.array(SourceBlobRefSchema) });
4863
5509
  const PresignedBlobUploadSchema = zod.z.object({
4864
- hash: sha256Hex$2,
5510
+ hash: sha256Hex$3,
4865
5511
  url: zod.z.string().url()
4866
5512
  });
4867
5513
  /** Response: presigned PUTs for the subset of blobs not already stored. */
@@ -4869,7 +5515,7 @@ const PresignProjectSourceResponseSchema = zod.z.object({ uploads: zod.z.array(P
4869
5515
  /** A file reference in a manifest upload: where the path's content lives. */
4870
5516
  const ManifestFileRefSchema = zod.z.object({
4871
5517
  path: zod.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 = zod.z.object({ files: zod.z.array(ManifestFileRefSchema) });
@@ -4881,7 +5527,7 @@ const UploadProjectSourceResponseSchema = zod.z.object({
4881
5527
  const StoredManifestFileSchema = zod.z.object({
4882
5528
  id: zod.z.string(),
4883
5529
  path: zod.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 = zod.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 (0, node_crypto.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 (0, _aws_sdk_s3_presigned_post.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 _aws_sdk_client_s3.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 (0, node_crypto.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). */
@@ -6896,6 +7615,24 @@ Object.defineProperty(exports, "AppSlugAvailabilityResponseSchema", {
6896
7615
  return AppSlugAvailabilityResponseSchema;
6897
7616
  }
6898
7617
  });
7618
+ Object.defineProperty(exports, "BrainDocumentIdSchema", {
7619
+ enumerable: true,
7620
+ get: function() {
7621
+ return BrainDocumentIdSchema;
7622
+ }
7623
+ });
7624
+ Object.defineProperty(exports, "BrainReferenceSchema", {
7625
+ enumerable: true,
7626
+ get: function() {
7627
+ return BrainReferenceSchema;
7628
+ }
7629
+ });
7630
+ Object.defineProperty(exports, "BrowserResumeStateSchema", {
7631
+ enumerable: true,
7632
+ get: function() {
7633
+ return BrowserResumeStateSchema;
7634
+ }
7635
+ });
6899
7636
  Object.defineProperty(exports, "CancelManagedDeployRequestSchema", {
6900
7637
  enumerable: true,
6901
7638
  get: function() {
@@ -7274,6 +8011,12 @@ Object.defineProperty(exports, "ListAppsResponseSchema", {
7274
8011
  return ListAppsResponseSchema;
7275
8012
  }
7276
8013
  });
8014
+ Object.defineProperty(exports, "ListBrainDocumentsQuerySchema", {
8015
+ enumerable: true,
8016
+ get: function() {
8017
+ return ListBrainDocumentsQuerySchema;
8018
+ }
8019
+ });
7277
8020
  Object.defineProperty(exports, "ListChannelPlatformsResponseSchema", {
7278
8021
  enumerable: true,
7279
8022
  get: function() {
@@ -8144,6 +8887,18 @@ Object.defineProperty(exports, "formatStorageErrorDetail", {
8144
8887
  return formatStorageErrorDetail;
8145
8888
  }
8146
8889
  });
8890
+ Object.defineProperty(exports, "getBrowserProfileMeta", {
8891
+ enumerable: true,
8892
+ get: function() {
8893
+ return getBrowserProfileMeta;
8894
+ }
8895
+ });
8896
+ Object.defineProperty(exports, "getBrowserSessionMeta", {
8897
+ enumerable: true,
8898
+ get: function() {
8899
+ return getBrowserSessionMeta;
8900
+ }
8901
+ });
8147
8902
  Object.defineProperty(exports, "graphqlIntrospectionToAppTemplate", {
8148
8903
  enumerable: true,
8149
8904
  get: function() {
@@ -8168,6 +8923,12 @@ Object.defineProperty(exports, "isAppLogoStorageKey", {
8168
8923
  return isAppLogoStorageKey;
8169
8924
  }
8170
8925
  });
8926
+ Object.defineProperty(exports, "isBrowserMediaStorageKey", {
8927
+ enumerable: true,
8928
+ get: function() {
8929
+ return isBrowserMediaStorageKey;
8930
+ }
8931
+ });
8171
8932
  Object.defineProperty(exports, "isChatAttachmentStorageKey", {
8172
8933
  enumerable: true,
8173
8934
  get: function() {
@@ -8492,6 +9253,18 @@ Object.defineProperty(exports, "publishDraftUpdateBestEffort", {
8492
9253
  return publishDraftUpdateBestEffort;
8493
9254
  }
8494
9255
  });
9256
+ Object.defineProperty(exports, "putBrowserProfileMeta", {
9257
+ enumerable: true,
9258
+ get: function() {
9259
+ return putBrowserProfileMeta;
9260
+ }
9261
+ });
9262
+ Object.defineProperty(exports, "putBrowserSessionMeta", {
9263
+ enumerable: true,
9264
+ get: function() {
9265
+ return putBrowserSessionMeta;
9266
+ }
9267
+ });
8495
9268
  Object.defineProperty(exports, "requiredDisplayTextSchema", {
8496
9269
  enumerable: true,
8497
9270
  get: function() {
@@ -8619,4 +9392,4 @@ Object.defineProperty(exports, "waitForHealth", {
8619
9392
  }
8620
9393
  });
8621
9394
 
8622
- //# sourceMappingURL=project-draft-notifier-DlWmyn5m.cjs.map
9395
+ //# sourceMappingURL=project-draft-notifier-BTrhFlJq.cjs.map