@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.
- package/dist/{awk2-LA3USKJP-ByfczQFR.mjs → awk2-LA3USKJP-BKuMVeOB.mjs} +2 -2
- package/dist/{awk2-LA3USKJP-ByfczQFR.mjs.map → awk2-LA3USKJP-BKuMVeOB.mjs.map} +1 -1
- package/dist/{awk2-LA3USKJP-DMwZ6QQr.cjs → awk2-LA3USKJP-uE6zOSil.cjs} +2 -2
- package/dist/{awk2-LA3USKJP-DMwZ6QQr.cjs.map → awk2-LA3USKJP-uE6zOSil.cjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-TPM8YCIT.cjs → base64-C2AIWVNC-CDGwGwLv.cjs} +2 -2
- package/dist/{base64-C2AIWVNC-TPM8YCIT.cjs.map → base64-C2AIWVNC-CDGwGwLv.cjs.map} +1 -1
- package/dist/{base64-C2AIWVNC-DhLdSVMT.mjs → base64-C2AIWVNC-DJcPDkRK.mjs} +2 -2
- package/dist/{base64-C2AIWVNC-DhLdSVMT.mjs.map → base64-C2AIWVNC-DJcPDkRK.mjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-0JXMDwY6.mjs → bash-YZ33HQZQ-BC6yOs7H.mjs} +2 -2
- package/dist/{bash-YZ33HQZQ-0JXMDwY6.mjs.map → bash-YZ33HQZQ-BC6yOs7H.mjs.map} +1 -1
- package/dist/{bash-YZ33HQZQ-3gtMzQUb.cjs → bash-YZ33HQZQ-ySQQCFf9.cjs} +2 -2
- package/dist/{bash-YZ33HQZQ-3gtMzQUb.cjs.map → bash-YZ33HQZQ-ySQQCFf9.cjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-DGwUv9Kz.cjs → cat-TSFMZVYS--RzScLHz.cjs} +3 -3
- package/dist/{cat-TSFMZVYS-DGwUv9Kz.cjs.map → cat-TSFMZVYS--RzScLHz.cjs.map} +1 -1
- package/dist/{cat-TSFMZVYS-pOt--woU.mjs → cat-TSFMZVYS-CJ6mQfvI.mjs} +3 -3
- package/dist/{cat-TSFMZVYS-pOt--woU.mjs.map → cat-TSFMZVYS-CJ6mQfvI.mjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-IFTXCE4s.mjs → chunk-5H5SCKJM-BdQ2tIwA.mjs} +2 -2
- package/dist/{chunk-5H5SCKJM-IFTXCE4s.mjs.map → chunk-5H5SCKJM-BdQ2tIwA.mjs.map} +1 -1
- package/dist/{chunk-5H5SCKJM-Dfxe1gZt.cjs → chunk-5H5SCKJM-CZxhImiD.cjs} +2 -2
- package/dist/{chunk-5H5SCKJM-Dfxe1gZt.cjs.map → chunk-5H5SCKJM-CZxhImiD.cjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-F3UFTyNi.cjs → chunk-AQ6FYS2X-Zc2W4QMU.cjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-F3UFTyNi.cjs.map → chunk-AQ6FYS2X-Zc2W4QMU.cjs.map} +1 -1
- package/dist/{chunk-AQ6FYS2X-CeO3SltC.mjs → chunk-AQ6FYS2X-tGyu7HwM.mjs} +2 -2
- package/dist/{chunk-AQ6FYS2X-CeO3SltC.mjs.map → chunk-AQ6FYS2X-tGyu7HwM.mjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-ahdwSYy4.cjs → chunk-CHFEPBH4-B3olJhLL.cjs} +2 -2
- package/dist/{chunk-CHFEPBH4-ahdwSYy4.cjs.map → chunk-CHFEPBH4-B3olJhLL.cjs.map} +1 -1
- package/dist/{chunk-CHFEPBH4-DXT2jaxl.mjs → chunk-CHFEPBH4-CkdOgmKT.mjs} +2 -2
- package/dist/{chunk-CHFEPBH4-DXT2jaxl.mjs.map → chunk-CHFEPBH4-CkdOgmKT.mjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-Dlc9htiv.cjs → chunk-EBAPSGAO-B_b5_B0U.cjs} +2 -2
- package/dist/{chunk-EBAPSGAO-Dlc9htiv.cjs.map → chunk-EBAPSGAO-B_b5_B0U.cjs.map} +1 -1
- package/dist/{chunk-EBAPSGAO-BH9U8nRM.mjs → chunk-EBAPSGAO-CTOjh6Dk.mjs} +2 -2
- package/dist/{chunk-EBAPSGAO-BH9U8nRM.mjs.map → chunk-EBAPSGAO-CTOjh6Dk.mjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-CN3XABuh.mjs → chunk-LEKBROJD-9J-ouZmr.mjs} +2 -2
- package/dist/{chunk-LEKBROJD-CN3XABuh.mjs.map → chunk-LEKBROJD-9J-ouZmr.mjs.map} +1 -1
- package/dist/{chunk-LEKBROJD-CyvuoMFA.cjs → chunk-LEKBROJD-CaQZRDQo.cjs} +2 -2
- package/dist/{chunk-LEKBROJD-CyvuoMFA.cjs.map → chunk-LEKBROJD-CaQZRDQo.cjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-B1fgFmr7.cjs → chunk-VPADYNBD-Df6eBFS5.cjs} +2 -2
- package/dist/{chunk-VPADYNBD-B1fgFmr7.cjs.map → chunk-VPADYNBD-Df6eBFS5.cjs.map} +1 -1
- package/dist/{chunk-VPADYNBD-CoDQW9rd.mjs → chunk-VPADYNBD-rUjh3V91.mjs} +2 -2
- package/dist/{chunk-VPADYNBD-CoDQW9rd.mjs.map → chunk-VPADYNBD-rUjh3V91.mjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-Bqhg2MlS.mjs → chunk-YCLFEX4T-ZlD89Xad.mjs} +2 -2
- package/dist/{chunk-YCLFEX4T-Bqhg2MlS.mjs.map → chunk-YCLFEX4T-ZlD89Xad.mjs.map} +1 -1
- package/dist/{chunk-YCLFEX4T-BhkOyHi8.cjs → chunk-YCLFEX4T-uHkQ9RlV.cjs} +2 -2
- package/dist/{chunk-YCLFEX4T-BhkOyHi8.cjs.map → chunk-YCLFEX4T-uHkQ9RlV.cjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-2pQbXs2k.mjs → column-XT6UFXNQ-CqVWzha1.mjs} +2 -2
- package/dist/{column-XT6UFXNQ-2pQbXs2k.mjs.map → column-XT6UFXNQ-CqVWzha1.mjs.map} +1 -1
- package/dist/{column-XT6UFXNQ-vx9cFrby.cjs → column-XT6UFXNQ-M29JNaKQ.cjs} +2 -2
- package/dist/{column-XT6UFXNQ-vx9cFrby.cjs.map → column-XT6UFXNQ-M29JNaKQ.cjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-BqGE2v_-.mjs → comm-VV2LDX2J-DmVZ2wGn.mjs} +2 -2
- package/dist/{comm-VV2LDX2J-BqGE2v_-.mjs.map → comm-VV2LDX2J-DmVZ2wGn.mjs.map} +1 -1
- package/dist/{comm-VV2LDX2J-BOZDvYIa.cjs → comm-VV2LDX2J-k1LAn-UX.cjs} +2 -2
- package/dist/{comm-VV2LDX2J-BOZDvYIa.cjs.map → comm-VV2LDX2J-k1LAn-UX.cjs.map} +1 -1
- package/dist/{config-7QWAcHEf.d.mts → config-3ZXCaTiz.d.mts} +34 -8
- package/dist/{config-Bc0kWwBk.d.cts → config-C1blpLvD.d.cts} +34 -8
- package/dist/{config-BEXGfMWX.mjs → config-CqA6LTcB.mjs} +3 -3
- package/dist/config-CqA6LTcB.mjs.map +1 -0
- package/dist/{config-BXIsWKDr.cjs → config-Vk9Uvgd6.cjs} +3 -3
- package/dist/config-Vk9Uvgd6.cjs.map +1 -0
- package/dist/config.cjs +2 -2
- package/dist/config.d.cts +2 -2
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +2 -2
- package/dist/{cp-BISAAS7A-B8FLyvxG.mjs → cp-BISAAS7A-CJkhs863.mjs} +2 -2
- package/dist/{cp-BISAAS7A-B8FLyvxG.mjs.map → cp-BISAAS7A-CJkhs863.mjs.map} +1 -1
- package/dist/{cp-BISAAS7A-BPMpNsAw.cjs → cp-BISAAS7A-LMQ-Lgu3.cjs} +2 -2
- package/dist/{cp-BISAAS7A-BPMpNsAw.cjs.map → cp-BISAAS7A-LMQ-Lgu3.cjs.map} +1 -1
- package/dist/{cut-OKARJCCV-D0Odc3Jf.cjs → cut-OKARJCCV-BiAZwS61.cjs} +3 -3
- package/dist/{cut-OKARJCCV-D0Odc3Jf.cjs.map → cut-OKARJCCV-BiAZwS61.cjs.map} +1 -1
- package/dist/{cut-OKARJCCV-D8thql_D.mjs → cut-OKARJCCV-CtFH2BBH.mjs} +3 -3
- package/dist/{cut-OKARJCCV-D8thql_D.mjs.map → cut-OKARJCCV-CtFH2BBH.mjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-oslL1LAV.cjs → diff-MWJFIG7X-B9KQ6sp2.cjs} +2 -2
- package/dist/{diff-MWJFIG7X-oslL1LAV.cjs.map → diff-MWJFIG7X-B9KQ6sp2.cjs.map} +1 -1
- package/dist/{diff-MWJFIG7X-Drqts0Ou.mjs → diff-MWJFIG7X-CCt8XQbx.mjs} +2 -2
- package/dist/{diff-MWJFIG7X-Drqts0Ou.mjs.map → diff-MWJFIG7X-CCt8XQbx.mjs.map} +1 -1
- package/dist/{dist-kYSK2aR1.cjs → dist-DCBZwccy.cjs} +10 -2
- package/dist/dist-DCBZwccy.cjs.map +1 -0
- package/dist/{dist-CGVfb4k_.mjs → dist-knpBLc4g.mjs} +10 -2
- package/dist/{dist-CGVfb4k_.mjs.map → dist-knpBLc4g.mjs.map} +1 -1
- package/dist/{du-572XNP42-CELJ23aS.mjs → du-572XNP42-Cfmnvzp8.mjs} +2 -2
- package/dist/{du-572XNP42-CELJ23aS.mjs.map → du-572XNP42-Cfmnvzp8.mjs.map} +1 -1
- package/dist/{du-572XNP42-DmOYu76Z.cjs → du-572XNP42-TQqS6aEh.cjs} +2 -2
- package/dist/{du-572XNP42-DmOYu76Z.cjs.map → du-572XNP42-TQqS6aEh.cjs.map} +1 -1
- package/dist/{env-36M5BO7M-DZfbg9cL.cjs → env-36M5BO7M-DB1ByvdV.cjs} +2 -2
- package/dist/{env-36M5BO7M-DZfbg9cL.cjs.map → env-36M5BO7M-DB1ByvdV.cjs.map} +1 -1
- package/dist/{env-36M5BO7M-CNN23vys.mjs → env-36M5BO7M-DzamDw0x.mjs} +2 -2
- package/dist/{env-36M5BO7M-CNN23vys.mjs.map → env-36M5BO7M-DzamDw0x.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-PLyckfMd.mjs → expand-JSPG6VOP-CBZ5VTZh.mjs} +2 -2
- package/dist/{expand-JSPG6VOP-PLyckfMd.mjs.map → expand-JSPG6VOP-CBZ5VTZh.mjs.map} +1 -1
- package/dist/{expand-JSPG6VOP-Bi-8GRhN.cjs → expand-JSPG6VOP-wdcwExNq.cjs} +2 -2
- package/dist/{expand-JSPG6VOP-Bi-8GRhN.cjs.map → expand-JSPG6VOP-wdcwExNq.cjs.map} +1 -1
- package/dist/{expr-5JAACS4X-BqIxQcAx.mjs → expr-5JAACS4X-C-EnCCF2.mjs} +2 -2
- package/dist/{expr-5JAACS4X-BqIxQcAx.mjs.map → expr-5JAACS4X-C-EnCCF2.mjs.map} +1 -1
- package/dist/{expr-5JAACS4X-BNy25DC2.cjs → expr-5JAACS4X-CKlqA3rx.cjs} +2 -2
- package/dist/{expr-5JAACS4X-BNy25DC2.cjs.map → expr-5JAACS4X-CKlqA3rx.cjs.map} +1 -1
- package/dist/{find-INTH3OLC-2piuR3-O.cjs → find-INTH3OLC-CkQ9J21w.cjs} +3 -3
- package/dist/{find-INTH3OLC-2piuR3-O.cjs.map → find-INTH3OLC-CkQ9J21w.cjs.map} +1 -1
- package/dist/{find-INTH3OLC-DH8DXZHk.mjs → find-INTH3OLC-DkRilJpD.mjs} +3 -3
- package/dist/{find-INTH3OLC-DH8DXZHk.mjs.map → find-INTH3OLC-DkRilJpD.mjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-Bd1uAxr4.cjs → fold-4TQNYMSW-B-REYZ2T.cjs} +2 -2
- package/dist/{fold-4TQNYMSW-Bd1uAxr4.cjs.map → fold-4TQNYMSW-B-REYZ2T.cjs.map} +1 -1
- package/dist/{fold-4TQNYMSW-CsMYO96e.mjs → fold-4TQNYMSW-CsYQfT6n.mjs} +2 -2
- package/dist/{fold-4TQNYMSW-CsMYO96e.mjs.map → fold-4TQNYMSW-CsYQfT6n.mjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-Cds5pG3P.mjs → grep-V3LQVMRQ-CCkpNQq2.mjs} +4 -4
- package/dist/{grep-V3LQVMRQ-Cds5pG3P.mjs.map → grep-V3LQVMRQ-CCkpNQq2.mjs.map} +1 -1
- package/dist/{grep-V3LQVMRQ-DBBMtXpt.cjs → grep-V3LQVMRQ-Dqvc044Y.cjs} +4 -4
- package/dist/{grep-V3LQVMRQ-DBBMtXpt.cjs.map → grep-V3LQVMRQ-Dqvc044Y.cjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-CdOkcay5.cjs → gzip-O5ASJAFY-CxrvMOo3.cjs} +2 -2
- package/dist/{gzip-O5ASJAFY-CdOkcay5.cjs.map → gzip-O5ASJAFY-CxrvMOo3.cjs.map} +1 -1
- package/dist/{gzip-O5ASJAFY-BUdYCD74.mjs → gzip-O5ASJAFY-DgV2lPtN.mjs} +2 -2
- package/dist/{gzip-O5ASJAFY-BUdYCD74.mjs.map → gzip-O5ASJAFY-DgV2lPtN.mjs.map} +1 -1
- package/dist/{head-442HYESI-DpretS3H.cjs → head-442HYESI-BNn4Zd5W.cjs} +2 -2
- package/dist/{head-442HYESI-DpretS3H.cjs.map → head-442HYESI-BNn4Zd5W.cjs.map} +1 -1
- package/dist/{head-442HYESI-_V6c_Y8y.mjs → head-442HYESI-DW-UZKJE.mjs} +2 -2
- package/dist/{head-442HYESI-_V6c_Y8y.mjs.map → head-442HYESI-DW-UZKJE.mjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-CWp0eQ2z.cjs → help-HZ6M2CKN-C62cNKDA.cjs} +2 -2
- package/dist/{help-HZ6M2CKN-CWp0eQ2z.cjs.map → help-HZ6M2CKN-C62cNKDA.cjs.map} +1 -1
- package/dist/{help-HZ6M2CKN-BqaLEgp2.mjs → help-HZ6M2CKN-Qo4lB8OP.mjs} +2 -2
- package/dist/{help-HZ6M2CKN-BqaLEgp2.mjs.map → help-HZ6M2CKN-Qo4lB8OP.mjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-CAcZBrRZ.mjs → html-to-markdown-JW4MSQZO-CKrnTTGV.mjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-CAcZBrRZ.mjs.map → html-to-markdown-JW4MSQZO-CKrnTTGV.mjs.map} +1 -1
- package/dist/{html-to-markdown-JW4MSQZO-DcGBGpbg.cjs → html-to-markdown-JW4MSQZO-DXxS5cxI.cjs} +3 -3
- package/dist/{html-to-markdown-JW4MSQZO-DcGBGpbg.cjs.map → html-to-markdown-JW4MSQZO-DXxS5cxI.cjs.map} +1 -1
- package/dist/internal.cjs +2 -2
- package/dist/internal.d.cts +2 -2
- package/dist/internal.d.mts +2 -2
- package/dist/internal.mjs +2 -2
- package/dist/{join-TBRGI3LQ-CzqTCyC_.cjs → join-TBRGI3LQ-8cSkvs72.cjs} +2 -2
- package/dist/{join-TBRGI3LQ-CzqTCyC_.cjs.map → join-TBRGI3LQ-8cSkvs72.cjs.map} +1 -1
- package/dist/{join-TBRGI3LQ-A6BX1u07.mjs → join-TBRGI3LQ-CRFay7fz.mjs} +2 -2
- package/dist/{join-TBRGI3LQ-A6BX1u07.mjs.map → join-TBRGI3LQ-CRFay7fz.mjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-BJYQ4YMc.mjs → jq-4XLYLOS5-DfZRPbAf.mjs} +4 -4
- package/dist/{jq-4XLYLOS5-BJYQ4YMc.mjs.map → jq-4XLYLOS5-DfZRPbAf.mjs.map} +1 -1
- package/dist/{jq-4XLYLOS5-Dzk1Cr1F.cjs → jq-4XLYLOS5-edqMm9y9.cjs} +4 -4
- package/dist/{jq-4XLYLOS5-Dzk1Cr1F.cjs.map → jq-4XLYLOS5-edqMm9y9.cjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-QGZXHyY0.mjs → js-exec-N5KEZBH7-DLlRvb2Z.mjs} +3 -3
- package/dist/{js-exec-N5KEZBH7-QGZXHyY0.mjs.map → js-exec-N5KEZBH7-DLlRvb2Z.mjs.map} +1 -1
- package/dist/{js-exec-N5KEZBH7-Bcd8otKl.cjs → js-exec-N5KEZBH7-Zyo2F6Ti.cjs} +3 -3
- package/dist/{js-exec-N5KEZBH7-Bcd8otKl.cjs.map → js-exec-N5KEZBH7-Zyo2F6Ti.cjs.map} +1 -1
- package/dist/lib/public-models.cjs +40 -11
- package/dist/lib/public-models.cjs.map +1 -1
- package/dist/lib/public-models.d.cts +25 -4
- package/dist/lib/public-models.d.mts +25 -4
- package/dist/lib/public-models.mjs +39 -12
- package/dist/lib/public-models.mjs.map +1 -1
- package/dist/{lib-DDGDxczq.cjs → lib-Bs77v-gS.cjs} +2 -2
- package/dist/{lib-DDGDxczq.cjs.map → lib-Bs77v-gS.cjs.map} +1 -1
- package/dist/{lib-Jj_eXohJ.mjs → lib-CFo1OZlw.mjs} +2 -2
- package/dist/{lib-Jj_eXohJ.mjs.map → lib-CFo1OZlw.mjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-C5UT-Ujb.cjs → ln-4LGSXXGD-C1lfOtP2.cjs} +2 -2
- package/dist/{ln-4LGSXXGD-C5UT-Ujb.cjs.map → ln-4LGSXXGD-C1lfOtP2.cjs.map} +1 -1
- package/dist/{ln-4LGSXXGD-aZgyO6BG.mjs → ln-4LGSXXGD-DbgzmDmw.mjs} +2 -2
- package/dist/{ln-4LGSXXGD-aZgyO6BG.mjs.map → ln-4LGSXXGD-DbgzmDmw.mjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-C3KTKhlL.mjs → ls-ZJGQER7M-BIbwj43R.mjs} +2 -2
- package/dist/{ls-ZJGQER7M-C3KTKhlL.mjs.map → ls-ZJGQER7M-BIbwj43R.mjs.map} +1 -1
- package/dist/{ls-ZJGQER7M-CzK8vxkc.cjs → ls-ZJGQER7M-D3t0QDQM.cjs} +2 -2
- package/dist/{ls-ZJGQER7M-CzK8vxkc.cjs.map → ls-ZJGQER7M-D3t0QDQM.cjs.map} +1 -1
- package/dist/{lzma-wgqkUDaW.cjs → lzma-Bsuh228D.cjs} +2 -2
- package/dist/{lzma-wgqkUDaW.cjs.map → lzma-Bsuh228D.cjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-CmI2Hsa_.mjs → md5sum-SPU24VSG-BiWtAKaM.mjs} +3 -3
- package/dist/{md5sum-SPU24VSG-CmI2Hsa_.mjs.map → md5sum-SPU24VSG-BiWtAKaM.mjs.map} +1 -1
- package/dist/{md5sum-SPU24VSG-BcSybbbv.cjs → md5sum-SPU24VSG-DJIgz_9a.cjs} +3 -3
- package/dist/{md5sum-SPU24VSG-BcSybbbv.cjs.map → md5sum-SPU24VSG-DJIgz_9a.cjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-Dz0ilrHF.mjs → mkdir-MEPGZOB6-B1i3E32f.mjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-Dz0ilrHF.mjs.map → mkdir-MEPGZOB6-B1i3E32f.mjs.map} +1 -1
- package/dist/{mkdir-MEPGZOB6-Bks_xob7.cjs → mkdir-MEPGZOB6-BqMED7DB.cjs} +2 -2
- package/dist/{mkdir-MEPGZOB6-Bks_xob7.cjs.map → mkdir-MEPGZOB6-BqMED7DB.cjs.map} +1 -1
- package/dist/{mv-W5BIQ646-BQe2vxEx.cjs → mv-W5BIQ646-DFL2qoA8.cjs} +2 -2
- package/dist/{mv-W5BIQ646-BQe2vxEx.cjs.map → mv-W5BIQ646-DFL2qoA8.cjs.map} +1 -1
- package/dist/{mv-W5BIQ646-BYWL1wkh.mjs → mv-W5BIQ646-nkURfvBY.mjs} +2 -2
- package/dist/{mv-W5BIQ646-BYWL1wkh.mjs.map → mv-W5BIQ646-nkURfvBY.mjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-CHu4o_ve.cjs → nl-WSDW7I4O-WXzYOkjQ.cjs} +2 -2
- package/dist/{nl-WSDW7I4O-CHu4o_ve.cjs.map → nl-WSDW7I4O-WXzYOkjQ.cjs.map} +1 -1
- package/dist/{nl-WSDW7I4O-DWG5wZv2.mjs → nl-WSDW7I4O-rSBgQURn.mjs} +2 -2
- package/dist/{nl-WSDW7I4O-DWG5wZv2.mjs.map → nl-WSDW7I4O-rSBgQURn.mjs.map} +1 -1
- package/dist/{od-WOKFDJTP-C0KKUEqR.mjs → od-WOKFDJTP-CJFl9Ohq.mjs} +2 -2
- package/dist/{od-WOKFDJTP-C0KKUEqR.mjs.map → od-WOKFDJTP-CJFl9Ohq.mjs.map} +1 -1
- package/dist/{od-WOKFDJTP-BEdRBpH3.cjs → od-WOKFDJTP-DHLzLIii.cjs} +2 -2
- package/dist/{od-WOKFDJTP-BEdRBpH3.cjs.map → od-WOKFDJTP-DHLzLIii.cjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-4f_UlCmY.mjs → paste-7JC6S4DX-Bml6SXf_.mjs} +2 -2
- package/dist/{paste-7JC6S4DX-4f_UlCmY.mjs.map → paste-7JC6S4DX-Bml6SXf_.mjs.map} +1 -1
- package/dist/{paste-7JC6S4DX-D2Mx-pNX.cjs → paste-7JC6S4DX-DD5eWGK0.cjs} +2 -2
- package/dist/{paste-7JC6S4DX-D2Mx-pNX.cjs.map → paste-7JC6S4DX-DD5eWGK0.cjs.map} +1 -1
- package/dist/{printf-TWGXF445-Cku6hGej.mjs → printf-TWGXF445-Bmuv2_VM.mjs} +3 -3
- package/dist/{printf-TWGXF445-Cku6hGej.mjs.map → printf-TWGXF445-Bmuv2_VM.mjs.map} +1 -1
- package/dist/{printf-TWGXF445-DCHSwRN6.cjs → printf-TWGXF445-CbiNvLS5.cjs} +3 -3
- package/dist/{printf-TWGXF445-DCHSwRN6.cjs.map → printf-TWGXF445-CbiNvLS5.cjs.map} +1 -1
- package/dist/{project-draft-notifier-DlWmyn5m.cjs → project-draft-notifier-BTrhFlJq.cjs} +799 -26
- package/dist/project-draft-notifier-BTrhFlJq.cjs.map +1 -0
- package/dist/{project-draft-notifier-B7K0aaAp.mjs → project-draft-notifier-DbGvx0CD.mjs} +746 -27
- package/dist/project-draft-notifier-DbGvx0CD.mjs.map +1 -0
- package/dist/{python3-POMOR4OA-DSAcZLAU.cjs → python3-POMOR4OA-BsOUiq4A.cjs} +3 -3
- package/dist/{python3-POMOR4OA-DSAcZLAU.cjs.map → python3-POMOR4OA-BsOUiq4A.cjs.map} +1 -1
- package/dist/{python3-POMOR4OA-BcBrl1X2.mjs → python3-POMOR4OA-SOzmJUy_.mjs} +3 -3
- package/dist/{python3-POMOR4OA-BcBrl1X2.mjs.map → python3-POMOR4OA-SOzmJUy_.mjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-Dmo6hsDY.mjs → rev-5EHFX4EJ-D8G5f0B8.mjs} +2 -2
- package/dist/{rev-5EHFX4EJ-Dmo6hsDY.mjs.map → rev-5EHFX4EJ-D8G5f0B8.mjs.map} +1 -1
- package/dist/{rev-5EHFX4EJ-u03jP4f-.cjs → rev-5EHFX4EJ-DiP5cwEi.cjs} +2 -2
- package/dist/{rev-5EHFX4EJ-u03jP4f-.cjs.map → rev-5EHFX4EJ-DiP5cwEi.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-CTWDqqzD.cjs → rg-S4FXYXWB-B4PncTdP.cjs} +3 -3
- package/dist/{rg-S4FXYXWB-CTWDqqzD.cjs.map → rg-S4FXYXWB-B4PncTdP.cjs.map} +1 -1
- package/dist/{rg-S4FXYXWB-C5rIiKqa.mjs → rg-S4FXYXWB-DCoDd-co.mjs} +3 -3
- package/dist/{rg-S4FXYXWB-C5rIiKqa.mjs.map → rg-S4FXYXWB-DCoDd-co.mjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-CMqCuC6-.cjs → rm-SSGETQVQ-B9SMhBSB.cjs} +2 -2
- package/dist/{rm-SSGETQVQ-CMqCuC6-.cjs.map → rm-SSGETQVQ-B9SMhBSB.cjs.map} +1 -1
- package/dist/{rm-SSGETQVQ-SVr6JZrX.mjs → rm-SSGETQVQ-DYztIM5O.mjs} +2 -2
- package/dist/{rm-SSGETQVQ-SVr6JZrX.mjs.map → rm-SSGETQVQ-DYztIM5O.mjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-xNbbN8z9.cjs → rmdir-OC4ZLPYA-D7HEcQAy.cjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-xNbbN8z9.cjs.map → rmdir-OC4ZLPYA-D7HEcQAy.cjs.map} +1 -1
- package/dist/{rmdir-OC4ZLPYA-DhpPwVcw.mjs → rmdir-OC4ZLPYA-xWQ-tIg9.mjs} +2 -2
- package/dist/{rmdir-OC4ZLPYA-DhpPwVcw.mjs.map → rmdir-OC4ZLPYA-xWQ-tIg9.mjs.map} +1 -1
- package/dist/run.cjs +4 -4
- package/dist/run.mjs +4 -4
- package/dist/{sed-S5UIK574-B9o7Evcw.cjs → sed-S5UIK574-Du8IExJm.cjs} +2 -2
- package/dist/{sed-S5UIK574-B9o7Evcw.cjs.map → sed-S5UIK574-Du8IExJm.cjs.map} +1 -1
- package/dist/{sed-S5UIK574-CwkMwpF4.mjs → sed-S5UIK574-bm0JFNZc.mjs} +2 -2
- package/dist/{sed-S5UIK574-CwkMwpF4.mjs.map → sed-S5UIK574-bm0JFNZc.mjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-CGWtyGkR.cjs → sha1sum-2PTOAFR6-Bq-v3RHV.cjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-CGWtyGkR.cjs.map → sha1sum-2PTOAFR6-Bq-v3RHV.cjs.map} +1 -1
- package/dist/{sha1sum-2PTOAFR6-Cad6_7os.mjs → sha1sum-2PTOAFR6-C5l_CLHS.mjs} +3 -3
- package/dist/{sha1sum-2PTOAFR6-Cad6_7os.mjs.map → sha1sum-2PTOAFR6-C5l_CLHS.mjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-QeeptGn3.mjs → sha256sum-NS7D3IXX-BZcZdhxE.mjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-QeeptGn3.mjs.map → sha256sum-NS7D3IXX-BZcZdhxE.mjs.map} +1 -1
- package/dist/{sha256sum-NS7D3IXX-Tkb8bOpJ.cjs → sha256sum-NS7D3IXX-hHNRLdA_.cjs} +3 -3
- package/dist/{sha256sum-NS7D3IXX-Tkb8bOpJ.cjs.map → sha256sum-NS7D3IXX-hHNRLdA_.cjs.map} +1 -1
- package/dist/{sleep-X22JJINO-SSB0_xkn.mjs → sleep-X22JJINO-CLwFdFCo.mjs} +2 -2
- package/dist/{sleep-X22JJINO-SSB0_xkn.mjs.map → sleep-X22JJINO-CLwFdFCo.mjs.map} +1 -1
- package/dist/{sleep-X22JJINO-Dlhdt3UF.cjs → sleep-X22JJINO-CgS_ip5Q.cjs} +2 -2
- package/dist/{sleep-X22JJINO-Dlhdt3UF.cjs.map → sleep-X22JJINO-CgS_ip5Q.cjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-DHu-IjJK.mjs → sort-SW2YEO5B-0zTxs9YD.mjs} +3 -3
- package/dist/{sort-SW2YEO5B-DHu-IjJK.mjs.map → sort-SW2YEO5B-0zTxs9YD.mjs.map} +1 -1
- package/dist/{sort-SW2YEO5B-CfN8qsOe.cjs → sort-SW2YEO5B-wNs-q9FY.cjs} +3 -3
- package/dist/{sort-SW2YEO5B-CfN8qsOe.cjs.map → sort-SW2YEO5B-wNs-q9FY.cjs.map} +1 -1
- package/dist/{split-4KKZZXXE-DRFoW0C-.mjs → split-4KKZZXXE-3Go-xLDT.mjs} +2 -2
- package/dist/{split-4KKZZXXE-DRFoW0C-.mjs.map → split-4KKZZXXE-3Go-xLDT.mjs.map} +1 -1
- package/dist/{split-4KKZZXXE-B8plYwAH.cjs → split-4KKZZXXE-CRC14l7P.cjs} +2 -2
- package/dist/{split-4KKZZXXE-B8plYwAH.cjs.map → split-4KKZZXXE-CRC14l7P.cjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-racIOTTD.cjs → sqlite3-CGOEFJAO-V3zmhkJY.cjs} +3 -3
- package/dist/{sqlite3-CGOEFJAO-racIOTTD.cjs.map → sqlite3-CGOEFJAO-V3zmhkJY.cjs.map} +1 -1
- package/dist/{sqlite3-CGOEFJAO-CF1nf3bu.mjs → sqlite3-CGOEFJAO-rN_cPAaW.mjs} +3 -3
- package/dist/{sqlite3-CGOEFJAO-CF1nf3bu.mjs.map → sqlite3-CGOEFJAO-rN_cPAaW.mjs.map} +1 -1
- package/dist/{start-bgZZCOmu.cjs → start-BJw3ihFS.cjs} +584 -190
- package/dist/start-BJw3ihFS.cjs.map +1 -0
- package/dist/{start-BBW9vi1A.mjs → start-t_pBPQsU.mjs} +581 -188
- package/dist/start-t_pBPQsU.mjs.map +1 -0
- package/dist/start.cjs +1 -1
- package/dist/start.d.cts +1 -1
- package/dist/start.d.mts +1 -1
- package/dist/start.mjs +1 -1
- package/dist/{strings-6WDHLGMX-B8ogXPoK.cjs → strings-6WDHLGMX-BljfjANt.cjs} +2 -2
- package/dist/{strings-6WDHLGMX-B8ogXPoK.cjs.map → strings-6WDHLGMX-BljfjANt.cjs.map} +1 -1
- package/dist/{strings-6WDHLGMX-D-8gxmaP.mjs → strings-6WDHLGMX-DGdL1td6.mjs} +2 -2
- package/dist/{strings-6WDHLGMX-D-8gxmaP.mjs.map → strings-6WDHLGMX-DGdL1td6.mjs.map} +1 -1
- package/dist/{tac-2STMMJYW-GqCFVlMI.cjs → tac-2STMMJYW-DMhQEe5q.cjs} +2 -2
- package/dist/{tac-2STMMJYW-GqCFVlMI.cjs.map → tac-2STMMJYW-DMhQEe5q.cjs.map} +1 -1
- package/dist/{tac-2STMMJYW-BXvN_CFk.mjs → tac-2STMMJYW-u_39KuCC.mjs} +2 -2
- package/dist/{tac-2STMMJYW-BXvN_CFk.mjs.map → tac-2STMMJYW-u_39KuCC.mjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-C0ugHzL2.mjs → tail-R4PCA2C4-tgyT7wGC.mjs} +2 -2
- package/dist/{tail-R4PCA2C4-C0ugHzL2.mjs.map → tail-R4PCA2C4-tgyT7wGC.mjs.map} +1 -1
- package/dist/{tail-R4PCA2C4-Drjdjemt.cjs → tail-R4PCA2C4-xZalNeK5.cjs} +2 -2
- package/dist/{tail-R4PCA2C4-Drjdjemt.cjs.map → tail-R4PCA2C4-xZalNeK5.cjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-BsgloKrW.mjs → tar-STHHZTZ6-0gdvsCju.mjs} +4 -4
- package/dist/{tar-STHHZTZ6-BsgloKrW.mjs.map → tar-STHHZTZ6-0gdvsCju.mjs.map} +1 -1
- package/dist/{tar-STHHZTZ6-BuhlrLgy.cjs → tar-STHHZTZ6-pvdoWQbG.cjs} +5 -5
- package/dist/{tar-STHHZTZ6-BuhlrLgy.cjs.map → tar-STHHZTZ6-pvdoWQbG.cjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-BhRQUMAz.cjs → tee-YUZ2FKCJ-DXiSfvar.cjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-BhRQUMAz.cjs.map → tee-YUZ2FKCJ-DXiSfvar.cjs.map} +1 -1
- package/dist/{tee-YUZ2FKCJ-BbF6VRAs.mjs → tee-YUZ2FKCJ-LRZMywwS.mjs} +2 -2
- package/dist/{tee-YUZ2FKCJ-BbF6VRAs.mjs.map → tee-YUZ2FKCJ-LRZMywwS.mjs.map} +1 -1
- package/dist/{time-D4LNBSWX-BG4ZXuon.mjs → time-D4LNBSWX-RRPjvylO.mjs} +2 -2
- package/dist/{time-D4LNBSWX-BG4ZXuon.mjs.map → time-D4LNBSWX-RRPjvylO.mjs.map} +1 -1
- package/dist/{time-D4LNBSWX-BMJlkpiY.cjs → time-D4LNBSWX-XYvudP3x.cjs} +2 -2
- package/dist/{time-D4LNBSWX-BMJlkpiY.cjs.map → time-D4LNBSWX-XYvudP3x.cjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-CuD519Dt.cjs → timeout-YDCRSLPQ-B9nIcBSB.cjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-CuD519Dt.cjs.map → timeout-YDCRSLPQ-B9nIcBSB.cjs.map} +1 -1
- package/dist/{timeout-YDCRSLPQ-C4E3RCT1.mjs → timeout-YDCRSLPQ-auteC3Gb.mjs} +2 -2
- package/dist/{timeout-YDCRSLPQ-C4E3RCT1.mjs.map → timeout-YDCRSLPQ-auteC3Gb.mjs.map} +1 -1
- package/dist/{touch-UA33VN3N-Dr7gGPKc.mjs → touch-UA33VN3N-CTkCho8K.mjs} +2 -2
- package/dist/{touch-UA33VN3N-Dr7gGPKc.mjs.map → touch-UA33VN3N-CTkCho8K.mjs.map} +1 -1
- package/dist/{touch-UA33VN3N-BvhbAbJ5.cjs → touch-UA33VN3N-C_lnOJKi.cjs} +2 -2
- package/dist/{touch-UA33VN3N-BvhbAbJ5.cjs.map → touch-UA33VN3N-C_lnOJKi.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-tCkx_1H_.cjs → tr-36LHWFRQ-CRO2ZQcO.cjs} +2 -2
- package/dist/{tr-36LHWFRQ-tCkx_1H_.cjs.map → tr-36LHWFRQ-CRO2ZQcO.cjs.map} +1 -1
- package/dist/{tr-36LHWFRQ-BAzZcYrH.mjs → tr-36LHWFRQ-DI-dtBA6.mjs} +2 -2
- package/dist/{tr-36LHWFRQ-BAzZcYrH.mjs.map → tr-36LHWFRQ-DI-dtBA6.mjs.map} +1 -1
- package/dist/{tree-YLD52CNT-2CgZVKNz.mjs → tree-YLD52CNT-C8_F9fOy.mjs} +2 -2
- package/dist/{tree-YLD52CNT-2CgZVKNz.mjs.map → tree-YLD52CNT-C8_F9fOy.mjs.map} +1 -1
- package/dist/{tree-YLD52CNT-CtxzyzyK.cjs → tree-YLD52CNT-DY8dtHDR.cjs} +2 -2
- package/dist/{tree-YLD52CNT-CtxzyzyK.cjs.map → tree-YLD52CNT-DY8dtHDR.cjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-DN7WjSgJ.mjs → unexpand-CADSA4VO-CrIzgXCI.mjs} +2 -2
- package/dist/{unexpand-CADSA4VO-DN7WjSgJ.mjs.map → unexpand-CADSA4VO-CrIzgXCI.mjs.map} +1 -1
- package/dist/{unexpand-CADSA4VO-uMt0rf4X.cjs → unexpand-CADSA4VO-sC6d7vYD.cjs} +2 -2
- package/dist/{unexpand-CADSA4VO-uMt0rf4X.cjs.map → unexpand-CADSA4VO-sC6d7vYD.cjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-i4UN8_wj.mjs → uniq-XSIZR6PB-BMIaoH6r.mjs} +3 -3
- package/dist/{uniq-XSIZR6PB-i4UN8_wj.mjs.map → uniq-XSIZR6PB-BMIaoH6r.mjs.map} +1 -1
- package/dist/{uniq-XSIZR6PB-BkO2mNi8.cjs → uniq-XSIZR6PB-B_Eb3B42.cjs} +3 -3
- package/dist/{uniq-XSIZR6PB-BkO2mNi8.cjs.map → uniq-XSIZR6PB-B_Eb3B42.cjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-DbAal6fW.cjs → wc-LF7NU4LA-BN8uD5xw.cjs} +3 -3
- package/dist/{wc-LF7NU4LA-DbAal6fW.cjs.map → wc-LF7NU4LA-BN8uD5xw.cjs.map} +1 -1
- package/dist/{wc-LF7NU4LA-B5iKJ_sK.mjs → wc-LF7NU4LA-I7kgqxq0.mjs} +3 -3
- package/dist/{wc-LF7NU4LA-B5iKJ_sK.mjs.map → wc-LF7NU4LA-I7kgqxq0.mjs.map} +1 -1
- package/dist/{with-project-scope-D2Nxb_81.cjs → with-project-scope-BUYH3etZ.cjs} +20 -4
- package/dist/with-project-scope-BUYH3etZ.cjs.map +1 -0
- package/dist/{with-project-scope-BLKH8VDX.mjs → with-project-scope-DpiIxlik.mjs} +20 -4
- package/dist/with-project-scope-DpiIxlik.mjs.map +1 -0
- package/dist/{xan-Y6WF3IRG-PLXYTtLn.cjs → xan-Y6WF3IRG-Do49tZ_W.cjs} +6 -6
- package/dist/{xan-Y6WF3IRG-PLXYTtLn.cjs.map → xan-Y6WF3IRG-Do49tZ_W.cjs.map} +1 -1
- package/dist/{xan-Y6WF3IRG-B5YnpCBT.mjs → xan-Y6WF3IRG-rkkOjnpn.mjs} +6 -6
- package/dist/{xan-Y6WF3IRG-B5YnpCBT.mjs.map → xan-Y6WF3IRG-rkkOjnpn.mjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-C4U_Ysf1.cjs → xan-view-HDVKHFC2-D8RIM5n-.cjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-C4U_Ysf1.cjs.map → xan-view-HDVKHFC2-D8RIM5n-.cjs.map} +1 -1
- package/dist/{xan-view-HDVKHFC2-WJOBrjRv.mjs → xan-view-HDVKHFC2-jFIMBk6E.mjs} +3 -3
- package/dist/{xan-view-HDVKHFC2-WJOBrjRv.mjs.map → xan-view-HDVKHFC2-jFIMBk6E.mjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-CWF0HdOV.cjs → xargs-MGZPH7AX-WBopvhsi.cjs} +2 -2
- package/dist/{xargs-MGZPH7AX-CWF0HdOV.cjs.map → xargs-MGZPH7AX-WBopvhsi.cjs.map} +1 -1
- package/dist/{xargs-MGZPH7AX-D85Ko7xE.mjs → xargs-MGZPH7AX-oK7VOww8.mjs} +2 -2
- package/dist/{xargs-MGZPH7AX-D85Ko7xE.mjs.map → xargs-MGZPH7AX-oK7VOww8.mjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-BcuExFs8.mjs → yq-4QJW3EQG-BclNWUX9.mjs} +3 -3
- package/dist/{yq-4QJW3EQG-BcuExFs8.mjs.map → yq-4QJW3EQG-BclNWUX9.mjs.map} +1 -1
- package/dist/{yq-4QJW3EQG-BSSwWyVt.cjs → yq-4QJW3EQG-DafLngnL.cjs} +3 -3
- package/dist/{yq-4QJW3EQG-BSSwWyVt.cjs.map → yq-4QJW3EQG-DafLngnL.cjs.map} +1 -1
- package/package.json +2 -2
- package/dist/config-BEXGfMWX.mjs.map +0 -1
- package/dist/config-BXIsWKDr.cjs.map +0 -1
- package/dist/dist-kYSK2aR1.cjs.map +0 -1
- package/dist/project-draft-notifier-B7K0aaAp.mjs.map +0 -1
- package/dist/project-draft-notifier-DlWmyn5m.cjs.map +0 -1
- package/dist/start-BBW9vi1A.mjs.map +0 -1
- package/dist/start-bgZZCOmu.cjs.map +0 -1
- package/dist/with-project-scope-BLKH8VDX.mjs.map +0 -1
- package/dist/with-project-scope-D2Nxb_81.cjs.map +0 -1
|
@@ -5,6 +5,7 @@ let node_path = require("node:path");
|
|
|
5
5
|
let node_os = require("node:os");
|
|
6
6
|
let node_child_process = require("node:child_process");
|
|
7
7
|
let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
|
|
8
|
+
let _aws_sdk_s3_presigned_post = require("@aws-sdk/s3-presigned-post");
|
|
8
9
|
let _aws_sdk_s3_request_presigner = require("@aws-sdk/s3-request-presigner");
|
|
9
10
|
//#region ../../packages/hosting/dist/runtime-BmfsHLrk.mjs
|
|
10
11
|
/** Builds base64 `KEYSTROKE_ORG_ARTIFACTS` payload for org worker containers. */
|
|
@@ -356,7 +357,7 @@ function isCredentialInput(value) {
|
|
|
356
357
|
}
|
|
357
358
|
const credentialInputSchema = zod.z.custom((value) => isCredentialInput(value), "must be a credential requirement");
|
|
358
359
|
//#endregion
|
|
359
|
-
//#region ../../packages/shared/dist/billing-
|
|
360
|
+
//#region ../../packages/shared/dist/billing-Bar2XMfx.mjs
|
|
360
361
|
/**
|
|
361
362
|
* Money is integer micro-credits (µc). 1 credit = $1 = 1,000,000 µc.
|
|
362
363
|
* Shared so the web dashboard and the cloud billing packages agree on the
|
|
@@ -500,20 +501,25 @@ zod.z.object({
|
|
|
500
501
|
const BillingUsageEventSourceSchema = zod.z.enum([
|
|
501
502
|
"ai_gateway",
|
|
502
503
|
"sandbox",
|
|
504
|
+
"browser",
|
|
503
505
|
"web_proxy",
|
|
504
506
|
"storage",
|
|
505
507
|
"dispatch",
|
|
506
|
-
"poll"
|
|
508
|
+
"poll",
|
|
509
|
+
"brain"
|
|
507
510
|
]);
|
|
508
511
|
const BillingUsageMeterKeySchema = zod.z.enum([
|
|
509
512
|
"llm",
|
|
510
513
|
"vm_second",
|
|
514
|
+
"browser_second",
|
|
511
515
|
"web_search",
|
|
512
516
|
"web_fetch",
|
|
513
517
|
"workflow_run",
|
|
514
518
|
"agent_run",
|
|
515
519
|
"poll_trigger",
|
|
516
|
-
"tigris_storage"
|
|
520
|
+
"tigris_storage",
|
|
521
|
+
"brain_search",
|
|
522
|
+
"brain_indexing"
|
|
517
523
|
]);
|
|
518
524
|
const BillingUsageKeySourceSchema = zod.z.enum(["platform", "byok"]);
|
|
519
525
|
const BillingUsageRunKindSchema = zod.z.enum([
|
|
@@ -544,7 +550,7 @@ zod.z.object({
|
|
|
544
550
|
chargeMicroCredits: zod.z.number().int().nonnegative()
|
|
545
551
|
});
|
|
546
552
|
//#endregion
|
|
547
|
-
//#region ../../packages/shared/dist/credential-runtime-
|
|
553
|
+
//#region ../../packages/shared/dist/credential-runtime-B1aMt2H1.mjs
|
|
548
554
|
const ACTIVE_ORG_HEADER = "x-keystroke-org-id";
|
|
549
555
|
function isValidIanaTimezone(value) {
|
|
550
556
|
try {
|
|
@@ -1177,6 +1183,16 @@ const ORGANIZATION_NAME_APOSTROPHE_PATTERN = /[''\u2018\u2019]/g;
|
|
|
1177
1183
|
function normalizeOrganizationNameToSlugBase(name) {
|
|
1178
1184
|
return name.trim().toLowerCase().replace(ORGANIZATION_NAME_APOSTROPHE_PATTERN, "").replace(/[^a-z0-9]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
1179
1185
|
}
|
|
1186
|
+
const BrowserTabSchema = zod.z.object({
|
|
1187
|
+
url: zod.z.string(),
|
|
1188
|
+
title: zod.z.string().optional(),
|
|
1189
|
+
active: zod.z.boolean()
|
|
1190
|
+
});
|
|
1191
|
+
const BrowserResumeStateSchema = zod.z.object({
|
|
1192
|
+
tabs: zod.z.array(BrowserTabSchema),
|
|
1193
|
+
lastScreenshotStorageKey: zod.z.string().optional(),
|
|
1194
|
+
capturedAt: zod.z.string()
|
|
1195
|
+
});
|
|
1180
1196
|
/** Same format as organization slugs — org-scoped, no global reserved list. */
|
|
1181
1197
|
const ProjectSlugSchema = OrganizationSlugSchema;
|
|
1182
1198
|
const PROJECT_SLUG_TAKEN_MESSAGE = "That slug is already taken.";
|
|
@@ -1329,6 +1345,619 @@ function jsonSchemaToZod(schema) {
|
|
|
1329
1345
|
}
|
|
1330
1346
|
/** Legacy flat catalog — kept during dual-write so runtime/storage stay unchanged. */
|
|
1331
1347
|
const ROUTE_MANIFEST_REL_PATH = "dist/.keystroke/route-manifest.json";
|
|
1348
|
+
/** Lowercase dash-separated Brain slug (2–64 chars). */
|
|
1349
|
+
const BrainSlugSchema = zod.z.string().trim().toLowerCase().min(2, "Slug must be at least 2 characters").max(64, "Slug must be at most 64 characters").regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "Use lowercase letters, numbers, and dashes only");
|
|
1350
|
+
/** Splits on the first `:` and validates each component as a Brain slug. */
|
|
1351
|
+
function parseBrainReference(value) {
|
|
1352
|
+
const separatorIndex = value.indexOf(":");
|
|
1353
|
+
if (separatorIndex === -1) {
|
|
1354
|
+
const slug = BrainSlugSchema.safeParse(value);
|
|
1355
|
+
return slug.success ? {
|
|
1356
|
+
brainSlug: slug.data,
|
|
1357
|
+
filterSlug: null
|
|
1358
|
+
} : void 0;
|
|
1359
|
+
}
|
|
1360
|
+
const brain = BrainSlugSchema.safeParse(value.slice(0, separatorIndex));
|
|
1361
|
+
const filter = BrainSlugSchema.safeParse(value.slice(separatorIndex + 1));
|
|
1362
|
+
if (!brain.success || !filter.success) return;
|
|
1363
|
+
return {
|
|
1364
|
+
brainSlug: brain.data,
|
|
1365
|
+
filterSlug: filter.data
|
|
1366
|
+
};
|
|
1367
|
+
}
|
|
1368
|
+
/** Base Brain slug or qualified `{brain}:{filter}` reference. */
|
|
1369
|
+
const BrainReferenceSchema = zod.z.string().trim().toLowerCase().refine((value) => parseBrainReference(value) !== void 0, { message: "Expected a Brain slug or a {brain}:{filter} reference" });
|
|
1370
|
+
/**
|
|
1371
|
+
* Where a document's content originated (`linear`, `notion`, `slack`,
|
|
1372
|
+
* `manual`, or a customer-defined slug). Required on every upload and distinct
|
|
1373
|
+
* from trusted provisioner provenance (how the version entered the Brain).
|
|
1374
|
+
* Not a closed enum: known sources get branded presentation, unknown valid
|
|
1375
|
+
* sources remain supported.
|
|
1376
|
+
*/
|
|
1377
|
+
const BrainSourceSchema = zod.z.string().trim().toLowerCase().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/, "Use 1-64 lowercase letters, numbers, dashes, and underscores (starting alphanumeric)");
|
|
1378
|
+
/** Required, non-empty human description shown in list/detail views and agent tool catalogs. */
|
|
1379
|
+
const BrainDescriptionSchema = zod.z.string().trim().min(1).max(2e3);
|
|
1380
|
+
const BRAIN_MAX_FILE_BYTES = 100 * 1024 * 1024;
|
|
1381
|
+
const BRAIN_MAX_FOLDER_FILES = 1e3;
|
|
1382
|
+
const BRAIN_READ_MAX_CHARS = 2e4;
|
|
1383
|
+
/** Inline `content` / `blocks` put payload cap; larger content must use the file upload flow. */
|
|
1384
|
+
const BRAIN_MAX_INLINE_CONTENT_CHARS = 2e6;
|
|
1385
|
+
const BRAIN_MAX_BLOCKS_PER_DOCUMENT = 5e3;
|
|
1386
|
+
const BRAIN_MAX_BLOCK_CHARS = 4e4;
|
|
1387
|
+
const BRAIN_MAX_METADATA_STRING_CHARS = 1024;
|
|
1388
|
+
const BRAIN_CHUNK_DEFAULT_MAX_CHARACTERS = 8e3;
|
|
1389
|
+
const BRAIN_CHUNK_MAX_CHARACTERS = 4e4;
|
|
1390
|
+
zod.z.enum([
|
|
1391
|
+
"doc",
|
|
1392
|
+
"docx",
|
|
1393
|
+
"docm",
|
|
1394
|
+
"ppt",
|
|
1395
|
+
"pps",
|
|
1396
|
+
"pot",
|
|
1397
|
+
"pptx",
|
|
1398
|
+
"pptm",
|
|
1399
|
+
"ppsx",
|
|
1400
|
+
"ppsm",
|
|
1401
|
+
"xls",
|
|
1402
|
+
"xlsx",
|
|
1403
|
+
"xlsm",
|
|
1404
|
+
"xlsb",
|
|
1405
|
+
"odt",
|
|
1406
|
+
"ods",
|
|
1407
|
+
"odp",
|
|
1408
|
+
"rtf",
|
|
1409
|
+
"epub",
|
|
1410
|
+
"csv",
|
|
1411
|
+
"pdf",
|
|
1412
|
+
"txt",
|
|
1413
|
+
"md",
|
|
1414
|
+
"markdown",
|
|
1415
|
+
"html",
|
|
1416
|
+
"htm",
|
|
1417
|
+
"json",
|
|
1418
|
+
"xml",
|
|
1419
|
+
"yaml",
|
|
1420
|
+
"yml"
|
|
1421
|
+
]);
|
|
1422
|
+
zod.z.enum([
|
|
1423
|
+
"doc",
|
|
1424
|
+
"docx",
|
|
1425
|
+
"ppt",
|
|
1426
|
+
"pptx",
|
|
1427
|
+
"xlsx",
|
|
1428
|
+
"odt",
|
|
1429
|
+
"ods",
|
|
1430
|
+
"odp",
|
|
1431
|
+
"rtf",
|
|
1432
|
+
"epub",
|
|
1433
|
+
"csv",
|
|
1434
|
+
"pdf",
|
|
1435
|
+
"txt",
|
|
1436
|
+
"md",
|
|
1437
|
+
"html",
|
|
1438
|
+
"json",
|
|
1439
|
+
"xml",
|
|
1440
|
+
"yaml"
|
|
1441
|
+
]);
|
|
1442
|
+
const BrainStatusSchema = zod.z.enum([
|
|
1443
|
+
"active",
|
|
1444
|
+
"rebuilding",
|
|
1445
|
+
"rebuild_failed",
|
|
1446
|
+
"deleting"
|
|
1447
|
+
]);
|
|
1448
|
+
/** Brain resource membership roles. Owners additionally manage members and deletion. */
|
|
1449
|
+
const BrainMemberRoleSchema = zod.z.enum(["owner", "admin"]);
|
|
1450
|
+
/** `write` implies read. Grants authorize deployed project runtimes, not humans. */
|
|
1451
|
+
const BrainGrantAccessSchema = zod.z.enum(["read", "write"]);
|
|
1452
|
+
const BrainDocumentVersionStatusSchema = zod.z.enum([
|
|
1453
|
+
"pending_upload",
|
|
1454
|
+
"pending_ingest",
|
|
1455
|
+
"queued",
|
|
1456
|
+
"processing",
|
|
1457
|
+
"ready",
|
|
1458
|
+
"failed"
|
|
1459
|
+
]);
|
|
1460
|
+
const BrainDocumentFailureCodeSchema = zod.z.enum([
|
|
1461
|
+
"format_mismatch",
|
|
1462
|
+
"invalid_document",
|
|
1463
|
+
"encrypted_document",
|
|
1464
|
+
"unsupported_encoding",
|
|
1465
|
+
"needs_ocr",
|
|
1466
|
+
"no_extractable_text",
|
|
1467
|
+
"extracted_content_too_large",
|
|
1468
|
+
"too_many_chunks",
|
|
1469
|
+
"parser_timeout",
|
|
1470
|
+
"parser_resource_limit",
|
|
1471
|
+
"parser_unavailable",
|
|
1472
|
+
"embedding_failed",
|
|
1473
|
+
"index_write_failed"
|
|
1474
|
+
]);
|
|
1475
|
+
const BrainSkippedReasonSchema = zod.z.enum([
|
|
1476
|
+
"unsupported_extension",
|
|
1477
|
+
"empty_file",
|
|
1478
|
+
"file_too_large",
|
|
1479
|
+
"duplicate_path",
|
|
1480
|
+
"invalid_relative_path",
|
|
1481
|
+
"hidden_path",
|
|
1482
|
+
"operation_limit"
|
|
1483
|
+
]);
|
|
1484
|
+
const BrainDocumentWriteInputKindSchema = zod.z.enum([
|
|
1485
|
+
"content",
|
|
1486
|
+
"blocks",
|
|
1487
|
+
"file"
|
|
1488
|
+
]);
|
|
1489
|
+
const BrainDocumentWriteOutcomeSchema = zod.z.enum([
|
|
1490
|
+
"pending",
|
|
1491
|
+
"ready",
|
|
1492
|
+
"unchanged",
|
|
1493
|
+
"failed"
|
|
1494
|
+
]);
|
|
1495
|
+
/**
|
|
1496
|
+
* Gateway embedding model id (`provider/model`). The catalog is discovered at
|
|
1497
|
+
* runtime from the Vercel AI Gateway, so this is a bounded shape check only;
|
|
1498
|
+
* existence and `type === 'embedding'` are validated server-side against a
|
|
1499
|
+
* cached catalog at Brain create/update.
|
|
1500
|
+
*/
|
|
1501
|
+
const BrainEmbeddingModelSchema = zod.z.string().trim().min(3).max(128).regex(/^[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/i, "Expected a provider/model embedding id");
|
|
1502
|
+
const BRAIN_EMBEDDING_MODEL_DEFAULT = "voyage/voyage-4";
|
|
1503
|
+
const BrainLanguageSchema = zod.z.enum([
|
|
1504
|
+
"multilingual",
|
|
1505
|
+
"arabic",
|
|
1506
|
+
"danish",
|
|
1507
|
+
"dutch",
|
|
1508
|
+
"english",
|
|
1509
|
+
"finnish",
|
|
1510
|
+
"french",
|
|
1511
|
+
"german",
|
|
1512
|
+
"greek",
|
|
1513
|
+
"hungarian",
|
|
1514
|
+
"italian",
|
|
1515
|
+
"norwegian",
|
|
1516
|
+
"portuguese",
|
|
1517
|
+
"romanian",
|
|
1518
|
+
"russian",
|
|
1519
|
+
"spanish",
|
|
1520
|
+
"swedish",
|
|
1521
|
+
"tamil",
|
|
1522
|
+
"turkish"
|
|
1523
|
+
]);
|
|
1524
|
+
const BRAIN_LANGUAGE_DEFAULT = "english";
|
|
1525
|
+
/**
|
|
1526
|
+
* Character-exact chunk controls. An exact separator is preferred when
|
|
1527
|
+
* present; chunks still respect maxCharacters.
|
|
1528
|
+
*/
|
|
1529
|
+
const BrainCharacterChunkingSchema = zod.z.object({
|
|
1530
|
+
maxCharacters: zod.z.number().int().min(1).max(BRAIN_CHUNK_MAX_CHARACTERS).default(BRAIN_CHUNK_DEFAULT_MAX_CHARACTERS),
|
|
1531
|
+
overlapCharacters: zod.z.number().int().nonnegative().default(0),
|
|
1532
|
+
separator: zod.z.string().min(1).optional()
|
|
1533
|
+
}).strict().refine((value) => value.overlapCharacters < value.maxCharacters, {
|
|
1534
|
+
message: "overlapCharacters must be less than maxCharacters",
|
|
1535
|
+
path: ["overlapCharacters"]
|
|
1536
|
+
});
|
|
1537
|
+
const BrainIndexConfigSchema = zod.z.object({
|
|
1538
|
+
embeddingModel: BrainEmbeddingModelSchema.default(BRAIN_EMBEDDING_MODEL_DEFAULT),
|
|
1539
|
+
chunking: BrainCharacterChunkingSchema.prefault({}),
|
|
1540
|
+
language: BrainLanguageSchema.default(BRAIN_LANGUAGE_DEFAULT)
|
|
1541
|
+
}).strict();
|
|
1542
|
+
const BRAIN_RESERVED_ATTRIBUTE_NAMES = [
|
|
1543
|
+
"id",
|
|
1544
|
+
"documentId",
|
|
1545
|
+
"brainId",
|
|
1546
|
+
"versionId",
|
|
1547
|
+
"revision",
|
|
1548
|
+
"generation",
|
|
1549
|
+
"chunkIndex",
|
|
1550
|
+
"title",
|
|
1551
|
+
"text",
|
|
1552
|
+
"source",
|
|
1553
|
+
"vector"
|
|
1554
|
+
];
|
|
1555
|
+
const BrainMetadataKeySchema = zod.z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,63}$/, "Metadata keys must start with a letter and use letters, numbers, and underscores").refine((key) => !BRAIN_RESERVED_ATTRIBUTE_NAMES.includes(key) && !key.startsWith("titleFts") && !key.startsWith("textFts"), { message: "Metadata key collides with a reserved index attribute" });
|
|
1556
|
+
const BrainMetadataScalarSchema = zod.z.union([
|
|
1557
|
+
zod.z.string().max(BRAIN_MAX_METADATA_STRING_CHARS),
|
|
1558
|
+
zod.z.number().finite(),
|
|
1559
|
+
zod.z.boolean()
|
|
1560
|
+
]);
|
|
1561
|
+
const BrainMetadataValueSchema = zod.z.union([BrainMetadataScalarSchema, zod.z.array(zod.z.string().max(BRAIN_MAX_METADATA_STRING_CHARS)).max(64)]);
|
|
1562
|
+
const BrainDocumentMetadataSchema = zod.z.record(BrainMetadataKeySchema, BrainMetadataValueSchema).refine((value) => Object.keys(value).length <= 32, { message: `At most 32 metadata keys are allowed` });
|
|
1563
|
+
/**
|
|
1564
|
+
* Flat filter over metadata attributes: scalar → equals, array → any-of
|
|
1565
|
+
* (In for scalar attributes, ContainsAny for array attributes). Entries AND
|
|
1566
|
+
* together.
|
|
1567
|
+
*/
|
|
1568
|
+
const BrainMetadataFilterSchema = zod.z.record(BrainMetadataKeySchema, zod.z.union([BrainMetadataScalarSchema, zod.z.array(BrainMetadataScalarSchema).min(1).max(64)])).refine((value) => Object.keys(value).length <= 32, { message: `At most 32 filter keys are allowed` });
|
|
1569
|
+
/**
|
|
1570
|
+
* Filter expression persisted by Brain filters and accepted as query-time
|
|
1571
|
+
* narrowing: an optional reserved `source` operand (scalar equals or any-of)
|
|
1572
|
+
* plus a flat metadata filter. Entries AND together. The stored document
|
|
1573
|
+
* `source` is always one scalar string; an array here only widens matching.
|
|
1574
|
+
*/
|
|
1575
|
+
const BrainFilterExpressionSchema = zod.z.object({
|
|
1576
|
+
source: zod.z.union([BrainSourceSchema, zod.z.array(BrainSourceSchema).min(1).max(64)]).optional(),
|
|
1577
|
+
metadata: BrainMetadataFilterSchema.optional()
|
|
1578
|
+
}).strict().refine((value) => value.source !== void 0 || value.metadata !== void 0 && Object.keys(value.metadata).length > 0, { message: "Filter requires a source or at least one metadata entry" });
|
|
1579
|
+
const BrainSummarySchema = zod.z.object({
|
|
1580
|
+
id: zod.z.string().min(1),
|
|
1581
|
+
slug: BrainSlugSchema,
|
|
1582
|
+
name: zod.z.string().min(1),
|
|
1583
|
+
description: BrainDescriptionSchema,
|
|
1584
|
+
indexConfig: BrainIndexConfigSchema,
|
|
1585
|
+
status: BrainStatusSchema,
|
|
1586
|
+
/** Number of filters defined on this Brain (rendered as “Filtered views”). */
|
|
1587
|
+
filterCount: zod.z.number().int().nonnegative(),
|
|
1588
|
+
/** Requesting user's Brain membership role (management surfaces are membership-only). */
|
|
1589
|
+
callerRole: BrainMemberRoleSchema,
|
|
1590
|
+
createdAt: zod.z.string().datetime(),
|
|
1591
|
+
updatedAt: zod.z.string().datetime()
|
|
1592
|
+
});
|
|
1593
|
+
BrainSummarySchema.extend({
|
|
1594
|
+
createdByUserId: zod.z.string().min(1).nullable(),
|
|
1595
|
+
documentCount: zod.z.number().int().nonnegative(),
|
|
1596
|
+
readyDocumentCount: zod.z.number().int().nonnegative()
|
|
1597
|
+
});
|
|
1598
|
+
const BrainNameSchema = zod.z.string().trim().min(1).max(120);
|
|
1599
|
+
zod.z.object({
|
|
1600
|
+
name: BrainNameSchema,
|
|
1601
|
+
slug: BrainSlugSchema.optional(),
|
|
1602
|
+
description: BrainDescriptionSchema,
|
|
1603
|
+
indexConfig: BrainIndexConfigSchema.prefault({})
|
|
1604
|
+
}).strict();
|
|
1605
|
+
zod.z.object({
|
|
1606
|
+
name: BrainNameSchema.optional(),
|
|
1607
|
+
description: BrainDescriptionSchema.optional(),
|
|
1608
|
+
indexConfig: BrainIndexConfigSchema.optional()
|
|
1609
|
+
}).strict().refine((value) => Object.values(value).some((field) => field !== void 0), { message: "At least one field is required" });
|
|
1610
|
+
zod.z.object({
|
|
1611
|
+
brain: BrainSummarySchema,
|
|
1612
|
+
/** Set when an indexConfig change kicked off a rebuild. */
|
|
1613
|
+
rebuildStarted: zod.z.boolean()
|
|
1614
|
+
});
|
|
1615
|
+
zod.z.object({ brains: zod.z.array(BrainSummarySchema) });
|
|
1616
|
+
const BrainMemberSchema = zod.z.object({
|
|
1617
|
+
userId: zod.z.string().min(1),
|
|
1618
|
+
role: BrainMemberRoleSchema,
|
|
1619
|
+
createdByUserId: zod.z.string().min(1).nullable(),
|
|
1620
|
+
createdAt: zod.z.string().datetime(),
|
|
1621
|
+
updatedAt: zod.z.string().datetime()
|
|
1622
|
+
});
|
|
1623
|
+
zod.z.object({
|
|
1624
|
+
userId: zod.z.string().min(1),
|
|
1625
|
+
role: BrainMemberRoleSchema.default("admin")
|
|
1626
|
+
}).strict();
|
|
1627
|
+
zod.z.object({ role: BrainMemberRoleSchema }).strict();
|
|
1628
|
+
zod.z.object({ members: zod.z.array(BrainMemberSchema) });
|
|
1629
|
+
const BrainGrantSchema = zod.z.object({
|
|
1630
|
+
id: zod.z.string().min(1),
|
|
1631
|
+
brainId: zod.z.string().min(1),
|
|
1632
|
+
projectId: zod.z.string().min(1),
|
|
1633
|
+
access: BrainGrantAccessSchema,
|
|
1634
|
+
createdByUserId: zod.z.string().min(1).nullable(),
|
|
1635
|
+
createdAt: zod.z.string().datetime()
|
|
1636
|
+
});
|
|
1637
|
+
zod.z.object({
|
|
1638
|
+
projectId: zod.z.string().min(1),
|
|
1639
|
+
access: BrainGrantAccessSchema.default("read")
|
|
1640
|
+
}).strict();
|
|
1641
|
+
zod.z.object({ grants: zod.z.array(BrainGrantSchema) });
|
|
1642
|
+
const BrainFilterSummarySchema = zod.z.object({
|
|
1643
|
+
id: zod.z.string().min(1),
|
|
1644
|
+
/** Local slug, unique per Brain and colon-free. */
|
|
1645
|
+
slug: BrainSlugSchema,
|
|
1646
|
+
/** `{brain-slug}:{filter-slug}` — the externally addressable reference. */
|
|
1647
|
+
qualifiedSlug: BrainReferenceSchema,
|
|
1648
|
+
name: zod.z.string().min(1),
|
|
1649
|
+
description: BrainDescriptionSchema,
|
|
1650
|
+
filter: BrainFilterExpressionSchema,
|
|
1651
|
+
createdByUserId: zod.z.string().min(1).nullable(),
|
|
1652
|
+
createdAt: zod.z.string().datetime(),
|
|
1653
|
+
updatedAt: zod.z.string().datetime()
|
|
1654
|
+
});
|
|
1655
|
+
zod.z.object({
|
|
1656
|
+
name: BrainNameSchema,
|
|
1657
|
+
slug: BrainSlugSchema.optional(),
|
|
1658
|
+
description: BrainDescriptionSchema,
|
|
1659
|
+
filter: BrainFilterExpressionSchema
|
|
1660
|
+
}).strict();
|
|
1661
|
+
zod.z.object({
|
|
1662
|
+
name: BrainNameSchema.optional(),
|
|
1663
|
+
description: BrainDescriptionSchema.optional(),
|
|
1664
|
+
filter: BrainFilterExpressionSchema.optional()
|
|
1665
|
+
}).strict().refine((value) => Object.values(value).some((field) => field !== void 0), { message: "At least one field is required" });
|
|
1666
|
+
zod.z.object({ filters: zod.z.array(BrainFilterSummarySchema) });
|
|
1667
|
+
const BrainDocumentIdSchema = zod.z.string().trim().min(1).max(512).refine((value) => ![...value].some((ch) => ch.charCodeAt(0) < 32 || ch.charCodeAt(0) === 127), { message: "documentId must not contain control characters" });
|
|
1668
|
+
const BrainDocumentTitleSchema = zod.z.string().trim().min(1).max(500);
|
|
1669
|
+
const BrainEmbeddingContextSchema = zod.z.string().trim().min(1).max(2e3);
|
|
1670
|
+
const BrainDocumentRevisionSchema = zod.z.string().trim().min(1).max(256);
|
|
1671
|
+
zod.z.string().trim().min(1).max(1024).refine((value) => ![...value].some((ch) => ch.charCodeAt(0) < 32 || ch.charCodeAt(0) === 127), { message: "file name must not contain control characters" });
|
|
1672
|
+
zod.z.string().trim().min(1).max(256);
|
|
1673
|
+
/** Authored semantic block: one caller-supplied block becomes one exact chunk. */
|
|
1674
|
+
const BrainDocumentBlockSchema = zod.z.object({
|
|
1675
|
+
text: zod.z.string().min(1).max(BRAIN_MAX_BLOCK_CHARS),
|
|
1676
|
+
heading: zod.z.string().trim().min(1).max(500).optional(),
|
|
1677
|
+
meta: zod.z.record(zod.z.string().max(64), zod.z.string().max(BRAIN_MAX_METADATA_STRING_CHARS)).optional()
|
|
1678
|
+
}).strict();
|
|
1679
|
+
const sha256Hex$2 = zod.z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
|
|
1680
|
+
zod.z.object({
|
|
1681
|
+
documentId: BrainDocumentIdSchema,
|
|
1682
|
+
title: BrainDocumentTitleSchema.optional(),
|
|
1683
|
+
/** Where the content originated (`linear`, `notion`, `manual`, …). Required. */
|
|
1684
|
+
source: BrainSourceSchema,
|
|
1685
|
+
content: zod.z.string().min(1).max(BRAIN_MAX_INLINE_CONTENT_CHARS).optional(),
|
|
1686
|
+
blocks: zod.z.array(BrainDocumentBlockSchema).min(1).max(BRAIN_MAX_BLOCKS_PER_DOCUMENT).optional(),
|
|
1687
|
+
metadata: BrainDocumentMetadataSchema.optional(),
|
|
1688
|
+
/** Extra text prefixed into chunk embeddings (like the title); never returned by read. */
|
|
1689
|
+
embeddingContext: BrainEmbeddingContextSchema.optional(),
|
|
1690
|
+
revision: BrainDocumentRevisionSchema.optional(),
|
|
1691
|
+
chunking: BrainCharacterChunkingSchema.optional()
|
|
1692
|
+
}).strict().refine((value) => value.content !== void 0 !== (value.blocks !== void 0), { message: "Provide exactly one of content or blocks" }).refine((value) => value.blocks === void 0 || value.chunking === void 0, {
|
|
1693
|
+
message: "Chunking controls are not allowed with blocks",
|
|
1694
|
+
path: ["chunking"]
|
|
1695
|
+
});
|
|
1696
|
+
zod.z.object({
|
|
1697
|
+
documentId: BrainDocumentIdSchema,
|
|
1698
|
+
/** `queued` created a new version; `unchanged` skipped (revision or content hash matched). */
|
|
1699
|
+
outcome: zod.z.enum(["queued", "unchanged"]),
|
|
1700
|
+
versionId: zod.z.string().min(1).nullable(),
|
|
1701
|
+
metadataUpdated: zod.z.boolean()
|
|
1702
|
+
});
|
|
1703
|
+
zod.z.object({
|
|
1704
|
+
/** Full replacement of the document's metadata attributes; never re-embeds. */
|
|
1705
|
+
metadata: BrainDocumentMetadataSchema }).strict();
|
|
1706
|
+
zod.z.object({ documentIds: zod.z.array(BrainDocumentIdSchema).min(1).max(100) }).strict();
|
|
1707
|
+
zod.z.object({ deletedDocumentIds: zod.z.array(BrainDocumentIdSchema) });
|
|
1708
|
+
const BrainProvisionerKindSchema = zod.z.enum(["workflow", "manual"]);
|
|
1709
|
+
/**
|
|
1710
|
+
* Trusted system provenance for how a version entered the Brain: a workflow
|
|
1711
|
+
* run (project-scoped) or a manual Brain-admin upload (organization-scoped,
|
|
1712
|
+
* user identity only). Distinct from document `source` (content origin).
|
|
1713
|
+
*/
|
|
1714
|
+
const BrainDocumentProvisionerSchema = zod.z.discriminatedUnion("kind", [zod.z.object({
|
|
1715
|
+
kind: zod.z.literal("workflow"),
|
|
1716
|
+
projectId: zod.z.string().min(1),
|
|
1717
|
+
workflowRunId: zod.z.string().min(1),
|
|
1718
|
+
workflowSlug: zod.z.string().min(1),
|
|
1719
|
+
correlationId: zod.z.string().min(1)
|
|
1720
|
+
}).strict(), zod.z.object({
|
|
1721
|
+
kind: zod.z.literal("manual"),
|
|
1722
|
+
userId: zod.z.string().min(1)
|
|
1723
|
+
}).strict()]);
|
|
1724
|
+
const BrainDocumentWriteEventSchema = zod.z.object({
|
|
1725
|
+
id: zod.z.string().min(1),
|
|
1726
|
+
documentId: BrainDocumentIdSchema,
|
|
1727
|
+
provisioner: BrainDocumentProvisionerSchema,
|
|
1728
|
+
inputKind: BrainDocumentWriteInputKindSchema,
|
|
1729
|
+
outcome: BrainDocumentWriteOutcomeSchema,
|
|
1730
|
+
failureCode: zod.z.string().trim().min(1).max(128).nullable().optional(),
|
|
1731
|
+
failureMessage: zod.z.string().trim().min(1).max(2e3).nullable().optional(),
|
|
1732
|
+
submittedAt: zod.z.string().datetime(),
|
|
1733
|
+
contentReceivedAt: zod.z.string().datetime().nullable().optional(),
|
|
1734
|
+
completedAt: zod.z.string().datetime().nullable().optional()
|
|
1735
|
+
}).strict().superRefine((event, context) => {
|
|
1736
|
+
const hasFailure = event.failureCode != null || event.failureMessage != null;
|
|
1737
|
+
if (event.outcome === "pending") {
|
|
1738
|
+
if (event.completedAt != null || hasFailure) context.addIssue({
|
|
1739
|
+
code: "custom",
|
|
1740
|
+
message: "Pending writes cannot have completion or failure fields"
|
|
1741
|
+
});
|
|
1742
|
+
return;
|
|
1743
|
+
}
|
|
1744
|
+
if (event.completedAt == null) context.addIssue({
|
|
1745
|
+
code: "custom",
|
|
1746
|
+
message: "Terminal writes require completedAt",
|
|
1747
|
+
path: ["completedAt"]
|
|
1748
|
+
});
|
|
1749
|
+
if (event.outcome !== "failed" && hasFailure) context.addIssue({
|
|
1750
|
+
code: "custom",
|
|
1751
|
+
message: "Failure fields are only valid for failed writes"
|
|
1752
|
+
});
|
|
1753
|
+
});
|
|
1754
|
+
/** List entry doubling as the ETL diffing primitive (compare sha256 / revision, then put). */
|
|
1755
|
+
const BrainDocumentSummarySchema = zod.z.object({
|
|
1756
|
+
documentId: BrainDocumentIdSchema,
|
|
1757
|
+
title: zod.z.string().min(1),
|
|
1758
|
+
/** Where the current content originated (`linear`, `notion`, `manual`, …). */
|
|
1759
|
+
source: BrainSourceSchema,
|
|
1760
|
+
status: BrainDocumentVersionStatusSchema.nullable(),
|
|
1761
|
+
/** Content hash of the live version; null until first ingest completes. */
|
|
1762
|
+
sha256: zod.z.string().nullable(),
|
|
1763
|
+
/** Caller-supplied revision fingerprint from the last put. */
|
|
1764
|
+
revision: zod.z.string().nullable(),
|
|
1765
|
+
failureCode: BrainDocumentFailureCodeSchema.nullable().optional(),
|
|
1766
|
+
failureMessage: zod.z.string().nullable().optional(),
|
|
1767
|
+
byteSize: zod.z.number().int().nonnegative().nullable().optional(),
|
|
1768
|
+
chunkCount: zod.z.number().int().nonnegative().nullable().optional(),
|
|
1769
|
+
/**
|
|
1770
|
+
* Provenance for the event whose version is current. Null means legacy or
|
|
1771
|
+
* unavailable provenance; later failed/unchanged writes never replace it.
|
|
1772
|
+
*/
|
|
1773
|
+
currentProvenance: BrainDocumentWriteEventSchema.nullable(),
|
|
1774
|
+
createdAt: zod.z.string().datetime(),
|
|
1775
|
+
updatedAt: zod.z.string().datetime()
|
|
1776
|
+
});
|
|
1777
|
+
BrainDocumentSummarySchema.extend({
|
|
1778
|
+
metadata: BrainDocumentMetadataSchema.nullable(),
|
|
1779
|
+
contentType: zod.z.string().nullable(),
|
|
1780
|
+
format: zod.z.string().nullable()
|
|
1781
|
+
});
|
|
1782
|
+
/** Accepts one repeated query param or an array; normalizes to an array. */
|
|
1783
|
+
function queryList(schema) {
|
|
1784
|
+
return zod.z.union([schema, zod.z.array(schema).min(1)]).transform((value) => Array.isArray(value) ? value : [value]).optional();
|
|
1785
|
+
}
|
|
1786
|
+
const ListBrainDocumentsQuerySchema = zod.z.object({
|
|
1787
|
+
/** Filters documentIds by prefix (e.g. `slack:C123:`). */
|
|
1788
|
+
prefix: zod.z.string().min(1).max(512).optional(),
|
|
1789
|
+
/** Case-insensitive substring over title and documentId. */
|
|
1790
|
+
search: zod.z.string().trim().min(1).max(256).optional(),
|
|
1791
|
+
/** Any-of filter over document source. */
|
|
1792
|
+
source: queryList(BrainSourceSchema),
|
|
1793
|
+
/** Any-of filter over the current version's provisioner kind. */
|
|
1794
|
+
provisionerKind: queryList(BrainProvisionerKindSchema),
|
|
1795
|
+
/** Applies one persisted Brain filter expression (local filter slug). */
|
|
1796
|
+
filterSlug: BrainSlugSchema.optional(),
|
|
1797
|
+
cursor: zod.z.string().min(1).optional(),
|
|
1798
|
+
limit: zod.z.coerce.number().int().min(1).max(500).default(100)
|
|
1799
|
+
});
|
|
1800
|
+
zod.z.object({
|
|
1801
|
+
documents: zod.z.array(BrainDocumentSummarySchema),
|
|
1802
|
+
nextCursor: zod.z.string().nullable()
|
|
1803
|
+
});
|
|
1804
|
+
zod.z.object({
|
|
1805
|
+
documentId: BrainDocumentIdSchema,
|
|
1806
|
+
cursor: zod.z.string().min(1).optional(),
|
|
1807
|
+
limit: zod.z.coerce.number().int().min(1).max(100).default(50)
|
|
1808
|
+
});
|
|
1809
|
+
zod.z.object({
|
|
1810
|
+
writes: zod.z.array(BrainDocumentWriteEventSchema),
|
|
1811
|
+
nextCursor: zod.z.string().nullable()
|
|
1812
|
+
});
|
|
1813
|
+
const BrainUploadFileInputSchema = zod.z.object({
|
|
1814
|
+
idempotencyId: zod.z.string().uuid(),
|
|
1815
|
+
/** Doubles as the documentId; normalized as a relative path. */
|
|
1816
|
+
documentId: BrainDocumentIdSchema,
|
|
1817
|
+
size: zod.z.number().int().nonnegative().max(BRAIN_MAX_FILE_BYTES),
|
|
1818
|
+
contentType: zod.z.string().min(1).max(255),
|
|
1819
|
+
/** Local hash, verified by the worker and used for safe prepare-time dedupe. */
|
|
1820
|
+
sha256: sha256Hex$2,
|
|
1821
|
+
/** Where the content originated; manual UI uploads default to `manual`. */
|
|
1822
|
+
source: BrainSourceSchema,
|
|
1823
|
+
metadata: BrainDocumentMetadataSchema.optional()
|
|
1824
|
+
});
|
|
1825
|
+
zod.z.object({ files: zod.z.array(BrainUploadFileInputSchema).min(1).max(BRAIN_MAX_FOLDER_FILES) }).strict();
|
|
1826
|
+
const BrainUploadAcceptedSchema = zod.z.object({
|
|
1827
|
+
idempotencyId: zod.z.string().uuid(),
|
|
1828
|
+
documentId: BrainDocumentIdSchema,
|
|
1829
|
+
versionId: zod.z.string().min(1),
|
|
1830
|
+
/**
|
|
1831
|
+
* Null when a verified content-addressed blob was reused and ingestion was
|
|
1832
|
+
* queued immediately. Otherwise, submit the file as multipart form data.
|
|
1833
|
+
*/
|
|
1834
|
+
upload: zod.z.object({
|
|
1835
|
+
method: zod.z.literal("POST"),
|
|
1836
|
+
url: zod.z.string().url(),
|
|
1837
|
+
fields: zod.z.record(zod.z.string(), zod.z.string())
|
|
1838
|
+
}).nullable()
|
|
1839
|
+
});
|
|
1840
|
+
const BrainUploadSkippedSchema = zod.z.object({
|
|
1841
|
+
documentId: BrainDocumentIdSchema,
|
|
1842
|
+
reason: BrainSkippedReasonSchema,
|
|
1843
|
+
message: zod.z.string().min(1).optional()
|
|
1844
|
+
});
|
|
1845
|
+
zod.z.object({
|
|
1846
|
+
accepted: zod.z.array(BrainUploadAcceptedSchema),
|
|
1847
|
+
skipped: zod.z.array(BrainUploadSkippedSchema)
|
|
1848
|
+
});
|
|
1849
|
+
zod.z.object({ versionIds: zod.z.array(zod.z.string().min(1)).min(1).max(100) }).strict();
|
|
1850
|
+
const FinalizeBrainUploadResultSchema = zod.z.object({
|
|
1851
|
+
versionId: zod.z.string().min(1),
|
|
1852
|
+
documentId: BrainDocumentIdSchema,
|
|
1853
|
+
status: BrainDocumentVersionStatusSchema,
|
|
1854
|
+
failureCode: BrainDocumentFailureCodeSchema.nullable().optional(),
|
|
1855
|
+
failureMessage: zod.z.string().nullable().optional()
|
|
1856
|
+
});
|
|
1857
|
+
zod.z.object({ results: zod.z.array(FinalizeBrainUploadResultSchema) });
|
|
1858
|
+
/** `hybrid` = ANN + BM25 with server fusion; `semantic` / `keyword` drop one leg. */
|
|
1859
|
+
const BrainSearchModeSchema = zod.z.enum([
|
|
1860
|
+
"hybrid",
|
|
1861
|
+
"semantic",
|
|
1862
|
+
"keyword"
|
|
1863
|
+
]);
|
|
1864
|
+
zod.z.object({
|
|
1865
|
+
query: zod.z.string().trim().min(1).max(4e3),
|
|
1866
|
+
mode: BrainSearchModeSchema.default("hybrid"),
|
|
1867
|
+
limit: zod.z.number().int().min(1).max(20).default(5),
|
|
1868
|
+
minScore: zod.z.number().min(0).max(1).optional(),
|
|
1869
|
+
rerank: zod.z.boolean().default(true),
|
|
1870
|
+
/** Query-time narrowing; ANDs with the persisted filter when a qualified reference is searched. */
|
|
1871
|
+
filters: BrainFilterExpressionSchema.optional()
|
|
1872
|
+
}).strict();
|
|
1873
|
+
const BrainSearchHitSchema = zod.z.object({
|
|
1874
|
+
/** Reference the hit was served through (qualified when searching a filter). */
|
|
1875
|
+
brain: BrainReferenceSchema,
|
|
1876
|
+
documentId: BrainDocumentIdSchema,
|
|
1877
|
+
chunkId: zod.z.string().min(1),
|
|
1878
|
+
score: zod.z.number(),
|
|
1879
|
+
title: zod.z.string().min(1),
|
|
1880
|
+
text: zod.z.string().min(1),
|
|
1881
|
+
/** Where the document's content originated. */
|
|
1882
|
+
source: BrainSourceSchema,
|
|
1883
|
+
/** Human-readable location within the document (page/slide/heading) when known. */
|
|
1884
|
+
locationLabel: zod.z.string().nullable(),
|
|
1885
|
+
metadata: BrainDocumentMetadataSchema.nullable()
|
|
1886
|
+
});
|
|
1887
|
+
zod.z.object({
|
|
1888
|
+
hits: zod.z.array(BrainSearchHitSchema),
|
|
1889
|
+
reranked: zod.z.boolean()
|
|
1890
|
+
});
|
|
1891
|
+
zod.z.object({
|
|
1892
|
+
query: zod.z.string().trim().min(1).max(4e3),
|
|
1893
|
+
hits: zod.z.array(BrainSearchHitSchema).min(1).max(320),
|
|
1894
|
+
limit: zod.z.number().int().min(1).max(20)
|
|
1895
|
+
}).strict();
|
|
1896
|
+
zod.z.object({
|
|
1897
|
+
offset: zod.z.coerce.number().int().nonnegative().default(0),
|
|
1898
|
+
maxChars: zod.z.coerce.number().int().min(1).max(BRAIN_READ_MAX_CHARS).default(BRAIN_READ_MAX_CHARS)
|
|
1899
|
+
});
|
|
1900
|
+
zod.z.object({
|
|
1901
|
+
brain: BrainReferenceSchema,
|
|
1902
|
+
documentId: BrainDocumentIdSchema,
|
|
1903
|
+
title: zod.z.string().min(1),
|
|
1904
|
+
offset: zod.z.number().int().nonnegative(),
|
|
1905
|
+
text: zod.z.string(),
|
|
1906
|
+
truncated: zod.z.boolean()
|
|
1907
|
+
});
|
|
1908
|
+
zod.z.object({
|
|
1909
|
+
/** Reference the agent addresses (base slug or qualified `{brain}:{filter}`). */
|
|
1910
|
+
slug: BrainReferenceSchema,
|
|
1911
|
+
name: zod.z.string().min(1),
|
|
1912
|
+
description: BrainDescriptionSchema,
|
|
1913
|
+
/** Base Brain that owns the documents and index. */
|
|
1914
|
+
brainSlug: BrainSlugSchema,
|
|
1915
|
+
/** Filter slug when attached through a qualified reference; null otherwise. */
|
|
1916
|
+
filterSlug: BrainSlugSchema.nullable(),
|
|
1917
|
+
/** Persisted narrowing applied over the base Brain; null for base references. */
|
|
1918
|
+
filter: BrainFilterExpressionSchema.nullable()
|
|
1919
|
+
});
|
|
1920
|
+
zod.z.object({
|
|
1921
|
+
brainId: zod.z.string().min(1),
|
|
1922
|
+
status: BrainStatusSchema,
|
|
1923
|
+
/** Namespace generation the rebuild is writing into. */
|
|
1924
|
+
targetGeneration: zod.z.number().int().positive()
|
|
1925
|
+
});
|
|
1926
|
+
const BrainOperationIdSchema = zod.z.string().regex(/^[a-f0-9]{64}$/);
|
|
1927
|
+
const BrainRuntimeJobCommonSchema = zod.z.object({
|
|
1928
|
+
operationId: BrainOperationIdSchema,
|
|
1929
|
+
/** Originating project for workflow-scoped jobs; null for organization-scoped
|
|
1930
|
+
* operations (manual uploads, admin rebuilds/deletes). */
|
|
1931
|
+
projectId: zod.z.string().min(1).nullable(),
|
|
1932
|
+
brainId: zod.z.string().min(1),
|
|
1933
|
+
brainSlug: BrainSlugSchema
|
|
1934
|
+
}).strict();
|
|
1935
|
+
zod.z.discriminatedUnion("operation", [
|
|
1936
|
+
BrainRuntimeJobCommonSchema.extend({
|
|
1937
|
+
operation: zod.z.literal("ingest-version"),
|
|
1938
|
+
versionId: zod.z.string().min(1)
|
|
1939
|
+
}),
|
|
1940
|
+
BrainRuntimeJobCommonSchema.extend({ operation: zod.z.literal("rebuild-brain") }),
|
|
1941
|
+
BrainRuntimeJobCommonSchema.extend({
|
|
1942
|
+
operation: zod.z.literal("reconcile-metadata"),
|
|
1943
|
+
documentId: BrainDocumentIdSchema
|
|
1944
|
+
}),
|
|
1945
|
+
BrainRuntimeJobCommonSchema.extend({
|
|
1946
|
+
operation: zod.z.literal("cleanup-document"),
|
|
1947
|
+
documentRowId: zod.z.string().min(1),
|
|
1948
|
+
deletionEpoch: zod.z.number().int().positive(),
|
|
1949
|
+
versionIds: zod.z.array(zod.z.string().min(1))
|
|
1950
|
+
}),
|
|
1951
|
+
BrainRuntimeJobCommonSchema.extend({
|
|
1952
|
+
operation: zod.z.literal("cleanup-version"),
|
|
1953
|
+
versionId: zod.z.string().min(1)
|
|
1954
|
+
}),
|
|
1955
|
+
BrainRuntimeJobCommonSchema.extend({
|
|
1956
|
+
operation: zod.z.literal("cleanup-generation"),
|
|
1957
|
+
generation: zod.z.number().int().positive()
|
|
1958
|
+
}),
|
|
1959
|
+
BrainRuntimeJobCommonSchema.extend({ operation: zod.z.literal("delete-brain") })
|
|
1960
|
+
]);
|
|
1332
1961
|
const TriggerTypeSchema = zod.z.enum([
|
|
1333
1962
|
"webhook",
|
|
1334
1963
|
"poll",
|
|
@@ -1416,6 +2045,7 @@ const WorkflowCanvasNodeTypeSchema = zod.z.enum([
|
|
|
1416
2045
|
zod.z.enum([
|
|
1417
2046
|
"workflow-step",
|
|
1418
2047
|
"agent",
|
|
2048
|
+
"brain",
|
|
1419
2049
|
"llm",
|
|
1420
2050
|
"wait",
|
|
1421
2051
|
"hook",
|
|
@@ -1627,6 +2257,7 @@ const storedRouteManifestEntryV2Schema = zod.z.discriminatedUnion("kind", [
|
|
|
1627
2257
|
toolCount: zod.z.number().int().nonnegative(),
|
|
1628
2258
|
credentialCount: zod.z.number().int().nonnegative(),
|
|
1629
2259
|
sandboxMode: AgentSandboxModeSchema.optional(),
|
|
2260
|
+
brainSlugs: zod.z.array(BrainReferenceSchema).default([]),
|
|
1630
2261
|
appSlugs: zod.z.array(zod.z.string()).default([]),
|
|
1631
2262
|
toolSlugs: zod.z.array(zod.z.string()).default([]),
|
|
1632
2263
|
/** Credential requirements per tool slug (the agent's credential consumer key). */
|
|
@@ -1777,6 +2408,7 @@ const AgentManifestShardSchema = zod.z.object({
|
|
|
1777
2408
|
toolCount: zod.z.number().int().nonnegative(),
|
|
1778
2409
|
credentialCount: zod.z.number().int().nonnegative(),
|
|
1779
2410
|
sandboxMode: AgentSandboxModeSchema.optional(),
|
|
2411
|
+
brainSlugs: zod.z.array(BrainReferenceSchema).default([]),
|
|
1780
2412
|
appSlugs: zod.z.array(zod.z.string()).default([]),
|
|
1781
2413
|
toolSlugs: zod.z.array(zod.z.string()).default([]),
|
|
1782
2414
|
toolRequirements: zod.z.record(zod.z.string(), zod.z.array(CredentialRequirementSummarySchema)).optional(),
|
|
@@ -3171,6 +3803,20 @@ const SubmitMarketingContactRequestSchema = zod.z.object({
|
|
|
3171
3803
|
companyWebsite: zod.z.string().optional()
|
|
3172
3804
|
});
|
|
3173
3805
|
const SubmitMarketingContactResponseSchema = SubmitTeamRequestResponseSchema;
|
|
3806
|
+
/**
|
|
3807
|
+
* One embedding model from the AI Gateway catalog (`type === "embedding"`),
|
|
3808
|
+
* as served by `GET /api/embedding-models`. Any `id` here is a valid
|
|
3809
|
+
* `indexConfig.embeddingModel` for a Brain.
|
|
3810
|
+
*/
|
|
3811
|
+
const EmbeddingModelSchema = zod.z.object({
|
|
3812
|
+
id: BrainEmbeddingModelSchema,
|
|
3813
|
+
name: zod.z.string().min(1),
|
|
3814
|
+
provider: zod.z.string().min(1),
|
|
3815
|
+
contextWindow: zod.z.number().int().positive().optional(),
|
|
3816
|
+
/** USD per 1M input tokens, when the catalog prices the model. */
|
|
3817
|
+
inputPerMillionUsd: zod.z.number().nonnegative().optional()
|
|
3818
|
+
});
|
|
3819
|
+
zod.z.object({ models: zod.z.array(EmbeddingModelSchema) });
|
|
3174
3820
|
const CredentialAccessUnavailableReasonSchema = zod.z.enum(["request_access", "reconnect_required"]);
|
|
3175
3821
|
zod.z.object({
|
|
3176
3822
|
error: zod.z.literal("credential_access_unavailable"),
|
|
@@ -4772,7 +5418,7 @@ const ModuleBlobRefSchema = zod.z.object({
|
|
|
4772
5418
|
});
|
|
4773
5419
|
const isoDateTime = zod.z.string().datetime();
|
|
4774
5420
|
/** Snapshot/content-addressed blob digests are always lowercase sha256. */
|
|
4775
|
-
const sha256Hex$
|
|
5421
|
+
const sha256Hex$3 = zod.z.string().regex(/^[a-f0-9]{64}$/, "Expected a lowercase hex sha256 digest");
|
|
4776
5422
|
/** Max bytes for a single source file collected or served from a deploy tree. */
|
|
4777
5423
|
const PROJECT_SOURCE_MAX_FILE_BYTES = 256 * 1024;
|
|
4778
5424
|
/** Max total bytes across all source files in a deploy tree listing. */
|
|
@@ -4851,17 +5497,17 @@ const ListProjectFilesResponseSchema = zod.z.object({
|
|
|
4851
5497
|
zod.z.object({
|
|
4852
5498
|
path: zod.z.string().min(1),
|
|
4853
5499
|
contents: zod.z.string(),
|
|
4854
|
-
hash: sha256Hex$
|
|
5500
|
+
hash: sha256Hex$3
|
|
4855
5501
|
});
|
|
4856
5502
|
/** A blob the CLI may need to upload, keyed by content hash. */
|
|
4857
5503
|
const SourceBlobRefSchema = zod.z.object({
|
|
4858
|
-
hash: sha256Hex$
|
|
5504
|
+
hash: sha256Hex$3,
|
|
4859
5505
|
size: zod.z.number().int().nonnegative()
|
|
4860
5506
|
});
|
|
4861
5507
|
/** Request: ask the platform which blobs are missing and get presigned PUTs. */
|
|
4862
5508
|
const PresignProjectSourceRequestSchema = zod.z.object({ blobs: zod.z.array(SourceBlobRefSchema) });
|
|
4863
5509
|
const PresignedBlobUploadSchema = zod.z.object({
|
|
4864
|
-
hash: sha256Hex$
|
|
5510
|
+
hash: sha256Hex$3,
|
|
4865
5511
|
url: zod.z.string().url()
|
|
4866
5512
|
});
|
|
4867
5513
|
/** Response: presigned PUTs for the subset of blobs not already stored. */
|
|
@@ -4869,7 +5515,7 @@ const PresignProjectSourceResponseSchema = zod.z.object({ uploads: zod.z.array(P
|
|
|
4869
5515
|
/** A file reference in a manifest upload: where the path's content lives. */
|
|
4870
5516
|
const ManifestFileRefSchema = zod.z.object({
|
|
4871
5517
|
path: zod.z.string().min(1),
|
|
4872
|
-
hash: sha256Hex$
|
|
5518
|
+
hash: sha256Hex$3
|
|
4873
5519
|
});
|
|
4874
5520
|
/** Request body the CLI sends to finalize a deploy's source manifest. */
|
|
4875
5521
|
const UploadProjectSourceManifestRequestSchema = zod.z.object({ files: zod.z.array(ManifestFileRefSchema) });
|
|
@@ -4881,7 +5527,7 @@ const UploadProjectSourceResponseSchema = zod.z.object({
|
|
|
4881
5527
|
const StoredManifestFileSchema = zod.z.object({
|
|
4882
5528
|
id: zod.z.string(),
|
|
4883
5529
|
path: zod.z.string().min(1),
|
|
4884
|
-
hash: sha256Hex$
|
|
5530
|
+
hash: sha256Hex$3
|
|
4885
5531
|
});
|
|
4886
5532
|
/** The immutable per-deploy manifest persisted to object storage. */
|
|
4887
5533
|
const StoredProjectSourceManifestSchema = zod.z.object({
|
|
@@ -6045,6 +6691,23 @@ function runTar(args, options = {}) {
|
|
|
6045
6691
|
});
|
|
6046
6692
|
}
|
|
6047
6693
|
//#endregion
|
|
6694
|
+
//#region ../../packages/storage/dist/collect-artifact-modules-CApdro3d.mjs
|
|
6695
|
+
/** Lowercase hex sha256 of raw bytes. */
|
|
6696
|
+
function sha256Hex(bytes) {
|
|
6697
|
+
return (0, node_crypto.createHash)("sha256").update(bytes).digest("hex");
|
|
6698
|
+
}
|
|
6699
|
+
/**
|
|
6700
|
+
* Assert a content-addressed module blob matches its declared size and SHA-256 hash.
|
|
6701
|
+
* Returns a Buffer copy suitable for disk write / JSON parse.
|
|
6702
|
+
*/
|
|
6703
|
+
function assertModuleBlobMatchesHash(input) {
|
|
6704
|
+
if (input.bytes.byteLength !== input.expectedSize) throw new Error(`Module blob size mismatch for ${input.path}: expected ${input.expectedSize}, got ${input.bytes.byteLength}`);
|
|
6705
|
+
const actual = sha256Hex(input.bytes);
|
|
6706
|
+
const expected = input.expectedHash.toLowerCase();
|
|
6707
|
+
if (actual !== expected) throw new Error(`Module blob hash mismatch for ${input.path}: expected ${expected}, got ${actual}`);
|
|
6708
|
+
return Buffer.from(input.bytes);
|
|
6709
|
+
}
|
|
6710
|
+
//#endregion
|
|
6048
6711
|
//#region ../../packages/storage/dist/index.mjs
|
|
6049
6712
|
function readEnv$1(env, ...keys) {
|
|
6050
6713
|
for (const key of keys) {
|
|
@@ -6132,6 +6795,19 @@ function projectSourceBlobKey(projectId, hash) {
|
|
|
6132
6795
|
return `projects/${projectId}/sources/blobs/${hash}`;
|
|
6133
6796
|
}
|
|
6134
6797
|
const AVATAR_EXTENSION = /^[a-z0-9]+$/;
|
|
6798
|
+
/** Agent-scoped Browser Use profile metadata. */
|
|
6799
|
+
function browserProfileMetaStorageKey(options) {
|
|
6800
|
+
return `browser-media/${options.projectId}/${options.agentId}/profile.json`;
|
|
6801
|
+
}
|
|
6802
|
+
/** Session metadata JSON for live URL / recording pointers. */
|
|
6803
|
+
function browserSessionMetaStorageKey(options) {
|
|
6804
|
+
return `browser-media/${options.projectId}/${options.agentId}/${options.sessionId}/meta.json`;
|
|
6805
|
+
}
|
|
6806
|
+
/** True when `key` is browser media owned by this project/agent/session. */
|
|
6807
|
+
function isBrowserMediaStorageKey(key, projectId, agentId, sessionId) {
|
|
6808
|
+
const prefix = agentId && sessionId ? `browser-media/${projectId}/${agentId}/${sessionId}/` : agentId ? `browser-media/${projectId}/${agentId}/` : `browser-media/${projectId}/`;
|
|
6809
|
+
return key.startsWith(prefix) && key.length > prefix.length;
|
|
6810
|
+
}
|
|
6135
6811
|
/** Object key for a chat attachment in org-private storage. */
|
|
6136
6812
|
function chatAttachmentStorageKey(projectId, id, ext) {
|
|
6137
6813
|
const normalizedExt = ext.replace(/^\./, "").toLowerCase();
|
|
@@ -6401,6 +7077,23 @@ function createStorage(config) {
|
|
|
6401
7077
|
ContentType: input.contentType ?? "application/gzip"
|
|
6402
7078
|
}), { expiresIn: input.expiresInSeconds ?? DEFAULT_PRESIGN_TTL_SECONDS });
|
|
6403
7079
|
},
|
|
7080
|
+
async presignPost(input) {
|
|
7081
|
+
return (0, _aws_sdk_s3_presigned_post.createPresignedPost)(client, {
|
|
7082
|
+
Bucket: config.bucket,
|
|
7083
|
+
Key: input.key,
|
|
7084
|
+
Conditions: [[
|
|
7085
|
+
"content-length-range",
|
|
7086
|
+
input.contentLength,
|
|
7087
|
+
input.contentLength
|
|
7088
|
+
], [
|
|
7089
|
+
"eq",
|
|
7090
|
+
"$Content-Type",
|
|
7091
|
+
input.contentType
|
|
7092
|
+
]],
|
|
7093
|
+
Fields: { "Content-Type": input.contentType },
|
|
7094
|
+
Expires: input.expiresInSeconds ?? DEFAULT_PRESIGN_TTL_SECONDS
|
|
7095
|
+
});
|
|
7096
|
+
},
|
|
6404
7097
|
async deleteObject(key) {
|
|
6405
7098
|
await client.send(new _aws_sdk_client_s3.DeleteObjectCommand({
|
|
6406
7099
|
Bucket: config.bucket,
|
|
@@ -6482,21 +7175,6 @@ function extractRouteManifestFromArtifact(archive) {
|
|
|
6482
7175
|
});
|
|
6483
7176
|
}
|
|
6484
7177
|
}
|
|
6485
|
-
/** Lowercase hex sha256 of raw bytes. */
|
|
6486
|
-
function sha256Hex(bytes) {
|
|
6487
|
-
return (0, node_crypto.createHash)("sha256").update(bytes).digest("hex");
|
|
6488
|
-
}
|
|
6489
|
-
/**
|
|
6490
|
-
* Assert a content-addressed module blob matches its declared size and SHA-256 hash.
|
|
6491
|
-
* Returns a Buffer copy suitable for disk write / JSON parse.
|
|
6492
|
-
*/
|
|
6493
|
-
function assertModuleBlobMatchesHash(input) {
|
|
6494
|
-
if (input.bytes.byteLength !== input.expectedSize) throw new Error(`Module blob size mismatch for ${input.path}: expected ${input.expectedSize}, got ${input.bytes.byteLength}`);
|
|
6495
|
-
const actual = sha256Hex(input.bytes);
|
|
6496
|
-
const expected = input.expectedHash.toLowerCase();
|
|
6497
|
-
if (actual !== expected) throw new Error(`Module blob hash mismatch for ${input.path}: expected ${expected}, got ${actual}`);
|
|
6498
|
-
return Buffer.from(input.bytes);
|
|
6499
|
-
}
|
|
6500
7178
|
/** Parse index JSON bytes from object storage. */
|
|
6501
7179
|
function parseProjectArtifactIndex(bytes) {
|
|
6502
7180
|
return ProjectArtifactIndexSchema.parse(JSON.parse(Buffer.from(bytes).toString("utf8")));
|
|
@@ -6559,6 +7237,47 @@ async function prefetchCanvasShards(access, workflowSlug) {
|
|
|
6559
7237
|
];
|
|
6560
7238
|
await access.prefetchKeystrokeJson(paths);
|
|
6561
7239
|
}
|
|
7240
|
+
async function putBrowserProfileMeta(storage, options) {
|
|
7241
|
+
const key = browserProfileMetaStorageKey(options);
|
|
7242
|
+
const meta = {
|
|
7243
|
+
cloudProfileId: options.cloudProfileId,
|
|
7244
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
7245
|
+
};
|
|
7246
|
+
await storage.putObject({
|
|
7247
|
+
key,
|
|
7248
|
+
body: Buffer.from(JSON.stringify(meta, null, 2), "utf8"),
|
|
7249
|
+
contentType: "application/json"
|
|
7250
|
+
});
|
|
7251
|
+
return key;
|
|
7252
|
+
}
|
|
7253
|
+
async function getBrowserProfileMeta(storage, options) {
|
|
7254
|
+
try {
|
|
7255
|
+
const bytes = await storage.getObject(browserProfileMetaStorageKey(options));
|
|
7256
|
+
return JSON.parse(new TextDecoder().decode(bytes));
|
|
7257
|
+
} catch {
|
|
7258
|
+
return null;
|
|
7259
|
+
}
|
|
7260
|
+
}
|
|
7261
|
+
/** Persist browser session metadata JSON on the org bucket. */
|
|
7262
|
+
async function putBrowserSessionMeta(storage, options) {
|
|
7263
|
+
const key = browserSessionMetaStorageKey(options);
|
|
7264
|
+
await storage.putObject({
|
|
7265
|
+
key,
|
|
7266
|
+
body: Buffer.from(JSON.stringify(options.meta, null, 2), "utf8"),
|
|
7267
|
+
contentType: "application/json"
|
|
7268
|
+
});
|
|
7269
|
+
return key;
|
|
7270
|
+
}
|
|
7271
|
+
async function getBrowserSessionMeta(storage, options) {
|
|
7272
|
+
const key = browserSessionMetaStorageKey(options);
|
|
7273
|
+
try {
|
|
7274
|
+
const bytes = await storage.getObject(key);
|
|
7275
|
+
const text = new TextDecoder().decode(bytes);
|
|
7276
|
+
return JSON.parse(text);
|
|
7277
|
+
} catch {
|
|
7278
|
+
return null;
|
|
7279
|
+
}
|
|
7280
|
+
}
|
|
6562
7281
|
/** Shared bucket for cross-org public assets (avatars, org sidebar logos). */
|
|
6563
7282
|
const KEYSTROKE_ASSETS_BUCKET = "keystroke-assets";
|
|
6564
7283
|
/** Env var for the browser-facing origin of public asset objects (no trailing slash). */
|
|
@@ -6896,6 +7615,24 @@ Object.defineProperty(exports, "AppSlugAvailabilityResponseSchema", {
|
|
|
6896
7615
|
return AppSlugAvailabilityResponseSchema;
|
|
6897
7616
|
}
|
|
6898
7617
|
});
|
|
7618
|
+
Object.defineProperty(exports, "BrainDocumentIdSchema", {
|
|
7619
|
+
enumerable: true,
|
|
7620
|
+
get: function() {
|
|
7621
|
+
return BrainDocumentIdSchema;
|
|
7622
|
+
}
|
|
7623
|
+
});
|
|
7624
|
+
Object.defineProperty(exports, "BrainReferenceSchema", {
|
|
7625
|
+
enumerable: true,
|
|
7626
|
+
get: function() {
|
|
7627
|
+
return BrainReferenceSchema;
|
|
7628
|
+
}
|
|
7629
|
+
});
|
|
7630
|
+
Object.defineProperty(exports, "BrowserResumeStateSchema", {
|
|
7631
|
+
enumerable: true,
|
|
7632
|
+
get: function() {
|
|
7633
|
+
return BrowserResumeStateSchema;
|
|
7634
|
+
}
|
|
7635
|
+
});
|
|
6899
7636
|
Object.defineProperty(exports, "CancelManagedDeployRequestSchema", {
|
|
6900
7637
|
enumerable: true,
|
|
6901
7638
|
get: function() {
|
|
@@ -7274,6 +8011,12 @@ Object.defineProperty(exports, "ListAppsResponseSchema", {
|
|
|
7274
8011
|
return ListAppsResponseSchema;
|
|
7275
8012
|
}
|
|
7276
8013
|
});
|
|
8014
|
+
Object.defineProperty(exports, "ListBrainDocumentsQuerySchema", {
|
|
8015
|
+
enumerable: true,
|
|
8016
|
+
get: function() {
|
|
8017
|
+
return ListBrainDocumentsQuerySchema;
|
|
8018
|
+
}
|
|
8019
|
+
});
|
|
7277
8020
|
Object.defineProperty(exports, "ListChannelPlatformsResponseSchema", {
|
|
7278
8021
|
enumerable: true,
|
|
7279
8022
|
get: function() {
|
|
@@ -8144,6 +8887,18 @@ Object.defineProperty(exports, "formatStorageErrorDetail", {
|
|
|
8144
8887
|
return formatStorageErrorDetail;
|
|
8145
8888
|
}
|
|
8146
8889
|
});
|
|
8890
|
+
Object.defineProperty(exports, "getBrowserProfileMeta", {
|
|
8891
|
+
enumerable: true,
|
|
8892
|
+
get: function() {
|
|
8893
|
+
return getBrowserProfileMeta;
|
|
8894
|
+
}
|
|
8895
|
+
});
|
|
8896
|
+
Object.defineProperty(exports, "getBrowserSessionMeta", {
|
|
8897
|
+
enumerable: true,
|
|
8898
|
+
get: function() {
|
|
8899
|
+
return getBrowserSessionMeta;
|
|
8900
|
+
}
|
|
8901
|
+
});
|
|
8147
8902
|
Object.defineProperty(exports, "graphqlIntrospectionToAppTemplate", {
|
|
8148
8903
|
enumerable: true,
|
|
8149
8904
|
get: function() {
|
|
@@ -8168,6 +8923,12 @@ Object.defineProperty(exports, "isAppLogoStorageKey", {
|
|
|
8168
8923
|
return isAppLogoStorageKey;
|
|
8169
8924
|
}
|
|
8170
8925
|
});
|
|
8926
|
+
Object.defineProperty(exports, "isBrowserMediaStorageKey", {
|
|
8927
|
+
enumerable: true,
|
|
8928
|
+
get: function() {
|
|
8929
|
+
return isBrowserMediaStorageKey;
|
|
8930
|
+
}
|
|
8931
|
+
});
|
|
8171
8932
|
Object.defineProperty(exports, "isChatAttachmentStorageKey", {
|
|
8172
8933
|
enumerable: true,
|
|
8173
8934
|
get: function() {
|
|
@@ -8492,6 +9253,18 @@ Object.defineProperty(exports, "publishDraftUpdateBestEffort", {
|
|
|
8492
9253
|
return publishDraftUpdateBestEffort;
|
|
8493
9254
|
}
|
|
8494
9255
|
});
|
|
9256
|
+
Object.defineProperty(exports, "putBrowserProfileMeta", {
|
|
9257
|
+
enumerable: true,
|
|
9258
|
+
get: function() {
|
|
9259
|
+
return putBrowserProfileMeta;
|
|
9260
|
+
}
|
|
9261
|
+
});
|
|
9262
|
+
Object.defineProperty(exports, "putBrowserSessionMeta", {
|
|
9263
|
+
enumerable: true,
|
|
9264
|
+
get: function() {
|
|
9265
|
+
return putBrowserSessionMeta;
|
|
9266
|
+
}
|
|
9267
|
+
});
|
|
8495
9268
|
Object.defineProperty(exports, "requiredDisplayTextSchema", {
|
|
8496
9269
|
enumerable: true,
|
|
8497
9270
|
get: function() {
|
|
@@ -8619,4 +9392,4 @@ Object.defineProperty(exports, "waitForHealth", {
|
|
|
8619
9392
|
}
|
|
8620
9393
|
});
|
|
8621
9394
|
|
|
8622
|
-
//# sourceMappingURL=project-draft-notifier-
|
|
9395
|
+
//# sourceMappingURL=project-draft-notifier-BTrhFlJq.cjs.map
|