@keystrokehq/platform 0.1.157 → 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 +2 -2
  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
@@ -1,6 +1,6 @@
1
- const require_dist = require("./dist-kYSK2aR1.cjs");
2
- const require_project_draft_notifier = require("./project-draft-notifier-DlWmyn5m.cjs");
3
- const require_with_project_scope = require("./with-project-scope-D2Nxb_81.cjs");
1
+ const require_dist = require("./dist-DCBZwccy.cjs");
2
+ const require_project_draft_notifier = require("./project-draft-notifier-BTrhFlJq.cjs");
3
+ const require_with_project_scope = require("./with-project-scope-BUYH3etZ.cjs");
4
4
  require("./chunk-BZUGFHVS-7RRM7Jpb.cjs");
5
5
  const require_chunk_TN7HHBQW = require("./chunk-TN7HHBQW-D_SK6w5n.cjs");
6
6
  const require_lib_public_models = require("./lib/public-models.cjs");
@@ -15,6 +15,7 @@ node_fs = require_dist.__toESM(node_fs, 1);
15
15
  let node_path = require("node:path");
16
16
  node_path = require_dist.__toESM(node_path, 1);
17
17
  let node_os = require("node:os");
18
+ require("node:child_process");
18
19
  let _hono_node_server = require("@hono/node-server");
19
20
  let _keystrokehq_auth = require("@keystrokehq/auth");
20
21
  let _keystrokehq_runtime = require("@keystrokehq/runtime");
@@ -20201,7 +20202,7 @@ var g = class i {
20201
20202
  endPos() {
20202
20203
  return this.end;
20203
20204
  }
20204
- }, z$10 = class extends L {
20205
+ }, z$13 = class extends L {
20205
20206
  constructor(t, e = 0, s = t.length) {
20206
20207
  super(), this.bytes = t, this.start = e, this.end = s;
20207
20208
  }
@@ -20258,7 +20259,7 @@ var g = class i {
20258
20259
  }
20259
20260
  }, R = class {
20260
20261
  static fromUTF8(t, e = 0, s = t.length) {
20261
- return new z$10(t, e, s);
20262
+ return new z$13(t, e, s);
20262
20263
  }
20263
20264
  static fromUTF16(t, e = 0, s = t.length) {
20264
20265
  return new $$1(t, e, s);
@@ -23044,43 +23045,43 @@ var tt = [
23044
23045
  },
23045
23046
  {
23046
23047
  name: "cat",
23047
- load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-DGwUv9Kz.cjs"))).catCommand
23048
+ load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS--RzScLHz.cjs"))).catCommand
23048
23049
  },
23049
23050
  {
23050
23051
  name: "printf",
23051
- load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-DCHSwRN6.cjs"))).printfCommand
23052
+ load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-CbiNvLS5.cjs"))).printfCommand
23052
23053
  },
23053
23054
  {
23054
23055
  name: "ls",
23055
- load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-CzK8vxkc.cjs"))).lsCommand
23056
+ load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-D3t0QDQM.cjs"))).lsCommand
23056
23057
  },
23057
23058
  {
23058
23059
  name: "mkdir",
23059
- load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-Bks_xob7.cjs"))).mkdirCommand
23060
+ load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-BqMED7DB.cjs"))).mkdirCommand
23060
23061
  },
23061
23062
  {
23062
23063
  name: "rmdir",
23063
- load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-xNbbN8z9.cjs"))).rmdirCommand
23064
+ load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-D7HEcQAy.cjs"))).rmdirCommand
23064
23065
  },
23065
23066
  {
23066
23067
  name: "touch",
23067
- load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-BvhbAbJ5.cjs"))).touchCommand
23068
+ load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-C_lnOJKi.cjs"))).touchCommand
23068
23069
  },
23069
23070
  {
23070
23071
  name: "rm",
23071
- load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-CMqCuC6-.cjs"))).rmCommand
23072
+ load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-B9SMhBSB.cjs"))).rmCommand
23072
23073
  },
23073
23074
  {
23074
23075
  name: "cp",
23075
- load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-BPMpNsAw.cjs"))).cpCommand
23076
+ load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-LMQ-Lgu3.cjs"))).cpCommand
23076
23077
  },
23077
23078
  {
23078
23079
  name: "mv",
23079
- load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-BQe2vxEx.cjs"))).mvCommand
23080
+ load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-DFL2qoA8.cjs"))).mvCommand
23080
23081
  },
23081
23082
  {
23082
23083
  name: "ln",
23083
- load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-C5UT-Ujb.cjs"))).lnCommand
23084
+ load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-C1lfOtP2.cjs"))).lnCommand
23084
23085
  },
23085
23086
  {
23086
23087
  name: "chmod",
@@ -23096,15 +23097,15 @@ var tt = [
23096
23097
  },
23097
23098
  {
23098
23099
  name: "head",
23099
- load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-DpretS3H.cjs"))).headCommand
23100
+ load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-BNn4Zd5W.cjs"))).headCommand
23100
23101
  },
23101
23102
  {
23102
23103
  name: "tail",
23103
- load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-Drjdjemt.cjs"))).tailCommand
23104
+ load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-xZalNeK5.cjs"))).tailCommand
23104
23105
  },
23105
23106
  {
23106
23107
  name: "wc",
23107
- load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-DbAal6fW.cjs"))).wcCommand
23108
+ load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-BN8uD5xw.cjs"))).wcCommand
23108
23109
  },
23109
23110
  {
23110
23111
  name: "stat",
@@ -23112,95 +23113,95 @@ var tt = [
23112
23113
  },
23113
23114
  {
23114
23115
  name: "grep",
23115
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-DBBMtXpt.cjs"))).grepCommand
23116
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-Dqvc044Y.cjs"))).grepCommand
23116
23117
  },
23117
23118
  {
23118
23119
  name: "fgrep",
23119
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-DBBMtXpt.cjs"))).fgrepCommand
23120
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-Dqvc044Y.cjs"))).fgrepCommand
23120
23121
  },
23121
23122
  {
23122
23123
  name: "egrep",
23123
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-DBBMtXpt.cjs"))).egrepCommand
23124
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-Dqvc044Y.cjs"))).egrepCommand
23124
23125
  },
23125
23126
  {
23126
23127
  name: "rg",
23127
- load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-CTWDqqzD.cjs"))).rgCommand
23128
+ load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-B4PncTdP.cjs"))).rgCommand
23128
23129
  },
23129
23130
  {
23130
23131
  name: "sed",
23131
- load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-B9o7Evcw.cjs"))).sedCommand
23132
+ load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-Du8IExJm.cjs"))).sedCommand
23132
23133
  },
23133
23134
  {
23134
23135
  name: "awk",
23135
- load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-DMwZ6QQr.cjs"))).awkCommand2
23136
+ load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-uE6zOSil.cjs"))).awkCommand2
23136
23137
  },
23137
23138
  {
23138
23139
  name: "sort",
23139
- load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-CfN8qsOe.cjs"))).sortCommand
23140
+ load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-wNs-q9FY.cjs"))).sortCommand
23140
23141
  },
23141
23142
  {
23142
23143
  name: "uniq",
23143
- load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-BkO2mNi8.cjs"))).uniqCommand
23144
+ load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-B_Eb3B42.cjs"))).uniqCommand
23144
23145
  },
23145
23146
  {
23146
23147
  name: "comm",
23147
- load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-BOZDvYIa.cjs"))).commCommand
23148
+ load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-k1LAn-UX.cjs"))).commCommand
23148
23149
  },
23149
23150
  {
23150
23151
  name: "cut",
23151
- load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-D0Odc3Jf.cjs"))).cutCommand
23152
+ load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-BiAZwS61.cjs"))).cutCommand
23152
23153
  },
23153
23154
  {
23154
23155
  name: "paste",
23155
- load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-D2Mx-pNX.cjs"))).pasteCommand
23156
+ load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-DD5eWGK0.cjs"))).pasteCommand
23156
23157
  },
23157
23158
  {
23158
23159
  name: "tr",
23159
- load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-tCkx_1H_.cjs"))).trCommand
23160
+ load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-CRO2ZQcO.cjs"))).trCommand
23160
23161
  },
23161
23162
  {
23162
23163
  name: "rev",
23163
- load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-u03jP4f-.cjs"))).rev
23164
+ load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-DiP5cwEi.cjs"))).rev
23164
23165
  },
23165
23166
  {
23166
23167
  name: "nl",
23167
- load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-CHu4o_ve.cjs"))).nl
23168
+ load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-WXzYOkjQ.cjs"))).nl
23168
23169
  },
23169
23170
  {
23170
23171
  name: "fold",
23171
- load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-Bd1uAxr4.cjs"))).fold
23172
+ load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-B-REYZ2T.cjs"))).fold
23172
23173
  },
23173
23174
  {
23174
23175
  name: "expand",
23175
- load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-Bi-8GRhN.cjs"))).expand
23176
+ load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-wdcwExNq.cjs"))).expand
23176
23177
  },
23177
23178
  {
23178
23179
  name: "unexpand",
23179
- load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-uMt0rf4X.cjs"))).unexpand
23180
+ load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-sC6d7vYD.cjs"))).unexpand
23180
23181
  },
23181
23182
  {
23182
23183
  name: "strings",
23183
- load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-B8ogXPoK.cjs"))).strings
23184
+ load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-BljfjANt.cjs"))).strings
23184
23185
  },
23185
23186
  {
23186
23187
  name: "split",
23187
- load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-B8plYwAH.cjs"))).split
23188
+ load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-CRC14l7P.cjs"))).split
23188
23189
  },
23189
23190
  {
23190
23191
  name: "column",
23191
- load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-vx9cFrby.cjs"))).column
23192
+ load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-M29JNaKQ.cjs"))).column
23192
23193
  },
23193
23194
  {
23194
23195
  name: "join",
23195
- load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-CzqTCyC_.cjs"))).join
23196
+ load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-8cSkvs72.cjs"))).join
23196
23197
  },
23197
23198
  {
23198
23199
  name: "tee",
23199
- load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-BhRQUMAz.cjs"))).teeCommand
23200
+ load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-DXiSfvar.cjs"))).teeCommand
23200
23201
  },
23201
23202
  {
23202
23203
  name: "find",
23203
- load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-2piuR3-O.cjs"))).findCommand
23204
+ load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-CkQ9J21w.cjs"))).findCommand
23204
23205
  },
23205
23206
  {
23206
23207
  name: "basename",
@@ -23212,19 +23213,19 @@ var tt = [
23212
23213
  },
23213
23214
  {
23214
23215
  name: "tree",
23215
- load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-CtxzyzyK.cjs"))).treeCommand
23216
+ load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-DY8dtHDR.cjs"))).treeCommand
23216
23217
  },
23217
23218
  {
23218
23219
  name: "du",
23219
- load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-DmOYu76Z.cjs"))).duCommand
23220
+ load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-TQqS6aEh.cjs"))).duCommand
23220
23221
  },
23221
23222
  {
23222
23223
  name: "env",
23223
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DZfbg9cL.cjs"))).envCommand
23224
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DB1ByvdV.cjs"))).envCommand
23224
23225
  },
23225
23226
  {
23226
23227
  name: "printenv",
23227
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DZfbg9cL.cjs"))).printenvCommand
23228
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-DB1ByvdV.cjs"))).printenvCommand
23228
23229
  },
23229
23230
  {
23230
23231
  name: "alias",
@@ -23240,7 +23241,7 @@ var tt = [
23240
23241
  },
23241
23242
  {
23242
23243
  name: "xargs",
23243
- load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-CWF0HdOV.cjs"))).xargsCommand
23244
+ load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-WBopvhsi.cjs"))).xargsCommand
23244
23245
  },
23245
23246
  {
23246
23247
  name: "true",
@@ -23256,23 +23257,23 @@ var tt = [
23256
23257
  },
23257
23258
  {
23258
23259
  name: "bash",
23259
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-3gtMzQUb.cjs"))).bashCommand
23260
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-ySQQCFf9.cjs"))).bashCommand
23260
23261
  },
23261
23262
  {
23262
23263
  name: "sh",
23263
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-3gtMzQUb.cjs"))).shCommand
23264
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-ySQQCFf9.cjs"))).shCommand
23264
23265
  },
23265
23266
  {
23266
23267
  name: "jq",
23267
- load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-Dzk1Cr1F.cjs"))).jqCommand
23268
+ load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-edqMm9y9.cjs"))).jqCommand
23268
23269
  },
23269
23270
  {
23270
23271
  name: "base64",
23271
- load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-TPM8YCIT.cjs"))).base64Command
23272
+ load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-CDGwGwLv.cjs"))).base64Command
23272
23273
  },
23273
23274
  {
23274
23275
  name: "diff",
23275
- load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-oslL1LAV.cjs"))).diffCommand
23276
+ load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-B9KQ6sp2.cjs"))).diffCommand
23276
23277
  },
23277
23278
  {
23278
23279
  name: "date",
@@ -23280,15 +23281,15 @@ var tt = [
23280
23281
  },
23281
23282
  {
23282
23283
  name: "sleep",
23283
- load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-Dlhdt3UF.cjs"))).sleepCommand
23284
+ load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-CgS_ip5Q.cjs"))).sleepCommand
23284
23285
  },
23285
23286
  {
23286
23287
  name: "timeout",
23287
- load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-CuD519Dt.cjs"))).timeoutCommand
23288
+ load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-B9nIcBSB.cjs"))).timeoutCommand
23288
23289
  },
23289
23290
  {
23290
23291
  name: "time",
23291
- load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-BMJlkpiY.cjs"))).timeCommand
23292
+ load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-XYvudP3x.cjs"))).timeCommand
23292
23293
  },
23293
23294
  {
23294
23295
  name: "seq",
@@ -23296,19 +23297,19 @@ var tt = [
23296
23297
  },
23297
23298
  {
23298
23299
  name: "expr",
23299
- load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-BNy25DC2.cjs"))).exprCommand
23300
+ load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-CKlqA3rx.cjs"))).exprCommand
23300
23301
  },
23301
23302
  {
23302
23303
  name: "md5sum",
23303
- load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-BcSybbbv.cjs"))).md5sumCommand
23304
+ load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-DJIgz_9a.cjs"))).md5sumCommand
23304
23305
  },
23305
23306
  {
23306
23307
  name: "sha1sum",
23307
- load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-CGWtyGkR.cjs"))).sha1sumCommand
23308
+ load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-Bq-v3RHV.cjs"))).sha1sumCommand
23308
23309
  },
23309
23310
  {
23310
23311
  name: "sha256sum",
23311
- load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-Tkb8bOpJ.cjs"))).sha256sumCommand
23312
+ load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-hHNRLdA_.cjs"))).sha256sumCommand
23312
23313
  },
23313
23314
  {
23314
23315
  name: "file",
@@ -23316,11 +23317,11 @@ var tt = [
23316
23317
  },
23317
23318
  {
23318
23319
  name: "html-to-markdown",
23319
- load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-DcGBGpbg.cjs"))).htmlToMarkdownCommand
23320
+ load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-DXxS5cxI.cjs"))).htmlToMarkdownCommand
23320
23321
  },
23321
23322
  {
23322
23323
  name: "help",
23323
- load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-CWp0eQ2z.cjs"))).helpCommand
23324
+ load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-C62cNKDA.cjs"))).helpCommand
23324
23325
  },
23325
23326
  {
23326
23327
  name: "which",
@@ -23328,7 +23329,7 @@ var tt = [
23328
23329
  },
23329
23330
  {
23330
23331
  name: "tac",
23331
- load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-GqCFVlMI.cjs"))).tac
23332
+ load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-DMhQEe5q.cjs"))).tac
23332
23333
  },
23333
23334
  {
23334
23335
  name: "hostname",
@@ -23340,49 +23341,49 @@ var tt = [
23340
23341
  },
23341
23342
  {
23342
23343
  name: "od",
23343
- load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-BEdRBpH3.cjs"))).od
23344
+ load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-DHLzLIii.cjs"))).od
23344
23345
  },
23345
23346
  {
23346
23347
  name: "gzip",
23347
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-CdOkcay5.cjs"))).gzipCommand
23348
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-CxrvMOo3.cjs"))).gzipCommand
23348
23349
  },
23349
23350
  {
23350
23351
  name: "gunzip",
23351
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-CdOkcay5.cjs"))).gunzipCommand
23352
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-CxrvMOo3.cjs"))).gunzipCommand
23352
23353
  },
23353
23354
  {
23354
23355
  name: "zcat",
23355
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-CdOkcay5.cjs"))).zcatCommand
23356
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-CxrvMOo3.cjs"))).zcatCommand
23356
23357
  }
23357
23358
  ];
23358
23359
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (tt.push({
23359
23360
  name: "tar",
23360
- load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-BuhlrLgy.cjs"))).tarCommand
23361
+ load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-pvdoWQbG.cjs"))).tarCommand
23361
23362
  }), tt.push({
23362
23363
  name: "yq",
23363
- load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-BSSwWyVt.cjs"))).yqCommand
23364
+ load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-DafLngnL.cjs"))).yqCommand
23364
23365
  }), tt.push({
23365
23366
  name: "xan",
23366
- load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-PLXYTtLn.cjs"))).xanCommand
23367
+ load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-Do49tZ_W.cjs"))).xanCommand
23367
23368
  }), tt.push({
23368
23369
  name: "sqlite3",
23369
- load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-racIOTTD.cjs"))).sqlite3Command
23370
+ load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-V3zmhkJY.cjs"))).sqlite3Command
23370
23371
  }));
23371
23372
  var Yt = [];
23372
23373
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Yt.push({
23373
23374
  name: "python3",
23374
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-DSAcZLAU.cjs"))).python3Command
23375
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-BsOUiq4A.cjs"))).python3Command
23375
23376
  }), Yt.push({
23376
23377
  name: "python",
23377
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-DSAcZLAU.cjs"))).pythonCommand
23378
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-BsOUiq4A.cjs"))).pythonCommand
23378
23379
  }));
23379
23380
  var Qt = [];
23380
23381
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Qt.push({
23381
23382
  name: "js-exec",
23382
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-Bcd8otKl.cjs"))).jsExecCommand
23383
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-Zyo2F6Ti.cjs"))).jsExecCommand
23383
23384
  }), Qt.push({
23384
23385
  name: "node",
23385
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-Bcd8otKl.cjs"))).nodeStubCommand
23386
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-Zyo2F6Ti.cjs"))).nodeStubCommand
23386
23387
  }));
23387
23388
  new TextEncoder();
23388
23389
  Object.freeze({
@@ -23797,6 +23798,146 @@ Object.freeze({
23797
23798
  option is given.`]]
23798
23799
  ]).keys()].sort();
23799
23800
  new TextDecoder("utf-8", { fatal: !0 });
23801
+ zod.z.enum(["local", "browseruse"]);
23802
+ const BROWSER_USE_API = "https://api.browser-use.com/api/v4";
23803
+ async function browserUseFetch(apiKey, path, init) {
23804
+ return fetch(`${BROWSER_USE_API}${path}`, {
23805
+ ...init,
23806
+ headers: {
23807
+ "X-Browser-Use-API-Key": apiKey,
23808
+ "Content-Type": "application/json",
23809
+ ...init?.headers ?? {}
23810
+ }
23811
+ });
23812
+ }
23813
+ /** Create a Browser Use cloud browser (for CLI open / live view). */
23814
+ async function createBrowserUseSession(options) {
23815
+ const body = {};
23816
+ if (options.timeout !== void 0) body.timeout = options.timeout;
23817
+ if (options.profileId) body.profileId = options.profileId;
23818
+ if (options.record) body.browserSettings = { record: true };
23819
+ if (options.proxyCountryCode) body.proxyCountryCode = options.proxyCountryCode;
23820
+ const res = await browserUseFetch(options.apiKey, "/browsers", {
23821
+ method: "POST",
23822
+ body: JSON.stringify(body)
23823
+ });
23824
+ if (!res.ok) {
23825
+ const text = await res.text();
23826
+ throw new Error(`Browser Use create failed (${res.status}): ${text}`);
23827
+ }
23828
+ return await res.json();
23829
+ }
23830
+ /** Navigate a cloud browser without leaving a persistent agent-browser daemon attached. */
23831
+ async function navigateBrowserUseSession(cdpUrl, url) {
23832
+ const socket = new WebSocket(cdpUrl.replace(/^http:/, "ws:").replace(/^https:/, "wss:"));
23833
+ let nextId = 1;
23834
+ let pageSessionId;
23835
+ const pending = /* @__PURE__ */ new Map();
23836
+ await new Promise((resolve, reject) => {
23837
+ socket.addEventListener("open", () => resolve(), { once: true });
23838
+ socket.addEventListener("error", () => reject(/* @__PURE__ */ new Error("Browser Use CDP connection failed")), { once: true });
23839
+ });
23840
+ socket.addEventListener("message", (event) => {
23841
+ const message = JSON.parse(String(event.data));
23842
+ if (!message.id) return;
23843
+ const request = pending.get(message.id);
23844
+ if (!request) return;
23845
+ pending.delete(message.id);
23846
+ if (message.error) request.reject(new Error(message.error.message ?? "Browser Use CDP request failed"));
23847
+ else request.resolve(message);
23848
+ });
23849
+ const send = (method, params, sessionId) => {
23850
+ const id = nextId++;
23851
+ return new Promise((resolve, reject) => {
23852
+ pending.set(id, {
23853
+ resolve,
23854
+ reject
23855
+ });
23856
+ socket.send(JSON.stringify({
23857
+ id,
23858
+ method,
23859
+ ...params ? { params } : {},
23860
+ ...sessionId ? { sessionId } : {}
23861
+ }));
23862
+ });
23863
+ };
23864
+ try {
23865
+ const page = ((await send("Target.getTargets")).result?.targetInfos ?? []).find((target) => target.type === "page");
23866
+ if (!page) throw new Error("Browser Use page target not found");
23867
+ pageSessionId = (await send("Target.attachToTarget", {
23868
+ targetId: page.targetId,
23869
+ flatten: true
23870
+ })).result?.sessionId;
23871
+ if (!pageSessionId) throw new Error("Browser Use page attachment failed");
23872
+ await send("Page.navigate", { url }, pageSessionId);
23873
+ } finally {
23874
+ for (const request of pending.values()) request.reject(/* @__PURE__ */ new Error("Browser Use CDP connection closed"));
23875
+ pending.clear();
23876
+ socket.close();
23877
+ }
23878
+ }
23879
+ async function getBrowserUseSession(options) {
23880
+ const res = await browserUseFetch(options.apiKey, `/browsers/${options.sessionId}`);
23881
+ if (!res.ok) {
23882
+ const text = await res.text();
23883
+ throw new Error(`Browser Use get failed (${res.status}): ${text}`);
23884
+ }
23885
+ return await res.json();
23886
+ }
23887
+ /** Create or update a Browser Use profile for an agent (returns id). */
23888
+ async function ensureBrowserUseProfile(options) {
23889
+ for (const userId of [options.userId ?? options.name, options.legacyUserId].filter((value, index, all) => Boolean(value) && all.indexOf(value) === index)) {
23890
+ const list = await browserUseFetch(options.apiKey, `/profiles?userId=${encodeURIComponent(userId)}`);
23891
+ if (list.ok) {
23892
+ const data = await list.json();
23893
+ const existing = (data.items ?? (Array.isArray(data) ? data : [])).find((profile) => profile.name === options.name);
23894
+ if (existing?.id) return existing.id;
23895
+ }
23896
+ }
23897
+ const res = await browserUseFetch(options.apiKey, "/profiles", {
23898
+ method: "POST",
23899
+ body: JSON.stringify({
23900
+ name: options.name,
23901
+ userId: options.userId ?? options.name
23902
+ })
23903
+ });
23904
+ if (!res.ok) {
23905
+ const text = await res.text();
23906
+ throw new Error(`Browser Use profile create failed (${res.status}): ${text}`);
23907
+ }
23908
+ return (await res.json()).id;
23909
+ }
23910
+ /**
23911
+ * Open a Browser Use live session on the durable profile for an agent slug.
23912
+ * Used by platform `browser/open` and by the CLI when a local API key is set.
23913
+ */
23914
+ async function openCloudBrowserLogin(options) {
23915
+ const url = options.url ?? "about:blank";
23916
+ const cloudProfileId = options.cloudProfileId ?? await ensureBrowserUseProfile({
23917
+ apiKey: options.apiKey,
23918
+ name: `keystroke-agent-${options.agentSlug}`,
23919
+ userId: options.profileOwnerId ?? options.agentSlug,
23920
+ ...options.profileOwnerId ? { legacyUserId: options.agentSlug } : {}
23921
+ });
23922
+ const session = await createBrowserUseSession({
23923
+ apiKey: options.apiKey,
23924
+ profileId: cloudProfileId,
23925
+ timeout: options.timeout ?? 15,
23926
+ ...options.record ? { record: true } : {}
23927
+ });
23928
+ const sessionId = options.sessionId ?? `cli-${Date.now()}`;
23929
+ if (url !== "about:blank" && session.cdpUrl) await navigateBrowserUseSession(session.cdpUrl, url);
23930
+ return {
23931
+ sessionId,
23932
+ browserUseSessionId: session.id,
23933
+ cloudProfileId,
23934
+ url,
23935
+ ...session.liveUrl ? { liveUrl: session.liveUrl } : {},
23936
+ ...session.cdpUrl ? { cdpUrl: session.cdpUrl } : {},
23937
+ ...session.startedAt ? { startedAt: session.startedAt } : {},
23938
+ ...session.timeoutAt ? { timeoutAt: session.timeoutAt } : {}
23939
+ };
23940
+ }
23800
23941
  zod.z.object({
23801
23942
  clone: zod.z.object({
23802
23943
  repository: zod.z.string().trim().min(1),
@@ -25160,7 +25301,7 @@ function withOrganizationProjectDatabase() {
25160
25301
  trace.getTracer("keystroke.http");
25161
25302
  //#endregion
25162
25303
  //#region src/routes/account/users/me/avatar/GET.ts
25163
- const handler$115 = async (c) => {
25304
+ const handler$116 = async (c) => {
25164
25305
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(c.get("user").id);
25165
25306
  if (!dbUser) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25166
25307
  return c.json(require_project_draft_notifier.UserAvatarSchema.parse({ url: dbUser.image ?? null }));
@@ -25179,7 +25320,7 @@ function avatarExtensionForContentType(contentType) {
25179
25320
  }
25180
25321
  //#endregion
25181
25322
  //#region src/routes/account/users/me/avatar/presign/POST.ts
25182
- const handler$114 = async (c) => {
25323
+ const handler$115 = async (c) => {
25183
25324
  const parsed = require_project_draft_notifier.PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
25184
25325
  if (!parsed.success) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
25185
25326
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -25219,7 +25360,7 @@ async function deleteStoredImageIfOwned(input) {
25219
25360
  }
25220
25361
  //#endregion
25221
25362
  //#region src/routes/account/users/me/avatar/PATCH.ts
25222
- const handler$113 = async (c) => {
25363
+ const handler$114 = async (c) => {
25223
25364
  const parsed = require_project_draft_notifier.UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
25224
25365
  if (!parsed.success) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
25225
25366
  const user = c.get("user");
@@ -25261,14 +25402,14 @@ const handler$113 = async (c) => {
25261
25402
  };
25262
25403
  //#endregion
25263
25404
  //#region src/routes/account/users/me/preferences/GET.ts
25264
- const handler$112 = async (c) => {
25405
+ const handler$113 = async (c) => {
25265
25406
  const dbUser = await (0, _keystrokehq_platform_database.selectUserById)(c.get("user").id);
25266
25407
  if (!dbUser) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "User not found" }), 404);
25267
25408
  return c.json(require_project_draft_notifier.UserPreferencesSchema.parse(require_project_draft_notifier.normalizeUserPreferences(dbUser.preferences)));
25268
25409
  };
25269
25410
  //#endregion
25270
25411
  //#region src/routes/account/users/me/preferences/PATCH.ts
25271
- const handler$111 = async (c) => {
25412
+ const handler$112 = async (c) => {
25272
25413
  const parsed = require_project_draft_notifier.UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
25273
25414
  if (!parsed.success) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
25274
25415
  const user = c.get("user");
@@ -25283,7 +25424,7 @@ const handler$111 = async (c) => {
25283
25424
  };
25284
25425
  //#endregion
25285
25426
  //#region src/routes/account/organizations/GET.ts
25286
- const handler$110 = async (c) => {
25427
+ const handler$111 = async (c) => {
25287
25428
  const memberships = await (0, _keystrokehq_platform_database.selectUserOrganizations)(c.get("user").id);
25288
25429
  return c.json(require_project_draft_notifier.ListOrganizationsResponseSchema.parse(memberships.map(require_project_draft_notifier.mapUserOrganization)));
25289
25430
  };
@@ -25393,7 +25534,7 @@ function createOrganizationHandler(deps) {
25393
25534
  }
25394
25535
  //#endregion
25395
25536
  //#region src/routes/account/organizations/slug-available/GET.ts
25396
- const handler$109 = async (c) => {
25537
+ const handler$110 = async (c) => {
25397
25538
  const parsed = require_project_draft_notifier.SlugAvailabilityQuerySchema.safeParse({
25398
25539
  slug: c.req.query("slug"),
25399
25540
  excludeOrganizationId: c.req.query("excludeOrganizationId")
@@ -25404,7 +25545,7 @@ const handler$109 = async (c) => {
25404
25545
  };
25405
25546
  //#endregion
25406
25547
  //#region src/routes/account/organizations/[organizationId]/GET.ts
25407
- const handler$108 = async (c) => {
25548
+ const handler$109 = async (c) => {
25408
25549
  const { organizationId } = c.get("organization");
25409
25550
  const membership = await (0, _keystrokehq_platform_database.selectUserOrganizationMembership)(c.get("user").id, organizationId);
25410
25551
  if (!membership) throw new Error(`Organization membership missing after param guard: ${organizationId}`);
@@ -25412,7 +25553,7 @@ const handler$108 = async (c) => {
25412
25553
  };
25413
25554
  //#endregion
25414
25555
  //#region src/routes/account/organizations/[organizationId]/PATCH.ts
25415
- const handler$107 = async (c) => {
25556
+ const handler$108 = async (c) => {
25416
25557
  const organization = c.get("organization");
25417
25558
  const body = await c.req.json().catch(() => null);
25418
25559
  const parsed = require_project_draft_notifier.UpdateOrganizationRequestSchema.safeParse(body);
@@ -25437,7 +25578,7 @@ const handler$107 = async (c) => {
25437
25578
  };
25438
25579
  //#endregion
25439
25580
  //#region src/routes/account/organizations/[organizationId]/branding/GET.ts
25440
- const handler$106 = async (c) => {
25581
+ const handler$107 = async (c) => {
25441
25582
  const { organizationId } = c.get("organization");
25442
25583
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
25443
25584
  if (!organization) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
@@ -25486,7 +25627,7 @@ async function finalizeOrgLogoVariant(input) {
25486
25627
  publicUrl: finalized.publicUrl
25487
25628
  };
25488
25629
  }
25489
- const handler$105 = async (c) => {
25630
+ const handler$106 = async (c) => {
25490
25631
  const parsed = require_project_draft_notifier.OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
25491
25632
  if (!parsed.success) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
25492
25633
  const { organizationId } = c.get("organization");
@@ -25514,7 +25655,7 @@ const handler$105 = async (c) => {
25514
25655
  };
25515
25656
  //#endregion
25516
25657
  //#region src/routes/account/organizations/[organizationId]/branding/logo/presign/POST.ts
25517
- const handler$104 = async (c) => {
25658
+ const handler$105 = async (c) => {
25518
25659
  const parsed = require_project_draft_notifier.PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
25519
25660
  if (!parsed.success) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
25520
25661
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -25724,7 +25865,7 @@ function buildPlatformHistoryUsage(events, durationMs) {
25724
25865
  }
25725
25866
  //#endregion
25726
25867
  //#region src/routes/account/history/GET.ts
25727
- const handler$103 = async (c) => {
25868
+ const handler$104 = async (c) => {
25728
25869
  const organization = c.get("organization");
25729
25870
  const ctx = require_with_project_scope.accessContext(c);
25730
25871
  const query = require_project_draft_notifier.HistoryRunListQuerySchema.parse({
@@ -25749,7 +25890,7 @@ const handler$103 = async (c) => {
25749
25890
  };
25750
25891
  //#endregion
25751
25892
  //#region src/routes/account/history/[runId]/GET.ts
25752
- const handler$102 = async (c) => {
25893
+ const handler$103 = async (c) => {
25753
25894
  const runId = c.req.param("runId") ?? "";
25754
25895
  if (!runId) return c.json(null, 404);
25755
25896
  const core = await (0, _keystrokehq_database.findHistoryRunCore)(runId);
@@ -25809,7 +25950,7 @@ function toAgentSummary(row, options) {
25809
25950
  }
25810
25951
  //#endregion
25811
25952
  //#region src/routes/account/agents/GET.ts
25812
- const handler$101 = async (c) => {
25953
+ const handler$102 = async (c) => {
25813
25954
  const filter = await resolveListProjectIds(c, listScope(c, require_with_project_scope.agentListScope(require_with_project_scope.accessContext(c))), c.req.query("projectId"));
25814
25955
  if (filter === "empty") return c.json(require_project_draft_notifier.AgentSummaryListResponseSchema.parse([]));
25815
25956
  const rows = await (0, _keystrokehq_database.listActiveAgents)(filter);
@@ -25840,7 +25981,13 @@ zod.z.object({
25840
25981
  * Maximum tool-loop steps per prompt. When omitted, Keystroke uses
25841
25982
  * {@link DEFAULT_MAX_STEPS}.
25842
25983
  */
25843
- maxSteps: zod.z.number().int().positive().optional()
25984
+ maxSteps: zod.z.number().int().positive().optional(),
25985
+ /**
25986
+ * Brain references attached to this agent: base slugs or qualified
25987
+ * `{brain}:{filter}` references. Runtime normalization deduplicates in
25988
+ * declaration order.
25989
+ */
25990
+ brains: zod.z.array(require_project_draft_notifier.BrainReferenceSchema).min(1).max(16).optional()
25844
25991
  });
25845
25992
  new node_async_hooks.AsyncLocalStorage();
25846
25993
  //#endregion
@@ -26121,7 +26268,7 @@ function touchResourceActivityBestEffort(options) {
26121
26268
  }
26122
26269
  //#endregion
26123
26270
  //#region src/routes/account/agents/[agentId]/GET.ts
26124
- const handler$100 = async (c) => {
26271
+ const handler$101 = async (c) => {
26125
26272
  const agentId = c.req.param("agentId") ?? "";
26126
26273
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
26127
26274
  if (!row || !await canAccessProjectId(c, row.projectId, require_with_project_scope.canAccessAgent)) return c.json(require_project_draft_notifier.AgentSummaryDetailResponseSchema.parse(null));
@@ -26144,7 +26291,7 @@ const handler$100 = async (c) => {
26144
26291
  function relativePathsFromStorageKeys(prefix, keys) {
26145
26292
  return keys.filter((key) => key.startsWith(prefix) && key.endsWith(".md")).map((key) => key.slice(prefix.length)).filter((path) => !path.startsWith(".") && !path.includes("/."));
26146
26293
  }
26147
- const handler$99 = async (c) => {
26294
+ const handler$100 = async (c) => {
26148
26295
  const agentId = c.req.param("agentId") ?? "";
26149
26296
  const row = agentId ? await (0, _keystrokehq_database.selectActiveAgentById)(agentId) : void 0;
26150
26297
  if (!row || !await canAccessProjectId(c, row.projectId, require_with_project_scope.canAccessAgent)) return c.json(require_project_draft_notifier.ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
@@ -26169,7 +26316,7 @@ function isStorageNotFoundError(error) {
26169
26316
  const status = typeof record.$metadata === "object" && record.$metadata !== null ? record.$metadata.httpStatusCode : void 0;
26170
26317
  return name === "NoSuchKey" || code === "NoSuchKey" || code === "NotFound" || status === 404;
26171
26318
  }
26172
- const handler$98 = async (c) => {
26319
+ const handler$99 = async (c) => {
26173
26320
  const agentId = c.req.param("agentId") ?? "";
26174
26321
  const path = c.req.query("path");
26175
26322
  if (!path) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "File path is required" }), 400);
@@ -26391,7 +26538,7 @@ async function cancelHistoryRun(c, kind, cancel) {
26391
26538
  }
26392
26539
  //#endregion
26393
26540
  //#region src/routes/account/agents/sessions/[sessionId]/cancel/POST.ts
26394
- const handler$95 = (c) => cancelHistoryRun(c, "agent", _keystrokehq_database.cancelAgentSession);
26541
+ const handler$96 = (c) => cancelHistoryRun(c, "agent", _keystrokehq_database.cancelAgentSession);
26395
26542
  //#endregion
26396
26543
  //#region src/routes/account/resources/workflows.ts
26397
26544
  function toWorkflowSummary(row, options) {
@@ -26408,7 +26555,7 @@ function toWorkflowSummary(row, options) {
26408
26555
  }
26409
26556
  //#endregion
26410
26557
  //#region src/routes/account/workflows/GET.ts
26411
- const handler$94 = async (c) => {
26558
+ const handler$95 = async (c) => {
26412
26559
  const filter = await resolveListProjectIds(c, listScope(c, require_with_project_scope.workflowListScope(require_with_project_scope.accessContext(c))), c.req.query("projectId"));
26413
26560
  if (filter === "empty") return c.json(require_project_draft_notifier.WorkflowSummaryListResponseSchema.parse([]));
26414
26561
  const rows = await (0, _keystrokehq_database.listActiveWorkflows)(filter);
@@ -26422,7 +26569,7 @@ function buildPublicFormUrl(token) {
26422
26569
  }
26423
26570
  //#endregion
26424
26571
  //#region src/routes/account/workflows/forms/GET.ts
26425
- const handler$93 = async (c) => {
26572
+ const handler$94 = async (c) => {
26426
26573
  const { organizationId } = c.get("organization");
26427
26574
  const filter = await resolveListProjectIds(c, listScope(c, require_with_project_scope.workflowListScope(require_with_project_scope.accessContext(c))), c.req.query("projectId"));
26428
26575
  if (filter === "empty") return c.json(require_project_draft_notifier.PublishedFormListResponseSchema.parse([]));
@@ -26442,7 +26589,7 @@ const handler$93 = async (c) => {
26442
26589
  };
26443
26590
  //#endregion
26444
26591
  //#region src/routes/account/workflows/[workflowId]/GET.ts
26445
- const handler$92 = async (c) => {
26592
+ const handler$93 = async (c) => {
26446
26593
  const workflowId = c.req.param("workflowId") ?? "";
26447
26594
  const row = workflowId ? await (0, _keystrokehq_database.selectActiveWorkflowById)(workflowId) : void 0;
26448
26595
  if (!row || !await canAccessProjectId(c, row.projectId, require_with_project_scope.canAccessWorkflow)) return c.json(require_project_draft_notifier.WorkflowSummaryDetailResponseSchema.parse(null));
@@ -26990,7 +27137,7 @@ function buildWorkflowCanvas(input) {
26990
27137
  //#region src/routes/account/workflows/[workflowId]/canvas/GET.ts
26991
27138
  /** Bumped when the annotation prompt/model changes, so cached annotations invalidate. */
26992
27139
  const ANNOTATIONS_GENERATOR_VERSION = "wf-canvas-annotations-v1";
26993
- const handler$91 = async (c) => {
27140
+ const handler$92 = async (c) => {
26994
27141
  const organization = c.get("organization");
26995
27142
  const workflowId = c.req.param("workflowId") ?? "";
26996
27143
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27164,7 +27311,7 @@ function toBinding(key, description) {
27164
27311
  * each of its requirements currently binds to (read-only, no decryption). Not
27165
27312
  * content-hash cached — credential state changes without a redeploy.
27166
27313
  */
27167
- const handler$90 = async (c) => {
27314
+ const handler$91 = async (c) => {
27168
27315
  const workflowId = c.req.param("workflowId") ?? "";
27169
27316
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27170
27317
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27323,7 +27470,7 @@ function toCanvasRunStatus(status) {
27323
27470
  if (status === "canceled") return "canceled";
27324
27471
  return "running";
27325
27472
  }
27326
- const handler$89 = async (c) => {
27473
+ const handler$90 = async (c) => {
27327
27474
  const workflowId = c.req.param("workflowId") ?? "";
27328
27475
  const runId = c.req.param("runId") ?? "";
27329
27476
  if (!workflowId.trim() || !runId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow or run id" }), 400);
@@ -27493,7 +27640,7 @@ function createGetWorkflowOverviewHandler(createSource) {
27493
27640
  }
27494
27641
  //#endregion
27495
27642
  //#region src/routes/account/workflows/[workflowId]/run-inputs/GET.ts
27496
- const handler$88 = async (c) => {
27643
+ const handler$89 = async (c) => {
27497
27644
  const workflowId = c.req.param("workflowId") ?? "";
27498
27645
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27499
27646
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27508,7 +27655,7 @@ const handler$88 = async (c) => {
27508
27655
  };
27509
27656
  //#endregion
27510
27657
  //#region src/routes/account/workflows/[workflowId]/run-inputs/PUT.ts
27511
- const handler$87 = async (c) => {
27658
+ const handler$88 = async (c) => {
27512
27659
  const workflowId = c.req.param("workflowId") ?? "";
27513
27660
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27514
27661
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27539,7 +27686,7 @@ function parseRunInput$1(requestSchema, input) {
27539
27686
  * the workflow row's request schema, creates a pending run, and enqueues it on
27540
27687
  * the project's queue (drained by the project runtime worker). Returns the run id.
27541
27688
  */
27542
- const handler$86 = async (c) => {
27689
+ const handler$87 = async (c) => {
27543
27690
  const { organizationId } = c.get("organization");
27544
27691
  const workflowId = c.req.param("workflowId") ?? "";
27545
27692
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27613,7 +27760,7 @@ async function resolvePublishableInputSchema(projectId, row) {
27613
27760
  }
27614
27761
  //#endregion
27615
27762
  //#region src/routes/account/workflows/[workflowId]/form/GET.ts
27616
- const handler$85 = async (c) => {
27763
+ const handler$86 = async (c) => {
27617
27764
  const resolved = await resolveFormWorkflow(c);
27618
27765
  if (resolved instanceof Response) return resolved;
27619
27766
  const { organizationId } = c.get("organization");
@@ -27622,7 +27769,7 @@ const handler$85 = async (c) => {
27622
27769
  };
27623
27770
  //#endregion
27624
27771
  //#region src/routes/account/workflows/[workflowId]/form/PUT.ts
27625
- const handler$84 = async (c) => {
27772
+ const handler$85 = async (c) => {
27626
27773
  const resolved = await resolveFormWorkflow(c, { requireManageAccess: true });
27627
27774
  if (resolved instanceof Response) return resolved;
27628
27775
  const body = require_project_draft_notifier.WorkflowFormUpsertBodySchema.safeParse(await c.req.json().catch(() => null));
@@ -27651,7 +27798,7 @@ const handler$84 = async (c) => {
27651
27798
  };
27652
27799
  //#endregion
27653
27800
  //#region src/routes/account/workflows/[workflowId]/form/DELETE.ts
27654
- const handler$83 = async (c) => {
27801
+ const handler$84 = async (c) => {
27655
27802
  const resolved = await resolveFormWorkflow(c, { requireManageAccess: true });
27656
27803
  if (resolved instanceof Response) return resolved;
27657
27804
  const { organizationId } = c.get("organization");
@@ -27661,7 +27808,7 @@ const handler$83 = async (c) => {
27661
27808
  };
27662
27809
  //#endregion
27663
27810
  //#region src/routes/account/workflows/[workflowId]/form/rotate/POST.ts
27664
- const handler$82 = async (c) => {
27811
+ const handler$83 = async (c) => {
27665
27812
  const resolved = await resolveFormWorkflow(c, { requireManageAccess: true });
27666
27813
  if (resolved instanceof Response) return resolved;
27667
27814
  const { organizationId } = c.get("organization");
@@ -27683,7 +27830,7 @@ function extensionFromUpload$1(contentType, filename) {
27683
27830
  * hydration reads by project id + storage key, so runs read the file the same
27684
27831
  * way `storeFile` output does.
27685
27832
  */
27686
- const handler$81 = async (c) => {
27833
+ const handler$82 = async (c) => {
27687
27834
  const { organizationId } = c.get("organization");
27688
27835
  const workflowId = c.req.param("workflowId") ?? "";
27689
27836
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
@@ -27708,7 +27855,7 @@ const handler$81 = async (c) => {
27708
27855
  };
27709
27856
  //#endregion
27710
27857
  //#region src/routes/account/workflows/[workflowId]/runs/GET.ts
27711
- const handler$80 = async (c) => {
27858
+ const handler$81 = async (c) => {
27712
27859
  const workflowId = c.req.param("workflowId") ?? "";
27713
27860
  if (!workflowId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
27714
27861
  const resolved = await resolveWorkflow(c, workflowId);
@@ -27731,7 +27878,7 @@ const handler$80 = async (c) => {
27731
27878
  };
27732
27879
  //#endregion
27733
27880
  //#region src/routes/account/workflows/runs/[runId]/cancel/POST.ts
27734
- const handler$79 = (c) => cancelHistoryRun(c, "workflow", _keystrokehq_database.cancelWorkflowRun);
27881
+ const handler$80 = (c) => cancelHistoryRun(c, "workflow", _keystrokehq_database.cancelWorkflowRun);
27735
27882
  //#endregion
27736
27883
  //#region src/routes/account/resources/skills.ts
27737
27884
  function toSkillSummary(row) {
@@ -27748,7 +27895,7 @@ function toSkillSummary(row) {
27748
27895
  }
27749
27896
  //#endregion
27750
27897
  //#region src/routes/account/skills/GET.ts
27751
- const handler$78 = async (c) => {
27898
+ const handler$79 = async (c) => {
27752
27899
  const filter = await resolveListProjectIds(c, listScope(c, require_with_project_scope.skillListScope(require_with_project_scope.accessContext(c))), c.req.query("projectId"));
27753
27900
  if (filter === "empty") return c.json(require_project_draft_notifier.SkillSummaryListResponseSchema.parse([]));
27754
27901
  const rows = await (0, _keystrokehq_database.listActiveSkills)(filter);
@@ -27756,7 +27903,7 @@ const handler$78 = async (c) => {
27756
27903
  };
27757
27904
  //#endregion
27758
27905
  //#region src/routes/account/skills/[skillId]/GET.ts
27759
- const handler$77 = async (c) => {
27906
+ const handler$78 = async (c) => {
27760
27907
  const skillId = c.req.param("skillId") ?? "";
27761
27908
  const row = skillId ? await (0, _keystrokehq_database.selectActiveSkillById)(skillId) : void 0;
27762
27909
  if (!row || !await canAccessProjectId(c, row.projectId, require_with_project_scope.canAccessSkill)) return c.json(require_project_draft_notifier.SkillSummaryDetailResponseSchema.parse(null));
@@ -27865,7 +28012,7 @@ function toWorkspaceTriggerRunSummary(item, assignments) {
27865
28012
  }
27866
28013
  //#endregion
27867
28014
  //#region src/routes/account/triggers/GET.ts
27868
- const handler$76 = async (c) => {
28015
+ const handler$77 = async (c) => {
27869
28016
  const organization = c.get("organization");
27870
28017
  const scope = listScope(c, require_with_project_scope.projectListScope(require_with_project_scope.accessContext(c)));
27871
28018
  const filter = await resolveListProjectIds(c, scope, c.req.query("projectId"));
@@ -27877,7 +28024,7 @@ const handler$76 = async (c) => {
27877
28024
  };
27878
28025
  //#endregion
27879
28026
  //#region src/routes/account/triggers/[triggerId]/GET.ts
27880
- const handler$75 = async (c) => {
28027
+ const handler$76 = async (c) => {
27881
28028
  const organization = c.get("organization");
27882
28029
  const triggerId = c.req.param("triggerId") ?? "";
27883
28030
  if (!triggerId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
@@ -27893,7 +28040,7 @@ const handler$75 = async (c) => {
27893
28040
  };
27894
28041
  //#endregion
27895
28042
  //#region src/routes/account/triggers/[triggerId]/runs/GET.ts
27896
- const handler$74 = async (c) => {
28043
+ const handler$75 = async (c) => {
27897
28044
  const triggerId = c.req.param("triggerId") ?? "";
27898
28045
  if (!triggerId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
27899
28046
  const filter = await resolveListProjectIds(c, listScope(c, require_with_project_scope.projectListScope(require_with_project_scope.accessContext(c))));
@@ -28055,7 +28202,7 @@ async function syncNativeTriggerSchedule(organization, trigger) {
28055
28202
  }
28056
28203
  await scheduler.removeTriggerSchedule?.(trigger.slug, trigger.projectId);
28057
28204
  }
28058
- const handler$73 = async (c) => {
28205
+ const handler$74 = async (c) => {
28059
28206
  const organization = c.get("organization");
28060
28207
  const triggerId = c.req.param("triggerId") ?? "";
28061
28208
  const attachmentId = c.req.param("attachmentId") ?? "";
@@ -28127,7 +28274,7 @@ var InvokeHttpError = class extends Error {
28127
28274
  * Manually invoke a trigger from the dashboard or CLI. Validates webhook input against
28128
28275
  * stored attachment schemas, then enqueues a trigger job on the project's queue.
28129
28276
  */
28130
- const handler$72 = async (c) => {
28277
+ const handler$73 = async (c) => {
28131
28278
  const { organizationId } = c.get("organization");
28132
28279
  const triggerId = c.req.param("triggerId") ?? "";
28133
28280
  if (!triggerId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
@@ -28209,7 +28356,7 @@ const handler$72 = async (c) => {
28209
28356
  * Form metadata for the dashboard invoke popover: webhook request schemas and
28210
28357
  * cron's read-only static payload.
28211
28358
  */
28212
- const handler$71 = async (c) => {
28359
+ const handler$72 = async (c) => {
28213
28360
  const triggerId = c.req.param("triggerId") ?? "";
28214
28361
  if (!triggerId.trim()) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid trigger id" }), 400);
28215
28362
  const filter = await resolveListProjectIds(c, listScope(c, require_with_project_scope.projectListScope(require_with_project_scope.accessContext(c))));
@@ -28275,7 +28422,7 @@ function latestRecentInteractionAt(recent) {
28275
28422
  //#endregion
28276
28423
  //#region src/routes/account/recents/GET.ts
28277
28424
  const RECENTS_LIMIT = 50;
28278
- const handler$70 = async (c) => {
28425
+ const handler$71 = async (c) => {
28279
28426
  const userId = c.get("user").id;
28280
28427
  const organization = c.get("organization");
28281
28428
  const grantedProjectIdsList = await grantedProjectIds(c, { kind: "member-only" });
@@ -28301,7 +28448,7 @@ const handler$70 = async (c) => {
28301
28448
  };
28302
28449
  //#endregion
28303
28450
  //#region src/routes/account/projects/GET.ts
28304
- const handler$69 = async (c) => {
28451
+ const handler$70 = async (c) => {
28305
28452
  const organization = c.get("organization");
28306
28453
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, require_with_project_scope.projectListScope(require_with_project_scope.accessContext(c))));
28307
28454
  const projects = await (0, _keystrokehq_platform_database.selectProjectsByOrganizationId)(organization.organizationId, { grantedProjectIds: grantedProjectIdsList });
@@ -28327,7 +28474,7 @@ function mergeProjectListMetrics(input) {
28327
28474
  }
28328
28475
  //#endregion
28329
28476
  //#region src/routes/account/projects/metrics/GET.ts
28330
- const handler$68 = async (c) => {
28477
+ const handler$69 = async (c) => {
28331
28478
  const organization = c.get("organization");
28332
28479
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, require_with_project_scope.projectListScope(require_with_project_scope.accessContext(c))));
28333
28480
  const [resourceCounts, lastDeploymentAtByProject] = await Promise.all([(0, _keystrokehq_database.selectProjectResourceCounts)(grantedProjectIdsList !== void 0 ? { projectIds: grantedProjectIdsList } : void 0), (0, _keystrokehq_platform_database.selectLastDeploymentAtByProject)(organization.organizationId)]);
@@ -28385,7 +28532,7 @@ function createCreateProjectHandler(options = {}) {
28385
28532
  }
28386
28533
  //#endregion
28387
28534
  //#region src/routes/account/projects/slug-available/GET.ts
28388
- const handler$66 = async (c) => {
28535
+ const handler$67 = async (c) => {
28389
28536
  const organization = c.get("organization");
28390
28537
  const parsed = require_project_draft_notifier.ProjectSlugAvailabilityQuerySchema.safeParse({
28391
28538
  slug: c.req.query("slug"),
@@ -28397,12 +28544,12 @@ const handler$66 = async (c) => {
28397
28544
  };
28398
28545
  //#endregion
28399
28546
  //#region src/routes/account/projects/[projectId]/GET.ts
28400
- const handler$65 = async (c) => {
28547
+ const handler$66 = async (c) => {
28401
28548
  return c.json(require_project_draft_notifier.ProjectResponseSchema.parse(require_with_project_scope.routeProject(c.get("project"))));
28402
28549
  };
28403
28550
  //#endregion
28404
28551
  //#region src/routes/account/projects/[projectId]/PATCH.ts
28405
- const handler$64 = async (c) => {
28552
+ const handler$65 = async (c) => {
28406
28553
  const organization = c.get("organization");
28407
28554
  const project = c.get("project");
28408
28555
  const body = await c.req.json().catch(() => null);
@@ -28434,7 +28581,7 @@ function createDeleteProjectHandler(projectGit) {
28434
28581
  }
28435
28582
  //#endregion
28436
28583
  //#region src/routes/account/projects/[projectId]/deployments/GET.ts
28437
- const handler$62 = async (c) => {
28584
+ const handler$63 = async (c) => {
28438
28585
  const rows = await (0, _keystrokehq_platform_database.selectProjectDeployments)(c.get("project").id);
28439
28586
  return c.json(require_project_draft_notifier.ListProjectDeploymentsResponseSchema.parse(rows.map(require_project_draft_notifier.mapProjectDeployment)));
28440
28587
  };
@@ -28442,7 +28589,7 @@ const handler$62 = async (c) => {
28442
28589
  //#region src/routes/account/projects/[projectId]/artifacts/POST.ts
28443
28590
  const DEFAULT_PRESIGN_TTL_SECONDS$1 = 900;
28444
28591
  const ARTIFACT_CONTENT_TYPE = "application/gzip";
28445
- const handler$61 = async (c) => {
28592
+ const handler$62 = async (c) => {
28446
28593
  const project = c.get("project");
28447
28594
  const { organizationId } = c.get("organization");
28448
28595
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
@@ -28485,7 +28632,7 @@ const handler$61 = async (c) => {
28485
28632
  //#endregion
28486
28633
  //#region src/routes/account/projects/[projectId]/artifacts/active/download/GET.ts
28487
28634
  const DEFAULT_PRESIGN_TTL_SECONDS = 900;
28488
- const handler$60 = async (c) => {
28635
+ const handler$61 = async (c) => {
28489
28636
  const project = c.get("project");
28490
28637
  const { organizationId } = c.get("organization");
28491
28638
  const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
@@ -28679,7 +28826,7 @@ function createCompleteProjectArtifactHandler(_projectGit) {
28679
28826
  //#endregion
28680
28827
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/presign/POST.ts
28681
28828
  const SOURCE_BLOB_CONTENT_TYPE = "text/plain; charset=utf-8";
28682
- const handler$58 = async (c) => {
28829
+ const handler$59 = async (c) => {
28683
28830
  const project = c.get("project");
28684
28831
  const artifactId = c.req.param("artifactId");
28685
28832
  if (!artifactId) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -28707,7 +28854,7 @@ const handler$58 = async (c) => {
28707
28854
  };
28708
28855
  //#endregion
28709
28856
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/manifest/POST.ts
28710
- const handler$57 = async (c) => {
28857
+ const handler$58 = async (c) => {
28711
28858
  const project = c.get("project");
28712
28859
  const artifactId = c.req.param("artifactId");
28713
28860
  if (!artifactId) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -28744,7 +28891,7 @@ function extensionFromUpload(contentType, filename) {
28744
28891
  if (fromName && /^[a-z0-9]+$/.test(fromName)) return fromName;
28745
28892
  return require_project_draft_notifier.chatAttachmentExtension(contentType) ?? "bin";
28746
28893
  }
28747
- const handler$56 = async (c) => {
28894
+ const handler$57 = async (c) => {
28748
28895
  const project = c.get("project");
28749
28896
  const slug = c.req.param("slug");
28750
28897
  if (!slug) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Agent slug is required" }), 400);
@@ -28769,7 +28916,7 @@ const handler$56 = async (c) => {
28769
28916
  };
28770
28917
  //#endregion
28771
28918
  //#region src/routes/account/projects/[projectId]/agents/[slug]/attachments/[...key]/GET.ts
28772
- const handler$55 = async (c) => {
28919
+ const handler$56 = async (c) => {
28773
28920
  const project = c.get("project");
28774
28921
  const slug = c.req.param("slug");
28775
28922
  const keyParam = c.req.param("key");
@@ -28785,6 +28932,233 @@ const handler$55 = async (c) => {
28785
28932
  return c.redirect(url, 302);
28786
28933
  };
28787
28934
  //#endregion
28935
+ //#region src/routes/account/projects/[projectId]/agents/[slug]/browser/sessions/[sessionId]/GET.ts
28936
+ const BrowserSessionMetaResponseSchema = zod.z.object({
28937
+ agentSlug: zod.z.string(),
28938
+ sessionId: zod.z.string(),
28939
+ provider: zod.z.enum(["local", "browseruse"]),
28940
+ liveUrl: zod.z.string().optional(),
28941
+ browserUseSessionId: zod.z.string().optional(),
28942
+ browserStartedAt: zod.z.string().optional(),
28943
+ browserUsageSettledAt: zod.z.string().optional(),
28944
+ cloudProfileId: zod.z.string().optional(),
28945
+ timeoutAt: zod.z.string().optional(),
28946
+ recordingStorageKey: zod.z.string().optional(),
28947
+ screenshotStorageKeys: zod.z.array(zod.z.string()).optional(),
28948
+ resumeState: require_project_draft_notifier.BrowserResumeStateSchema.optional(),
28949
+ updatedAt: zod.z.string()
28950
+ });
28951
+ function createHandler$2(settleBrowserUsage) {
28952
+ return async (c) => {
28953
+ const project = c.get("project");
28954
+ const slug = c.req.param("slug");
28955
+ const sessionId = c.req.param("sessionId");
28956
+ if (!slug || !sessionId) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "slug and sessionId are required" }), 400);
28957
+ const agent = await (0, _keystrokehq_database.runWithProjectScope)(project.id, () => (0, _keystrokehq_database.selectAgentBySlug)(slug));
28958
+ if (!agent || agent.projectId !== project.id) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
28959
+ const { organizationId } = c.get("organization");
28960
+ const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
28961
+ if (!organization) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
28962
+ const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
28963
+ let meta = await require_project_draft_notifier.getBrowserSessionMeta(storage, {
28964
+ projectId: project.id,
28965
+ agentId: agent.id,
28966
+ sessionId
28967
+ });
28968
+ if (!meta) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Browser session not found" }), 404);
28969
+ if (settleBrowserUsage && meta.browserUseSessionId && meta.browserStartedAt && !meta.browserUsageSettledAt && meta.timeoutAt && Date.parse(meta.timeoutAt) <= Date.now()) {
28970
+ const apiKey = process.env.BROWSER_USE_API_KEY?.trim();
28971
+ const browser = apiKey ? await getBrowserUseSession({
28972
+ apiKey,
28973
+ sessionId: meta.browserUseSessionId
28974
+ }).catch(() => null) : null;
28975
+ if (browser && browser.status !== "active") {
28976
+ const browserUsageSettledAt = (/* @__PURE__ */ new Date()).toISOString();
28977
+ await settleBrowserUsage({
28978
+ organizationId,
28979
+ projectId: project.id,
28980
+ agentId: agent.id,
28981
+ sessionId,
28982
+ browserUseSessionId: meta.browserUseSessionId,
28983
+ startedAt: browser.startedAt ?? meta.browserStartedAt,
28984
+ finishedAt: browser.finishedAt ?? void 0
28985
+ });
28986
+ meta = {
28987
+ ...meta,
28988
+ browserUsageSettledAt,
28989
+ liveUrl: void 0
28990
+ };
28991
+ await require_project_draft_notifier.putBrowserSessionMeta(storage, {
28992
+ projectId: project.id,
28993
+ agentId: agent.id,
28994
+ sessionId,
28995
+ meta
28996
+ });
28997
+ }
28998
+ }
28999
+ return c.json(BrowserSessionMetaResponseSchema.parse(meta));
29000
+ };
29001
+ }
29002
+ //#endregion
29003
+ //#region src/routes/account/projects/[projectId]/agents/[slug]/browser/open/POST.ts
29004
+ const OpenBodySchema = zod.z.object({
29005
+ url: zod.z.string().optional(),
29006
+ sessionId: zod.z.string().optional()
29007
+ });
29008
+ const OpenResponseSchema = zod.z.object({
29009
+ agentSlug: zod.z.string(),
29010
+ sessionId: zod.z.string(),
29011
+ provider: zod.z.literal("browseruse"),
29012
+ liveUrl: zod.z.string().optional(),
29013
+ browserUseSessionId: zod.z.string(),
29014
+ cloudProfileId: zod.z.string(),
29015
+ url: zod.z.string(),
29016
+ updatedAt: zod.z.string(),
29017
+ hint: zod.z.string()
29018
+ });
29019
+ function createHandler$1(settleBrowserUsage) {
29020
+ return async (c) => {
29021
+ const apiKey = process.env.BROWSER_USE_API_KEY?.trim();
29022
+ if (!apiKey) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Browser Use is not configured on the platform (set BROWSER_USE_API_KEY). Local Playwright is not used for project-linked open." }), 503);
29023
+ const project = c.get("project");
29024
+ const slug = c.req.param("slug");
29025
+ if (!slug) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "slug is required" }), 400);
29026
+ const parsed = OpenBodySchema.safeParse(await c.req.json().catch(() => ({})));
29027
+ if (!parsed.success) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Invalid body" }), 400);
29028
+ const agent = await (0, _keystrokehq_database.runWithProjectScope)(project.id, () => (0, _keystrokehq_database.selectAgentBySlug)(slug));
29029
+ if (!agent || agent.projectId !== project.id) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
29030
+ const { organizationId } = c.get("organization");
29031
+ const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
29032
+ if (!organization) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
29033
+ const storage = (0, _keystrokehq_platform_database.createOrgStorageClient)(organization);
29034
+ const profile = await require_project_draft_notifier.getBrowserProfileMeta(storage, {
29035
+ projectId: project.id,
29036
+ agentId: agent.id
29037
+ });
29038
+ const existing = parsed.data.sessionId ? await require_project_draft_notifier.getBrowserSessionMeta(storage, {
29039
+ projectId: project.id,
29040
+ agentId: agent.id,
29041
+ sessionId: parsed.data.sessionId
29042
+ }) : null;
29043
+ const resumeUrl = existing?.resumeState?.tabs.find((tab) => tab.active)?.url;
29044
+ const requestedUrl = parsed.data.url ?? resumeUrl;
29045
+ const active = existing?.browserUseSessionId ? await getBrowserUseSession({
29046
+ apiKey,
29047
+ sessionId: existing.browserUseSessionId
29048
+ }).catch(() => null) : null;
29049
+ if (active?.status === "active" && active.cdpUrl && parsed.data.url) {
29050
+ await navigateBrowserUseSession(active.cdpUrl, parsed.data.url);
29051
+ const updatedAt = (/* @__PURE__ */ new Date()).toISOString();
29052
+ await require_project_draft_notifier.putBrowserSessionMeta(storage, {
29053
+ projectId: project.id,
29054
+ agentId: agent.id,
29055
+ sessionId: existing.sessionId,
29056
+ meta: {
29057
+ ...existing,
29058
+ updatedAt
29059
+ }
29060
+ });
29061
+ return c.json(OpenResponseSchema.parse({
29062
+ ...existing,
29063
+ liveUrl: active.liveUrl ?? existing?.liveUrl,
29064
+ browserUseSessionId: active.id,
29065
+ cloudProfileId: profile?.cloudProfileId ?? existing?.cloudProfileId,
29066
+ url: parsed.data.url,
29067
+ updatedAt,
29068
+ hint: "Continue in the existing live browser."
29069
+ }));
29070
+ }
29071
+ if (settleBrowserUsage && existing?.browserUseSessionId && !existing.browserUsageSettledAt && existing.browserStartedAt) {
29072
+ const prior = await getBrowserUseSession({
29073
+ apiKey,
29074
+ sessionId: existing.browserUseSessionId
29075
+ }).catch(() => null);
29076
+ if (prior && prior.status !== "active") {
29077
+ const browserUsageSettledAt = (/* @__PURE__ */ new Date()).toISOString();
29078
+ await settleBrowserUsage({
29079
+ organizationId,
29080
+ projectId: project.id,
29081
+ agentId: agent.id,
29082
+ sessionId: existing.sessionId,
29083
+ browserUseSessionId: existing.browserUseSessionId,
29084
+ startedAt: prior.startedAt ?? existing.browserStartedAt,
29085
+ finishedAt: prior.finishedAt ?? void 0
29086
+ });
29087
+ await require_project_draft_notifier.putBrowserSessionMeta(storage, {
29088
+ projectId: project.id,
29089
+ agentId: agent.id,
29090
+ sessionId: existing.sessionId,
29091
+ meta: {
29092
+ ...existing,
29093
+ browserUsageSettledAt
29094
+ }
29095
+ });
29096
+ }
29097
+ }
29098
+ const opened = await openCloudBrowserLogin({
29099
+ apiKey,
29100
+ agentSlug: slug,
29101
+ profileOwnerId: agent.id,
29102
+ ...parsed.data.sessionId ? {
29103
+ sessionId: parsed.data.sessionId,
29104
+ timeout: 5
29105
+ } : {},
29106
+ ...requestedUrl ? { url: requestedUrl } : {},
29107
+ ...profile?.cloudProfileId ? { cloudProfileId: profile.cloudProfileId } : {},
29108
+ record: process.env.AGENT_BROWSER_RECORD === "true"
29109
+ });
29110
+ await require_project_draft_notifier.putBrowserProfileMeta(storage, {
29111
+ projectId: project.id,
29112
+ agentId: agent.id,
29113
+ cloudProfileId: opened.cloudProfileId
29114
+ });
29115
+ const updatedAt = (/* @__PURE__ */ new Date()).toISOString();
29116
+ const meta = {
29117
+ agentSlug: slug,
29118
+ sessionId: opened.sessionId,
29119
+ provider: "browseruse",
29120
+ browserUseSessionId: opened.browserUseSessionId,
29121
+ updatedAt,
29122
+ ...opened.liveUrl ? { liveUrl: opened.liveUrl } : {},
29123
+ browserStartedAt: opened.startedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
29124
+ ...opened.timeoutAt ? { timeoutAt: opened.timeoutAt } : {},
29125
+ ...existing?.recordingStorageKey ? { recordingStorageKey: existing.recordingStorageKey } : {},
29126
+ ...existing?.screenshotStorageKeys ? { screenshotStorageKeys: existing.screenshotStorageKeys } : {},
29127
+ ...existing?.resumeState ? { resumeState: existing.resumeState } : {}
29128
+ };
29129
+ await require_project_draft_notifier.putBrowserSessionMeta(storage, {
29130
+ projectId: project.id,
29131
+ agentId: agent.id,
29132
+ sessionId: opened.sessionId,
29133
+ meta
29134
+ });
29135
+ return c.json(OpenResponseSchema.parse({
29136
+ ...meta,
29137
+ cloudProfileId: opened.cloudProfileId,
29138
+ url: opened.url,
29139
+ hint: "Sign in in the live view, then close when done. Profile cookies persist for this agent."
29140
+ }));
29141
+ };
29142
+ }
29143
+ //#endregion
29144
+ //#region src/routes/account/projects/[projectId]/agents/[slug]/browser/media/[...key]/GET.ts
29145
+ /** Presign/redirect for a browser-media object under this agent. */
29146
+ const handler$55 = async (c) => {
29147
+ const project = c.get("project");
29148
+ const slug = c.req.param("slug");
29149
+ const keyParam = c.req.param("key");
29150
+ if (!slug || !keyParam) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Media key is required" }), 400);
29151
+ const storageKey = keyParam.split("/").map((segment) => decodeURIComponent(segment)).join("/");
29152
+ const agent = await (0, _keystrokehq_database.runWithProjectScope)(project.id, () => (0, _keystrokehq_database.selectAgentBySlug)(slug));
29153
+ if (!agent || agent.projectId !== project.id) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Agent not found" }), 404);
29154
+ if (!require_project_draft_notifier.isBrowserMediaStorageKey(storageKey, project.id, agent.id)) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Media not found" }), 404);
29155
+ const { organizationId } = c.get("organization");
29156
+ const organization = await (0, _keystrokehq_platform_database.selectOrganizationById)(organizationId);
29157
+ if (!organization) return c.json(require_project_draft_notifier.ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
29158
+ const url = await (0, _keystrokehq_platform_database.createOrgStorageClient)(organization).presignGet({ key: storageKey });
29159
+ return c.redirect(url, 302);
29160
+ };
29161
+ //#endregion
28788
29162
  //#region src/routes/account/projects/[projectId]/files/GET.ts
28789
29163
  /**
28790
29164
  * Resolve registry moduleFile values to paths in the deploy source snapshot.
@@ -32273,6 +32647,8 @@ function mountAccountRoutes(options) {
32273
32647
  const listAgentWorkspaceFiles = createListAgentWorkspaceFilesHandler(options.agentWorkspaceFiles);
32274
32648
  const getAgentWorkspaceFileContent = createGetAgentWorkspaceFileContentHandler(options.agentWorkspaceFiles);
32275
32649
  const snapshotAgentEnvImage = createSnapshotAgentEnvImageHandler(options.snapshotAgentEnvImage);
32650
+ const openBrowserSession = createHandler$1(options.settleBrowserUsage);
32651
+ const getBrowserSession = createHandler$2(options.settleBrowserUsage);
32276
32652
  const downloadActiveProjectSource = createDownloadActiveProjectSourceHandler(createProjectSource);
32277
32653
  const getActiveProjectSourceRevision = createGetActiveProjectSourceRevisionHandler(createProjectSource);
32278
32654
  const getTriggerFile = createGetTriggerFileHandler(createProjectSource);
@@ -32306,22 +32682,22 @@ function mountAccountRoutes(options) {
32306
32682
  const requireProjectManageMembers = require_with_project_scope.authorize(require_with_project_scope.projectActions.manageMembers);
32307
32683
  const requireInvitableProjectRole = authorizePayload(require_project_draft_notifier.InviteProjectMembersRequestSchema, ({ c, ctx, body }) => require_with_project_scope.canInviteToProject(ctx, { invitePermission: require_with_project_scope.getProjectInvitePermission(c) }, body.role));
32308
32684
  const requireOrgParam = requireOrganizationParam();
32309
- account.get("/organizations", handler$110);
32310
- account.get("/organizations/slug-available", handler$109);
32685
+ account.get("/organizations", handler$111);
32686
+ account.get("/organizations/slug-available", handler$110);
32311
32687
  account.post("/organizations", createOrganizationHandler(options));
32312
- account.get("/organizations/:organizationId", requireOrgParam, handler$108);
32313
- account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$107);
32314
- account.get("/organizations/:organizationId/branding", requireOrgParam, handler$106);
32315
- account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$105);
32316
- account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$104);
32688
+ account.get("/organizations/:organizationId", requireOrgParam, handler$109);
32689
+ account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$108);
32690
+ account.get("/organizations/:organizationId/branding", requireOrgParam, handler$107);
32691
+ account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$106);
32692
+ account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$105);
32317
32693
  account.get("/invitations", handler$35);
32318
32694
  account.post("/invitations/:invitationId/accept", handler$34);
32319
32695
  account.post("/invitations/:invitationId/decline", handler$33);
32320
- account.get("/users/me/avatar", handler$115);
32321
- account.post("/users/me/avatar/presign", handler$114);
32322
- account.patch("/users/me/avatar", handler$113);
32323
- account.get("/users/me/preferences", handler$112);
32324
- account.patch("/users/me/preferences", handler$111);
32696
+ account.get("/users/me/avatar", handler$116);
32697
+ account.post("/users/me/avatar/presign", handler$115);
32698
+ account.patch("/users/me/avatar", handler$114);
32699
+ account.get("/users/me/preferences", handler$113);
32700
+ account.patch("/users/me/preferences", handler$112);
32325
32701
  const withOrgDb = withOrganizationProjectDatabase();
32326
32702
  orgScoped.get(keystrokeSlackOAuthProvider.routes.start, requireOrgUpdate, withOrgDb, startKeystrokeSlackInstall);
32327
32703
  orgScoped.get(keystrokeSlackOAuthProvider.routes.authorizeUrl, requireOrgUpdate, withOrgDb, getKeystrokeSlackAuthorizeUrl);
@@ -32360,58 +32736,58 @@ function mountAccountRoutes(options) {
32360
32736
  orgScoped.post("/managed-service-credentials", requireManagedServicesManage, handler$8);
32361
32737
  orgScoped.patch("/managed-service-credentials/:id", requireManagedServicesManage, handler$7);
32362
32738
  orgScoped.delete("/managed-service-credentials/:id", requireManagedServicesManage, handler$6);
32363
- orgScoped.get("/agents", withOrgDb, handler$101);
32364
- orgScoped.get("/agents/:agentId", withOrgDb, handler$100);
32365
- orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$99);
32366
- orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$98);
32739
+ orgScoped.get("/agents", withOrgDb, handler$102);
32740
+ orgScoped.get("/agents/:agentId", withOrgDb, handler$101);
32741
+ orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$100);
32742
+ orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$99);
32367
32743
  orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, listAgentWorkspaceFiles);
32368
32744
  orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, getAgentWorkspaceFileContent);
32369
- orgScoped.get("/workflows", withOrgDb, handler$94);
32370
- orgScoped.get("/workflows/forms", handler$93);
32371
- orgScoped.get("/workflows/:workflowId", withOrgDb, handler$92);
32372
- orgScoped.get("/workflows/:workflowId/canvas", withOrgDb, handler$91);
32373
- orgScoped.get("/workflows/:workflowId/canvas/credentials", withOrgDb, handler$90);
32374
- orgScoped.get("/workflows/:workflowId/canvas/runs/:runId", withOrgDb, handler$89);
32745
+ orgScoped.get("/workflows", withOrgDb, handler$95);
32746
+ orgScoped.get("/workflows/forms", handler$94);
32747
+ orgScoped.get("/workflows/:workflowId", withOrgDb, handler$93);
32748
+ orgScoped.get("/workflows/:workflowId/canvas", withOrgDb, handler$92);
32749
+ orgScoped.get("/workflows/:workflowId/canvas/credentials", withOrgDb, handler$91);
32750
+ orgScoped.get("/workflows/:workflowId/canvas/runs/:runId", withOrgDb, handler$90);
32375
32751
  orgScoped.get("/workflows/:workflowId/overview", withOrgDb, getWorkflowOverview);
32376
- orgScoped.get("/workflows/:workflowId/runs", withOrgDb, handler$80);
32377
- orgScoped.get("/workflows/:workflowId/run-inputs", withOrgDb, handler$88);
32378
- orgScoped.put("/workflows/:workflowId/run-inputs", withOrgDb, handler$87);
32379
- orgScoped.post("/workflows/:workflowId/run", withOrgDb, handler$86);
32380
- orgScoped.get("/workflows/:workflowId/form", withOrgDb, handler$85);
32381
- orgScoped.put("/workflows/:workflowId/form", withOrgDb, handler$84);
32382
- orgScoped.delete("/workflows/:workflowId/form", withOrgDb, handler$83);
32383
- orgScoped.post("/workflows/:workflowId/form/rotate", withOrgDb, handler$82);
32384
- orgScoped.post("/workflows/:workflowId/attachments/presign", withOrgDb, handler$81);
32385
- orgScoped.get("/skills", withOrgDb, handler$78);
32386
- orgScoped.get("/skills/:skillId", withOrgDb, handler$77);
32387
- orgScoped.get("/triggers", withOrgDb, handler$76);
32388
- orgScoped.get("/triggers/:triggerId", withOrgDb, handler$75);
32389
- orgScoped.get("/triggers/:triggerId/runs", withOrgDb, handler$74);
32752
+ orgScoped.get("/workflows/:workflowId/runs", withOrgDb, handler$81);
32753
+ orgScoped.get("/workflows/:workflowId/run-inputs", withOrgDb, handler$89);
32754
+ orgScoped.put("/workflows/:workflowId/run-inputs", withOrgDb, handler$88);
32755
+ orgScoped.post("/workflows/:workflowId/run", withOrgDb, handler$87);
32756
+ orgScoped.get("/workflows/:workflowId/form", withOrgDb, handler$86);
32757
+ orgScoped.put("/workflows/:workflowId/form", withOrgDb, handler$85);
32758
+ orgScoped.delete("/workflows/:workflowId/form", withOrgDb, handler$84);
32759
+ orgScoped.post("/workflows/:workflowId/form/rotate", withOrgDb, handler$83);
32760
+ orgScoped.post("/workflows/:workflowId/attachments/presign", withOrgDb, handler$82);
32761
+ orgScoped.get("/skills", withOrgDb, handler$79);
32762
+ orgScoped.get("/skills/:skillId", withOrgDb, handler$78);
32763
+ orgScoped.get("/triggers", withOrgDb, handler$77);
32764
+ orgScoped.get("/triggers/:triggerId", withOrgDb, handler$76);
32765
+ orgScoped.get("/triggers/:triggerId/runs", withOrgDb, handler$75);
32390
32766
  orgScoped.get("/triggers/:triggerId/file", withOrgDb, getTriggerFile);
32391
32767
  orgScoped.get("/triggers/:triggerId/overview", withOrgDb, getTriggerOverview);
32392
- orgScoped.get("/triggers/:triggerId/invoke-inputs", withOrgDb, handler$71);
32393
- orgScoped.post("/triggers/:triggerId/invoke", withOrgDb, handler$72);
32394
- orgScoped.patch("/triggers/:triggerId/attachments/:attachmentId", withOrgDb, handler$73);
32395
- orgScoped.get("/recents", withOrgDb, handler$70);
32396
- orgScoped.get("/history", withOrgDb, handler$103);
32397
- orgScoped.get("/history/:runId", withOrgDb, handler$102);
32398
- orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$79);
32399
- orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$95);
32768
+ orgScoped.get("/triggers/:triggerId/invoke-inputs", withOrgDb, handler$72);
32769
+ orgScoped.post("/triggers/:triggerId/invoke", withOrgDb, handler$73);
32770
+ orgScoped.patch("/triggers/:triggerId/attachments/:attachmentId", withOrgDb, handler$74);
32771
+ orgScoped.get("/recents", withOrgDb, handler$71);
32772
+ orgScoped.get("/history", withOrgDb, handler$104);
32773
+ orgScoped.get("/history/:runId", withOrgDb, handler$103);
32774
+ orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$80);
32775
+ orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$96);
32400
32776
  orgScoped.get("/credentials", withOrgDb, handler$44);
32401
32777
  orgScoped.post("/credentials", withOrgDb, handler$43);
32402
32778
  orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$42(c, next));
32403
32779
  orgScoped.patch("/credentials/:credentialId", withOrgDb, handler$41);
32404
32780
  orgScoped.post("/credentials/:credentialId/duplicate", withOrgDb, handler$40);
32405
32781
  orgScoped.delete("/credentials/:credentialId", withOrgDb, deleteCredential);
32406
- orgScoped.get("/projects", handler$69);
32407
- orgScoped.get("/projects/slug-available", handler$66);
32408
- orgScoped.get("/projects/metrics", withOrgDb, handler$68);
32782
+ orgScoped.get("/projects", handler$70);
32783
+ orgScoped.get("/projects/slug-available", handler$67);
32784
+ orgScoped.get("/projects/metrics", withOrgDb, handler$69);
32409
32785
  orgScoped.post("/projects", createCreateProjectHandler({
32410
32786
  projectQuotaGate: options.projectQuotaGate,
32411
32787
  projectGit: options.projectGit
32412
32788
  }));
32413
- projectScoped.get("/:projectId", require_with_project_scope.requireProject(), requireProjectMember, handler$65);
32414
- projectScoped.patch("/:projectId", require_with_project_scope.requireProject(), requireProjectMember, requireProjectUpdate, handler$64);
32789
+ projectScoped.get("/:projectId", require_with_project_scope.requireProject(), requireProjectMember, handler$66);
32790
+ projectScoped.patch("/:projectId", require_with_project_scope.requireProject(), requireProjectMember, requireProjectUpdate, handler$65);
32415
32791
  projectScoped.delete("/:projectId", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDelete, createDeleteProjectHandler(options.projectGit));
32416
32792
  projectScoped.get("/:projectId/settings", require_with_project_scope.requireProject(), requireProjectMember, handler$49);
32417
32793
  projectScoped.get("/:projectId/git", require_with_project_scope.requireProject(), requireProjectMember, handler$47);
@@ -32436,19 +32812,23 @@ function mountAccountRoutes(options) {
32436
32812
  projectScoped.get("/:projectId/draft/events", require_with_project_scope.requireProject(), requireProjectMember, getDraftEvents);
32437
32813
  projectScoped.post("/:projectId/draft/commits", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, commitDraft);
32438
32814
  projectScoped.post("/:projectId/draft/commits/from-diff", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, commitDraftFromDiff);
32439
- projectScoped.post("/:projectId/agents/:slug/attachments/presign", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, handler$56);
32815
+ projectScoped.post("/:projectId/agents/:slug/attachments/presign", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, handler$57);
32440
32816
  projectScoped.post("/:projectId/agents/:slug/env-image", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, snapshotAgentEnvImage);
32441
- projectScoped.get("/:projectId/agents/:slug/attachments/:key{.+}", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, handler$55);
32817
+ projectScoped.get("/:projectId/agents/:slug/attachments/:key{.+}", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, handler$56);
32818
+ projectScoped.get("/:projectId/agents/:slug/browser/sessions/:sessionId", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, getBrowserSession);
32819
+ projectScoped.post("/:projectId/agents/:slug/browser/open", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, openBrowserSession);
32820
+ projectScoped.get("/:projectId/agents/:slug/browser/media/:key{.+}", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, handler$55);
32442
32821
  projectScoped.get("/:projectId/artifacts/:artifactId/files/content", require_with_project_scope.requireProject(), requireProjectMember, getProjectFileContent);
32443
- projectScoped.get("/:projectId/deployments", require_with_project_scope.requireProject(), requireProjectMember, handler$62);
32444
- projectScoped.get("/:projectId/artifacts/active/download", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$60);
32822
+ projectScoped.get("/:projectId/deployments", require_with_project_scope.requireProject(), requireProjectMember, handler$63);
32823
+ projectScoped.get("/:projectId/artifacts/active/download", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$61);
32445
32824
  projectScoped.get("/:projectId/artifacts/active/source", require_with_project_scope.requireProject(), requireProjectMember, withOrgDb, downloadActiveProjectSource);
32446
32825
  projectScoped.get("/:projectId/artifacts/active/source/revision", require_with_project_scope.requireProject(), requireProjectMember, getActiveProjectSourceRevision);
32447
- projectScoped.post("/:projectId/artifacts", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$61);
32826
+ projectScoped.post("/:projectId/artifacts", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$62);
32448
32827
  projectScoped.post("/:projectId/artifacts/:artifactId/complete", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, completeProjectArtifact);
32449
- projectScoped.post("/:projectId/artifacts/:artifactId/source/presign", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$58);
32450
- projectScoped.post("/:projectId/artifacts/:artifactId/source/manifest", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$57);
32828
+ projectScoped.post("/:projectId/artifacts/:artifactId/source/presign", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$59);
32829
+ projectScoped.post("/:projectId/artifacts/:artifactId/source/manifest", require_with_project_scope.requireProject(), requireProjectMember, requireProjectDeploy, handler$58);
32451
32830
  options.platformAgent?.mountOrgRoutes(orgScoped);
32831
+ options.brain?.mountAccountRoutes(orgScoped);
32452
32832
  orgScoped.route("/projects", projectScoped);
32453
32833
  account.route("/", orgScoped);
32454
32834
  return account;
@@ -32580,7 +32960,7 @@ async function runOrgDatabaseQuery(options, query) {
32580
32960
  (0, _keystrokehq_database.releaseProjectDatabasePool)(options);
32581
32961
  }
32582
32962
  }
32583
- function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp) {
32963
+ function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp, brain) {
32584
32964
  const internal = new hono.Hono();
32585
32965
  const protect = require_with_project_scope.requireWorkerToken(workerToken);
32586
32966
  const materialize = (0, _keystrokehq_runtime.createCredentialMaterializeHandler)(tokenRefresh, { resolveSandboxAccessToken: mcp ? (connectionId) => mcp.resolveSandboxAccessToken(connectionId) : void 0 });
@@ -32647,6 +33027,14 @@ function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp) {
32647
33027
  if (early) return early;
32648
33028
  await next();
32649
33029
  });
33030
+ internal.use("/organizations/:organizationId/*", async (c, next) => {
33031
+ const verified = require_project_draft_notifier.verifyOrgWorkerToken(workerToken, require_with_project_scope.readWorkerTokenFromRequest(c));
33032
+ if (verified && verified.organizationId !== c.req.param("organizationId")) return c.json({
33033
+ error: "unauthorized",
33034
+ message: "Token org mismatch."
33035
+ }, 401);
33036
+ await next();
33037
+ });
32650
33038
  internal.use("/projects/:projectId/*", async (c, next) => {
32651
33039
  const verified = require_project_draft_notifier.verifyOrgWorkerToken(workerToken, require_with_project_scope.readWorkerTokenFromRequest(c));
32652
33040
  if (verified) {
@@ -32666,6 +33054,7 @@ function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, mcp) {
32666
33054
  return c.json({ orgSlug: organization.slug });
32667
33055
  });
32668
33056
  mcp?.mountInternalRoutes?.(internal, { withProjectScope: require_with_project_scope.withProjectScope });
33057
+ brain?.mountInternalRoutes(internal);
32669
33058
  internal.post("/projects/:projectId/credentials/materialize", async (c) => {
32670
33059
  const response = await require_with_project_scope.withProjectScope(c.req.param("projectId"), async () => materialize(c));
32671
33060
  if (response === void 0) return c.json({ error: "Project not found" }, 404);
@@ -33028,12 +33417,14 @@ async function createApp(auth, options) {
33028
33417
  projectGit: options.projectGit,
33029
33418
  draftNotifier,
33030
33419
  platformAgent: options.platformAgent,
33420
+ brain: options.brain,
33031
33421
  agentWorkspaceFiles: options.agentWorkspaceFiles,
33422
+ settleBrowserUsage: options.settleBrowserUsage,
33032
33423
  snapshotAgentEnvImage: options.snapshotAgentEnvImage
33033
33424
  }));
33034
33425
  },
33035
33426
  mountInternal: (app, { tokenRefresh }) => {
33036
- app.route("/internal", mountInternalRoutes(options.hosting.workerRuntime.workerToken, tokenRefresh, options.llmProxy, options.mcp));
33427
+ app.route("/internal", mountInternalRoutes(options.hosting.workerRuntime.workerToken, tokenRefresh, options.llmProxy, options.mcp, options.brain));
33037
33428
  }
33038
33429
  });
33039
33430
  }
@@ -33194,6 +33585,7 @@ async function startPlatformServer(platformConfig, hooks = {}) {
33194
33585
  artifactId
33195
33586
  });
33196
33587
  } : void 0,
33588
+ validateProjectDeployManifest: platformConfig.validateProjectDeployManifest,
33197
33589
  afterPromoteProjectDeploy: platformConfig.afterPromoteProjectDeploy,
33198
33590
  afterProjectDeployHealthFailure: platformConfig.projectGit ? async ({ projectId, artifactId }) => {
33199
33591
  await cleanupManagedGitAfterHealthFailure({
@@ -33280,9 +33672,11 @@ async function startPlatformServer(platformConfig, hooks = {}) {
33280
33672
  draftCommandRunner: platformConfig.draftCommandRunner,
33281
33673
  draftNotifier: platformConfig.draftNotifier,
33282
33674
  agentWorkspaceFiles: platformConfig.agentWorkspaceFiles,
33675
+ settleBrowserUsage: platformConfig.settleBrowserUsage,
33283
33676
  snapshotAgentEnvImage: platformConfig.snapshotAgentEnvImage,
33284
33677
  orgRateLimit: platformConfig.orgRateLimit,
33285
- platformAgent: platformConfig.platformAgent
33678
+ platformAgent: platformConfig.platformAgent,
33679
+ brain: platformConfig.brain
33286
33680
  });
33287
33681
  await hooks.afterCreateApp?.(app, auth);
33288
33682
  const port = resolvePlatformListenPort();
@@ -33427,4 +33821,4 @@ Object.defineProperty(exports, "x$1", {
33427
33821
  }
33428
33822
  });
33429
33823
 
33430
- //# sourceMappingURL=start-bgZZCOmu.cjs.map
33824
+ //# sourceMappingURL=start-BJw3ihFS.cjs.map