@keystrokehq/platform 0.1.3 → 0.1.5

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 (304) hide show
  1. package/dist/{awk2-LA3USKJP-BE8esz9o.cjs → awk2-LA3USKJP-AIZOQ0nh.cjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-BE8esz9o.cjs.map → awk2-LA3USKJP-AIZOQ0nh.cjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-CU79F18c.mjs → awk2-LA3USKJP-CPcab6tL.mjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-CU79F18c.mjs.map → awk2-LA3USKJP-CPcab6tL.mjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-ESsdavRZ.mjs → base64-C2AIWVNC-BU7vFrSz.mjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-ESsdavRZ.mjs.map → base64-C2AIWVNC-BU7vFrSz.mjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-CGFeI4Fm.cjs → base64-C2AIWVNC-fWp5IaIt.cjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-CGFeI4Fm.cjs.map → base64-C2AIWVNC-fWp5IaIt.cjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-Tqw_IzZM.mjs → bash-YZ33HQZQ-B7vkAJM1.mjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-Tqw_IzZM.mjs.map → bash-YZ33HQZQ-B7vkAJM1.mjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-Z8YFnXLG.cjs → bash-YZ33HQZQ-BfFH_xKv.cjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-Z8YFnXLG.cjs.map → bash-YZ33HQZQ-BfFH_xKv.cjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-B-Qi4MIN.mjs → cat-TSFMZVYS-BoRCwL0X.mjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-B-Qi4MIN.mjs.map → cat-TSFMZVYS-BoRCwL0X.mjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-3tq36V6U.cjs → cat-TSFMZVYS-Lk2fLg0m.cjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-3tq36V6U.cjs.map → cat-TSFMZVYS-Lk2fLg0m.cjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-DG2zdmBl.cjs → chunk-5H5SCKJM-Bf_pfjgz.cjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-DG2zdmBl.cjs.map → chunk-5H5SCKJM-Bf_pfjgz.cjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-jzOek3RA.mjs → chunk-5H5SCKJM-CCkl-6iR.mjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-jzOek3RA.mjs.map → chunk-5H5SCKJM-CCkl-6iR.mjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-CWRY3oXA.cjs → chunk-AQ6FYS2X-C_kf5YCJ.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-CWRY3oXA.cjs.map → chunk-AQ6FYS2X-C_kf5YCJ.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-Bz4Sl0he.mjs → chunk-AQ6FYS2X-CaSbvwYS.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-Bz4Sl0he.mjs.map → chunk-AQ6FYS2X-CaSbvwYS.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-Cg_Ca4ca.mjs → chunk-CHFEPBH4-Bk9Prhxt.mjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-Cg_Ca4ca.mjs.map → chunk-CHFEPBH4-Bk9Prhxt.mjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-BjRBtKoa.cjs → chunk-CHFEPBH4-Cdk9vq_c.cjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-BjRBtKoa.cjs.map → chunk-CHFEPBH4-Cdk9vq_c.cjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-TuSvdjDg.cjs → chunk-EBAPSGAO-9HAVo6nm.cjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-TuSvdjDg.cjs.map → chunk-EBAPSGAO-9HAVo6nm.cjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-BAjudTzg.mjs → chunk-EBAPSGAO-BPVz-6BX.mjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-BAjudTzg.mjs.map → chunk-EBAPSGAO-BPVz-6BX.mjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-VngQ-bGK.cjs → chunk-LEKBROJD-4MTnJXG3.cjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-VngQ-bGK.cjs.map → chunk-LEKBROJD-4MTnJXG3.cjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-B7WoDbJJ.mjs → chunk-LEKBROJD-Bk_pJfFK.mjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-B7WoDbJJ.mjs.map → chunk-LEKBROJD-Bk_pJfFK.mjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-B7JoVwJq.mjs → chunk-VPADYNBD-Bc5abqkF.mjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-B7JoVwJq.mjs.map → chunk-VPADYNBD-Bc5abqkF.mjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-Ju6wgxLY.cjs → chunk-VPADYNBD-CS9VA1aJ.cjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-Ju6wgxLY.cjs.map → chunk-VPADYNBD-CS9VA1aJ.cjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-BoIwWBSQ.mjs → chunk-YCLFEX4T-Cz2QbPh0.mjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-BoIwWBSQ.mjs.map → chunk-YCLFEX4T-Cz2QbPh0.mjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-81Ii8Wlf.cjs → chunk-YCLFEX4T-D65vwGHr.cjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-81Ii8Wlf.cjs.map → chunk-YCLFEX4T-D65vwGHr.cjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-B8RfIkpb.mjs → column-XT6UFXNQ-BsXqWbAP.mjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-B8RfIkpb.mjs.map → column-XT6UFXNQ-BsXqWbAP.mjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-ieIKmRkh.cjs → column-XT6UFXNQ-CwtLFuCh.cjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-ieIKmRkh.cjs.map → column-XT6UFXNQ-CwtLFuCh.cjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-DEKxgGlr.mjs → comm-VV2LDX2J-BZdS-Fqy.mjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-DEKxgGlr.mjs.map → comm-VV2LDX2J-BZdS-Fqy.mjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-CdE-OYeG.cjs → comm-VV2LDX2J-YL8m_4d1.cjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-CdE-OYeG.cjs.map → comm-VV2LDX2J-YL8m_4d1.cjs.map} +1 -1
  53. package/dist/{config-CXBff_fs.d.mts → config-DF8H5mS5.d.mts} +17 -13
  54. package/dist/{config-C78TqlE1.d.cts → config-DqyMT-Xg.d.cts} +17 -13
  55. package/dist/config.cjs +1 -1
  56. package/dist/config.cjs.map +1 -1
  57. package/dist/config.d.cts +1 -1
  58. package/dist/config.d.mts +1 -1
  59. package/dist/config.mjs +1 -1
  60. package/dist/config.mjs.map +1 -1
  61. package/dist/{cp-BISAAS7A-CMVh32j_.mjs → cp-BISAAS7A-C0MVoZpt.mjs} +2 -2
  62. package/dist/{cp-BISAAS7A-CMVh32j_.mjs.map → cp-BISAAS7A-C0MVoZpt.mjs.map} +1 -1
  63. package/dist/{cp-BISAAS7A-C1ygPb-h.cjs → cp-BISAAS7A-Dx6QG-P9.cjs} +2 -2
  64. package/dist/{cp-BISAAS7A-C1ygPb-h.cjs.map → cp-BISAAS7A-Dx6QG-P9.cjs.map} +1 -1
  65. package/dist/{cut-OKARJCCV-CluNzLiu.mjs → cut-OKARJCCV-BKWEQwCZ.mjs} +3 -3
  66. package/dist/{cut-OKARJCCV-CluNzLiu.mjs.map → cut-OKARJCCV-BKWEQwCZ.mjs.map} +1 -1
  67. package/dist/{cut-OKARJCCV-S-g4hG3d.cjs → cut-OKARJCCV-C1CAocst.cjs} +3 -3
  68. package/dist/{cut-OKARJCCV-S-g4hG3d.cjs.map → cut-OKARJCCV-C1CAocst.cjs.map} +1 -1
  69. package/dist/{diff-MWJFIG7X-Xtqp7FtF.cjs → diff-MWJFIG7X-D5nTdPdk.cjs} +2 -2
  70. package/dist/{diff-MWJFIG7X-Xtqp7FtF.cjs.map → diff-MWJFIG7X-D5nTdPdk.cjs.map} +1 -1
  71. package/dist/{diff-MWJFIG7X-CuSut3C1.mjs → diff-MWJFIG7X-YTniIfbL.mjs} +2 -2
  72. package/dist/{diff-MWJFIG7X-CuSut3C1.mjs.map → diff-MWJFIG7X-YTniIfbL.mjs.map} +1 -1
  73. package/dist/{dist-D1Iv7_7S.cjs → dist-C3ioU2dM.cjs} +559 -329
  74. package/dist/{dist-D1Iv7_7S.cjs.map → dist-C3ioU2dM.cjs.map} +1 -1
  75. package/dist/{dist-70NUfApd.mjs → dist-CQMZgfp_.mjs} +518 -330
  76. package/dist/dist-CQMZgfp_.mjs.map +1 -0
  77. package/dist/{du-572XNP42-f68GOB47.cjs → du-572XNP42-B2vhVgxe.cjs} +2 -2
  78. package/dist/{du-572XNP42-f68GOB47.cjs.map → du-572XNP42-B2vhVgxe.cjs.map} +1 -1
  79. package/dist/{du-572XNP42-BTLDH4CK.mjs → du-572XNP42-CmxmrMJd.mjs} +2 -2
  80. package/dist/{du-572XNP42-BTLDH4CK.mjs.map → du-572XNP42-CmxmrMJd.mjs.map} +1 -1
  81. package/dist/{env-36M5BO7M-DHcnOUrA.cjs → env-36M5BO7M-Dj2YwzST.cjs} +2 -2
  82. package/dist/{env-36M5BO7M-DHcnOUrA.cjs.map → env-36M5BO7M-Dj2YwzST.cjs.map} +1 -1
  83. package/dist/{env-36M5BO7M-CjuGiDaW.mjs → env-36M5BO7M-DupdD4fz.mjs} +2 -2
  84. package/dist/{env-36M5BO7M-CjuGiDaW.mjs.map → env-36M5BO7M-DupdD4fz.mjs.map} +1 -1
  85. package/dist/{expand-JSPG6VOP-Cmm7S480.mjs → expand-JSPG6VOP-BtD3fO-u.mjs} +2 -2
  86. package/dist/{expand-JSPG6VOP-Cmm7S480.mjs.map → expand-JSPG6VOP-BtD3fO-u.mjs.map} +1 -1
  87. package/dist/{expand-JSPG6VOP-BAEvLz6y.cjs → expand-JSPG6VOP-C4VQzWfg.cjs} +2 -2
  88. package/dist/{expand-JSPG6VOP-BAEvLz6y.cjs.map → expand-JSPG6VOP-C4VQzWfg.cjs.map} +1 -1
  89. package/dist/{expr-5JAACS4X-C3PXSs0i.mjs → expr-5JAACS4X-C75E9ncn.mjs} +2 -2
  90. package/dist/{expr-5JAACS4X-C3PXSs0i.mjs.map → expr-5JAACS4X-C75E9ncn.mjs.map} +1 -1
  91. package/dist/{expr-5JAACS4X-BFLtaqNy.cjs → expr-5JAACS4X-DX-k1Bjo.cjs} +2 -2
  92. package/dist/{expr-5JAACS4X-BFLtaqNy.cjs.map → expr-5JAACS4X-DX-k1Bjo.cjs.map} +1 -1
  93. package/dist/{find-INTH3OLC-Bf3-4Zi2.cjs → find-INTH3OLC-2rIv2Sgt.cjs} +3 -3
  94. package/dist/{find-INTH3OLC-Bf3-4Zi2.cjs.map → find-INTH3OLC-2rIv2Sgt.cjs.map} +1 -1
  95. package/dist/{find-INTH3OLC-D6wBmhsd.mjs → find-INTH3OLC-B2oqqlwt.mjs} +3 -3
  96. package/dist/{find-INTH3OLC-D6wBmhsd.mjs.map → find-INTH3OLC-B2oqqlwt.mjs.map} +1 -1
  97. package/dist/{fold-4TQNYMSW-BIl_iV0S.cjs → fold-4TQNYMSW-DFQEjMsZ.cjs} +2 -2
  98. package/dist/{fold-4TQNYMSW-BIl_iV0S.cjs.map → fold-4TQNYMSW-DFQEjMsZ.cjs.map} +1 -1
  99. package/dist/{fold-4TQNYMSW-BVCyD8C0.mjs → fold-4TQNYMSW-DzA5SsAN.mjs} +2 -2
  100. package/dist/{fold-4TQNYMSW-BVCyD8C0.mjs.map → fold-4TQNYMSW-DzA5SsAN.mjs.map} +1 -1
  101. package/dist/{grep-V3LQVMRQ-BLwElJ9a.mjs → grep-V3LQVMRQ-CUJiTsKp.mjs} +4 -4
  102. package/dist/{grep-V3LQVMRQ-BLwElJ9a.mjs.map → grep-V3LQVMRQ-CUJiTsKp.mjs.map} +1 -1
  103. package/dist/{grep-V3LQVMRQ-BcfmH0yO.cjs → grep-V3LQVMRQ-D--OXkar.cjs} +4 -4
  104. package/dist/{grep-V3LQVMRQ-BcfmH0yO.cjs.map → grep-V3LQVMRQ-D--OXkar.cjs.map} +1 -1
  105. package/dist/{gzip-O5ASJAFY-B9ermjPq.cjs → gzip-O5ASJAFY-B3o0_eql.cjs} +2 -2
  106. package/dist/{gzip-O5ASJAFY-B9ermjPq.cjs.map → gzip-O5ASJAFY-B3o0_eql.cjs.map} +1 -1
  107. package/dist/{gzip-O5ASJAFY-BjVFU42g.mjs → gzip-O5ASJAFY-D8i6m9_W.mjs} +2 -2
  108. package/dist/{gzip-O5ASJAFY-BjVFU42g.mjs.map → gzip-O5ASJAFY-D8i6m9_W.mjs.map} +1 -1
  109. package/dist/{head-442HYESI-BGRcjEMI.mjs → head-442HYESI-BDYHKho-.mjs} +2 -2
  110. package/dist/{head-442HYESI-BGRcjEMI.mjs.map → head-442HYESI-BDYHKho-.mjs.map} +1 -1
  111. package/dist/{head-442HYESI-_RXn0SBi.cjs → head-442HYESI-Bztg6Xka.cjs} +2 -2
  112. package/dist/{head-442HYESI-_RXn0SBi.cjs.map → head-442HYESI-Bztg6Xka.cjs.map} +1 -1
  113. package/dist/{help-HZ6M2CKN-BCHt7Yu_.mjs → help-HZ6M2CKN-C95bcvt_.mjs} +2 -2
  114. package/dist/{help-HZ6M2CKN-BCHt7Yu_.mjs.map → help-HZ6M2CKN-C95bcvt_.mjs.map} +1 -1
  115. package/dist/{help-HZ6M2CKN-DJP0l3xk.cjs → help-HZ6M2CKN-CFA5POOW.cjs} +2 -2
  116. package/dist/{help-HZ6M2CKN-DJP0l3xk.cjs.map → help-HZ6M2CKN-CFA5POOW.cjs.map} +1 -1
  117. package/dist/{html-to-markdown-JW4MSQZO-Dq7eYKW0.mjs → html-to-markdown-JW4MSQZO-8YYzjAx0.mjs} +2 -2
  118. package/dist/{html-to-markdown-JW4MSQZO-Dq7eYKW0.mjs.map → html-to-markdown-JW4MSQZO-8YYzjAx0.mjs.map} +1 -1
  119. package/dist/{html-to-markdown-JW4MSQZO-yoaOs45E.cjs → html-to-markdown-JW4MSQZO-B3xkcb1w.cjs} +2 -2
  120. package/dist/{html-to-markdown-JW4MSQZO-yoaOs45E.cjs.map → html-to-markdown-JW4MSQZO-B3xkcb1w.cjs.map} +1 -1
  121. package/dist/{join-TBRGI3LQ-BU7FYSK3.mjs → join-TBRGI3LQ-Cb96ZaTF.mjs} +2 -2
  122. package/dist/{join-TBRGI3LQ-BU7FYSK3.mjs.map → join-TBRGI3LQ-Cb96ZaTF.mjs.map} +1 -1
  123. package/dist/{join-TBRGI3LQ-BOS3zpbh.cjs → join-TBRGI3LQ-CzBO0uid.cjs} +2 -2
  124. package/dist/{join-TBRGI3LQ-BOS3zpbh.cjs.map → join-TBRGI3LQ-CzBO0uid.cjs.map} +1 -1
  125. package/dist/{jq-4XLYLOS5-C-4KbpIO.cjs → jq-4XLYLOS5-Dmw7PtvC.cjs} +4 -4
  126. package/dist/{jq-4XLYLOS5-C-4KbpIO.cjs.map → jq-4XLYLOS5-Dmw7PtvC.cjs.map} +1 -1
  127. package/dist/{jq-4XLYLOS5-tfCBGz19.mjs → jq-4XLYLOS5-QEF-9JGc.mjs} +4 -4
  128. package/dist/{jq-4XLYLOS5-tfCBGz19.mjs.map → jq-4XLYLOS5-QEF-9JGc.mjs.map} +1 -1
  129. package/dist/{js-exec-N5KEZBH7--5grqRpb.cjs → js-exec-N5KEZBH7-BLGWy2LA.cjs} +4 -4
  130. package/dist/{js-exec-N5KEZBH7--5grqRpb.cjs.map → js-exec-N5KEZBH7-BLGWy2LA.cjs.map} +1 -1
  131. package/dist/{js-exec-N5KEZBH7-C5C01q6k.mjs → js-exec-N5KEZBH7-DWi8fMhN.mjs} +4 -4
  132. package/dist/{js-exec-N5KEZBH7-C5C01q6k.mjs.map → js-exec-N5KEZBH7-DWi8fMhN.mjs.map} +1 -1
  133. package/dist/{lib-CNke9ACR.mjs → lib-C8lgRYXp.mjs} +2 -2
  134. package/dist/{lib-CNke9ACR.mjs.map → lib-C8lgRYXp.mjs.map} +1 -1
  135. package/dist/{lib-CW0fuh-i.cjs → lib-ux1xJJmr.cjs} +2 -2
  136. package/dist/{lib-CW0fuh-i.cjs.map → lib-ux1xJJmr.cjs.map} +1 -1
  137. package/dist/{ln-4LGSXXGD-Cy8gNPMC.mjs → ln-4LGSXXGD-BtA5nI4o.mjs} +2 -2
  138. package/dist/{ln-4LGSXXGD-Cy8gNPMC.mjs.map → ln-4LGSXXGD-BtA5nI4o.mjs.map} +1 -1
  139. package/dist/{ln-4LGSXXGD-B0nikKzZ.cjs → ln-4LGSXXGD-CkQRVPru.cjs} +2 -2
  140. package/dist/{ln-4LGSXXGD-B0nikKzZ.cjs.map → ln-4LGSXXGD-CkQRVPru.cjs.map} +1 -1
  141. package/dist/{ls-ZJGQER7M-DMYpsOhX.mjs → ls-ZJGQER7M-Bm9zc4KC.mjs} +2 -2
  142. package/dist/{ls-ZJGQER7M-DMYpsOhX.mjs.map → ls-ZJGQER7M-Bm9zc4KC.mjs.map} +1 -1
  143. package/dist/{ls-ZJGQER7M-CaSRbmLC.cjs → ls-ZJGQER7M-H5DDO7bw.cjs} +2 -2
  144. package/dist/{ls-ZJGQER7M-CaSRbmLC.cjs.map → ls-ZJGQER7M-H5DDO7bw.cjs.map} +1 -1
  145. package/dist/{lzma-L8nnN88o.cjs → lzma-CjqgTQ5J.cjs} +2 -2
  146. package/dist/{lzma-L8nnN88o.cjs.map → lzma-CjqgTQ5J.cjs.map} +1 -1
  147. package/dist/{md5sum-SPU24VSG-wjaqw6M5.cjs → md5sum-SPU24VSG-B6JGibcS.cjs} +3 -3
  148. package/dist/{md5sum-SPU24VSG-wjaqw6M5.cjs.map → md5sum-SPU24VSG-B6JGibcS.cjs.map} +1 -1
  149. package/dist/{md5sum-SPU24VSG-DDehVi3L.mjs → md5sum-SPU24VSG-Dqy3agsE.mjs} +3 -3
  150. package/dist/{md5sum-SPU24VSG-DDehVi3L.mjs.map → md5sum-SPU24VSG-Dqy3agsE.mjs.map} +1 -1
  151. package/dist/{mkdir-MEPGZOB6-D6EapQqG.cjs → mkdir-MEPGZOB6-BFwkd4Z7.cjs} +2 -2
  152. package/dist/{mkdir-MEPGZOB6-D6EapQqG.cjs.map → mkdir-MEPGZOB6-BFwkd4Z7.cjs.map} +1 -1
  153. package/dist/{mkdir-MEPGZOB6-BoeUbSt6.mjs → mkdir-MEPGZOB6-CMrYu1Ht.mjs} +2 -2
  154. package/dist/{mkdir-MEPGZOB6-BoeUbSt6.mjs.map → mkdir-MEPGZOB6-CMrYu1Ht.mjs.map} +1 -1
  155. package/dist/{mv-W5BIQ646-ee9iH5gF.mjs → mv-W5BIQ646-CWgyAnYE.mjs} +2 -2
  156. package/dist/{mv-W5BIQ646-ee9iH5gF.mjs.map → mv-W5BIQ646-CWgyAnYE.mjs.map} +1 -1
  157. package/dist/{mv-W5BIQ646-Cl3grRdX.cjs → mv-W5BIQ646-hheW03eh.cjs} +2 -2
  158. package/dist/{mv-W5BIQ646-Cl3grRdX.cjs.map → mv-W5BIQ646-hheW03eh.cjs.map} +1 -1
  159. package/dist/{nl-WSDW7I4O-DttNn_cO.cjs → nl-WSDW7I4O-DcVnQp-1.cjs} +2 -2
  160. package/dist/{nl-WSDW7I4O-DttNn_cO.cjs.map → nl-WSDW7I4O-DcVnQp-1.cjs.map} +1 -1
  161. package/dist/{nl-WSDW7I4O-DveMZ08l.mjs → nl-WSDW7I4O-hZyrJS6m.mjs} +2 -2
  162. package/dist/{nl-WSDW7I4O-DveMZ08l.mjs.map → nl-WSDW7I4O-hZyrJS6m.mjs.map} +1 -1
  163. package/dist/{od-WOKFDJTP-DCy3_AZ5.mjs → od-WOKFDJTP-60QMVWxL.mjs} +2 -2
  164. package/dist/{od-WOKFDJTP-DCy3_AZ5.mjs.map → od-WOKFDJTP-60QMVWxL.mjs.map} +1 -1
  165. package/dist/{od-WOKFDJTP-BJWjPFho.cjs → od-WOKFDJTP-CIGKYa74.cjs} +2 -2
  166. package/dist/{od-WOKFDJTP-BJWjPFho.cjs.map → od-WOKFDJTP-CIGKYa74.cjs.map} +1 -1
  167. package/dist/{paste-7JC6S4DX-DEoyg9Vv.cjs → paste-7JC6S4DX-CC0xWPbo.cjs} +2 -2
  168. package/dist/{paste-7JC6S4DX-DEoyg9Vv.cjs.map → paste-7JC6S4DX-CC0xWPbo.cjs.map} +1 -1
  169. package/dist/{paste-7JC6S4DX-DL9UawIf.mjs → paste-7JC6S4DX-QB7MigtV.mjs} +2 -2
  170. package/dist/{paste-7JC6S4DX-DL9UawIf.mjs.map → paste-7JC6S4DX-QB7MigtV.mjs.map} +1 -1
  171. package/dist/{printf-TWGXF445-BlwG6dD2.mjs → printf-TWGXF445-BuI_jQx5.mjs} +2 -2
  172. package/dist/{printf-TWGXF445-BlwG6dD2.mjs.map → printf-TWGXF445-BuI_jQx5.mjs.map} +1 -1
  173. package/dist/{printf-TWGXF445-B1fsJl2X.cjs → printf-TWGXF445-bSICkDD6.cjs} +2 -2
  174. package/dist/{printf-TWGXF445-B1fsJl2X.cjs.map → printf-TWGXF445-bSICkDD6.cjs.map} +1 -1
  175. package/dist/{python3-POMOR4OA-qY8EzVSe.mjs → python3-POMOR4OA-CQv_ljO3.mjs} +3 -3
  176. package/dist/{python3-POMOR4OA-qY8EzVSe.mjs.map → python3-POMOR4OA-CQv_ljO3.mjs.map} +1 -1
  177. package/dist/{python3-POMOR4OA-B8aVGk7h.cjs → python3-POMOR4OA-D8YyzdQy.cjs} +3 -3
  178. package/dist/{python3-POMOR4OA-B8aVGk7h.cjs.map → python3-POMOR4OA-D8YyzdQy.cjs.map} +1 -1
  179. package/dist/{rev-5EHFX4EJ-Dxay6iFE.mjs → rev-5EHFX4EJ-BCHr71Dm.mjs} +2 -2
  180. package/dist/{rev-5EHFX4EJ-Dxay6iFE.mjs.map → rev-5EHFX4EJ-BCHr71Dm.mjs.map} +1 -1
  181. package/dist/{rev-5EHFX4EJ-B27blDxm.cjs → rev-5EHFX4EJ-BS2n_x9V.cjs} +2 -2
  182. package/dist/{rev-5EHFX4EJ-B27blDxm.cjs.map → rev-5EHFX4EJ-BS2n_x9V.cjs.map} +1 -1
  183. package/dist/{rg-S4FXYXWB-BL_fs0a0.cjs → rg-S4FXYXWB-Bol68AvR.cjs} +3 -3
  184. package/dist/{rg-S4FXYXWB-BL_fs0a0.cjs.map → rg-S4FXYXWB-Bol68AvR.cjs.map} +1 -1
  185. package/dist/{rg-S4FXYXWB-b3jjC2M6.mjs → rg-S4FXYXWB-C8PEpvTX.mjs} +3 -3
  186. package/dist/{rg-S4FXYXWB-b3jjC2M6.mjs.map → rg-S4FXYXWB-C8PEpvTX.mjs.map} +1 -1
  187. package/dist/{rm-SSGETQVQ-CskLcJOp.cjs → rm-SSGETQVQ-BPv10nPA.cjs} +2 -2
  188. package/dist/{rm-SSGETQVQ-CskLcJOp.cjs.map → rm-SSGETQVQ-BPv10nPA.cjs.map} +1 -1
  189. package/dist/{rm-SSGETQVQ-D0Grjo65.mjs → rm-SSGETQVQ-C1OgRoSu.mjs} +2 -2
  190. package/dist/{rm-SSGETQVQ-D0Grjo65.mjs.map → rm-SSGETQVQ-C1OgRoSu.mjs.map} +1 -1
  191. package/dist/{rmdir-OC4ZLPYA-BZ86Q3Wr.mjs → rmdir-OC4ZLPYA-BFuqEQ5J.mjs} +2 -2
  192. package/dist/{rmdir-OC4ZLPYA-BZ86Q3Wr.mjs.map → rmdir-OC4ZLPYA-BFuqEQ5J.mjs.map} +1 -1
  193. package/dist/{rmdir-OC4ZLPYA-Br6jTWJO.cjs → rmdir-OC4ZLPYA-DngaXCWg.cjs} +2 -2
  194. package/dist/{rmdir-OC4ZLPYA-Br6jTWJO.cjs.map → rmdir-OC4ZLPYA-DngaXCWg.cjs.map} +1 -1
  195. package/dist/run.cjs +1 -1
  196. package/dist/run.mjs +1 -1
  197. package/dist/{sed-S5UIK574-C0ikpRUI.mjs → sed-S5UIK574-C8OThvO-.mjs} +2 -2
  198. package/dist/{sed-S5UIK574-C0ikpRUI.mjs.map → sed-S5UIK574-C8OThvO-.mjs.map} +1 -1
  199. package/dist/{sed-S5UIK574-OUlTmK0x.cjs → sed-S5UIK574-CF78rdnK.cjs} +2 -2
  200. package/dist/{sed-S5UIK574-OUlTmK0x.cjs.map → sed-S5UIK574-CF78rdnK.cjs.map} +1 -1
  201. package/dist/{sha1sum-2PTOAFR6-hLKNluNQ.mjs → sha1sum-2PTOAFR6-BgSg3k-0.mjs} +3 -3
  202. package/dist/{sha1sum-2PTOAFR6-hLKNluNQ.mjs.map → sha1sum-2PTOAFR6-BgSg3k-0.mjs.map} +1 -1
  203. package/dist/{sha1sum-2PTOAFR6-B_DU8HD8.cjs → sha1sum-2PTOAFR6-C48qu6hM.cjs} +3 -3
  204. package/dist/{sha1sum-2PTOAFR6-B_DU8HD8.cjs.map → sha1sum-2PTOAFR6-C48qu6hM.cjs.map} +1 -1
  205. package/dist/{sha256sum-NS7D3IXX-c6RHEh31.mjs → sha256sum-NS7D3IXX-BML40mGR.mjs} +3 -3
  206. package/dist/{sha256sum-NS7D3IXX-c6RHEh31.mjs.map → sha256sum-NS7D3IXX-BML40mGR.mjs.map} +1 -1
  207. package/dist/{sha256sum-NS7D3IXX-YzzSU71d.cjs → sha256sum-NS7D3IXX-DTZ34xii.cjs} +3 -3
  208. package/dist/{sha256sum-NS7D3IXX-YzzSU71d.cjs.map → sha256sum-NS7D3IXX-DTZ34xii.cjs.map} +1 -1
  209. package/dist/{sleep-X22JJINO-lQ5Wi1rP.mjs → sleep-X22JJINO-BzDRKdtv.mjs} +2 -2
  210. package/dist/{sleep-X22JJINO-lQ5Wi1rP.mjs.map → sleep-X22JJINO-BzDRKdtv.mjs.map} +1 -1
  211. package/dist/{sleep-X22JJINO-DFWLmtic.cjs → sleep-X22JJINO-Dy9v8Z4n.cjs} +2 -2
  212. package/dist/{sleep-X22JJINO-DFWLmtic.cjs.map → sleep-X22JJINO-Dy9v8Z4n.cjs.map} +1 -1
  213. package/dist/{sort-SW2YEO5B-Njc26SUn.mjs → sort-SW2YEO5B-ClyGJwMQ.mjs} +3 -3
  214. package/dist/{sort-SW2YEO5B-Njc26SUn.mjs.map → sort-SW2YEO5B-ClyGJwMQ.mjs.map} +1 -1
  215. package/dist/{sort-SW2YEO5B-BlJCEbS7.cjs → sort-SW2YEO5B-DwbO0wml.cjs} +3 -3
  216. package/dist/{sort-SW2YEO5B-BlJCEbS7.cjs.map → sort-SW2YEO5B-DwbO0wml.cjs.map} +1 -1
  217. package/dist/{split-4KKZZXXE-DGFsDrFE.cjs → split-4KKZZXXE-D3kKToq-.cjs} +2 -2
  218. package/dist/{split-4KKZZXXE-DGFsDrFE.cjs.map → split-4KKZZXXE-D3kKToq-.cjs.map} +1 -1
  219. package/dist/{split-4KKZZXXE-C97QsnxB.mjs → split-4KKZZXXE-oyZFQtYU.mjs} +2 -2
  220. package/dist/{split-4KKZZXXE-C97QsnxB.mjs.map → split-4KKZZXXE-oyZFQtYU.mjs.map} +1 -1
  221. package/dist/{sqlite3-CGOEFJAO-HGqCZYuu.mjs → sqlite3-CGOEFJAO-BedLxgf_.mjs} +2 -2
  222. package/dist/{sqlite3-CGOEFJAO-HGqCZYuu.mjs.map → sqlite3-CGOEFJAO-BedLxgf_.mjs.map} +1 -1
  223. package/dist/{sqlite3-CGOEFJAO-D78UkTyw.cjs → sqlite3-CGOEFJAO-DUW1XIou.cjs} +2 -2
  224. package/dist/{sqlite3-CGOEFJAO-D78UkTyw.cjs.map → sqlite3-CGOEFJAO-DUW1XIou.cjs.map} +1 -1
  225. package/dist/{start-DAlaZ5zj.mjs → start-9_8ZcdaU.mjs} +337 -228
  226. package/dist/start-9_8ZcdaU.mjs.map +1 -0
  227. package/dist/{start-BX-bkX9K.cjs → start-CBrH4KOb.cjs} +337 -228
  228. package/dist/start-CBrH4KOb.cjs.map +1 -0
  229. package/dist/start.cjs +1 -1
  230. package/dist/start.d.cts +1 -1
  231. package/dist/start.d.mts +1 -1
  232. package/dist/start.mjs +1 -1
  233. package/dist/{strings-6WDHLGMX-CeJiCt-u.cjs → strings-6WDHLGMX-5ObhNSGS.cjs} +2 -2
  234. package/dist/{strings-6WDHLGMX-CeJiCt-u.cjs.map → strings-6WDHLGMX-5ObhNSGS.cjs.map} +1 -1
  235. package/dist/{strings-6WDHLGMX-Dix-GFiu.mjs → strings-6WDHLGMX-DXaUbNpx.mjs} +2 -2
  236. package/dist/{strings-6WDHLGMX-Dix-GFiu.mjs.map → strings-6WDHLGMX-DXaUbNpx.mjs.map} +1 -1
  237. package/dist/{tac-2STMMJYW-DlI5binK.cjs → tac-2STMMJYW-CLSjS7F2.cjs} +2 -2
  238. package/dist/{tac-2STMMJYW-DlI5binK.cjs.map → tac-2STMMJYW-CLSjS7F2.cjs.map} +1 -1
  239. package/dist/{tac-2STMMJYW-Bm0D_YqQ.mjs → tac-2STMMJYW-Ov0tcgNn.mjs} +2 -2
  240. package/dist/{tac-2STMMJYW-Bm0D_YqQ.mjs.map → tac-2STMMJYW-Ov0tcgNn.mjs.map} +1 -1
  241. package/dist/{tail-R4PCA2C4-TH4AUhAb.cjs → tail-R4PCA2C4-C018_ZAk.cjs} +2 -2
  242. package/dist/{tail-R4PCA2C4-TH4AUhAb.cjs.map → tail-R4PCA2C4-C018_ZAk.cjs.map} +1 -1
  243. package/dist/{tail-R4PCA2C4-7wsnh20i.mjs → tail-R4PCA2C4-KgqykSFz.mjs} +2 -2
  244. package/dist/{tail-R4PCA2C4-7wsnh20i.mjs.map → tail-R4PCA2C4-KgqykSFz.mjs.map} +1 -1
  245. package/dist/{tar-STHHZTZ6-DELlRab1.cjs → tar-STHHZTZ6-BcBkmdCH.cjs} +4 -4
  246. package/dist/{tar-STHHZTZ6-DELlRab1.cjs.map → tar-STHHZTZ6-BcBkmdCH.cjs.map} +1 -1
  247. package/dist/{tar-STHHZTZ6-gShA0vQ1.mjs → tar-STHHZTZ6-CCPYnq7u.mjs} +3 -3
  248. package/dist/{tar-STHHZTZ6-gShA0vQ1.mjs.map → tar-STHHZTZ6-CCPYnq7u.mjs.map} +1 -1
  249. package/dist/{tee-YUZ2FKCJ-D_BE3AiF.cjs → tee-YUZ2FKCJ-Cce_gOKf.cjs} +2 -2
  250. package/dist/{tee-YUZ2FKCJ-D_BE3AiF.cjs.map → tee-YUZ2FKCJ-Cce_gOKf.cjs.map} +1 -1
  251. package/dist/{tee-YUZ2FKCJ-6jGvzLuO.mjs → tee-YUZ2FKCJ-D7LOkjQo.mjs} +2 -2
  252. package/dist/{tee-YUZ2FKCJ-6jGvzLuO.mjs.map → tee-YUZ2FKCJ-D7LOkjQo.mjs.map} +1 -1
  253. package/dist/{time-D4LNBSWX-D7RWA_NU.mjs → time-D4LNBSWX-CvYHvswI.mjs} +2 -2
  254. package/dist/{time-D4LNBSWX-D7RWA_NU.mjs.map → time-D4LNBSWX-CvYHvswI.mjs.map} +1 -1
  255. package/dist/{time-D4LNBSWX-zKxg-wM1.cjs → time-D4LNBSWX-D9C8_lG9.cjs} +2 -2
  256. package/dist/{time-D4LNBSWX-zKxg-wM1.cjs.map → time-D4LNBSWX-D9C8_lG9.cjs.map} +1 -1
  257. package/dist/{timeout-YDCRSLPQ-D42ruxso.mjs → timeout-YDCRSLPQ-CacPbawx.mjs} +2 -2
  258. package/dist/{timeout-YDCRSLPQ-D42ruxso.mjs.map → timeout-YDCRSLPQ-CacPbawx.mjs.map} +1 -1
  259. package/dist/{timeout-YDCRSLPQ-DWs-ACr6.cjs → timeout-YDCRSLPQ-Ccs9ipQM.cjs} +2 -2
  260. package/dist/{timeout-YDCRSLPQ-DWs-ACr6.cjs.map → timeout-YDCRSLPQ-Ccs9ipQM.cjs.map} +1 -1
  261. package/dist/{touch-UA33VN3N-OcSMUASX.mjs → touch-UA33VN3N-D2ndvYPZ.mjs} +2 -2
  262. package/dist/{touch-UA33VN3N-OcSMUASX.mjs.map → touch-UA33VN3N-D2ndvYPZ.mjs.map} +1 -1
  263. package/dist/{touch-UA33VN3N-BALmWXCe.cjs → touch-UA33VN3N-Dxlmlbm_.cjs} +2 -2
  264. package/dist/{touch-UA33VN3N-BALmWXCe.cjs.map → touch-UA33VN3N-Dxlmlbm_.cjs.map} +1 -1
  265. package/dist/{tr-36LHWFRQ-DDHiAg_m.cjs → tr-36LHWFRQ-Bzq2x5-h.cjs} +2 -2
  266. package/dist/{tr-36LHWFRQ-DDHiAg_m.cjs.map → tr-36LHWFRQ-Bzq2x5-h.cjs.map} +1 -1
  267. package/dist/{tr-36LHWFRQ-BHhoJAPK.mjs → tr-36LHWFRQ-CWCuChgL.mjs} +2 -2
  268. package/dist/{tr-36LHWFRQ-BHhoJAPK.mjs.map → tr-36LHWFRQ-CWCuChgL.mjs.map} +1 -1
  269. package/dist/{tree-YLD52CNT-BqqLx-tM.cjs → tree-YLD52CNT-BQipj5RY.cjs} +2 -2
  270. package/dist/{tree-YLD52CNT-BqqLx-tM.cjs.map → tree-YLD52CNT-BQipj5RY.cjs.map} +1 -1
  271. package/dist/{tree-YLD52CNT-CuJMHpsw.mjs → tree-YLD52CNT-CDfF4vcr.mjs} +2 -2
  272. package/dist/{tree-YLD52CNT-CuJMHpsw.mjs.map → tree-YLD52CNT-CDfF4vcr.mjs.map} +1 -1
  273. package/dist/{unexpand-CADSA4VO-BORtdsy_.cjs → unexpand-CADSA4VO-C4qGbx-B.cjs} +2 -2
  274. package/dist/{unexpand-CADSA4VO-BORtdsy_.cjs.map → unexpand-CADSA4VO-C4qGbx-B.cjs.map} +1 -1
  275. package/dist/{unexpand-CADSA4VO-CHiw_MI4.mjs → unexpand-CADSA4VO-COvRSVlE.mjs} +2 -2
  276. package/dist/{unexpand-CADSA4VO-CHiw_MI4.mjs.map → unexpand-CADSA4VO-COvRSVlE.mjs.map} +1 -1
  277. package/dist/{uniq-XSIZR6PB-Byah97Ij.mjs → uniq-XSIZR6PB-C8bN8gfm.mjs} +3 -3
  278. package/dist/{uniq-XSIZR6PB-Byah97Ij.mjs.map → uniq-XSIZR6PB-C8bN8gfm.mjs.map} +1 -1
  279. package/dist/{uniq-XSIZR6PB-CyA5DoCP.cjs → uniq-XSIZR6PB-bJo9kdHr.cjs} +3 -3
  280. package/dist/{uniq-XSIZR6PB-CyA5DoCP.cjs.map → uniq-XSIZR6PB-bJo9kdHr.cjs.map} +1 -1
  281. package/dist/{wc-LF7NU4LA-CPMTeSun.mjs → wc-LF7NU4LA-D4xFJZxz.mjs} +3 -3
  282. package/dist/{wc-LF7NU4LA-CPMTeSun.mjs.map → wc-LF7NU4LA-D4xFJZxz.mjs.map} +1 -1
  283. package/dist/{wc-LF7NU4LA-DUBYnutH.cjs → wc-LF7NU4LA-NAR5lgIG.cjs} +3 -3
  284. package/dist/{wc-LF7NU4LA-DUBYnutH.cjs.map → wc-LF7NU4LA-NAR5lgIG.cjs.map} +1 -1
  285. package/dist/{xan-Y6WF3IRG-CLfddWd-.mjs → xan-Y6WF3IRG-D16SQobd.mjs} +6 -6
  286. package/dist/{xan-Y6WF3IRG-CLfddWd-.mjs.map → xan-Y6WF3IRG-D16SQobd.mjs.map} +1 -1
  287. package/dist/{xan-Y6WF3IRG-W4Yr19gE.cjs → xan-Y6WF3IRG-RigAd0GA.cjs} +6 -6
  288. package/dist/{xan-Y6WF3IRG-W4Yr19gE.cjs.map → xan-Y6WF3IRG-RigAd0GA.cjs.map} +1 -1
  289. package/dist/{xan-view-HDVKHFC2-B_Xy-tdc.mjs → xan-view-HDVKHFC2-CJ527xHS.mjs} +3 -3
  290. package/dist/{xan-view-HDVKHFC2-B_Xy-tdc.mjs.map → xan-view-HDVKHFC2-CJ527xHS.mjs.map} +1 -1
  291. package/dist/{xan-view-HDVKHFC2-CWkN0IJ1.cjs → xan-view-HDVKHFC2-pRqYeBi3.cjs} +3 -3
  292. package/dist/{xan-view-HDVKHFC2-CWkN0IJ1.cjs.map → xan-view-HDVKHFC2-pRqYeBi3.cjs.map} +1 -1
  293. package/dist/{xargs-MGZPH7AX-B_Ocy3BY.cjs → xargs-MGZPH7AX-C0bVMPGM.cjs} +2 -2
  294. package/dist/{xargs-MGZPH7AX-B_Ocy3BY.cjs.map → xargs-MGZPH7AX-C0bVMPGM.cjs.map} +1 -1
  295. package/dist/{xargs-MGZPH7AX-DDoz_2hL.mjs → xargs-MGZPH7AX-DWIn3Zwh.mjs} +2 -2
  296. package/dist/{xargs-MGZPH7AX-DDoz_2hL.mjs.map → xargs-MGZPH7AX-DWIn3Zwh.mjs.map} +1 -1
  297. package/dist/{yq-4QJW3EQG-mUhWBJBJ.mjs → yq-4QJW3EQG-CPcwcHbw.mjs} +3 -3
  298. package/dist/{yq-4QJW3EQG-mUhWBJBJ.mjs.map → yq-4QJW3EQG-CPcwcHbw.mjs.map} +1 -1
  299. package/dist/{yq-4QJW3EQG-BPBhjinw.cjs → yq-4QJW3EQG-CSTlai1q.cjs} +3 -3
  300. package/dist/{yq-4QJW3EQG-BPBhjinw.cjs.map → yq-4QJW3EQG-CSTlai1q.cjs.map} +1 -1
  301. package/package.json +1 -1
  302. package/dist/dist-70NUfApd.mjs.map +0 -1
  303. package/dist/start-BX-bkX9K.cjs.map +0 -1
  304. package/dist/start-DAlaZ5zj.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
- import { $ as ListOrganizationInvitationsResponseSchema, $t as mapOrganizationInvitation, A as CreateApiKeyResponseSchema, At as StoredProjectSourceManifestSchema, B as ErrorResponseSchema, Bt as UpdateProjectSettingsRequestSchema, C as AcceptOrganizationInvitationResponseSchema, Ct as RecentResourceListResponseSchema, D as AgentSummarySchema, Dt as SkillSummarySchema, E as AgentSummaryListResponseSchema, Et as SkillSummaryListResponseSchema, F as CreateProjectArtifactResponseSchema, Ft as UpdateOrganizationMemberResponseSchema, G as HistoryRunListResponseSchema, Gt as UserPreferencesPatchSchema, H as HistoryRunCancelResponseSchema, Ht as UploadProjectSourceResponseSchema, I as CreateProjectRequestSchema, It as UpdateOrganizationRequestSchema, J as InviteProjectMembersRequestSchema, Jt as WorkflowSummaryListResponseSchema, K as InviteOrganizationMembersRequestSchema, Kt as UserPreferencesSchema, L as CreateProjectResponseSchema, Ln as pingProjectTarget, Lt as UpdateProjectMemberRequestSchema, M as CreateCredentialsResponseSchema, Mt as SubmitTeamRequestResponseSchema, N as CreateOrganizationRequestSchema, Nt as UpdateCredentialRequestSchema, O as CompleteProjectArtifactResponseSchema, Ot as SlugAvailabilityQuerySchema, P as CreateOrganizationResponseSchema, Pt as UpdateOrganizationMemberRequestSchema, Q as ListCredentialsResponseSchema, Qt as listenPortFromPublicUrl, R as DeclineOrganizationInvitationResponseSchema, Rt as UpdateProjectMemberResponseSchema, S as ACTIVE_ORG_HEADER, St as ProjectSourceResourcesSchema, T as AgentSummaryDetailResponseSchema, Tt as SkillSummaryDetailResponseSchema, U as HistoryRunDetailResponseSchema, Ut as UserAvatarPatchSchema, V as GetCredentialResponseSchema, Vt as UploadProjectSourceManifestRequestSchema, W as HistoryRunListQuerySchema, Wt as UserAvatarSchema, X as ListApiKeysResponseSchema, Xt as buildCredentialInstanceLabel, Y as InviteProjectMembersResponseSchema, Yt as WorkflowSummarySchema, Z as ListAppsResponseSchema, Zt as displayCredentialAppName, _ as createJobQueue, _t as ProjectReachabilityResponseSchema, a as isKeystrokeAssetsAvatarPublicUrl, an as mapProjectSettings, at as ListProjectMetricsResponseSchema, b as readCredentialInstanceSecret, bt as ProjectSlugAvailabilityQuerySchema, c as isUserAvatarStorageKey, cn as normalizeUserPreferences, ct as OrganizationSidebarBrandingSchema, dn as parseStoredRouteManifest, dt as PresignOrgLogoRequestSchema, en as mapOrganizationMember, et as ListOrganizationMembersResponseSchema, f as orgLogoStorageKey, fn as projectFileId, ft as PresignOrgLogoResponseSchema, g as userAvatarStorageKey, gt as PresignUserAvatarResponseSchema, h as publicKeystrokeAssetsObjectUrl, ht as PresignUserAvatarRequestSchema, i as extractRouteManifestFromArtifact, in as mapProjectMember, it as ListProjectMembersResponseSchema, j as CreateCredentialsRequestSchema, jt as SubmitTeamRequestRequestSchema, k as CreateApiKeyRequestSchema, kt as SlugAvailabilityResponseSchema, l as keystrokeAssetsAvatarKeyFromPublicUrl, ln as organizationInvitationAcceptPath, lt as PLATFORM_RESOURCE_UNSUPPORTED_TEXT, m as projectSourceBlobKey, mn as validationErrorResponse, mt as PresignProjectSourceResponseSchema, n as createAssetsStorageClient, nn as mapProjectArtifact, nt as ListProjectDeploymentsResponseSchema, o as isKeystrokeAssetsOrgLogoPublicUrl, on as mapUserOrganization, ot as ListProjectsResponseSchema, p as projectArtifactKey, pn as resolveUniqueCredentialInstanceLabel, pt as PresignProjectSourceRequestSchema, q as InviteOrganizationMembersResponseSchema, qt as WorkflowSummaryDetailResponseSchema, r as ensureKeystrokeAssetsBucket, rn as mapProjectDeployment, rt as ListProjectFilesResponseSchema, s as isOrgLogoStorageKey, sn as mergeUserPreferences, st as OrganizationSidebarBrandingPatchSchema, t as RouteManifestNotFoundError, tn as mapProject, tt as ListOrganizationsResponseSchema, u as keystrokeAssetsOrgLogoKeyFromPublicUrl, un as organizationSlugErrorCodeFromMessage, ut as PROJECT_SLUG_TAKEN_MESSAGE, v as defaultSchedulerPlugin, vt as ProjectResponseSchema, w as ActiveOrganizationResponseSchema, wt as RecentResourceSchema, x as setCredentialInstanceSecret, xt as ProjectSlugAvailabilityResponseSchema, y as deleteCredentialInstanceSecret, yt as ProjectSettingsResponseSchema, z as DownloadActiveProjectArtifactResponseSchema, zt as UpdateProjectRequestSchema } from "./dist-70NUfApd.mjs";
1
+ import { $ as InviteProjectMembersRequestSchema, $t as WorkflowSummaryListResponseSchema, A as CompleteProjectArtifactResponseSchema, At as SkillSummaryDetailResponseSchema, B as CreateProjectRequestSchema, Bt as UpdateOrganizationMemberResponseSchema, C as AcceptOrganizationInvitationResponseSchema, Ct as ProjectResponseSchema, D as AgentSummarySchema, Dt as ProjectSourceResourcesSchema, E as AgentSummaryListResponseSchema, Et as ProjectSlugAvailabilityResponseSchema, F as CreateCustomAppRequestSchema, Ft as StoredProjectSourceManifestSchema, G as GetCredentialResponseSchema, Gt as UpdateProjectSettingsRequestSchema, H as DeclineOrganizationInvitationResponseSchema, Ht as UpdateProjectMemberRequestSchema, I as CreateCustomAppResponseSchema, It as SubmitTeamRequestRequestSchema, J as HistoryRunDetailResponseSchema, Jt as UserAvatarPatchSchema, K as GetCustomAppResponseSchema, Kt as UploadProjectSourceManifestRequestSchema, L as CreateOrganizationRequestSchema, Lt as SubmitTeamRequestResponseSchema, M as CreateApiKeyResponseSchema, Mt as SkillSummarySchema, N as CreateCredentialsRequestSchema, Nt as SlugAvailabilityQuerySchema, O as AppSlugAvailabilityQuerySchema, Ot as RecentResourceListResponseSchema, P as CreateCredentialsResponseSchema, Pt as SlugAvailabilityResponseSchema, Q as InviteOrganizationMembersResponseSchema, Qt as WorkflowSummaryDetailResponseSchema, R as CreateOrganizationResponseSchema, Rt as UpdateCredentialRequestSchema, S as ACTIVE_ORG_HEADER, St as ProjectReachabilityResponseSchema, T as AgentSummaryDetailResponseSchema, Tt as ProjectSlugAvailabilityQuerySchema, U as DownloadActiveProjectArtifactResponseSchema, Ut as UpdateProjectMemberResponseSchema, V as CreateProjectResponseSchema, Vt as UpdateOrganizationRequestSchema, W as ErrorResponseSchema, Wn as pingProjectTarget, Wt as UpdateProjectRequestSchema, X as HistoryRunListResponseSchema, Xt as UserPreferencesPatchSchema, Y as HistoryRunListQuerySchema, Yt as UserAvatarSchema, Z as InviteOrganizationMembersRequestSchema, Zt as UserPreferencesSchema, _ as createJobQueue, _n as parseStoredRouteManifest, _t as PresignOrgLogoResponseSchema, a as isKeystrokeAssetsAvatarPublicUrl, an as mapOrganizationMember, at as ListOrganizationMembersResponseSchema, b as readCredentialInstanceSecret, bn as validateCredentialValueAgainstFields, bt as PresignUserAvatarRequestSchema, c as isUserAvatarStorageKey, cn as mapProjectDeployment, ct as ListProjectFilesResponseSchema, dn as mapUserOrganization, dt as ListProjectsResponseSchema, en as WorkflowSummarySchema, et as InviteProjectMembersResponseSchema, f as orgLogoStorageKey, fn as mergeUserPreferences, ft as OrganizationSidebarBrandingPatchSchema, g as userAvatarStorageKey, gn as parseAppSlug, gt as PresignOrgLogoRequestSchema, h as publicKeystrokeAssetsObjectUrl, hn as organizationSlugErrorCodeFromMessage, ht as PROJECT_SLUG_TAKEN_MESSAGE, i as extractRouteManifestFromArtifact, in as mapOrganizationInvitation, it as ListOrganizationInvitationsResponseSchema, j as CreateApiKeyRequestSchema, jt as SkillSummaryListResponseSchema, k as AppSlugAvailabilityResponseSchema, kt as RecentResourceSchema, l as keystrokeAssetsAvatarKeyFromPublicUrl, ln as mapProjectMember, lt as ListProjectMembersResponseSchema, m as projectSourceBlobKey, mn as organizationInvitationAcceptPath, mt as PLATFORM_RESOURCE_UNSUPPORTED_TEXT, n as createAssetsStorageClient, nn as displayCredentialAppName, nt as ListAppsResponseSchema, o as isKeystrokeAssetsOrgLogoPublicUrl, on as mapProject, ot as ListOrganizationsResponseSchema, p as projectArtifactKey, pn as normalizeUserPreferences, pt as OrganizationSidebarBrandingSchema, q as HistoryRunCancelResponseSchema, qt as UploadProjectSourceResponseSchema, r as ensureKeystrokeAssetsBucket, rn as listenPortFromPublicUrl, rt as ListCredentialsResponseSchema, s as isOrgLogoStorageKey, sn as mapProjectArtifact, st as ListProjectDeploymentsResponseSchema, t as RouteManifestNotFoundError, tn as buildCredentialInstanceLabel, tt as ListApiKeysResponseSchema, u as keystrokeAssetsOrgLogoKeyFromPublicUrl, un as mapProjectSettings, ut as ListProjectMetricsResponseSchema, v as defaultSchedulerPlugin, vn as projectFileId, vt as PresignProjectSourceRequestSchema, w as ActiveOrganizationResponseSchema, wt as ProjectSettingsResponseSchema, x as setCredentialInstanceSecret, xn as validationErrorResponse, xt as PresignUserAvatarResponseSchema, y as deleteCredentialInstanceSecret, yn as resolveUniqueCredentialInstanceLabel, yt as PresignProjectSourceResponseSchema, z as CreateProjectArtifactResponseSchema, zt as UpdateOrganizationMemberRequestSchema } from "./dist-CQMZgfp_.mjs";
2
2
  import { buildHistoryAgentSessionDetail, buildHistoryWorkflowRunDetail, cancelAgentSession, cancelWorkflowRun, clearCredentialInstanceDefaults, deleteCredentialInstanceById, findHistoryRunCore, getServerTenantScopeId, inferDialect, listActiveAgents, listActiveSkills, listActiveWorkflows, listAllCredentialInstances, listCredentialInstancesByConnectionId, listHistoryRuns, listRecentResourceActivity, runWithProjectDatabase, runWithProjectScope, runWithTenantScope, selectActiveAgentById, selectActiveAgentsByIds, selectActiveSkillById, selectActiveSkillsByIds, selectActiveWorkflowById, selectActiveWorkflowsByIds, selectAgentLastRunAtByIds, selectAgentSessionById, selectCredentialInstanceById, selectCredentialInstancesForScope, selectEphemeralTriggerAttachments, selectProjectResourceCounts, selectWorkflowLastRunAtByIds, selectWorkflowRunById, touchResourceActivity, upsertCredentialInstance } from "@keystrokehq/database";
3
3
  import { ZodError, z } from "zod";
4
4
  import "node:path";
5
5
  import "node:fs";
6
6
  import { AsyncLocalStorage } from "node:async_hooks";
7
- import { CannotModifyOwnerError, OrgPlatformApiKeyNotFoundError, OrganizationInvitationExpiredError, OrganizationInvitationForbiddenError, OrganizationInvitationNotFoundError, OrganizationMemberNotFoundError, OrganizationSlugTakenError, OrganizationSlugTakenError as OrganizationSlugTakenError$1, ProjectMemberNotFoundError, ProjectSlugTakenError, acceptInvitation, checkOrganizationSlugAvailability, checkProjectSlugAvailability, completeProjectArtifact, createOrgPlatformApiKey, createOrgStorageClient, createOrganizationForUser, createProjectForOrganization, declineInvitation, deleteOAuthConnectionById, deleteProjectForOrganization, encryptCredentialPayload as encryptCredentialPayload$1, ensureProjectPgBossGrants, ensureWebhookApiKeyForRoute, ensureWebhookApiKeys, initDatabase, insertProjectArtifact, inviteOrganizationMembers, inviteProjectMembers, isOrganizationStorageBucketInUse, listOfficialApps, listOrgPlatformApiKeysForOrganization, listOrgPlatformApiKeysForUser, loadOrgPlatformApiKeyUser, mapOrgPlatformApiKeyCreator, mapOrgPlatformApiKeyCreatorOrDeleted, orgWorkspacesRuntimeEnv, organizationRowToSidebarBranding, promoteProjectArtifact, removeOrganizationMember, removeProjectMember, resolveNewOrganizationIdentity, resolveOrgDatabaseUrl, resolveProjectRuntimeDatabase, revokeOrgPlatformApiKey, runWithOrganizationScope, runWithWorkspaceContext, selectActiveArtifactSourceManifestForProject, selectActiveProjectArtifactForProject, selectLastDeploymentAtByProject, selectOAuthConnectionsByIds, selectOrgPlatformApiKeyForOrganization, selectOrganizationById, selectOrganizationMembers, selectPendingInvitationsForUser, selectProjectArtifactById, selectProjectArtifactForProject, selectProjectById, selectProjectDeployments, selectProjectForOrganization, selectProjectForOrganizationBySlug, selectProjectIdsForUser, selectProjectMembers, selectProjectsByOrganizationId, selectUserById, selectUserOrganizationMembership, selectUserOrganizations, selectUserProjectMembership, selectUsersByIds, updateOrganizationMemberRole, updateOrganizationName, updateOrganizationSidebarBranding, updateOrganizationSlug, updateProjectActive, updateProjectArtifactManifest, updateProjectArtifactSourceManifest, updateProjectFailed, updateProjectForOrganization, updateProjectMemberRole, updateProjectSettings, updateUserById, verifyOrgPlatformApiKeySecret } from "@keystrokehq/platform-database";
7
+ import { CannotModifyOwnerError, OrgAppSlugTakenError, OrgPlatformApiKeyNotFoundError, OrganizationInvitationExpiredError, OrganizationInvitationForbiddenError, OrganizationInvitationNotFoundError, OrganizationMemberNotFoundError, OrganizationSlugTakenError, OrganizationSlugTakenError as OrganizationSlugTakenError$1, ProjectMemberNotFoundError, ProjectSlugTakenError, acceptInvitation, checkOrgAppSlugAvailability, checkOrganizationSlugAvailability, checkProjectSlugAvailability, completeProjectArtifact, createOrgApp, createOrgPlatformApiKey, createOrgStorageClient, createOrganizationForUser, createProjectForOrganization, declineInvitation, deleteOAuthConnectionById, deleteProjectForOrganization, encryptCredentialPayload as encryptCredentialPayload$1, ensureProjectPgBossGrants, ensureWebhookApiKeyForRoute, ensureWebhookApiKeys, hasCredentialFieldTemplate, initDatabase, insertProjectArtifact, inviteOrganizationMembers, inviteProjectMembers, isOrganizationStorageBucketInUse, listAppsForOrganization, listOrgPlatformApiKeysForOrganization, listOrgPlatformApiKeysForUser, loadOrgPlatformApiKeyUser, mapOrgPlatformApiKeyCreator, mapOrgPlatformApiKeyCreatorOrDeleted, orgWorkspacesRuntimeEnv, organizationRowToSidebarBranding, promoteProjectArtifact, removeOrganizationMember, removeProjectMember, resolveNewOrganizationIdentity, resolveOrgDatabaseUrl, resolveOrgRuntimeDatabase, revokeOrgPlatformApiKey, runWithOrganizationScope, runWithWorkspaceContext, selectActiveArtifactSourceManifestForProject, selectActiveProjectArtifactForProject, selectAppForOrganization, selectLastDeploymentAtByProject, selectOAuthConnectionsByIds, selectOrgPlatformApiKeyForOrganization, selectOrganizationById, selectOrganizationMembers, selectPendingInvitationsForUser, selectProjectArtifactById, selectProjectArtifactForProject, selectProjectById, selectProjectDeployments, selectProjectForOrganization, selectProjectForOrganizationBySlug, selectProjectIdsForUser, selectProjectMembers, selectProjectsByOrganizationId, selectUserById, selectUserOrganizationMembership, selectUserOrganizations, selectUserProjectMembership, selectUsersByIds, updateOrganizationActive, updateOrganizationFailed, updateOrganizationMemberRole, updateOrganizationName, updateOrganizationSidebarBranding, updateOrganizationSlug, updateProjectActive, updateProjectArtifactManifest, updateProjectArtifactSourceManifest, updateProjectForOrganization, updateProjectMemberRole, updateProjectSettings, updateUserById, verifyOrgPlatformApiKeySecret } from "@keystrokehq/platform-database";
8
8
  import { serve } from "@hono/node-server";
9
9
  import { AUTH_API_PATH, createAuth, createDefaultAuthJwtVerifier, extractWebhookApiKeyFromRequest, handleAuthRequest, resolveAuthEmailFrom, resolveRequestAuth } from "@keystrokehq/auth";
10
10
  import { buildWebhookUrl, createCredentialMaterializeHandler, extractWebhookRoutesFromManifest, seedOAuthAppsFromEnvForAllOrganizations, seedOAuthAppsFromEnvForOrganization, syncRegistryFromStoredManifest } from "@keystrokehq/runtime";
@@ -127,20 +127,11 @@ async function promoteProjectDeploy(input) {
127
127
  const webhookRoutes = [...extractWebhookRoutesFromManifest(manifest), ...ephemeralRoutes];
128
128
  if (webhookRoutes.length > 0) await ensureWebhookApiKeys(project.id, webhookRoutes, project.id);
129
129
  }
130
- /** Decide whether a pg-boss job should start runtime, skip as stale, or fail. */
131
- function resolveRuntimeArtifact(project, jobArtifactId) {
132
- if (jobArtifactId && project.pendingArtifactId && jobArtifactId !== project.pendingArtifactId) return { action: "skip" };
133
- if (jobArtifactId && !project.pendingArtifactId && project.activeArtifactId && jobArtifactId !== project.activeArtifactId) return { action: "skip" };
134
- const artifactId = jobArtifactId ?? project.pendingArtifactId ?? project.activeArtifactId ?? null;
135
- if (!artifactId) return {
136
- action: "error",
137
- message: `Project ${project.id} has no pending artifact`
138
- };
139
- if (!project.pendingArtifactId && project.activeArtifactId === artifactId && project.status === "active" && project.baseUrl && project.runtimeId) return { action: "skip" };
140
- return {
141
- action: "run",
142
- artifactId
143
- };
130
+ /** True when a project still needs an org worker rebuild after a runtime job finishes. */
131
+ function projectNeedsRuntimeFollowUp(project) {
132
+ if (project.status === "starting" && project.pendingArtifactId) return true;
133
+ if (project.pendingArtifactId && project.activeArtifactId !== project.pendingArtifactId) return true;
134
+ return false;
144
135
  }
145
136
  let runtimeQueue;
146
137
  let runtimeQueueInit;
@@ -150,7 +141,7 @@ function configureProjectRuntimeScheduler(plugin) {
150
141
  runtimeQueue = void 0;
151
142
  runtimeQueueInit = void 0;
152
143
  }
153
- async function getProjectRuntimeQueue() {
144
+ async function getOrgRuntimeQueue() {
154
145
  if (runtimeQueue) return runtimeQueue;
155
146
  if (!runtimeQueueInit) runtimeQueueInit = (async () => {
156
147
  const queue = await createJobQueue({
@@ -162,27 +153,60 @@ async function getProjectRuntimeQueue() {
162
153
  })();
163
154
  return runtimeQueueInit;
164
155
  }
165
- function toProjectRuntimeJob(payload) {
156
+ function toOrgRuntimeJob(payload) {
166
157
  const job = payload.payload;
167
- if (!job?.projectId || !job.name || !job.artifactId) throw new Error("Invalid project runtime job payload");
158
+ if (!job?.organizationId) throw new Error("Invalid org runtime job payload");
168
159
  return {
169
- projectId: job.projectId,
170
- name: job.name,
171
- artifactId: job.artifactId
160
+ organizationId: job.organizationId,
161
+ triggerProjectId: job.triggerProjectId,
162
+ triggerArtifactId: job.triggerArtifactId
172
163
  };
173
164
  }
174
- async function enqueueProjectRuntime(job) {
175
- return (await getProjectRuntimeQueue()).enqueue({
165
+ async function resolveOrgProjects(job) {
166
+ const projects = await selectProjectsByOrganizationId(job.organizationId);
167
+ const deploys = [];
168
+ for (const project of projects) {
169
+ const artifactId = project.id === job.triggerProjectId && job.triggerArtifactId ? job.triggerArtifactId : project.pendingArtifactId ?? project.activeArtifactId;
170
+ if (!artifactId) continue;
171
+ const artifact = await selectProjectArtifactById(artifactId);
172
+ if (!artifact || artifact.projectId !== project.id || artifact.status !== "ready") {
173
+ if (project.id === job.triggerProjectId) throw new Error(`Project ${project.id} pending artifact is not ready`);
174
+ continue;
175
+ }
176
+ deploys.push({
177
+ projectId: project.id,
178
+ name: project.name,
179
+ artifactId,
180
+ artifactStorageKey: artifact.storageKey
181
+ });
182
+ }
183
+ if (deploys.length === 0) throw new Error(`Organization ${job.organizationId} has no deployable projects`);
184
+ return deploys;
185
+ }
186
+ async function orgNeedsRuntimeFollowUp(organizationId) {
187
+ return (await selectProjectsByOrganizationId(organizationId)).some(projectNeedsRuntimeFollowUp);
188
+ }
189
+ async function enqueueOrgRuntime(job) {
190
+ return (await getOrgRuntimeQueue()).enqueue({
176
191
  kind: "runtime",
177
- targetId: job.projectId,
178
- runId: job.artifactId,
192
+ targetId: job.organizationId,
193
+ runId: crypto.randomUUID(),
179
194
  trigger: "api",
180
195
  payload: job,
181
196
  maxAttempts: 5,
182
- dedupeKey: job.projectId
197
+ dedupeKey: job.organizationId
183
198
  });
184
199
  }
185
- async function destroyProjectRuntime(runtime, input, runtimeId) {
200
+ async function enqueueProjectRuntime(job) {
201
+ const project = await selectProjectById(job.projectId);
202
+ if (!project) throw new Error(`Project ${job.projectId} not found`);
203
+ return enqueueOrgRuntime({
204
+ organizationId: project.organizationId,
205
+ triggerProjectId: job.projectId,
206
+ triggerArtifactId: job.artifactId
207
+ });
208
+ }
209
+ async function destroyOrgRuntime(runtime, input, runtimeId) {
186
210
  if (!runtime.destroy) return;
187
211
  try {
188
212
  await runtime.destroy({
@@ -190,49 +214,60 @@ async function destroyProjectRuntime(runtime, input, runtimeId) {
190
214
  hosting: input.hosting
191
215
  });
192
216
  } catch (destroyError) {
193
- console.error(`[project.runtime] failed to destroy runtime ${runtimeId}`, destroyError);
217
+ console.error(`[org.runtime] failed to destroy runtime ${runtimeId}`, destroyError);
194
218
  }
195
219
  }
196
- async function handleProjectRuntimeJob(runtime, resolveStartInput, payload) {
220
+ async function handleOrgRuntimeJob(runtime, resolveStartInput, payload) {
197
221
  if (payload.kind !== "runtime") return;
198
- const job = toProjectRuntimeJob(payload);
222
+ const job = toOrgRuntimeJob(payload);
199
223
  try {
200
- const project = await selectProjectById(job.projectId);
201
- if (!project) throw new Error(`Project ${job.projectId} not found`);
202
- const resolved = resolveRuntimeArtifact(project, job.artifactId);
203
- if (resolved.action === "skip") return;
204
- if (resolved.action === "error") throw new Error(resolved.message);
205
- const input = await resolveStartInput({
206
- ...job,
207
- artifactId: resolved.artifactId
208
- });
224
+ const organization = await selectOrganizationById(job.organizationId);
225
+ if (!organization) throw new Error(`Organization ${job.organizationId} not found`);
226
+ const projects = await resolveOrgProjects(job);
227
+ const input = await resolveStartInput(job);
228
+ const mergedInput = {
229
+ ...input,
230
+ organizationId: job.organizationId,
231
+ projects,
232
+ previousRuntimeId: input.previousRuntimeId ?? organization.runtimeId
233
+ };
209
234
  let result;
210
235
  try {
211
- result = await runtime.start(input);
212
- await promoteProjectDeploy({
213
- projectId: job.projectId,
214
- artifactId: resolved.artifactId,
215
- baseUrl: result.baseUrl
236
+ result = await runtime.start(mergedInput);
237
+ for (const project of projects) {
238
+ await promoteProjectDeploy({
239
+ projectId: project.projectId,
240
+ artifactId: project.artifactId,
241
+ baseUrl: result.baseUrl
242
+ });
243
+ await updateProjectActive(project.projectId, {
244
+ baseUrl: result.baseUrl,
245
+ runtimeId: result.runtimeId
246
+ });
247
+ }
248
+ await updateOrganizationActive(job.organizationId, {
249
+ baseUrl: result.baseUrl,
250
+ runtimeId: result.runtimeId
216
251
  });
217
- await updateProjectActive(job.projectId, result);
218
- if (input.previousRuntimeId) await destroyProjectRuntime(runtime, input, input.previousRuntimeId);
252
+ if (mergedInput.previousRuntimeId) await destroyOrgRuntime(runtime, mergedInput, mergedInput.previousRuntimeId);
253
+ if (await orgNeedsRuntimeFollowUp(job.organizationId)) await enqueueOrgRuntime({ organizationId: job.organizationId });
219
254
  } catch (error) {
220
- if (result) await destroyProjectRuntime(runtime, input, result.runtimeId);
255
+ if (result) await destroyOrgRuntime(runtime, mergedInput, result.runtimeId);
221
256
  throw error;
222
257
  }
223
258
  } catch (error) {
224
- console.error(`[project.runtime] ${job.projectId} failed`, error);
225
- if (payload.exhaustedRetries) await updateProjectFailed(job.projectId, "Project runtime failed after retries");
259
+ console.error(`[org.runtime] ${job.organizationId} failed`, error);
260
+ if (payload.exhaustedRetries) await updateOrganizationFailed(job.organizationId, "Org runtime failed after retries");
226
261
  throw error;
227
262
  }
228
263
  }
229
264
  async function startProjectRuntimeWorker(runtime, options = {}) {
230
- const queue = await getProjectRuntimeQueue();
265
+ const queue = await getOrgRuntimeQueue();
231
266
  const resolveStartInput = options.resolveStartInput ?? (async (job) => {
232
- throw new Error(`Project runtime for ${job.projectId} requires resolveStartInput with database credentials`);
267
+ throw new Error(`Org runtime for ${job.organizationId} requires resolveStartInput with database credentials`);
233
268
  });
234
269
  await queue.startWorker(async (payload) => {
235
- await handleProjectRuntimeJob(runtime, resolveStartInput, payload);
270
+ await handleOrgRuntimeJob(runtime, resolveStartInput, payload);
236
271
  });
237
272
  }
238
273
  //#endregion
@@ -538,7 +573,7 @@ function requireOrganizationParam() {
538
573
  };
539
574
  }
540
575
  //#endregion
541
- //#region ../../packages/http/dist/with-public-project-runtime-BG_6tack.mjs
576
+ //#region ../../packages/http/dist/with-public-project-runtime-B7hmgjbi.mjs
542
577
  const requestBackgroundTasks = new AsyncLocalStorage();
543
578
  function runWithRequestBackgroundTasks(fn) {
544
579
  return requestBackgroundTasks.run([], fn);
@@ -576,7 +611,7 @@ function withOrganizationProjectDatabase() {
576
611
  }
577
612
  //#endregion
578
613
  //#region src/routes/account/users/me/avatar/GET.ts
579
- const handler$60 = async (c) => {
614
+ const handler$63 = async (c) => {
580
615
  const dbUser = await selectUserById(c.get("user").id);
581
616
  if (!dbUser) return c.json(ErrorResponseSchema.parse({ error: "User not found" }), 404);
582
617
  return c.json(UserAvatarSchema.parse({ url: dbUser.image ?? null }));
@@ -595,7 +630,7 @@ function avatarExtensionForContentType(contentType) {
595
630
  }
596
631
  //#endregion
597
632
  //#region src/routes/account/users/me/avatar/presign/POST.ts
598
- const handler$59 = async (c) => {
633
+ const handler$62 = async (c) => {
599
634
  const parsed = PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
600
635
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
601
636
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -635,7 +670,7 @@ async function deleteStoredImageIfOwned(input) {
635
670
  }
636
671
  //#endregion
637
672
  //#region src/routes/account/users/me/avatar/PATCH.ts
638
- const handler$58 = async (c) => {
673
+ const handler$61 = async (c) => {
639
674
  const parsed = UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
640
675
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
641
676
  const user = c.get("user");
@@ -677,14 +712,14 @@ const handler$58 = async (c) => {
677
712
  };
678
713
  //#endregion
679
714
  //#region src/routes/account/users/me/preferences/GET.ts
680
- const handler$57 = async (c) => {
715
+ const handler$60 = async (c) => {
681
716
  const dbUser = await selectUserById(c.get("user").id);
682
717
  if (!dbUser) return c.json(ErrorResponseSchema.parse({ error: "User not found" }), 404);
683
718
  return c.json(UserPreferencesSchema.parse(normalizeUserPreferences(dbUser.preferences)));
684
719
  };
685
720
  //#endregion
686
721
  //#region src/routes/account/users/me/preferences/PATCH.ts
687
- const handler$56 = async (c) => {
722
+ const handler$59 = async (c) => {
688
723
  const parsed = UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
689
724
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
690
725
  const user = c.get("user");
@@ -699,9 +734,9 @@ const handler$56 = async (c) => {
699
734
  };
700
735
  //#endregion
701
736
  //#region src/routes/account/organizations/GET.ts
702
- const handler$55 = async (c) => {
737
+ const handler$58 = async (c) => {
703
738
  const memberships = await selectUserOrganizations(c.get("user").id);
704
- return c.json(ListOrganizationsResponseSchema.parse({ organizations: memberships.map(mapUserOrganization) }));
739
+ return c.json(ListOrganizationsResponseSchema.parse(memberships.map(mapUserOrganization)));
705
740
  };
706
741
  //#endregion
707
742
  //#region src/services/create-organization.ts
@@ -767,7 +802,7 @@ function createOrganizationHandler(deps) {
767
802
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid organization request" }), 400);
768
803
  try {
769
804
  const membership = await createOrganizationWithHosting(deps, user.id, parsed.data.name, parsed.data.slug);
770
- return c.json(CreateOrganizationResponseSchema.parse({ organization: mapUserOrganization(membership) }), 201);
805
+ return c.json(CreateOrganizationResponseSchema.parse(mapUserOrganization(membership)), 201);
771
806
  } catch (error) {
772
807
  if (error instanceof OrganizationSlugTakenError$1) return c.json(ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
773
808
  if (error instanceof ZodError) return c.json(ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 400);
@@ -777,7 +812,7 @@ function createOrganizationHandler(deps) {
777
812
  }
778
813
  //#endregion
779
814
  //#region src/routes/account/organizations/slug-available/GET.ts
780
- const handler$54 = async (c) => {
815
+ const handler$57 = async (c) => {
781
816
  const parsed = SlugAvailabilityQuerySchema.safeParse({
782
817
  slug: c.req.query("slug"),
783
818
  excludeOrganizationId: c.req.query("excludeOrganizationId")
@@ -788,15 +823,15 @@ const handler$54 = async (c) => {
788
823
  };
789
824
  //#endregion
790
825
  //#region src/routes/account/organizations/[organizationId]/GET.ts
791
- const handler$53 = async (c) => {
826
+ const handler$56 = async (c) => {
792
827
  const { organizationId } = c.get("organization");
793
828
  const membership = await selectUserOrganizationMembership(c.get("user").id, organizationId);
794
829
  if (!membership) throw new Error(`Organization membership missing after param guard: ${organizationId}`);
795
- return c.json(ActiveOrganizationResponseSchema.parse({ organization: mapUserOrganization(membership) }));
830
+ return c.json(ActiveOrganizationResponseSchema.parse(mapUserOrganization(membership)));
796
831
  };
797
832
  //#endregion
798
833
  //#region src/routes/account/organizations/[organizationId]/PATCH.ts
799
- const handler$52 = async (c) => {
834
+ const handler$55 = async (c) => {
800
835
  const organization = c.get("organization");
801
836
  const body = await c.req.json().catch(() => null);
802
837
  const parsed = UpdateOrganizationRequestSchema.safeParse(body);
@@ -809,10 +844,10 @@ const handler$52 = async (c) => {
809
844
  if (parsed.data.name !== void 0) updated = await updateOrganizationName(organization.organizationId, parsed.data.name);
810
845
  if (parsed.data.slug !== void 0) updated = await updateOrganizationSlug(organization.organizationId, parsed.data.slug);
811
846
  if (!updated) throw new Error(`Organization update produced no result: ${organization.organizationId}`);
812
- return c.json(ActiveOrganizationResponseSchema.parse({ organization: mapUserOrganization({
847
+ return c.json(ActiveOrganizationResponseSchema.parse(mapUserOrganization({
813
848
  organization: updated,
814
849
  role: organization.role
815
- }) }));
850
+ })));
816
851
  } catch (error) {
817
852
  if (error instanceof OrganizationSlugTakenError) return c.json(ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
818
853
  if (error instanceof ZodError) return c.json(ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 400);
@@ -821,7 +856,7 @@ const handler$52 = async (c) => {
821
856
  };
822
857
  //#endregion
823
858
  //#region src/routes/account/organizations/[organizationId]/branding/GET.ts
824
- const handler$51 = async (c) => {
859
+ const handler$54 = async (c) => {
825
860
  const { organizationId } = c.get("organization");
826
861
  const organization = await selectOrganizationById(organizationId);
827
862
  if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
@@ -870,7 +905,7 @@ async function finalizeOrgLogoVariant(input) {
870
905
  publicUrl: finalized.publicUrl
871
906
  };
872
907
  }
873
- const handler$50 = async (c) => {
908
+ const handler$53 = async (c) => {
874
909
  const parsed = OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
875
910
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
876
911
  const { organizationId } = c.get("organization");
@@ -898,7 +933,7 @@ const handler$50 = async (c) => {
898
933
  };
899
934
  //#endregion
900
935
  //#region src/routes/account/organizations/[organizationId]/branding/logo/presign/POST.ts
901
- const handler$49 = async (c) => {
936
+ const handler$52 = async (c) => {
902
937
  const parsed = PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
903
938
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
904
939
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -989,7 +1024,7 @@ async function attachRanAsToDetail(detail, ranByUserId) {
989
1024
  }
990
1025
  //#endregion
991
1026
  //#region src/routes/account/history/GET.ts
992
- const handler$48 = async (c) => {
1027
+ const handler$51 = async (c) => {
993
1028
  const organization = c.get("organization");
994
1029
  const ctx = accessContext(c);
995
1030
  const query = HistoryRunListQuerySchema.parse({
@@ -1012,7 +1047,7 @@ const handler$48 = async (c) => {
1012
1047
  };
1013
1048
  //#endregion
1014
1049
  //#region src/routes/account/history/[runId]/GET.ts
1015
- const handler$47 = async (c) => {
1050
+ const handler$50 = async (c) => {
1016
1051
  const runId = c.req.param("runId") ?? "";
1017
1052
  if (!runId) return c.json(null, 404);
1018
1053
  const core = await findHistoryRunCore(runId);
@@ -1063,7 +1098,7 @@ function toAgentSummary(row, options) {
1063
1098
  }
1064
1099
  //#endregion
1065
1100
  //#region src/routes/account/agents/GET.ts
1066
- const handler$46 = async (c) => {
1101
+ const handler$49 = async (c) => {
1067
1102
  const filter = await resolveListProjectIds(c, listScope(c, agentListScope(accessContext(c))), c.req.query("projectId"));
1068
1103
  if (filter === "empty") return c.json(AgentSummaryListResponseSchema.parse([]));
1069
1104
  const rows = await listActiveAgents(filter);
@@ -1077,7 +1112,7 @@ function touchResourceActivityBestEffort(options) {
1077
1112
  }
1078
1113
  //#endregion
1079
1114
  //#region src/routes/account/agents/[agentId]/GET.ts
1080
- const handler$45 = async (c) => {
1115
+ const handler$48 = async (c) => {
1081
1116
  const agentId = c.req.param("agentId") ?? "";
1082
1117
  const row = agentId ? await selectActiveAgentById(agentId) : void 0;
1083
1118
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(AgentSummaryDetailResponseSchema.parse(null));
@@ -1112,7 +1147,7 @@ async function cancelHistoryRun(c, kind, cancel) {
1112
1147
  }
1113
1148
  //#endregion
1114
1149
  //#region src/routes/account/agents/sessions/[sessionId]/cancel/POST.ts
1115
- const handler$44 = (c) => cancelHistoryRun(c, "agent", cancelAgentSession);
1150
+ const handler$47 = (c) => cancelHistoryRun(c, "agent", cancelAgentSession);
1116
1151
  //#endregion
1117
1152
  //#region src/routes/account/resources/workflows.ts
1118
1153
  function toWorkflowSummary(row, options) {
@@ -1129,7 +1164,7 @@ function toWorkflowSummary(row, options) {
1129
1164
  }
1130
1165
  //#endregion
1131
1166
  //#region src/routes/account/workflows/GET.ts
1132
- const handler$43 = async (c) => {
1167
+ const handler$46 = async (c) => {
1133
1168
  const filter = await resolveListProjectIds(c, listScope(c, workflowListScope(accessContext(c))), c.req.query("projectId"));
1134
1169
  if (filter === "empty") return c.json(WorkflowSummaryListResponseSchema.parse([]));
1135
1170
  const rows = await listActiveWorkflows(filter);
@@ -1138,7 +1173,7 @@ const handler$43 = async (c) => {
1138
1173
  };
1139
1174
  //#endregion
1140
1175
  //#region src/routes/account/workflows/[workflowId]/GET.ts
1141
- const handler$42 = async (c) => {
1176
+ const handler$45 = async (c) => {
1142
1177
  const workflowId = c.req.param("workflowId") ?? "";
1143
1178
  const row = workflowId ? await selectActiveWorkflowById(workflowId) : void 0;
1144
1179
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return c.json(WorkflowSummaryDetailResponseSchema.parse(null));
@@ -1153,7 +1188,7 @@ const handler$42 = async (c) => {
1153
1188
  };
1154
1189
  //#endregion
1155
1190
  //#region src/routes/account/workflows/runs/[runId]/cancel/POST.ts
1156
- const handler$41 = (c) => cancelHistoryRun(c, "workflow", cancelWorkflowRun);
1191
+ const handler$44 = (c) => cancelHistoryRun(c, "workflow", cancelWorkflowRun);
1157
1192
  //#endregion
1158
1193
  //#region src/routes/account/resources/skills.ts
1159
1194
  function toSkillSummary(row) {
@@ -1169,7 +1204,7 @@ function toSkillSummary(row) {
1169
1204
  }
1170
1205
  //#endregion
1171
1206
  //#region src/routes/account/skills/GET.ts
1172
- const handler$40 = async (c) => {
1207
+ const handler$43 = async (c) => {
1173
1208
  const filter = await resolveListProjectIds(c, listScope(c, skillListScope(accessContext(c))), c.req.query("projectId"));
1174
1209
  if (filter === "empty") return c.json(SkillSummaryListResponseSchema.parse([]));
1175
1210
  const rows = await listActiveSkills(filter);
@@ -1177,7 +1212,7 @@ const handler$40 = async (c) => {
1177
1212
  };
1178
1213
  //#endregion
1179
1214
  //#region src/routes/account/skills/[skillId]/GET.ts
1180
- const handler$39 = async (c) => {
1215
+ const handler$42 = async (c) => {
1181
1216
  const skillId = c.req.param("skillId") ?? "";
1182
1217
  const row = skillId ? await selectActiveSkillById(skillId) : void 0;
1183
1218
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessSkill)) return c.json(SkillSummaryDetailResponseSchema.parse(null));
@@ -1224,7 +1259,7 @@ function latestRecentInteractionAt(recent) {
1224
1259
  //#endregion
1225
1260
  //#region src/routes/account/recents/GET.ts
1226
1261
  const RECENTS_LIMIT = 50;
1227
- const handler$38 = async (c) => {
1262
+ const handler$41 = async (c) => {
1228
1263
  const userId = c.get("user").id;
1229
1264
  const organization = c.get("organization");
1230
1265
  const grantedProjectIdsList = await grantedProjectIds(c, { kind: "member-only" });
@@ -1250,11 +1285,11 @@ const handler$38 = async (c) => {
1250
1285
  };
1251
1286
  //#endregion
1252
1287
  //#region src/routes/account/projects/GET.ts
1253
- const handler$37 = async (c) => {
1288
+ const handler$40 = async (c) => {
1254
1289
  const organization = c.get("organization");
1255
1290
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, projectListScope(accessContext(c))));
1256
1291
  const projects = await selectProjectsByOrganizationId(organization.organizationId, { grantedProjectIds: grantedProjectIdsList });
1257
- return c.json(ListProjectsResponseSchema.parse({ projects: projects.map(mapProject) }));
1292
+ return c.json(ListProjectsResponseSchema.parse(projects.map(mapProject)));
1258
1293
  };
1259
1294
  //#endregion
1260
1295
  //#region src/routes/account/projects/metrics/merge-project-list-metrics.ts
@@ -1276,7 +1311,7 @@ function mergeProjectListMetrics(input) {
1276
1311
  }
1277
1312
  //#endregion
1278
1313
  //#region src/routes/account/projects/metrics/GET.ts
1279
- const handler$36 = async (c) => {
1314
+ const handler$39 = async (c) => {
1280
1315
  const organization = c.get("organization");
1281
1316
  const grantedProjectIdsList = await grantedProjectIds(c, listScope(c, projectListScope(accessContext(c))));
1282
1317
  const [resourceCounts, lastDeploymentAtByProject] = await Promise.all([selectProjectResourceCounts(grantedProjectIdsList !== void 0 ? { projectIds: grantedProjectIdsList } : void 0), selectLastDeploymentAtByProject(organization.organizationId)]);
@@ -1288,22 +1323,22 @@ const handler$36 = async (c) => {
1288
1323
  const allowed = new Set(grantedProjectIdsList);
1289
1324
  metrics = Object.fromEntries(Object.entries(metrics).filter(([projectId]) => allowed.has(projectId)));
1290
1325
  }
1291
- return c.json(ListProjectMetricsResponseSchema.parse({ metrics }));
1326
+ return c.json(ListProjectMetricsResponseSchema.parse(metrics));
1292
1327
  };
1293
1328
  //#endregion
1294
1329
  //#region src/routes/account/projects/POST.ts
1295
- const handler$35 = async (c) => {
1330
+ const handler$38 = async (c) => {
1296
1331
  const organization = c.get("organization");
1297
1332
  const user = c.get("user");
1298
1333
  const body = await c.req.json().catch(() => null);
1299
1334
  const parsed = CreateProjectRequestSchema.safeParse(body);
1300
1335
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Project name is required" }), 400);
1301
1336
  const project = await createProjectForOrganization(organization.organizationId, parsed.data.name, parsed.data.description, user.id);
1302
- return c.json(CreateProjectResponseSchema.parse({ project: mapProject(project) }), 201);
1337
+ return c.json(CreateProjectResponseSchema.parse(mapProject(project)), 201);
1303
1338
  };
1304
1339
  //#endregion
1305
1340
  //#region src/routes/account/projects/slug-available/GET.ts
1306
- const handler$34 = async (c) => {
1341
+ const handler$37 = async (c) => {
1307
1342
  const organization = c.get("organization");
1308
1343
  const parsed = ProjectSlugAvailabilityQuerySchema.safeParse({
1309
1344
  slug: c.req.query("slug"),
@@ -1315,12 +1350,12 @@ const handler$34 = async (c) => {
1315
1350
  };
1316
1351
  //#endregion
1317
1352
  //#region src/routes/account/projects/[projectId]/GET.ts
1318
- const handler$33 = async (c) => {
1319
- return c.json(ProjectResponseSchema.parse({ project: routeProject(c.get("project")) }));
1353
+ const handler$36 = async (c) => {
1354
+ return c.json(ProjectResponseSchema.parse(routeProject(c.get("project"))));
1320
1355
  };
1321
1356
  //#endregion
1322
1357
  //#region src/routes/account/projects/[projectId]/PATCH.ts
1323
- const handler$32 = async (c) => {
1358
+ const handler$35 = async (c) => {
1324
1359
  const organization = c.get("organization");
1325
1360
  const project = c.get("project");
1326
1361
  const body = await c.req.json().catch(() => null);
@@ -1334,11 +1369,11 @@ const handler$32 = async (c) => {
1334
1369
  throw error;
1335
1370
  }
1336
1371
  if (!updated) return c.json(ErrorResponseSchema.parse({ error: "Project not found" }), 404);
1337
- return c.json(ProjectResponseSchema.parse({ project: mapProject(updated) }));
1372
+ return c.json(ProjectResponseSchema.parse(mapProject(updated)));
1338
1373
  };
1339
1374
  //#endregion
1340
1375
  //#region src/routes/account/projects/[projectId]/DELETE.ts
1341
- const handler$31 = async (c) => {
1376
+ const handler$34 = async (c) => {
1342
1377
  const organization = c.get("organization");
1343
1378
  const project = c.get("project");
1344
1379
  if (!await deleteProjectForOrganization(organization.organizationId, project.id)) return c.json(ErrorResponseSchema.parse({ error: "Project not found" }), 404);
@@ -1346,15 +1381,15 @@ const handler$31 = async (c) => {
1346
1381
  };
1347
1382
  //#endregion
1348
1383
  //#region src/routes/account/projects/[projectId]/deployments/GET.ts
1349
- const handler$30 = async (c) => {
1384
+ const handler$33 = async (c) => {
1350
1385
  const rows = await selectProjectDeployments(c.get("project").id);
1351
- return c.json(ListProjectDeploymentsResponseSchema.parse({ deployments: rows.map(mapProjectDeployment) }));
1386
+ return c.json(ListProjectDeploymentsResponseSchema.parse(rows.map(mapProjectDeployment)));
1352
1387
  };
1353
1388
  //#endregion
1354
1389
  //#region src/routes/account/projects/[projectId]/artifacts/POST.ts
1355
1390
  const DEFAULT_PRESIGN_TTL_SECONDS$1 = 900;
1356
1391
  const ARTIFACT_CONTENT_TYPE = "application/gzip";
1357
- const handler$29 = async (c) => {
1392
+ const handler$32 = async (c) => {
1358
1393
  const project = c.get("project");
1359
1394
  const { organizationId } = c.get("organization");
1360
1395
  const organization = await selectOrganizationById(organizationId);
@@ -1382,7 +1417,7 @@ const handler$29 = async (c) => {
1382
1417
  //#endregion
1383
1418
  //#region src/routes/account/projects/[projectId]/artifacts/active/download/GET.ts
1384
1419
  const DEFAULT_PRESIGN_TTL_SECONDS = 900;
1385
- const handler$28 = async (c) => {
1420
+ const handler$31 = async (c) => {
1386
1421
  const project = c.get("project");
1387
1422
  const { organizationId } = c.get("organization");
1388
1423
  const organization = await selectOrganizationById(organizationId);
@@ -1401,7 +1436,7 @@ const handler$28 = async (c) => {
1401
1436
  };
1402
1437
  //#endregion
1403
1438
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/complete/POST.ts
1404
- const handler$27 = async (c) => {
1439
+ const handler$30 = async (c) => {
1405
1440
  const project = c.get("project");
1406
1441
  const artifactId = c.req.param("artifactId");
1407
1442
  if (!artifactId) return c.json(ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -1440,7 +1475,7 @@ const handler$27 = async (c) => {
1440
1475
  //#endregion
1441
1476
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/presign/POST.ts
1442
1477
  const SOURCE_BLOB_CONTENT_TYPE = "text/plain; charset=utf-8";
1443
- const handler$26 = async (c) => {
1478
+ const handler$29 = async (c) => {
1444
1479
  const project = c.get("project");
1445
1480
  const artifactId = c.req.param("artifactId");
1446
1481
  if (!artifactId) return c.json(ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -1468,7 +1503,7 @@ const handler$26 = async (c) => {
1468
1503
  };
1469
1504
  //#endregion
1470
1505
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/source/manifest/POST.ts
1471
- const handler$25 = async (c) => {
1506
+ const handler$28 = async (c) => {
1472
1507
  const project = c.get("project");
1473
1508
  const artifactId = c.req.param("artifactId");
1474
1509
  if (!artifactId) return c.json(ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -1513,7 +1548,7 @@ function resolveSourcePaths(rows, kindDir, filePaths) {
1513
1548
  }] : [];
1514
1549
  });
1515
1550
  }
1516
- const handler$24 = async (c) => {
1551
+ const handler$27 = async (c) => {
1517
1552
  const project = c.get("project");
1518
1553
  const active = await selectActiveArtifactSourceManifestForProject(project.id);
1519
1554
  if (!active || !active.sourceManifestJson) return c.json(ListProjectFilesResponseSchema.parse({
@@ -1547,7 +1582,7 @@ const handler$24 = async (c) => {
1547
1582
  };
1548
1583
  //#endregion
1549
1584
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/files/content/GET.ts
1550
- const handler$23 = async (c) => {
1585
+ const handler$26 = async (c) => {
1551
1586
  const project = c.get("project");
1552
1587
  const artifactId = c.req.param("artifactId");
1553
1588
  if (!artifactId) return c.json(ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
@@ -1576,24 +1611,25 @@ function createProjectReachabilityHandler(hosting) {
1576
1611
  return async (c) => {
1577
1612
  const project = c.get("project");
1578
1613
  if (project.status !== "active") return c.json(ProjectReachabilityResponseSchema.parse({ reachable: false }));
1614
+ const organization = await selectOrganizationById(project.organizationId);
1579
1615
  const reachable = await pingProjectTarget({
1580
- baseUrl: project.baseUrl,
1581
- runtimeId: project.runtimeId
1616
+ baseUrl: organization?.baseUrl ?? project.baseUrl,
1617
+ runtimeId: organization?.runtimeId ?? project.runtimeId
1582
1618
  }, { plugin: hosting });
1583
1619
  return c.json(ProjectReachabilityResponseSchema.parse({ reachable }));
1584
1620
  };
1585
1621
  }
1586
1622
  //#endregion
1587
1623
  //#region src/routes/account/projects/[projectId]/members/GET.ts
1588
- const handler$22 = async (c) => {
1624
+ const handler$25 = async (c) => {
1589
1625
  const project = c.get("project");
1590
1626
  const currentUserId = c.get("user").id;
1591
1627
  const members = await selectProjectMembers(project.id);
1592
- return c.json(ListProjectMembersResponseSchema.parse({ members: members.map((member) => mapProjectMember(member, { isCurrentUser: member.id === currentUserId })) }));
1628
+ return c.json(ListProjectMembersResponseSchema.parse(members.map((member) => mapProjectMember(member, { isCurrentUser: member.id === currentUserId }))));
1593
1629
  };
1594
1630
  //#endregion
1595
1631
  //#region src/routes/account/projects/[projectId]/members/POST.ts
1596
- const handler$21 = async (c) => {
1632
+ const handler$24 = async (c) => {
1597
1633
  const organization = c.get("organization");
1598
1634
  const project = c.get("project");
1599
1635
  const body = await c.req.json().catch(() => null);
@@ -1605,11 +1641,11 @@ const handler$21 = async (c) => {
1605
1641
  emails: parsed.data.emails,
1606
1642
  role: parsed.data.role
1607
1643
  });
1608
- return c.json(InviteProjectMembersResponseSchema.parse({ results }));
1644
+ return c.json(InviteProjectMembersResponseSchema.parse(results));
1609
1645
  };
1610
1646
  //#endregion
1611
1647
  //#region src/routes/account/projects/[projectId]/members/[userId]/PATCH.ts
1612
- const handler$20 = async (c) => {
1648
+ const handler$23 = async (c) => {
1613
1649
  const project = c.get("project");
1614
1650
  const userId = c.req.param("userId");
1615
1651
  const body = await c.req.json().catch(() => null);
@@ -1618,7 +1654,7 @@ const handler$20 = async (c) => {
1618
1654
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid member update request" }), 400);
1619
1655
  try {
1620
1656
  const member = await updateProjectMemberRole(project.id, userId, parsed.data.role);
1621
- return c.json(UpdateProjectMemberResponseSchema.parse({ member: mapProjectMember(member) }));
1657
+ return c.json(UpdateProjectMemberResponseSchema.parse(mapProjectMember(member)));
1622
1658
  } catch (error) {
1623
1659
  if (error instanceof ProjectMemberNotFoundError) return c.json(ErrorResponseSchema.parse({ error: error.message }), 400);
1624
1660
  throw error;
@@ -1626,7 +1662,7 @@ const handler$20 = async (c) => {
1626
1662
  };
1627
1663
  //#endregion
1628
1664
  //#region src/routes/account/projects/[projectId]/members/[userId]/DELETE.ts
1629
- const handler$19 = async (c) => {
1665
+ const handler$22 = async (c) => {
1630
1666
  const project = c.get("project");
1631
1667
  const userId = c.req.param("userId");
1632
1668
  if (!userId) return c.json(ErrorResponseSchema.parse({ error: "User id is required" }), 400);
@@ -1640,7 +1676,7 @@ const handler$19 = async (c) => {
1640
1676
  };
1641
1677
  //#endregion
1642
1678
  //#region src/routes/account/projects/[projectId]/members/me/DELETE.ts
1643
- const handler$18 = async (c) => {
1679
+ const handler$21 = async (c) => {
1644
1680
  const project = c.get("project");
1645
1681
  const userId = c.get("user").id;
1646
1682
  try {
@@ -1653,13 +1689,13 @@ const handler$18 = async (c) => {
1653
1689
  };
1654
1690
  //#endregion
1655
1691
  //#region src/routes/account/projects/[projectId]/settings/GET.ts
1656
- const handler$17 = async (c) => {
1692
+ const handler$20 = async (c) => {
1657
1693
  const project = c.get("project");
1658
- return c.json(ProjectSettingsResponseSchema.parse({ settings: mapProjectSettings(project) }));
1694
+ return c.json(ProjectSettingsResponseSchema.parse(mapProjectSettings(project)));
1659
1695
  };
1660
1696
  //#endregion
1661
1697
  //#region src/routes/account/projects/[projectId]/settings/PATCH.ts
1662
- const handler$16 = async (c) => {
1698
+ const handler$19 = async (c) => {
1663
1699
  const organization = c.get("organization");
1664
1700
  const project = c.get("project");
1665
1701
  const body = await c.req.json().catch(() => null);
@@ -1671,7 +1707,7 @@ const handler$16 = async (c) => {
1671
1707
  invitePermission: parsed.data.invitePermission
1672
1708
  });
1673
1709
  if (!updated) return c.json(ErrorResponseSchema.parse({ error: "Project not found" }), 404);
1674
- return c.json(ProjectSettingsResponseSchema.parse({ settings: mapProjectSettings(updated) }));
1710
+ return c.json(ProjectSettingsResponseSchema.parse(mapProjectSettings(updated)));
1675
1711
  };
1676
1712
  //#endregion
1677
1713
  //#region src/routes/account/credentials/enrich.ts
@@ -1693,8 +1729,12 @@ function canManageCredential(row, userId) {
1693
1729
  if (row.scopeType === "user") return userId !== void 0 && row.scopeId === userId;
1694
1730
  return true;
1695
1731
  }
1696
- /** Display name derived from the credential key (e.g. `google-drive` `Google Drive`). */
1732
+ /** Display name derived from the app slug (org-custom slugs use the segment after `/`). */
1697
1733
  function displayAppName(appId) {
1734
+ try {
1735
+ const parsed = parseAppSlug(appId);
1736
+ if (parsed.kind === "org") return displayCredentialAppName(parsed.name);
1737
+ } catch {}
1698
1738
  return displayCredentialAppName(appId);
1699
1739
  }
1700
1740
  /** Masked preview of a secret — last 4 chars revealed, the rest masked. Plaintext never returned. */
@@ -1781,10 +1821,10 @@ async function enrichCredentialInstances(rows, organizationId) {
1781
1821
  }
1782
1822
  //#endregion
1783
1823
  //#region src/routes/account/credentials/GET.ts
1784
- const handler$15 = async (c) => {
1824
+ const handler$18 = async (c) => {
1785
1825
  const organization = c.get("organization");
1786
1826
  const credentials = await enrichCredentialInstances(await listAllCredentialInstances(), organization.organizationId);
1787
- return c.json(ListCredentialsResponseSchema.parse({ credentials }));
1827
+ return c.json(ListCredentialsResponseSchema.parse(credentials));
1788
1828
  };
1789
1829
  //#endregion
1790
1830
  //#region src/routes/account/credentials/POST.ts
@@ -1792,7 +1832,7 @@ function withTargetScope(target, fn) {
1792
1832
  if (target.projectScope) return runWithProjectScope(target.projectScope, fn);
1793
1833
  return fn();
1794
1834
  }
1795
- const handler$14 = async (c) => {
1835
+ const handler$17 = async (c) => {
1796
1836
  const organization = c.get("organization");
1797
1837
  const user = c.get("user");
1798
1838
  const parsed = CreateCredentialsRequestSchema.safeParse(await c.req.json().catch(() => null));
@@ -1801,6 +1841,13 @@ const handler$14 = async (c) => {
1801
1841
  return c.json({ error: message }, 400);
1802
1842
  }
1803
1843
  const input = parsed.data;
1844
+ if (input.connectionKind === "manual" && input.value) {
1845
+ const app = await selectAppForOrganization(organization.organizationId, input.appId);
1846
+ if (app && hasCredentialFieldTemplate(app)) {
1847
+ const validation = validateCredentialValueAgainstFields(app.credentialFields, input.value);
1848
+ if (!validation.ok) return c.json({ error: validation.message }, 400);
1849
+ }
1850
+ }
1804
1851
  const resolvedProjects = [];
1805
1852
  for (const slug of input.projects) {
1806
1853
  const project = await selectProjectForOrganizationBySlug(organization.organizationId, slug);
@@ -1837,7 +1884,7 @@ const handler$14 = async (c) => {
1837
1884
  for (const target of targets) {
1838
1885
  const siblings = await withTargetScope(target, () => selectCredentialInstancesForScope(input.appId, target.scopeType, target.scopeId));
1839
1886
  const label = resolveUniqueCredentialInstanceLabel({
1840
- baseLabel: buildCredentialInstanceLabel({
1887
+ baseLabel: input.label?.trim() || buildCredentialInstanceLabel({
1841
1888
  scopeType: target.scopeType,
1842
1889
  appName,
1843
1890
  projectName: target.projectName
@@ -1862,21 +1909,21 @@ const handler$14 = async (c) => {
1862
1909
  if (row) rows.push(row);
1863
1910
  }
1864
1911
  const credentials = await enrichCredentialInstances(rows, organization.organizationId);
1865
- return c.json(CreateCredentialsResponseSchema.parse({ credentials }), 201);
1912
+ return c.json(CreateCredentialsResponseSchema.parse(credentials), 201);
1866
1913
  };
1867
1914
  //#endregion
1868
1915
  //#region src/routes/account/credentials/[credentialId]/GET.ts
1869
- const handler$13 = async (c) => {
1916
+ const handler$16 = async (c) => {
1870
1917
  const organization = c.get("organization");
1871
1918
  const credentialId = c.req.param("credentialId") ?? "";
1872
1919
  const row = credentialId ? await selectCredentialInstanceById(credentialId) : void 0;
1873
1920
  if (!row || toAppCredentialScope(row.scopeType) === null) return c.json({ error: "Credential not found" }, 404);
1874
1921
  const [credential] = await enrichCredentialInstances([row], organization.organizationId);
1875
- return c.json(GetCredentialResponseSchema.parse({ credential }));
1922
+ return c.json(GetCredentialResponseSchema.parse(credential));
1876
1923
  };
1877
1924
  //#endregion
1878
1925
  //#region src/routes/account/credentials/[credentialId]/PATCH.ts
1879
- const handler$12 = async (c) => {
1926
+ const handler$15 = async (c) => {
1880
1927
  const organization = c.get("organization");
1881
1928
  const user = c.get("user");
1882
1929
  const credentialId = c.req.param("credentialId") ?? "";
@@ -1929,7 +1976,7 @@ const handler$12 = async (c) => {
1929
1976
  });
1930
1977
  const updated = await selectCredentialInstanceById(credentialId);
1931
1978
  const [credential] = await enrichCredentialInstances(updated ? [updated] : [], organization.organizationId);
1932
- return c.json(GetCredentialResponseSchema.parse({ credential }));
1979
+ return c.json(GetCredentialResponseSchema.parse(credential));
1933
1980
  };
1934
1981
  //#endregion
1935
1982
  //#region src/routes/account/credentials/[credentialId]/DELETE.ts
@@ -1958,10 +2005,10 @@ function createDeleteCredentialHandler(options = {}) {
1958
2005
  }
1959
2006
  //#endregion
1960
2007
  //#region src/routes/account/members/GET.ts
1961
- const handler$11 = async (c) => {
2008
+ const handler$14 = async (c) => {
1962
2009
  const { organizationId } = c.get("organization");
1963
2010
  const members = await selectOrganizationMembers(organizationId);
1964
- return c.json(ListOrganizationMembersResponseSchema.parse({ members: members.map(mapOrganizationMember) }));
2011
+ return c.json(ListOrganizationMembersResponseSchema.parse(members.map(mapOrganizationMember)));
1965
2012
  };
1966
2013
  //#endregion
1967
2014
  //#region src/email/organization-invite-email.ts
@@ -2006,7 +2053,7 @@ async function sendOrganizationInviteEmail(payload, resend) {
2006
2053
  }
2007
2054
  //#endregion
2008
2055
  //#region src/routes/account/members/invitations/POST.ts
2009
- const handler$10 = async (c) => {
2056
+ const handler$13 = async (c) => {
2010
2057
  const user = c.get("user");
2011
2058
  const organization = c.get("organization");
2012
2059
  const body = await c.req.json().catch(() => null);
@@ -2028,11 +2075,11 @@ const handler$10 = async (c) => {
2028
2075
  inviterName: inviter?.name
2029
2076
  });
2030
2077
  }
2031
- return c.json(InviteOrganizationMembersResponseSchema.parse({ results }));
2078
+ return c.json(InviteOrganizationMembersResponseSchema.parse(results));
2032
2079
  };
2033
2080
  //#endregion
2034
2081
  //#region src/routes/account/members/[userId]/PATCH.ts
2035
- const handler$9 = async (c) => {
2082
+ const handler$12 = async (c) => {
2036
2083
  const { organizationId } = c.get("organization");
2037
2084
  const userId = c.req.param("userId");
2038
2085
  const body = await c.req.json().catch(() => null);
@@ -2041,7 +2088,7 @@ const handler$9 = async (c) => {
2041
2088
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid member update request" }), 400);
2042
2089
  try {
2043
2090
  const member = await updateOrganizationMemberRole(organizationId, userId, parsed.data.role);
2044
- return c.json(UpdateOrganizationMemberResponseSchema.parse({ member: mapOrganizationMember(member) }));
2091
+ return c.json(UpdateOrganizationMemberResponseSchema.parse(mapOrganizationMember(member)));
2045
2092
  } catch (error) {
2046
2093
  if (error instanceof CannotModifyOwnerError || error instanceof OrganizationMemberNotFoundError) return c.json(ErrorResponseSchema.parse({ error: error.message }), 400);
2047
2094
  throw error;
@@ -2049,7 +2096,7 @@ const handler$9 = async (c) => {
2049
2096
  };
2050
2097
  //#endregion
2051
2098
  //#region src/routes/account/members/[userId]/DELETE.ts
2052
- const handler$8 = async (c) => {
2099
+ const handler$11 = async (c) => {
2053
2100
  const { organizationId } = c.get("organization");
2054
2101
  const userId = c.req.param("userId");
2055
2102
  if (!userId) return c.json(ErrorResponseSchema.parse({ error: "User id is required" }), 400);
@@ -2063,19 +2110,19 @@ const handler$8 = async (c) => {
2063
2110
  };
2064
2111
  //#endregion
2065
2112
  //#region src/routes/account/invitations/GET.ts
2066
- const handler$7 = async (c) => {
2113
+ const handler$10 = async (c) => {
2067
2114
  const invitations = await selectPendingInvitationsForUser(c.get("user").id);
2068
- return c.json(ListOrganizationInvitationsResponseSchema.parse({ invitations: invitations.map(mapOrganizationInvitation) }));
2115
+ return c.json(ListOrganizationInvitationsResponseSchema.parse(invitations.map(mapOrganizationInvitation)));
2069
2116
  };
2070
2117
  //#endregion
2071
2118
  //#region src/routes/account/invitations/[invitationId]/accept/POST.ts
2072
- const handler$6 = async (c) => {
2119
+ const handler$9 = async (c) => {
2073
2120
  const user = c.get("user");
2074
2121
  const invitationId = c.req.param("invitationId");
2075
2122
  if (!invitationId) return c.json(ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
2076
2123
  try {
2077
2124
  const membership = await acceptInvitation(invitationId, user.id);
2078
- return c.json(AcceptOrganizationInvitationResponseSchema.parse({ organization: mapUserOrganization(membership) }));
2125
+ return c.json(AcceptOrganizationInvitationResponseSchema.parse(mapUserOrganization(membership)));
2079
2126
  } catch (error) {
2080
2127
  if (error instanceof OrganizationInvitationNotFoundError) return c.json(ErrorResponseSchema.parse({ error: error.message }), 404);
2081
2128
  if (error instanceof OrganizationInvitationForbiddenError) return c.json(ErrorResponseSchema.parse({ error: error.message }), 403);
@@ -2085,7 +2132,7 @@ const handler$6 = async (c) => {
2085
2132
  };
2086
2133
  //#endregion
2087
2134
  //#region src/routes/account/invitations/[invitationId]/decline/POST.ts
2088
- const handler$5 = async (c) => {
2135
+ const handler$8 = async (c) => {
2089
2136
  const user = c.get("user");
2090
2137
  const invitationId = c.req.param("invitationId");
2091
2138
  if (!invitationId) return c.json(ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
@@ -2110,14 +2157,83 @@ function appRowToCatalogEntry(row) {
2110
2157
  integrationDescription: row.description,
2111
2158
  ...row.logo ? { logo: row.logo } : {},
2112
2159
  authKind: row.authKind,
2113
- oauthScopes: row.oauthScopes
2160
+ oauthScopes: row.oauthScopes,
2161
+ source: row.source,
2162
+ ...hasCredentialFieldTemplate(row) ? { credentialFields: row.credentialFields } : {}
2163
+ };
2164
+ }
2165
+ function appRowToCustomAppDetail(row) {
2166
+ if (row.source !== "custom" || row.authKind !== "api_key") throw new Error(`App is not a custom api_key app: ${row.slug}`);
2167
+ if (!hasCredentialFieldTemplate(row)) throw new Error(`Custom app is missing credential fields: ${row.slug}`);
2168
+ return {
2169
+ id: row.slug,
2170
+ slug: row.slug,
2171
+ name: row.name,
2172
+ description: row.description,
2173
+ category: row.category,
2174
+ authKind: "api_key",
2175
+ source: "custom",
2176
+ credentialFields: row.credentialFields,
2177
+ createdAt: row.createdAt.toISOString(),
2178
+ updatedAt: row.updatedAt.toISOString()
2114
2179
  };
2115
2180
  }
2116
2181
  //#endregion
2117
2182
  //#region src/routes/account/apps/GET.ts
2183
+ const handler$7 = async (c) => {
2184
+ const apps = (await listAppsForOrganization(c.get("organization").organizationId)).map(appRowToCatalogEntry);
2185
+ return c.json(ListAppsResponseSchema.parse(apps));
2186
+ };
2187
+ //#endregion
2188
+ //#region src/routes/account/apps/POST.ts
2189
+ const handler$6 = async (c) => {
2190
+ const organization = c.get("organization");
2191
+ const parsed = CreateCustomAppRequestSchema.safeParse(await c.req.json().catch(() => null));
2192
+ if (!parsed.success) {
2193
+ const message = parsed.error.issues[0]?.message ?? "Invalid request body";
2194
+ return c.json(ErrorResponseSchema.parse({ error: message }), 400);
2195
+ }
2196
+ const org = await selectOrganizationById(organization.organizationId);
2197
+ if (!org) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
2198
+ try {
2199
+ const row = await createOrgApp({
2200
+ organizationId: organization.organizationId,
2201
+ orgSlug: org.slug,
2202
+ name: parsed.data.name,
2203
+ slug: parsed.data.slug,
2204
+ description: parsed.data.description,
2205
+ credentialFields: parsed.data.fields
2206
+ });
2207
+ return c.json(CreateCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)), 201);
2208
+ } catch (error) {
2209
+ if (error instanceof OrgAppSlugTakenError) return c.json(ErrorResponseSchema.parse({ error: error.message }), 409);
2210
+ throw error;
2211
+ }
2212
+ };
2213
+ //#endregion
2214
+ //#region src/routes/account/apps/slug-available/GET.ts
2215
+ const handler$5 = async (c) => {
2216
+ const organization = c.get("organization");
2217
+ const parsed = AppSlugAvailabilityQuerySchema.safeParse({ slug: c.req.query("slug") });
2218
+ if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid slug query" }), 400);
2219
+ const org = await selectOrganizationById(organization.organizationId);
2220
+ if (!org) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
2221
+ const availability = await checkOrgAppSlugAvailability(org.slug, parsed.data.slug);
2222
+ return c.json(AppSlugAvailabilityResponseSchema.parse(availability));
2223
+ };
2224
+ //#endregion
2225
+ //#region src/routes/account/apps/[slug]/GET.ts
2118
2226
  const handler$4 = async (c) => {
2119
- const apps = (await listOfficialApps()).map(appRowToCatalogEntry);
2120
- return c.json(ListAppsResponseSchema.parse({ apps }));
2227
+ const organization = c.get("organization");
2228
+ const slug = c.req.param("slug") ?? "";
2229
+ if (!slug) return c.json(ErrorResponseSchema.parse({ error: "App not found" }), 404);
2230
+ const row = await selectAppForOrganization(organization.organizationId, decodeURIComponent(slug));
2231
+ if (!row || row.source !== "custom") return c.json(ErrorResponseSchema.parse({ error: "App not found" }), 404);
2232
+ try {
2233
+ return c.json(GetCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)));
2234
+ } catch {
2235
+ return c.json(ErrorResponseSchema.parse({ error: "App not found" }), 404);
2236
+ }
2121
2237
  };
2122
2238
  //#endregion
2123
2239
  //#region src/routes/account/api-keys/GET.ts
@@ -2127,14 +2243,14 @@ const handler$3 = async (c) => {
2127
2243
  const records = apiKeyListScope(accessContext(c)).kind === "all" ? await listOrgPlatformApiKeysForOrganization(organizationId) : await listOrgPlatformApiKeysForUser(organizationId, user.id);
2128
2244
  const creators = await selectUsersByIds([...new Set(records.map((record) => record.createdByUserId))]);
2129
2245
  const creatorsById = new Map(creators.map((creator) => [creator.id, creator]));
2130
- return c.json(ListApiKeysResponseSchema.parse({ apiKeys: records.map((record) => ({
2246
+ return c.json(ListApiKeysResponseSchema.parse(records.map((record) => ({
2131
2247
  id: record.id,
2132
2248
  name: record.name,
2133
2249
  keyPreview: record.keyPreview,
2134
2250
  createdAt: record.createdAt.toISOString(),
2135
2251
  createdBy: mapOrgPlatformApiKeyCreatorOrDeleted(record.createdByUserId, creatorsById.get(record.createdByUserId)),
2136
2252
  isCreatedByCurrentUser: record.createdByUserId === user.id
2137
- })) }));
2253
+ }))));
2138
2254
  };
2139
2255
  //#endregion
2140
2256
  //#region src/routes/account/api-keys/POST.ts
@@ -2311,71 +2427,74 @@ function mountAccountRoutes(options) {
2311
2427
  const requireProjectManageMembers = authorize(projectActions.manageMembers);
2312
2428
  const requireInvitableProjectRole = authorizePayload(InviteProjectMembersRequestSchema, ({ c, ctx, body }) => canInviteToProject(ctx, { invitePermission: getProjectInvitePermission(c) }, body.role));
2313
2429
  const requireOrgParam = requireOrganizationParam();
2314
- account.get("/organizations", handler$55);
2315
- account.get("/organizations/slug-available", handler$54);
2430
+ account.get("/organizations", handler$58);
2431
+ account.get("/organizations/slug-available", handler$57);
2316
2432
  account.post("/organizations", createOrganizationHandler(options));
2317
- account.get("/organizations/:organizationId", requireOrgParam, handler$53);
2318
- account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$52);
2319
- account.get("/organizations/:organizationId/branding", requireOrgParam, handler$51);
2320
- account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$50);
2321
- account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$49);
2322
- account.get("/invitations", handler$7);
2323
- account.post("/invitations/:invitationId/accept", handler$6);
2324
- account.post("/invitations/:invitationId/decline", handler$5);
2325
- account.get("/users/me/avatar", handler$60);
2326
- account.post("/users/me/avatar/presign", handler$59);
2327
- account.patch("/users/me/avatar", handler$58);
2328
- account.get("/users/me/preferences", handler$57);
2329
- account.patch("/users/me/preferences", handler$56);
2330
- account.get("/apps", handler$4);
2331
- orgScoped.get("/members", handler$11);
2332
- orgScoped.post("/members/invitations", requireUserInvite, requireInvitableRole, handler$10);
2333
- orgScoped.patch("/members/:userId", requireUserManage, handler$9);
2334
- orgScoped.delete("/members/:userId", requireUserManage, handler$8);
2433
+ account.get("/organizations/:organizationId", requireOrgParam, handler$56);
2434
+ account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$55);
2435
+ account.get("/organizations/:organizationId/branding", requireOrgParam, handler$54);
2436
+ account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$53);
2437
+ account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$52);
2438
+ account.get("/invitations", handler$10);
2439
+ account.post("/invitations/:invitationId/accept", handler$9);
2440
+ account.post("/invitations/:invitationId/decline", handler$8);
2441
+ account.get("/users/me/avatar", handler$63);
2442
+ account.post("/users/me/avatar/presign", handler$62);
2443
+ account.patch("/users/me/avatar", handler$61);
2444
+ account.get("/users/me/preferences", handler$60);
2445
+ account.patch("/users/me/preferences", handler$59);
2446
+ orgScoped.get("/apps", handler$7);
2447
+ orgScoped.get("/apps/slug-available", handler$5);
2448
+ orgScoped.post("/apps", requireOrgUpdate, handler$6);
2449
+ orgScoped.get("/apps/:slug", handler$4);
2450
+ orgScoped.get("/members", handler$14);
2451
+ orgScoped.post("/members/invitations", requireUserInvite, requireInvitableRole, handler$13);
2452
+ orgScoped.patch("/members/:userId", requireUserManage, handler$12);
2453
+ orgScoped.delete("/members/:userId", requireUserManage, handler$11);
2335
2454
  orgScoped.get("/api-keys", handler$3);
2336
2455
  orgScoped.post("/api-keys", requireApiKeyCreate, handler$2);
2337
2456
  orgScoped.delete("/api-keys/:apiKeyId", handler$1);
2338
2457
  const withOrgDb = withOrganizationProjectDatabase();
2339
- orgScoped.get("/agents", withOrgDb, handler$46);
2340
- orgScoped.get("/agents/:agentId", withOrgDb, handler$45);
2341
- orgScoped.get("/workflows", withOrgDb, handler$43);
2342
- orgScoped.get("/workflows/:workflowId", withOrgDb, handler$42);
2343
- orgScoped.get("/skills", withOrgDb, handler$40);
2344
- orgScoped.get("/skills/:skillId", withOrgDb, handler$39);
2345
- orgScoped.get("/recents", withOrgDb, handler$38);
2346
- orgScoped.get("/history", withOrgDb, handler$48);
2458
+ orgScoped.get("/agents", withOrgDb, handler$49);
2459
+ orgScoped.get("/agents/:agentId", withOrgDb, handler$48);
2460
+ orgScoped.get("/workflows", withOrgDb, handler$46);
2461
+ orgScoped.get("/workflows/:workflowId", withOrgDb, handler$45);
2462
+ orgScoped.get("/skills", withOrgDb, handler$43);
2463
+ orgScoped.get("/skills/:skillId", withOrgDb, handler$42);
2464
+ orgScoped.get("/recents", withOrgDb, handler$41);
2465
+ orgScoped.get("/history", withOrgDb, handler$51);
2347
2466
  orgScoped.post("/team-requests", handler);
2348
- orgScoped.get("/history/:runId", withOrgDb, handler$47);
2349
- orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$41);
2350
- orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$44);
2351
- orgScoped.get("/credentials", withOrgDb, handler$15);
2352
- orgScoped.post("/credentials", withOrgDb, handler$14);
2353
- orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$13(c, next));
2354
- orgScoped.patch("/credentials/:credentialId", withOrgDb, handler$12);
2467
+ orgScoped.get("/history/:runId", withOrgDb, handler$50);
2468
+ orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$44);
2469
+ orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$47);
2470
+ orgScoped.get("/credentials", withOrgDb, handler$18);
2471
+ orgScoped.post("/credentials", withOrgDb, handler$17);
2472
+ orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$16(c, next));
2473
+ orgScoped.patch("/credentials/:credentialId", withOrgDb, handler$15);
2355
2474
  orgScoped.delete("/credentials/:credentialId", withOrgDb, deleteCredential);
2356
- orgScoped.get("/projects", handler$37);
2357
- orgScoped.get("/projects/slug-available", handler$34);
2358
- orgScoped.get("/projects/metrics", withOrgDb, handler$36);
2359
- orgScoped.post("/projects", handler$35);
2360
- projectScoped.get("/:projectId", requireProject(), requireProjectMember, handler$33);
2361
- projectScoped.patch("/:projectId", requireProject(), requireProjectMember, requireProjectUpdate, handler$32);
2362
- projectScoped.delete("/:projectId", requireProject(), requireProjectMember, requireProjectDelete, handler$31);
2363
- projectScoped.get("/:projectId/settings", requireProject(), requireProjectMember, handler$17);
2364
- projectScoped.patch("/:projectId/settings", requireProject(), requireProjectMember, requireProjectUpdate, handler$16);
2365
- projectScoped.get("/:projectId/members", requireProject(), requireProjectMember, handler$22);
2366
- projectScoped.post("/:projectId/members", requireProject(), requireProjectMember, requireInvitableProjectRole, handler$21);
2367
- projectScoped.patch("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$20);
2368
- projectScoped.delete("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$19);
2369
- projectScoped.delete("/:projectId/members/me", requireProject(), requireProjectMember, handler$18);
2475
+ orgScoped.get("/projects", handler$40);
2476
+ orgScoped.get("/projects/slug-available", handler$37);
2477
+ orgScoped.get("/projects/metrics", withOrgDb, handler$39);
2478
+ orgScoped.post("/projects", handler$38);
2479
+ projectScoped.get("/:projectId", requireProject(), requireProjectMember, handler$36);
2480
+ projectScoped.patch("/:projectId", requireProject(), requireProjectMember, requireProjectUpdate, handler$35);
2481
+ projectScoped.delete("/:projectId", requireProject(), requireProjectMember, requireProjectDelete, handler$34);
2482
+ projectScoped.get("/:projectId/settings", requireProject(), requireProjectMember, handler$20);
2483
+ projectScoped.patch("/:projectId/settings", requireProject(), requireProjectMember, requireProjectUpdate, handler$19);
2484
+ projectScoped.get("/:projectId/members", requireProject(), requireProjectMember, handler$25);
2485
+ projectScoped.post("/:projectId/members", requireProject(), requireProjectMember, requireInvitableProjectRole, handler$24);
2486
+ projectScoped.patch("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$23);
2487
+ projectScoped.delete("/:projectId/members/:userId", requireProject(), requireProjectMember, requireProjectManageMembers, handler$22);
2488
+ projectScoped.delete("/:projectId/members/me", requireProject(), requireProjectMember, handler$21);
2370
2489
  projectScoped.get("/:projectId/reachability", requireProject(), requireProjectMember, createProjectReachabilityHandler(options.hosting));
2371
- projectScoped.get("/:projectId/files", requireProject(), requireProjectMember, withOrgDb, handler$24);
2372
- projectScoped.get("/:projectId/artifacts/:artifactId/files/content", requireProject(), requireProjectMember, handler$23);
2373
- projectScoped.get("/:projectId/deployments", requireProject(), requireProjectMember, handler$30);
2374
- projectScoped.get("/:projectId/artifacts/active/download", requireProject(), requireProjectMember, requireProjectDeploy, handler$28);
2375
- projectScoped.post("/:projectId/artifacts", requireProject(), requireProjectMember, requireProjectDeploy, handler$29);
2376
- projectScoped.post("/:projectId/artifacts/:artifactId/complete", requireProject(), requireProjectMember, requireProjectDeploy, handler$27);
2377
- projectScoped.post("/:projectId/artifacts/:artifactId/source/presign", requireProject(), requireProjectMember, requireProjectDeploy, handler$26);
2378
- projectScoped.post("/:projectId/artifacts/:artifactId/source/manifest", requireProject(), requireProjectMember, requireProjectDeploy, handler$25);
2490
+ projectScoped.get("/:projectId/files", requireProject(), requireProjectMember, withOrgDb, handler$27);
2491
+ projectScoped.get("/:projectId/artifacts/:artifactId/files/content", requireProject(), requireProjectMember, handler$26);
2492
+ projectScoped.get("/:projectId/deployments", requireProject(), requireProjectMember, handler$33);
2493
+ projectScoped.get("/:projectId/artifacts/active/download", requireProject(), requireProjectMember, requireProjectDeploy, handler$31);
2494
+ projectScoped.post("/:projectId/artifacts", requireProject(), requireProjectMember, requireProjectDeploy, handler$32);
2495
+ projectScoped.post("/:projectId/artifacts/:artifactId/complete", requireProject(), requireProjectMember, requireProjectDeploy, handler$30);
2496
+ projectScoped.post("/:projectId/artifacts/:artifactId/source/presign", requireProject(), requireProjectMember, requireProjectDeploy, handler$29);
2497
+ projectScoped.post("/:projectId/artifacts/:artifactId/source/manifest", requireProject(), requireProjectMember, requireProjectDeploy, handler$28);
2379
2498
  orgScoped.route("/projects", projectScoped);
2380
2499
  account.route("/", orgScoped);
2381
2500
  return account;
@@ -2471,11 +2590,12 @@ const SandboxWriteBodySchema = SandboxSessionBodySchema.extend({
2471
2590
  path: z.string().trim().min(1),
2472
2591
  content: z.string()
2473
2592
  });
2474
- function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, sandboxProxy) {
2593
+ function mountInternalRoutes(workerToken, tokenRefresh, llmProxy, sandboxProxy, mcp) {
2475
2594
  const internal = new Hono();
2476
2595
  const protect = requireWorkerToken(workerToken);
2477
2596
  const materialize = createCredentialMaterializeHandler(tokenRefresh);
2478
2597
  internal.use("/*", protect);
2598
+ mcp?.mountInternalRoutes?.(internal, { withProjectScope });
2479
2599
  internal.post("/projects/:projectId/credentials/materialize", async (c) => {
2480
2600
  const response = await withProjectScope(c.req.param("projectId"), async () => materialize(c));
2481
2601
  if (response === void 0) return c.json({ error: "Project not found" }, 404);
@@ -2628,7 +2748,7 @@ async function createApp$1(auth, options) {
2628
2748
  }));
2629
2749
  },
2630
2750
  mountInternal: (app, { tokenRefresh }) => {
2631
- app.route("/internal", mountInternalRoutes(options.hosting.workerRuntime.workerToken, tokenRefresh, options.llmProxy, options.sandboxProxy));
2751
+ app.route("/internal", mountInternalRoutes(options.hosting.workerRuntime.workerToken, tokenRefresh, options.llmProxy, options.sandboxProxy, options.mcp));
2632
2752
  }
2633
2753
  });
2634
2754
  }
@@ -2652,45 +2772,34 @@ async function startPlatformServer(platformConfig, hooks = {}) {
2652
2772
  if (usesPgBossScheduler(platformConfig)) await ensureProjectPgBossGrants();
2653
2773
  configureProjectRuntimeScheduler(platformConfig.scheduler);
2654
2774
  await startProjectRuntimeWorker(runtime, { resolveStartInput: async (job) => {
2655
- const project = await selectProjectById(job.projectId);
2656
- if (!project) throw new Error(`Project ${job.projectId} not found`);
2657
- const resolved = resolveRuntimeArtifact(project, job.artifactId);
2658
- if (resolved.action === "error") throw new Error(resolved.message);
2659
- if (resolved.action === "skip") throw new Error(`Project ${job.projectId} has no deploy artifact to start`);
2660
- const artifact = await selectProjectArtifactById(resolved.artifactId);
2661
- if (!artifact || artifact.status !== "ready") throw new Error(`Project ${job.projectId} pending artifact is not ready`);
2662
- const organization = await selectOrganizationById(project.organizationId);
2663
- if (!organization) throw new Error(`Organization not found for project ${job.projectId}`);
2775
+ const organization = await selectOrganizationById(job.organizationId);
2776
+ if (!organization) throw new Error(`Organization ${job.organizationId} not found`);
2777
+ const database = await resolveOrgRuntimeDatabase(job.organizationId);
2664
2778
  const workerRuntime = platformConfig.hosting.workerRuntime;
2665
2779
  return {
2666
- projectId: job.projectId,
2667
- name: job.name,
2668
- artifactId: resolved.artifactId,
2669
- artifactStorageKey: artifact.storageKey,
2670
- database: await resolveProjectRuntimeDatabase({
2671
- organizationId: project.organizationId,
2672
- projectId: project.id
2673
- }),
2780
+ organizationId: job.organizationId,
2781
+ projects: [],
2782
+ database: {
2783
+ ...database,
2784
+ organizationId: job.organizationId
2785
+ },
2674
2786
  env: {
2675
2787
  ...orgWorkspacesRuntimeEnv(organization, { containerEnv: process.env }),
2676
2788
  ...platformConfig.llmProxy?.workerEnv({
2677
2789
  platformUrl: workerRuntime.platformUrl,
2678
- workerToken: workerRuntime.workerToken,
2679
- projectId: project.id
2790
+ workerToken: workerRuntime.workerToken
2680
2791
  }),
2681
2792
  ...platformConfig.sandboxProxy?.workerEnv({
2682
2793
  platformUrl: workerRuntime.platformUrl,
2683
- workerToken: workerRuntime.workerToken,
2684
- projectId: project.id
2794
+ workerToken: workerRuntime.workerToken
2685
2795
  }),
2686
2796
  ...platformConfig.workerEnv?.({
2687
2797
  platformUrl: workerRuntime.platformUrl,
2688
- workerToken: workerRuntime.workerToken,
2689
- projectId: project.id
2798
+ workerToken: workerRuntime.workerToken
2690
2799
  })
2691
2800
  },
2692
2801
  hosting: organization.hostingAppName ? { appName: organization.hostingAppName } : void 0,
2693
- previousRuntimeId: project.runtimeId
2802
+ previousRuntimeId: organization.runtimeId
2694
2803
  };
2695
2804
  } });
2696
2805
  const webUrl = process.env.PUBLIC_WEB_URL;
@@ -2724,4 +2833,4 @@ async function startPlatformServer(platformConfig, hooks = {}) {
2724
2833
  //#endregion
2725
2834
  export { startPlatformServer as t };
2726
2835
 
2727
- //# sourceMappingURL=start-DAlaZ5zj.mjs.map
2836
+ //# sourceMappingURL=start-9_8ZcdaU.mjs.map