@keystrokehq/platform 0.1.24 → 0.1.26

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 (303) hide show
  1. package/dist/{awk2-LA3USKJP-6nTiL1Fx.cjs → awk2-LA3USKJP-DWN5gyAn.cjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-6nTiL1Fx.cjs.map → awk2-LA3USKJP-DWN5gyAn.cjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-DsFCxrAn.mjs → awk2-LA3USKJP-DeBBkGI5.mjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-DsFCxrAn.mjs.map → awk2-LA3USKJP-DeBBkGI5.mjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-Jli-NZKT.cjs → base64-C2AIWVNC-Dp8sCZAt.cjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-Jli-NZKT.cjs.map → base64-C2AIWVNC-Dp8sCZAt.cjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-BTfHxe6x.mjs → base64-C2AIWVNC-JuDjFqOp.mjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-BTfHxe6x.mjs.map → base64-C2AIWVNC-JuDjFqOp.mjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-Cl3zWejT.cjs → bash-YZ33HQZQ-DVA0EDj-.cjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-Cl3zWejT.cjs.map → bash-YZ33HQZQ-DVA0EDj-.cjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-BvR1blQy.mjs → bash-YZ33HQZQ-rOVeZOAg.mjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-BvR1blQy.mjs.map → bash-YZ33HQZQ-rOVeZOAg.mjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-p5WuEnly.cjs → cat-TSFMZVYS-COvFG8Nb.cjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-p5WuEnly.cjs.map → cat-TSFMZVYS-COvFG8Nb.cjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-BR3SDCDa.mjs → cat-TSFMZVYS-CXlrdMsd.mjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-BR3SDCDa.mjs.map → cat-TSFMZVYS-CXlrdMsd.mjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-DnLsyMd1.cjs → chunk-5H5SCKJM-CHHdX4ki.cjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-DnLsyMd1.cjs.map → chunk-5H5SCKJM-CHHdX4ki.cjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-CPKgF86S.mjs → chunk-5H5SCKJM-Dkx3HLwU.mjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-CPKgF86S.mjs.map → chunk-5H5SCKJM-Dkx3HLwU.mjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-Dj95F41M.cjs → chunk-AQ6FYS2X-BypvbWc4.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-Dj95F41M.cjs.map → chunk-AQ6FYS2X-BypvbWc4.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-CUa1A4Pd.mjs → chunk-AQ6FYS2X-C_yeVyzo.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-CUa1A4Pd.mjs.map → chunk-AQ6FYS2X-C_yeVyzo.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-Crh-KqiZ.cjs → chunk-CHFEPBH4-B713gemY.cjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-Crh-KqiZ.cjs.map → chunk-CHFEPBH4-B713gemY.cjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-CnDOsQ68.mjs → chunk-CHFEPBH4-BN_FjUum.mjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-CnDOsQ68.mjs.map → chunk-CHFEPBH4-BN_FjUum.mjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-C3Qo8RVI.cjs → chunk-EBAPSGAO-C5khy_yB.cjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-C3Qo8RVI.cjs.map → chunk-EBAPSGAO-C5khy_yB.cjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-B60xzKy-.mjs → chunk-EBAPSGAO-CWkUWuMF.mjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-B60xzKy-.mjs.map → chunk-EBAPSGAO-CWkUWuMF.mjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-CzSjgGrS.mjs → chunk-LEKBROJD-DGOBGAWj.mjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-CzSjgGrS.mjs.map → chunk-LEKBROJD-DGOBGAWj.mjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-CQrKRfn9.cjs → chunk-LEKBROJD-n0FRgkoB.cjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-CQrKRfn9.cjs.map → chunk-LEKBROJD-n0FRgkoB.cjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-BlYPREz9.cjs → chunk-VPADYNBD-B4yWrLcA.cjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-BlYPREz9.cjs.map → chunk-VPADYNBD-B4yWrLcA.cjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-Bu1xj_qj.mjs → chunk-VPADYNBD-Dg8PNXJd.mjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-Bu1xj_qj.mjs.map → chunk-VPADYNBD-Dg8PNXJd.mjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-CmE-atJH.cjs → chunk-YCLFEX4T-Bnzy1Euf.cjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-CmE-atJH.cjs.map → chunk-YCLFEX4T-Bnzy1Euf.cjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-BMs3IOYN.mjs → chunk-YCLFEX4T-DU6t56E4.mjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-BMs3IOYN.mjs.map → chunk-YCLFEX4T-DU6t56E4.mjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-CKCd9cj4.mjs → column-XT6UFXNQ-5YutVL6D.mjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-CKCd9cj4.mjs.map → column-XT6UFXNQ-5YutVL6D.mjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-C-MvTg4x.cjs → column-XT6UFXNQ-Dy7Oa0td.cjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-C-MvTg4x.cjs.map → column-XT6UFXNQ-Dy7Oa0td.cjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-DIsxSu6X.cjs → comm-VV2LDX2J-CAqAa0VH.cjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-DIsxSu6X.cjs.map → comm-VV2LDX2J-CAqAa0VH.cjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-Cxkv2cbu.mjs → comm-VV2LDX2J-NATbHp7x.mjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-Cxkv2cbu.mjs.map → comm-VV2LDX2J-NATbHp7x.mjs.map} +1 -1
  53. package/dist/{config-4tlyrD1h.d.mts → config-Bf_tiPRV.d.mts} +3 -3
  54. package/dist/{config-DCMtEjGV.d.cts → config-DiHYzgnA.d.cts} +3 -3
  55. package/dist/config.cjs +1 -1
  56. package/dist/config.d.cts +1 -1
  57. package/dist/config.d.mts +1 -1
  58. package/dist/config.mjs +1 -1
  59. package/dist/{cp-BISAAS7A-RoHZxKSQ.cjs → cp-BISAAS7A-CsllNNA2.cjs} +2 -2
  60. package/dist/{cp-BISAAS7A-RoHZxKSQ.cjs.map → cp-BISAAS7A-CsllNNA2.cjs.map} +1 -1
  61. package/dist/{cp-BISAAS7A-CpbLLWK0.mjs → cp-BISAAS7A-ptJev1Ed.mjs} +2 -2
  62. package/dist/{cp-BISAAS7A-CpbLLWK0.mjs.map → cp-BISAAS7A-ptJev1Ed.mjs.map} +1 -1
  63. package/dist/{cut-OKARJCCV-DV8QkVm0.cjs → cut-OKARJCCV-C3IgdttS.cjs} +3 -3
  64. package/dist/{cut-OKARJCCV-DV8QkVm0.cjs.map → cut-OKARJCCV-C3IgdttS.cjs.map} +1 -1
  65. package/dist/{cut-OKARJCCV-Co1hDP2h.mjs → cut-OKARJCCV-CAXXP7Q-.mjs} +3 -3
  66. package/dist/{cut-OKARJCCV-Co1hDP2h.mjs.map → cut-OKARJCCV-CAXXP7Q-.mjs.map} +1 -1
  67. package/dist/{diff-MWJFIG7X-CeQncm_4.cjs → diff-MWJFIG7X-BN4jYNC5.cjs} +2 -2
  68. package/dist/{diff-MWJFIG7X-CeQncm_4.cjs.map → diff-MWJFIG7X-BN4jYNC5.cjs.map} +1 -1
  69. package/dist/{diff-MWJFIG7X-Buur00F5.mjs → diff-MWJFIG7X-CvZCw_Zo.mjs} +2 -2
  70. package/dist/{diff-MWJFIG7X-Buur00F5.mjs.map → diff-MWJFIG7X-CvZCw_Zo.mjs.map} +1 -1
  71. package/dist/{dist-BGnpuTuc.cjs → dist-BSIIH4ft.cjs} +1431 -244
  72. package/dist/dist-BSIIH4ft.cjs.map +1 -0
  73. package/dist/{dist-DEUmH1sy.mjs → dist-Dfoa0fsU.mjs} +1361 -246
  74. package/dist/dist-Dfoa0fsU.mjs.map +1 -0
  75. package/dist/{du-572XNP42-CjV9eojc.cjs → du-572XNP42-DlYoI7xK.cjs} +2 -2
  76. package/dist/{du-572XNP42-CjV9eojc.cjs.map → du-572XNP42-DlYoI7xK.cjs.map} +1 -1
  77. package/dist/{du-572XNP42-BN--uF4D.mjs → du-572XNP42-dXgrmb6w.mjs} +2 -2
  78. package/dist/{du-572XNP42-BN--uF4D.mjs.map → du-572XNP42-dXgrmb6w.mjs.map} +1 -1
  79. package/dist/{env-36M5BO7M-DAa5KfBX.cjs → env-36M5BO7M-CiUSJDkN.cjs} +2 -2
  80. package/dist/{env-36M5BO7M-DAa5KfBX.cjs.map → env-36M5BO7M-CiUSJDkN.cjs.map} +1 -1
  81. package/dist/{env-36M5BO7M-D69jRYN4.mjs → env-36M5BO7M-D_IGqT9p.mjs} +2 -2
  82. package/dist/{env-36M5BO7M-D69jRYN4.mjs.map → env-36M5BO7M-D_IGqT9p.mjs.map} +1 -1
  83. package/dist/{expand-JSPG6VOP-COLerElO.mjs → expand-JSPG6VOP-CyEF3l9T.mjs} +2 -2
  84. package/dist/{expand-JSPG6VOP-COLerElO.mjs.map → expand-JSPG6VOP-CyEF3l9T.mjs.map} +1 -1
  85. package/dist/{expand-JSPG6VOP-C6vKMQyI.cjs → expand-JSPG6VOP-DI9tAEq8.cjs} +2 -2
  86. package/dist/{expand-JSPG6VOP-C6vKMQyI.cjs.map → expand-JSPG6VOP-DI9tAEq8.cjs.map} +1 -1
  87. package/dist/{expr-5JAACS4X-Bq-liRWE.mjs → expr-5JAACS4X-BjSLGpzH.mjs} +2 -2
  88. package/dist/{expr-5JAACS4X-Bq-liRWE.mjs.map → expr-5JAACS4X-BjSLGpzH.mjs.map} +1 -1
  89. package/dist/{expr-5JAACS4X-DwNhN5_2.cjs → expr-5JAACS4X-BtODvrh-.cjs} +2 -2
  90. package/dist/{expr-5JAACS4X-DwNhN5_2.cjs.map → expr-5JAACS4X-BtODvrh-.cjs.map} +1 -1
  91. package/dist/{find-INTH3OLC-CZJwhn7l.mjs → find-INTH3OLC-BcssH53Z.mjs} +3 -3
  92. package/dist/{find-INTH3OLC-CZJwhn7l.mjs.map → find-INTH3OLC-BcssH53Z.mjs.map} +1 -1
  93. package/dist/{find-INTH3OLC-CUamPw7X.cjs → find-INTH3OLC-CgU4UvVu.cjs} +3 -3
  94. package/dist/{find-INTH3OLC-CUamPw7X.cjs.map → find-INTH3OLC-CgU4UvVu.cjs.map} +1 -1
  95. package/dist/{fold-4TQNYMSW-Cu6mhoq6.cjs → fold-4TQNYMSW-C-vHdcsu.cjs} +2 -2
  96. package/dist/{fold-4TQNYMSW-Cu6mhoq6.cjs.map → fold-4TQNYMSW-C-vHdcsu.cjs.map} +1 -1
  97. package/dist/{fold-4TQNYMSW-GT1iyvMw.mjs → fold-4TQNYMSW-W2QBLbOw.mjs} +2 -2
  98. package/dist/{fold-4TQNYMSW-GT1iyvMw.mjs.map → fold-4TQNYMSW-W2QBLbOw.mjs.map} +1 -1
  99. package/dist/{grep-V3LQVMRQ-D2lsL0yl.cjs → grep-V3LQVMRQ-CFEy1H5w.cjs} +4 -4
  100. package/dist/{grep-V3LQVMRQ-D2lsL0yl.cjs.map → grep-V3LQVMRQ-CFEy1H5w.cjs.map} +1 -1
  101. package/dist/{grep-V3LQVMRQ-BZCEkiLT.mjs → grep-V3LQVMRQ-D2erCIt8.mjs} +4 -4
  102. package/dist/{grep-V3LQVMRQ-BZCEkiLT.mjs.map → grep-V3LQVMRQ-D2erCIt8.mjs.map} +1 -1
  103. package/dist/{gzip-O5ASJAFY-4WU25K8t.cjs → gzip-O5ASJAFY-BFMYd-hT.cjs} +2 -2
  104. package/dist/{gzip-O5ASJAFY-4WU25K8t.cjs.map → gzip-O5ASJAFY-BFMYd-hT.cjs.map} +1 -1
  105. package/dist/{gzip-O5ASJAFY-BRUoPm0T.mjs → gzip-O5ASJAFY-CqxUEEM2.mjs} +2 -2
  106. package/dist/{gzip-O5ASJAFY-BRUoPm0T.mjs.map → gzip-O5ASJAFY-CqxUEEM2.mjs.map} +1 -1
  107. package/dist/{head-442HYESI-BQswaDJF.mjs → head-442HYESI-BUT7-OAn.mjs} +2 -2
  108. package/dist/{head-442HYESI-BQswaDJF.mjs.map → head-442HYESI-BUT7-OAn.mjs.map} +1 -1
  109. package/dist/{head-442HYESI-CREwdwGh.cjs → head-442HYESI-Dl61xdxd.cjs} +2 -2
  110. package/dist/{head-442HYESI-CREwdwGh.cjs.map → head-442HYESI-Dl61xdxd.cjs.map} +1 -1
  111. package/dist/{help-HZ6M2CKN-CyQGg7tY.mjs → help-HZ6M2CKN-BNhOdIlA.mjs} +2 -2
  112. package/dist/{help-HZ6M2CKN-CyQGg7tY.mjs.map → help-HZ6M2CKN-BNhOdIlA.mjs.map} +1 -1
  113. package/dist/{help-HZ6M2CKN-Dm1xJuah.cjs → help-HZ6M2CKN-D58VQaUX.cjs} +2 -2
  114. package/dist/{help-HZ6M2CKN-Dm1xJuah.cjs.map → help-HZ6M2CKN-D58VQaUX.cjs.map} +1 -1
  115. package/dist/{html-to-markdown-JW4MSQZO-kxS6FqAo.cjs → html-to-markdown-JW4MSQZO-Cy2yEvwt.cjs} +3 -3
  116. package/dist/{html-to-markdown-JW4MSQZO-kxS6FqAo.cjs.map → html-to-markdown-JW4MSQZO-Cy2yEvwt.cjs.map} +1 -1
  117. package/dist/{html-to-markdown-JW4MSQZO-bFXHY2YJ.mjs → html-to-markdown-JW4MSQZO-D77ZtAkg.mjs} +3 -3
  118. package/dist/{html-to-markdown-JW4MSQZO-bFXHY2YJ.mjs.map → html-to-markdown-JW4MSQZO-D77ZtAkg.mjs.map} +1 -1
  119. package/dist/{join-TBRGI3LQ-D4bq1eah.cjs → join-TBRGI3LQ-CGvygkdd.cjs} +2 -2
  120. package/dist/{join-TBRGI3LQ-D4bq1eah.cjs.map → join-TBRGI3LQ-CGvygkdd.cjs.map} +1 -1
  121. package/dist/{join-TBRGI3LQ-mMKbGeyt.mjs → join-TBRGI3LQ-DX7NMuzt.mjs} +2 -2
  122. package/dist/{join-TBRGI3LQ-mMKbGeyt.mjs.map → join-TBRGI3LQ-DX7NMuzt.mjs.map} +1 -1
  123. package/dist/{jq-4XLYLOS5-BtVEt-iG.mjs → jq-4XLYLOS5-C58Dd7RS.mjs} +4 -4
  124. package/dist/{jq-4XLYLOS5-BtVEt-iG.mjs.map → jq-4XLYLOS5-C58Dd7RS.mjs.map} +1 -1
  125. package/dist/{jq-4XLYLOS5-1kPGLNfP.cjs → jq-4XLYLOS5-CcpoXWem.cjs} +4 -4
  126. package/dist/{jq-4XLYLOS5-1kPGLNfP.cjs.map → jq-4XLYLOS5-CcpoXWem.cjs.map} +1 -1
  127. package/dist/{js-exec-N5KEZBH7-BiJgLg8R.cjs → js-exec-N5KEZBH7-BfVFKq8I.cjs} +4 -4
  128. package/dist/{js-exec-N5KEZBH7-BiJgLg8R.cjs.map → js-exec-N5KEZBH7-BfVFKq8I.cjs.map} +1 -1
  129. package/dist/{js-exec-N5KEZBH7-yV-xrF3D.mjs → js-exec-N5KEZBH7-PxuNBAca.mjs} +3 -3
  130. package/dist/{js-exec-N5KEZBH7-yV-xrF3D.mjs.map → js-exec-N5KEZBH7-PxuNBAca.mjs.map} +1 -1
  131. package/dist/{lib-B8KKXVFM.mjs → lib-C3b113o2.mjs} +2 -2
  132. package/dist/{lib-B8KKXVFM.mjs.map → lib-C3b113o2.mjs.map} +1 -1
  133. package/dist/{lib-2PzUfcog.cjs → lib-CB6hGKB-.cjs} +2 -2
  134. package/dist/{lib-2PzUfcog.cjs.map → lib-CB6hGKB-.cjs.map} +1 -1
  135. package/dist/{ln-4LGSXXGD-Dn6vKThL.mjs → ln-4LGSXXGD-C8uxwN4w.mjs} +2 -2
  136. package/dist/{ln-4LGSXXGD-Dn6vKThL.mjs.map → ln-4LGSXXGD-C8uxwN4w.mjs.map} +1 -1
  137. package/dist/{ln-4LGSXXGD-BzwowxRB.cjs → ln-4LGSXXGD-D1ZvU7qg.cjs} +2 -2
  138. package/dist/{ln-4LGSXXGD-BzwowxRB.cjs.map → ln-4LGSXXGD-D1ZvU7qg.cjs.map} +1 -1
  139. package/dist/{ls-ZJGQER7M-CUJkuUh-.cjs → ls-ZJGQER7M-BIFh_LBI.cjs} +2 -2
  140. package/dist/{ls-ZJGQER7M-CUJkuUh-.cjs.map → ls-ZJGQER7M-BIFh_LBI.cjs.map} +1 -1
  141. package/dist/{ls-ZJGQER7M-BeJZta9T.mjs → ls-ZJGQER7M-VlE8NU2n.mjs} +2 -2
  142. package/dist/{ls-ZJGQER7M-BeJZta9T.mjs.map → ls-ZJGQER7M-VlE8NU2n.mjs.map} +1 -1
  143. package/dist/{lzma--dxpHlNq.cjs → lzma-BFhxhjwM.cjs} +3 -3
  144. package/dist/{lzma--dxpHlNq.cjs.map → lzma-BFhxhjwM.cjs.map} +1 -1
  145. package/dist/{md5sum-SPU24VSG-CSOni4rN.mjs → md5sum-SPU24VSG-D9FkR68Z.mjs} +3 -3
  146. package/dist/{md5sum-SPU24VSG-CSOni4rN.mjs.map → md5sum-SPU24VSG-D9FkR68Z.mjs.map} +1 -1
  147. package/dist/{md5sum-SPU24VSG-CbRWoiQV.cjs → md5sum-SPU24VSG-DeBwcDpn.cjs} +3 -3
  148. package/dist/{md5sum-SPU24VSG-CbRWoiQV.cjs.map → md5sum-SPU24VSG-DeBwcDpn.cjs.map} +1 -1
  149. package/dist/{mkdir-MEPGZOB6-DQZ1k-4g.cjs → mkdir-MEPGZOB6-CTaJw5WD.cjs} +2 -2
  150. package/dist/{mkdir-MEPGZOB6-DQZ1k-4g.cjs.map → mkdir-MEPGZOB6-CTaJw5WD.cjs.map} +1 -1
  151. package/dist/{mkdir-MEPGZOB6-X9vy2RCy.mjs → mkdir-MEPGZOB6-DKhEU_mo.mjs} +2 -2
  152. package/dist/{mkdir-MEPGZOB6-X9vy2RCy.mjs.map → mkdir-MEPGZOB6-DKhEU_mo.mjs.map} +1 -1
  153. package/dist/{mv-W5BIQ646-CoEt2Xu7.cjs → mv-W5BIQ646-04XTiLIP.cjs} +2 -2
  154. package/dist/{mv-W5BIQ646-CoEt2Xu7.cjs.map → mv-W5BIQ646-04XTiLIP.cjs.map} +1 -1
  155. package/dist/{mv-W5BIQ646-D6ALdw02.mjs → mv-W5BIQ646-wEz7EErl.mjs} +2 -2
  156. package/dist/{mv-W5BIQ646-D6ALdw02.mjs.map → mv-W5BIQ646-wEz7EErl.mjs.map} +1 -1
  157. package/dist/{nl-WSDW7I4O-DDQ244Zw.cjs → nl-WSDW7I4O-Bc1YFLf6.cjs} +2 -2
  158. package/dist/{nl-WSDW7I4O-DDQ244Zw.cjs.map → nl-WSDW7I4O-Bc1YFLf6.cjs.map} +1 -1
  159. package/dist/{nl-WSDW7I4O-DyeXenY-.mjs → nl-WSDW7I4O-BxQfwu-N.mjs} +2 -2
  160. package/dist/{nl-WSDW7I4O-DyeXenY-.mjs.map → nl-WSDW7I4O-BxQfwu-N.mjs.map} +1 -1
  161. package/dist/{od-WOKFDJTP--Dv5qEwr.cjs → od-WOKFDJTP-BMJoqBvk.cjs} +2 -2
  162. package/dist/{od-WOKFDJTP--Dv5qEwr.cjs.map → od-WOKFDJTP-BMJoqBvk.cjs.map} +1 -1
  163. package/dist/{od-WOKFDJTP-C4rrBoz_.mjs → od-WOKFDJTP-BMjM1Vpo.mjs} +2 -2
  164. package/dist/{od-WOKFDJTP-C4rrBoz_.mjs.map → od-WOKFDJTP-BMjM1Vpo.mjs.map} +1 -1
  165. package/dist/{paste-7JC6S4DX-Bji1Bpv0.mjs → paste-7JC6S4DX-BNyYBkM9.mjs} +2 -2
  166. package/dist/{paste-7JC6S4DX-Bji1Bpv0.mjs.map → paste-7JC6S4DX-BNyYBkM9.mjs.map} +1 -1
  167. package/dist/{paste-7JC6S4DX-B3VzuAt0.cjs → paste-7JC6S4DX-xeKsL7xT.cjs} +2 -2
  168. package/dist/{paste-7JC6S4DX-B3VzuAt0.cjs.map → paste-7JC6S4DX-xeKsL7xT.cjs.map} +1 -1
  169. package/dist/{printf-TWGXF445-BTeOHCJZ.cjs → printf-TWGXF445-DYS8xu0v.cjs} +3 -3
  170. package/dist/{printf-TWGXF445-BTeOHCJZ.cjs.map → printf-TWGXF445-DYS8xu0v.cjs.map} +1 -1
  171. package/dist/{printf-TWGXF445-BlhAZROi.mjs → printf-TWGXF445-XVD9Mxrm.mjs} +3 -3
  172. package/dist/{printf-TWGXF445-BlhAZROi.mjs.map → printf-TWGXF445-XVD9Mxrm.mjs.map} +1 -1
  173. package/dist/{python3-POMOR4OA-DG1ouNsU.cjs → python3-POMOR4OA-DYGxPjXO.cjs} +4 -4
  174. package/dist/{python3-POMOR4OA-DG1ouNsU.cjs.map → python3-POMOR4OA-DYGxPjXO.cjs.map} +1 -1
  175. package/dist/{python3-POMOR4OA-DR8mqMXh.mjs → python3-POMOR4OA-Dnqvkl59.mjs} +3 -3
  176. package/dist/{python3-POMOR4OA-DR8mqMXh.mjs.map → python3-POMOR4OA-Dnqvkl59.mjs.map} +1 -1
  177. package/dist/{rev-5EHFX4EJ-CI_VGXqm.mjs → rev-5EHFX4EJ-DhVvFoTy.mjs} +2 -2
  178. package/dist/{rev-5EHFX4EJ-CI_VGXqm.mjs.map → rev-5EHFX4EJ-DhVvFoTy.mjs.map} +1 -1
  179. package/dist/{rev-5EHFX4EJ-CTqxt9T2.cjs → rev-5EHFX4EJ-pW6JW5qN.cjs} +2 -2
  180. package/dist/{rev-5EHFX4EJ-CTqxt9T2.cjs.map → rev-5EHFX4EJ-pW6JW5qN.cjs.map} +1 -1
  181. package/dist/{rg-S4FXYXWB-BxiM0Km5.cjs → rg-S4FXYXWB-C73Aq2Xr.cjs} +3 -3
  182. package/dist/{rg-S4FXYXWB-BxiM0Km5.cjs.map → rg-S4FXYXWB-C73Aq2Xr.cjs.map} +1 -1
  183. package/dist/{rg-S4FXYXWB-BV530Cw5.mjs → rg-S4FXYXWB-z2oeRO1P.mjs} +3 -3
  184. package/dist/{rg-S4FXYXWB-BV530Cw5.mjs.map → rg-S4FXYXWB-z2oeRO1P.mjs.map} +1 -1
  185. package/dist/{rm-SSGETQVQ-BZ_Vwtjq.cjs → rm-SSGETQVQ-CHrR_Tku.cjs} +2 -2
  186. package/dist/{rm-SSGETQVQ-BZ_Vwtjq.cjs.map → rm-SSGETQVQ-CHrR_Tku.cjs.map} +1 -1
  187. package/dist/{rm-SSGETQVQ-0mxnhARQ.mjs → rm-SSGETQVQ-Jci5Ip6D.mjs} +2 -2
  188. package/dist/{rm-SSGETQVQ-0mxnhARQ.mjs.map → rm-SSGETQVQ-Jci5Ip6D.mjs.map} +1 -1
  189. package/dist/{rmdir-OC4ZLPYA-DSmolqBX.cjs → rmdir-OC4ZLPYA-C9GToyPE.cjs} +2 -2
  190. package/dist/{rmdir-OC4ZLPYA-DSmolqBX.cjs.map → rmdir-OC4ZLPYA-C9GToyPE.cjs.map} +1 -1
  191. package/dist/{rmdir-OC4ZLPYA-B91oqgzk.mjs → rmdir-OC4ZLPYA-CbUJDjKj.mjs} +2 -2
  192. package/dist/{rmdir-OC4ZLPYA-B91oqgzk.mjs.map → rmdir-OC4ZLPYA-CbUJDjKj.mjs.map} +1 -1
  193. package/dist/run.cjs +1 -1
  194. package/dist/run.mjs +1 -1
  195. package/dist/{sed-S5UIK574-CUHVLRCU.cjs → sed-S5UIK574-CKdzn0sh.cjs} +2 -2
  196. package/dist/{sed-S5UIK574-CUHVLRCU.cjs.map → sed-S5UIK574-CKdzn0sh.cjs.map} +1 -1
  197. package/dist/{sed-S5UIK574-Bn1VT3VJ.mjs → sed-S5UIK574-DMSLNP6f.mjs} +2 -2
  198. package/dist/{sed-S5UIK574-Bn1VT3VJ.mjs.map → sed-S5UIK574-DMSLNP6f.mjs.map} +1 -1
  199. package/dist/{sha1sum-2PTOAFR6-DL_UeFqk.mjs → sha1sum-2PTOAFR6-BvcG60rc.mjs} +3 -3
  200. package/dist/{sha1sum-2PTOAFR6-DL_UeFqk.mjs.map → sha1sum-2PTOAFR6-BvcG60rc.mjs.map} +1 -1
  201. package/dist/{sha1sum-2PTOAFR6-DqcsWk6l.cjs → sha1sum-2PTOAFR6-D-6ahlIg.cjs} +3 -3
  202. package/dist/{sha1sum-2PTOAFR6-DqcsWk6l.cjs.map → sha1sum-2PTOAFR6-D-6ahlIg.cjs.map} +1 -1
  203. package/dist/{sha256sum-NS7D3IXX-CmnB6TL1.mjs → sha256sum-NS7D3IXX-DVH9Rp51.mjs} +3 -3
  204. package/dist/{sha256sum-NS7D3IXX-CmnB6TL1.mjs.map → sha256sum-NS7D3IXX-DVH9Rp51.mjs.map} +1 -1
  205. package/dist/{sha256sum-NS7D3IXX-DzpZonik.cjs → sha256sum-NS7D3IXX-Drwo830V.cjs} +3 -3
  206. package/dist/{sha256sum-NS7D3IXX-DzpZonik.cjs.map → sha256sum-NS7D3IXX-Drwo830V.cjs.map} +1 -1
  207. package/dist/{sleep-X22JJINO-CbNXwoha.mjs → sleep-X22JJINO-B-F8EJ1A.mjs} +2 -2
  208. package/dist/{sleep-X22JJINO-CbNXwoha.mjs.map → sleep-X22JJINO-B-F8EJ1A.mjs.map} +1 -1
  209. package/dist/{sleep-X22JJINO-DFFy9Bw9.cjs → sleep-X22JJINO-VzGR_aAP.cjs} +2 -2
  210. package/dist/{sleep-X22JJINO-DFFy9Bw9.cjs.map → sleep-X22JJINO-VzGR_aAP.cjs.map} +1 -1
  211. package/dist/{sort-SW2YEO5B-BYbDNrah.mjs → sort-SW2YEO5B-BlCI4ke5.mjs} +3 -3
  212. package/dist/{sort-SW2YEO5B-BYbDNrah.mjs.map → sort-SW2YEO5B-BlCI4ke5.mjs.map} +1 -1
  213. package/dist/{sort-SW2YEO5B-gdNgTdnH.cjs → sort-SW2YEO5B-oXMaUVfX.cjs} +3 -3
  214. package/dist/{sort-SW2YEO5B-gdNgTdnH.cjs.map → sort-SW2YEO5B-oXMaUVfX.cjs.map} +1 -1
  215. package/dist/{split-4KKZZXXE-DaVNgVyU.mjs → split-4KKZZXXE-DInsLVFn.mjs} +2 -2
  216. package/dist/{split-4KKZZXXE-DaVNgVyU.mjs.map → split-4KKZZXXE-DInsLVFn.mjs.map} +1 -1
  217. package/dist/{split-4KKZZXXE-BQei9Yb7.cjs → split-4KKZZXXE-uNycTBLx.cjs} +2 -2
  218. package/dist/{split-4KKZZXXE-BQei9Yb7.cjs.map → split-4KKZZXXE-uNycTBLx.cjs.map} +1 -1
  219. package/dist/{sqlite3-CGOEFJAO-Did6BRU0.cjs → sqlite3-CGOEFJAO-DLGaPKmF.cjs} +4 -4
  220. package/dist/{sqlite3-CGOEFJAO-Did6BRU0.cjs.map → sqlite3-CGOEFJAO-DLGaPKmF.cjs.map} +1 -1
  221. package/dist/{sqlite3-CGOEFJAO-DWuK8T1P.mjs → sqlite3-CGOEFJAO-DdQnH7sK.mjs} +3 -3
  222. package/dist/{sqlite3-CGOEFJAO-DWuK8T1P.mjs.map → sqlite3-CGOEFJAO-DdQnH7sK.mjs.map} +1 -1
  223. package/dist/{start-BXs2tRMp.cjs → start-B-r5AcHg.cjs} +1109 -129
  224. package/dist/start-B-r5AcHg.cjs.map +1 -0
  225. package/dist/{start-Bkcu3Xyf.mjs → start-BopA4OXE.mjs} +1109 -129
  226. package/dist/start-BopA4OXE.mjs.map +1 -0
  227. package/dist/start.cjs +1 -1
  228. package/dist/start.d.cts +1 -1
  229. package/dist/start.d.mts +1 -1
  230. package/dist/start.mjs +1 -1
  231. package/dist/{strings-6WDHLGMX-DghW6u1V.mjs → strings-6WDHLGMX-CQhR5NWI.mjs} +2 -2
  232. package/dist/{strings-6WDHLGMX-DghW6u1V.mjs.map → strings-6WDHLGMX-CQhR5NWI.mjs.map} +1 -1
  233. package/dist/{strings-6WDHLGMX-BYLV5mVI.cjs → strings-6WDHLGMX-CgNUl2be.cjs} +2 -2
  234. package/dist/{strings-6WDHLGMX-BYLV5mVI.cjs.map → strings-6WDHLGMX-CgNUl2be.cjs.map} +1 -1
  235. package/dist/{tac-2STMMJYW-dyBrgE3g.mjs → tac-2STMMJYW-DPVvOOFh.mjs} +2 -2
  236. package/dist/{tac-2STMMJYW-dyBrgE3g.mjs.map → tac-2STMMJYW-DPVvOOFh.mjs.map} +1 -1
  237. package/dist/{tac-2STMMJYW-BUj2w_ls.cjs → tac-2STMMJYW-XOnEZ_Pa.cjs} +2 -2
  238. package/dist/{tac-2STMMJYW-BUj2w_ls.cjs.map → tac-2STMMJYW-XOnEZ_Pa.cjs.map} +1 -1
  239. package/dist/{tail-R4PCA2C4-Cb1qzi12.cjs → tail-R4PCA2C4-BPlLX9IB.cjs} +2 -2
  240. package/dist/{tail-R4PCA2C4-Cb1qzi12.cjs.map → tail-R4PCA2C4-BPlLX9IB.cjs.map} +1 -1
  241. package/dist/{tail-R4PCA2C4-BYcpWm-i.mjs → tail-R4PCA2C4-BXsd_oGy.mjs} +2 -2
  242. package/dist/{tail-R4PCA2C4-BYcpWm-i.mjs.map → tail-R4PCA2C4-BXsd_oGy.mjs.map} +1 -1
  243. package/dist/{tar-STHHZTZ6-y56eAWkM.cjs → tar-STHHZTZ6-BSs3Wex8.cjs} +5 -5
  244. package/dist/{tar-STHHZTZ6-y56eAWkM.cjs.map → tar-STHHZTZ6-BSs3Wex8.cjs.map} +1 -1
  245. package/dist/{tar-STHHZTZ6-FTWsSEpr.mjs → tar-STHHZTZ6-DTf5Ifnn.mjs} +4 -4
  246. package/dist/{tar-STHHZTZ6-FTWsSEpr.mjs.map → tar-STHHZTZ6-DTf5Ifnn.mjs.map} +1 -1
  247. package/dist/{tee-YUZ2FKCJ-oYjZsafd.cjs → tee-YUZ2FKCJ-DgWILkVl.cjs} +2 -2
  248. package/dist/{tee-YUZ2FKCJ-oYjZsafd.cjs.map → tee-YUZ2FKCJ-DgWILkVl.cjs.map} +1 -1
  249. package/dist/{tee-YUZ2FKCJ-DArfnCcS.mjs → tee-YUZ2FKCJ-HOwDepoa.mjs} +2 -2
  250. package/dist/{tee-YUZ2FKCJ-DArfnCcS.mjs.map → tee-YUZ2FKCJ-HOwDepoa.mjs.map} +1 -1
  251. package/dist/{time-D4LNBSWX-BTetD0sZ.cjs → time-D4LNBSWX-Czgb4a8J.cjs} +2 -2
  252. package/dist/{time-D4LNBSWX-BTetD0sZ.cjs.map → time-D4LNBSWX-Czgb4a8J.cjs.map} +1 -1
  253. package/dist/{time-D4LNBSWX-D0AgPrVU.mjs → time-D4LNBSWX-DShdsFLL.mjs} +2 -2
  254. package/dist/{time-D4LNBSWX-D0AgPrVU.mjs.map → time-D4LNBSWX-DShdsFLL.mjs.map} +1 -1
  255. package/dist/{timeout-YDCRSLPQ-m0hOl9RU.mjs → timeout-YDCRSLPQ-CrDWh7NY.mjs} +2 -2
  256. package/dist/{timeout-YDCRSLPQ-m0hOl9RU.mjs.map → timeout-YDCRSLPQ-CrDWh7NY.mjs.map} +1 -1
  257. package/dist/{timeout-YDCRSLPQ-D_NEhBtI.cjs → timeout-YDCRSLPQ-fyDe4rrM.cjs} +2 -2
  258. package/dist/{timeout-YDCRSLPQ-D_NEhBtI.cjs.map → timeout-YDCRSLPQ-fyDe4rrM.cjs.map} +1 -1
  259. package/dist/{touch-UA33VN3N-D-0iV3bm.mjs → touch-UA33VN3N-D8fHlx6X.mjs} +2 -2
  260. package/dist/{touch-UA33VN3N-D-0iV3bm.mjs.map → touch-UA33VN3N-D8fHlx6X.mjs.map} +1 -1
  261. package/dist/{touch-UA33VN3N-C3gdLoXZ.cjs → touch-UA33VN3N-QQeRWr4H.cjs} +2 -2
  262. package/dist/{touch-UA33VN3N-C3gdLoXZ.cjs.map → touch-UA33VN3N-QQeRWr4H.cjs.map} +1 -1
  263. package/dist/{tr-36LHWFRQ-DgJzlhNw.cjs → tr-36LHWFRQ-BvZgWBI7.cjs} +2 -2
  264. package/dist/{tr-36LHWFRQ-DgJzlhNw.cjs.map → tr-36LHWFRQ-BvZgWBI7.cjs.map} +1 -1
  265. package/dist/{tr-36LHWFRQ-DSKHB_Nc.mjs → tr-36LHWFRQ-DkmoHg-J.mjs} +2 -2
  266. package/dist/{tr-36LHWFRQ-DSKHB_Nc.mjs.map → tr-36LHWFRQ-DkmoHg-J.mjs.map} +1 -1
  267. package/dist/{tree-YLD52CNT-io_fc43x.cjs → tree-YLD52CNT-D28PbXCj.cjs} +2 -2
  268. package/dist/{tree-YLD52CNT-io_fc43x.cjs.map → tree-YLD52CNT-D28PbXCj.cjs.map} +1 -1
  269. package/dist/{tree-YLD52CNT-BWhZ09Ar.mjs → tree-YLD52CNT-xjlCOZ0t.mjs} +2 -2
  270. package/dist/{tree-YLD52CNT-BWhZ09Ar.mjs.map → tree-YLD52CNT-xjlCOZ0t.mjs.map} +1 -1
  271. package/dist/{unexpand-CADSA4VO-CAimwjsv.mjs → unexpand-CADSA4VO-Bhs2BUQ5.mjs} +2 -2
  272. package/dist/{unexpand-CADSA4VO-CAimwjsv.mjs.map → unexpand-CADSA4VO-Bhs2BUQ5.mjs.map} +1 -1
  273. package/dist/{unexpand-CADSA4VO-zLmcC151.cjs → unexpand-CADSA4VO-Ct-tDYst.cjs} +2 -2
  274. package/dist/{unexpand-CADSA4VO-zLmcC151.cjs.map → unexpand-CADSA4VO-Ct-tDYst.cjs.map} +1 -1
  275. package/dist/{uniq-XSIZR6PB-ZZpwZg0c.cjs → uniq-XSIZR6PB-4d0zRoTa.cjs} +3 -3
  276. package/dist/{uniq-XSIZR6PB-ZZpwZg0c.cjs.map → uniq-XSIZR6PB-4d0zRoTa.cjs.map} +1 -1
  277. package/dist/{uniq-XSIZR6PB-CWAKZmGl.mjs → uniq-XSIZR6PB-B5Bk1TsC.mjs} +3 -3
  278. package/dist/{uniq-XSIZR6PB-CWAKZmGl.mjs.map → uniq-XSIZR6PB-B5Bk1TsC.mjs.map} +1 -1
  279. package/dist/{wc-LF7NU4LA-DhNBsFLd.mjs → wc-LF7NU4LA-B3_zHGUI.mjs} +3 -3
  280. package/dist/{wc-LF7NU4LA-DhNBsFLd.mjs.map → wc-LF7NU4LA-B3_zHGUI.mjs.map} +1 -1
  281. package/dist/{wc-LF7NU4LA-C4FhC6BH.cjs → wc-LF7NU4LA-D8KKcjuc.cjs} +3 -3
  282. package/dist/{wc-LF7NU4LA-C4FhC6BH.cjs.map → wc-LF7NU4LA-D8KKcjuc.cjs.map} +1 -1
  283. package/dist/{xan-Y6WF3IRG-DN7DU1ab.mjs → xan-Y6WF3IRG-9KChSctb.mjs} +6 -6
  284. package/dist/{xan-Y6WF3IRG-DN7DU1ab.mjs.map → xan-Y6WF3IRG-9KChSctb.mjs.map} +1 -1
  285. package/dist/{xan-Y6WF3IRG-BU79SNfn.cjs → xan-Y6WF3IRG-DlMObnyI.cjs} +6 -6
  286. package/dist/{xan-Y6WF3IRG-BU79SNfn.cjs.map → xan-Y6WF3IRG-DlMObnyI.cjs.map} +1 -1
  287. package/dist/{xan-view-HDVKHFC2-DqGQzO2o.mjs → xan-view-HDVKHFC2-CuXxKOL_.mjs} +3 -3
  288. package/dist/{xan-view-HDVKHFC2-DqGQzO2o.mjs.map → xan-view-HDVKHFC2-CuXxKOL_.mjs.map} +1 -1
  289. package/dist/{xan-view-HDVKHFC2-Dew1rWvx.cjs → xan-view-HDVKHFC2-D4UaWbCt.cjs} +3 -3
  290. package/dist/{xan-view-HDVKHFC2-Dew1rWvx.cjs.map → xan-view-HDVKHFC2-D4UaWbCt.cjs.map} +1 -1
  291. package/dist/{xargs-MGZPH7AX-BH-SyQsU.mjs → xargs-MGZPH7AX-BdScic0s.mjs} +2 -2
  292. package/dist/{xargs-MGZPH7AX-BH-SyQsU.mjs.map → xargs-MGZPH7AX-BdScic0s.mjs.map} +1 -1
  293. package/dist/{xargs-MGZPH7AX-BS-zAwl9.cjs → xargs-MGZPH7AX-DY0UyJRW.cjs} +2 -2
  294. package/dist/{xargs-MGZPH7AX-BS-zAwl9.cjs.map → xargs-MGZPH7AX-DY0UyJRW.cjs.map} +1 -1
  295. package/dist/{yq-4QJW3EQG-CY_mBr2e.mjs → yq-4QJW3EQG-BvkjygaH.mjs} +3 -3
  296. package/dist/{yq-4QJW3EQG-CY_mBr2e.mjs.map → yq-4QJW3EQG-BvkjygaH.mjs.map} +1 -1
  297. package/dist/{yq-4QJW3EQG-B_e-AoZW.cjs → yq-4QJW3EQG-CF1OM3GO.cjs} +3 -3
  298. package/dist/{yq-4QJW3EQG-B_e-AoZW.cjs.map → yq-4QJW3EQG-CF1OM3GO.cjs.map} +1 -1
  299. package/package.json +4 -4
  300. package/dist/dist-BGnpuTuc.cjs.map +0 -1
  301. package/dist/dist-DEUmH1sy.mjs.map +0 -1
  302. package/dist/start-BXs2tRMp.cjs.map +0 -1
  303. package/dist/start-Bkcu3Xyf.mjs.map +0 -1
@@ -1,21 +1,22 @@
1
- import { $ as CreateProjectArtifactResponseSchema, $n as mapProjectMember, $t as ProjectSlugAvailabilityResponseSchema, A as PublicHttpUrlError, An as UserPreferencesPatchSchema, At as ListProjectMembersResponseSchema, B as AgentSummarySchema, Bn as agentMemoryFileId, Bt as PROJECT_SLUG_TAKEN_MESSAGE, C as defaultSchedulerPlugin, Cn as UpdateProjectMemberResponseSchema, Ct as ListAppsResponseSchema, D as discoverGraphqlApp, Dn as UploadProjectSourceResponseSchema, Dt as ListOrganizationsResponseSchema, E as decodeOAuthState, En as UploadProjectSourceManifestRequestSchema, Et as ListOrganizationMembersResponseSchema, F as AcceptOrganizationInvitationResponseSchema, Fn as WorkspaceTriggerDetailSchema, Ft as OpenApiDiscoverRequestSchema, G as CreateApiKeyRequestSchema, Gn as displayCredentialAppName, Gt as PresignProjectSourceRequestSchema, H as AppSlugAvailabilityQuerySchema, Hn as buildCredentialInstanceLabel, Ht as PresignChatAttachmentResponseSchema, I as ActiveOrganizationResponseSchema, In as WorkspaceTriggerFileSchema, It as OpenApiDiscoverResponseSchema, J as CreateCredentialsResponseSchema, Jn as mapOrganizationInvitation, Jt as PresignUserAvatarResponseSchema, K as CreateApiKeyResponseSchema, Kn as isAllowedChatAttachmentMediaType, Kt as PresignProjectSourceResponseSchema, L as AgentMemoryFileSummarySchema, Ln as WorkspaceTriggerListResponseSchema, Lt as OrganizationSidebarBrandingPatchSchema, M as readCredentialInstanceSecret, Mn as WorkflowSummaryDetailResponseSchema, Mt as ListProjectsResponseSchema, N as setCredentialInstanceSecret, Nn as WorkflowSummaryListResponseSchema, Nt as McpDiscoverRequestSchema, O as discoverMcpApp, On as UserAvatarPatchSchema, Ot as ListProjectDeploymentsResponseSchema, P as ACTIVE_ORG_HEADER, Pn as WorkflowSummarySchema, Pt as McpDiscoverResponseSchema, Q as CreateOrganizationResponseSchema, Qn as mapProjectDeployment, Qt as ProjectSlugAvailabilityQuerySchema, R as AgentSummaryDetailResponseSchema, Rn as WorkspaceTriggerOverviewSchema, Rt as OrganizationSidebarBrandingSchema, S as createJobQueue, Sn as UpdateProjectMemberRequestSchema, St as ListApiKeysResponseSchema, T as completeMcpOAuthConnect, Tn as UpdateProjectSettingsRequestSchema, Tt as ListOrganizationInvitationsResponseSchema, U as AppSlugAvailabilityResponseSchema, Un as chatAttachmentExtension, Ut as PresignOrgLogoRequestSchema, V as AgentWorkspaceFileSummarySchema, Vn as agentWorkspaceFileId, Vt as PresignChatAttachmentRequestSchema, W as CompleteProjectArtifactResponseSchema, Wn as deriveCredentialInstanceSlug, Wt as PresignOrgLogoResponseSchema, X as CreateCustomAppResponseSchema, Xn as mapProject, Xt as ProjectResponseSchema, Y as CreateCustomAppRequestSchema, Yn as mapOrganizationMember, Yt as ProjectReachabilityResponseSchema, Z as CreateOrganizationRequestSchema, Zn as mapProjectArtifact, Zt as ProjectSettingsResponseSchema, _ as orgLogoStorageKey, _n as TriggerRunListQuerySchema, _t as InviteOrganizationMembersResponseSchema, a as extractRouteManifestFromArtifact, an as SkillSummaryListResponseSchema, ar as organizationSlugErrorCodeFromMessage, at as DownloadActiveProjectArtifactResponseSchema, b as publicKeystrokeAssetsObjectUrl, bn as UpdateOrganizationMemberResponseSchema, bt as ListAgentMemoryFilesResponseSchema, c as isKeystrokeAssetsOrgLogoPublicUrl, cn as SlugAvailabilityResponseSchema, cr as projectFileId, ct as GetCredentialResponseSchema, d as isStorageNotFoundError$1, dn as StoredProjectSourceManifestSchema, dr as validateCredentialValueAgainstFields, dt as GraphqlDiscoverResponseSchema, en as ProjectSourceResourcesSchema, er as mapProjectSettings, et as CreateProjectRequestSchema, f as isUserAvatarStorageKey, fn as SubmitMarketingContactRequestSchema, fr as validationErrorResponse, ft as HistoryRunCancelResponseSchema, gn as TriggerAttachmentUpdateRequestSchema, gt as InviteOrganizationMembersRequestSchema, h as loadProjectSourceFiles, hn as SubmitTeamRequestResponseSchema, ht as HistoryRunListResponseSchema, i as ensureKeystrokeAssetsBucket, in as SkillSummaryDetailResponseSchema, ir as organizationInvitationAcceptPath, it as DeclineOrganizationInvitationResponseSchema, j as deleteCredentialInstanceSecret, jn as UserPreferencesSchema, jt as ListProjectMetricsResponseSchema, k as discoverOpenApiApp, kn as UserAvatarSchema, kt as ListProjectFilesResponseSchema, l as isOrgLogoStorageKey, ln as StartMcpOAuthConnectionInputSchema, lr as resolveExternalPlatformOrigin, lt as GetCustomAppResponseSchema, m as keystrokeAssetsOrgLogoKeyFromPublicUrl, mn as SubmitTeamRequestRequestSchema, mr as pingProjectTarget, mt as HistoryRunListQuerySchema, n as chatAttachmentStorageKey, nn as RecentResourceListResponseSchema, nr as mergeUserPreferences, nt as DEFAULT_CLOUD_PLATFORM_ORIGIN, o as isChatAttachmentStorageKey, on as SkillSummarySchema, or as parseAppSlug, ot as DownloadActiveProjectSourceResponseSchema, p as keystrokeAssetsAvatarKeyFromPublicUrl, pn as SubmitMarketingContactResponseSchema, pt as HistoryRunDetailResponseSchema, q as CreateCredentialsRequestSchema, qn as listenPortFromPublicUrl, qt as PresignUserAvatarRequestSchema, r as createAssetsStorageClient, rn as RecentResourceSchema, rr as normalizeUserPreferences, rt as DEFAULT_TRIGGER_OVERVIEW_MODEL, s as isKeystrokeAssetsAvatarPublicUrl, sn as SlugAvailabilityQuerySchema, sr as parseStoredRouteManifest, st as ErrorResponseSchema, t as RouteManifestNotFoundError, tn as PublicModelsResponseSchema, tr as mapUserOrganization, tt as CreateProjectResponseSchema, u as isStorageBucketNotFoundError, un as StartMcpOAuthConnectionResultSchema, ur as resolveUniqueCredentialInstanceLabel, ut as GraphqlDiscoverRequestSchema, v as projectArtifactKey, vn as UpdateCredentialRequestSchema, vt as InviteProjectMembersRequestSchema, w as beginMcpOAuthConnect, wn as UpdateProjectRequestSchema, wt as ListCredentialsResponseSchema, x as userAvatarStorageKey, xn as UpdateOrganizationRequestSchema, xt as ListAgentWorkspaceFilesResponseSchema, y as projectSourceBlobKey, yn as UpdateOrganizationMemberRequestSchema, yt as InviteProjectMembersResponseSchema, z as AgentSummaryListResponseSchema, zn as WorkspaceTriggerRunListResponseSchema, zt as PLATFORM_RESOURCE_UNSUPPORTED_TEXT } from "./dist-DEUmH1sy.mjs";
1
+ import { $ as CreateOrganizationRequestSchema, $n as chatAttachmentExtension, $t as ProjectReachabilityResponseSchema, A as discoverOpenApiApp, An as UploadProjectSourceManifestRequestSchema, At as ListOrganizationMembersResponseSchema, B as AgentSummaryDetailResponseSchema, Bn as WorkflowRunInputsSchema, Bt as OpenApiDiscoverResponseSchema, C as defaultSchedulerPlugin, Cn as UpdateOrganizationMemberRequestSchema, Cr as validateWorkflowRunInputValues, Ct as InviteProjectMembersResponseSchema, D as describeCredentialBinding, Dn as UpdateProjectMemberResponseSchema, Dt as ListAppsResponseSchema, E as decodeOAuthState, En as UpdateProjectMemberRequestSchema, Er as pingProjectTarget, Et as ListApiKeysResponseSchema, F as setCredentialInstanceSecret, Fn as UserPreferencesSchema, Ft as ListProjectMetricsResponseSchema, G as AppSlugAvailabilityResponseSchema, Gn as WorkspaceTriggerFileSchema, Gt as PresignChatAttachmentRequestSchema, H as AgentSummarySchema, Hn as WorkflowSummaryListResponseSchema, Ht as OrganizationSidebarBrandingSchema, I as ACTIVE_ORG_HEADER, In as WorkflowCanvasCredentialBindingsSchema, It as ListProjectsResponseSchema, J as CreateApiKeyResponseSchema, Jn as WorkspaceTriggerRunListResponseSchema, Jt as PresignOrgLogoResponseSchema, K as CompleteProjectArtifactResponseSchema, Kn as WorkspaceTriggerListResponseSchema, Kt as PresignChatAttachmentResponseSchema, L as AcceptOrganizationInvitationResponseSchema, Ln as WorkflowCanvasRunSchema, Lt as McpDiscoverRequestSchema, M as PublicHttpUrlError, Mn as UserAvatarPatchSchema, Mt as ListProjectDeploymentsResponseSchema, N as deleteCredentialInstanceSecret, Nn as UserAvatarSchema, Nt as ListProjectFilesResponseSchema, O as discoverGraphqlApp, On as UpdateProjectRequestSchema, Ot as ListCredentialsResponseSchema, P as readCredentialInstanceSecret, Pn as UserPreferencesPatchSchema, Pt as ListProjectMembersResponseSchema, Q as CreateCustomAppResponseSchema, Qn as buildCredentialInstanceLabel, Qt as PresignUserAvatarResponseSchema, R as ActiveOrganizationResponseSchema, Rn as WorkflowCanvasSchema, Rt as McpDiscoverResponseSchema, S as createJobQueue, Sn as UpdateCredentialRequestSchema, Sr as validateCredentialValueAgainstFields, St as InviteProjectMembersRequestSchema, T as completeMcpOAuthConnect, Tn as UpdateOrganizationRequestSchema, Tt as ListAgentWorkspaceFilesResponseSchema, U as AgentWorkspaceFileSummarySchema, Un as WorkflowSummarySchema, Ut as PLATFORM_RESOURCE_UNSUPPORTED_TEXT, V as AgentSummaryListResponseSchema, Vn as WorkflowSummaryDetailResponseSchema, Vt as OrganizationSidebarBrandingPatchSchema, W as AppSlugAvailabilityQuerySchema, Wn as WorkspaceTriggerDetailSchema, Wt as PROJECT_SLUG_TAKEN_MESSAGE, X as CreateCredentialsResponseSchema, Xn as agentMemoryFileId, Xt as PresignProjectSourceResponseSchema, Y as CreateCredentialsRequestSchema, Yn as WorkspaceWorkflowOverviewSchema, Yt as PresignProjectSourceRequestSchema, Z as CreateCustomAppRequestSchema, Zn as agentWorkspaceFileId, Zt as PresignUserAvatarRequestSchema, _ as orgLogoStorageKey, _n as SubmitMarketingContactResponseSchema, _r as parseAppSlug, _t as HistoryRunDetailResponseSchema, a as extractRouteManifestFromArtifact, an as PublicModelsResponseSchema, ar as mapOrganizationInvitation, at as DEFAULT_TRIGGER_OVERVIEW_MODEL, b as publicKeystrokeAssetsObjectUrl, bn as TriggerAttachmentUpdateRequestSchema, br as resolveExternalPlatformOrigin, bt as InviteOrganizationMembersRequestSchema, c as isKeystrokeAssetsOrgLogoPublicUrl, cn as SkillSummaryDetailResponseSchema, cr as mapProjectArtifact, ct as DeclineOrganizationInvitationResponseSchema, d as isStorageNotFoundError$1, dn as SlugAvailabilityQuerySchema, dr as mapProjectSettings, dt as ErrorResponseSchema, en as ProjectResponseSchema, er as deriveCredentialInstanceSlug, et as CreateOrganizationResponseSchema, f as isUserAvatarStorageKey, fn as SlugAvailabilityResponseSchema, fr as mapUserOrganization, ft as GetCredentialResponseSchema, gn as SubmitMarketingContactRequestSchema, gr as organizationSlugErrorCodeFromMessage, gt as HistoryRunCancelResponseSchema, h as loadProjectSourceFiles, hn as StoredProjectSourceManifestSchema, hr as organizationInvitationAcceptPath, ht as GraphqlDiscoverResponseSchema, i as ensureKeystrokeAssetsBucket, in as ProjectSourceResourcesSchema, ir as listenPortFromPublicUrl, it as DEFAULT_CLOUD_PLATFORM_ORIGIN, j as withCredentialAssignments, jn as UploadProjectSourceResponseSchema, jt as ListOrganizationsResponseSchema, k as discoverMcpApp, kn as UpdateProjectSettingsRequestSchema, kt as ListOrganizationInvitationsResponseSchema, l as isOrgLogoStorageKey, ln as SkillSummaryListResponseSchema, lr as mapProjectDeployment, lt as DownloadActiveProjectArtifactResponseSchema, m as keystrokeAssetsOrgLogoKeyFromPublicUrl, mn as StartMcpOAuthConnectionResultSchema, mr as normalizeUserPreferences, mt as GraphqlDiscoverRequestSchema, n as chatAttachmentStorageKey, nn as ProjectSlugAvailabilityQuerySchema, nr as isAllowedChatAttachmentMediaType, nt as CreateProjectRequestSchema, o as isChatAttachmentStorageKey, on as RecentResourceListResponseSchema, or as mapOrganizationMember, ot as DEFAULT_WORKFLOW_CANVAS_MODEL, p as keystrokeAssetsAvatarKeyFromPublicUrl, pn as StartMcpOAuthConnectionInputSchema, pr as mergeUserPreferences, pt as GetCustomAppResponseSchema, q as CreateApiKeyRequestSchema, qn as WorkspaceTriggerOverviewSchema, qt as PresignOrgLogoRequestSchema, r as createAssetsStorageClient, rn as ProjectSlugAvailabilityResponseSchema, rr as jsonSchemaToWorkflowInputSchema, rt as CreateProjectResponseSchema, s as isKeystrokeAssetsAvatarPublicUrl, sn as RecentResourceSchema, sr as mapProject, st as DEFAULT_WORKFLOW_OVERVIEW_MODEL, t as RouteManifestNotFoundError, tn as ProjectSettingsResponseSchema, tr as displayCredentialAppName, tt as CreateProjectArtifactResponseSchema, u as isStorageBucketNotFoundError, un as SkillSummarySchema, ur as mapProjectMember, ut as DownloadActiveProjectSourceResponseSchema, v as projectArtifactKey, vn as SubmitTeamRequestRequestSchema, vr as parseStoredRouteManifest, vt as HistoryRunListQuerySchema, w as beginMcpOAuthConnect, wn as UpdateOrganizationMemberResponseSchema, wr as validationErrorResponse, wt as ListAgentMemoryFilesResponseSchema, x as userAvatarStorageKey, xn as TriggerRunListQuerySchema, xr as resolveUniqueCredentialInstanceLabel, xt as InviteOrganizationMembersResponseSchema, y as projectSourceBlobKey, yn as SubmitTeamRequestResponseSchema, yr as projectFileId, yt as HistoryRunListResponseSchema, z as AgentMemoryFileSummarySchema, zn as WorkflowRunInputsPutBodySchema, zt as OpenApiDiscoverRequestSchema } from "./dist-Dfoa0fsU.mjs";
2
2
  import "./chunk-BZUGFHVS-B2NchobP.mjs";
3
3
  import { n as d$4, t as _$1 } from "./chunk-TN7HHBQW-B8PYcKz5.mjs";
4
4
  import { t as withProjectScope } from "./with-project-scope-DWwbN8Qs.mjs";
5
5
  import { createRequire } from "node:module";
6
6
  import "node:fs/promises";
7
- import { buildHistoryAgentSessionDetail, buildHistoryWorkflowRunDetail, cancelAgentSession, cancelWorkflowRun, clearCredentialInstanceDefaults, deleteCredentialInstanceById, findHistoryRunCore, getProjectScopeId, getServerTenantScopeId, listActiveAgents, listActiveSkills, listActiveWorkflows, listAllCredentialInstances, listCredentialInstancesByConnectionId, listHistoryRuns, listRecentResourceActivity, listTriggersByIds, listWorkspaceTriggerRunRows, listWorkspaceTriggers, runWithProjectDatabase, runWithProjectScope, runWithTenantScope, selectActiveAgentById, selectActiveAgentsByIds, selectActiveSkillById, selectActiveSkillsByIds, selectActiveWorkflowById, selectActiveWorkflowsByIds, selectAgentBySlug, selectAgentLastRunAtByIds, selectAgentSessionById, selectCredentialInstanceById, selectCredentialInstancesForScope, selectEphemeralTriggerAttachments, selectProjectResourceCounts, selectTriggerById, selectWorkflowLastRunAtByIds, selectWorkflowRunById, setTriggerAttachmentEnabledState, setTriggerOverviewGenerating, storedTriggerSourceFromRow, touchResourceActivity, updateTriggerOverview, upsertCredentialInstance } from "@keystrokehq/database";
7
+ import { buildHistoryAgentSessionDetail, buildHistoryWorkflowRunDetail, cancelAgentSession, cancelWorkflowRun, clearCredentialInstanceDefaults, deleteCredentialInstanceById, findHistoryRunCore, getProjectScopeId, getServerTenantScopeId, listActiveAgents, listActiveSkills, listActiveWorkflows, listAllCredentialInstances, listCredentialInstancesByConnectionId, listHistoryRuns, listRecentResourceActivity, listReplayEvents, listTriggersByIds, listWorkspaceTriggerRunRows, listWorkspaceTriggers, runWithProjectDatabase, runWithProjectScope, runWithTenantScope, selectActiveAgentById, selectActiveAgentsByIds, selectActiveSkillById, selectActiveSkillsByIds, selectActiveWorkflowById, selectActiveWorkflowsByIds, selectAgentBySlug, selectAgentLastRunAtByIds, selectAgentSessionById, selectCredentialInstanceById, selectCredentialInstancesForScope, selectEphemeralTriggerAttachments, selectProjectResourceCounts, selectTriggerById, selectWorkflowCanvasAnnotations, selectWorkflowLastRunAtByIds, selectWorkflowOverview, selectWorkflowRunById, selectWorkflowRunForWorkflow, selectWorkflowRunInputValues, setTriggerAttachmentEnabledState, setTriggerOverviewGenerating, setWorkflowCanvasAnnotationsGenerating, setWorkflowOverviewGenerating, storedTriggerSourceFromRow, touchResourceActivity, updateTriggerOverview, updateWorkflowCanvasAnnotations, updateWorkflowOverview, updateWorkflowRunInputValues, upsertCredentialInstance } from "@keystrokehq/database";
8
8
  import { ZodError, z } from "zod";
9
9
  import { AsyncLocalStorage } from "node:async_hooks";
10
- import { CannotModifyOwnerError, OrgAppSlugTakenError, OrgPlatformApiKeyNotFoundError, OrganizationInvitationExpiredError, OrganizationInvitationForbiddenError, OrganizationInvitationNotFoundError, OrganizationMemberNotFoundError, OrganizationSlugTakenError, OrganizationSlugTakenError as OrganizationSlugTakenError$1, ProjectMemberNotFoundError, ProjectSlugTakenError, acceptInvitation, checkOrgAppSlugAvailability, checkOrganizationSlugAvailability, checkProjectSlugAvailability, completeProjectArtifact, createOrgAgentStorageClient, createOrgApp, createOrgPlatformApiKey, createOrgStorageClient, createOrganizationForUser, createProjectForOrganization, declineInvitation, deleteOAuthConnectionById, deleteProjectForOrganization, encryptCredentialPayload as encryptCredentialPayload$1, ensureProjectPgBossGrants, ensureWebhookApiKeyForRoute, ensureWebhookApiKeys, hasCredentialFieldTemplate, initDatabase, insertProjectArtifact, inviteOrganizationMembers, inviteProjectMembers, isOrganizationStorageBucketInUse, listAppsForOrganization, listOrgPlatformApiKeysForOrganization, listOrgPlatformApiKeysForUser, listWebhookApiKeys, listWebhookApiKeysForProject, loadOrgPlatformApiKeyUser, mapOrgPlatformApiKeyCreator, mapOrgPlatformApiKeyCreatorOrDeleted, orgSchedulerRuntimeEnv, orgWorkspacesRuntimeEnv, organizationRowToSidebarBranding, promoteProjectArtifact, removeOrganizationMember, removeProjectMember, resolveNewOrganizationIdentity, resolveOrgProjectDatabaseOptions, 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";
11
- import "node:crypto";
10
+ import { CannotModifyOwnerError, OrgAppSlugTakenError, OrgPlatformApiKeyNotFoundError, OrganizationInvitationExpiredError, OrganizationInvitationForbiddenError, OrganizationInvitationNotFoundError, OrganizationMemberNotFoundError, OrganizationSlugTakenError, OrganizationSlugTakenError as OrganizationSlugTakenError$1, ProjectMemberNotFoundError, ProjectSlugTakenError, acceptInvitation, checkOrgAppSlugAvailability, checkOrganizationSlugAvailability, checkProjectSlugAvailability, completeProjectArtifact, createOrgAgentStorageClient, createOrgApp, createOrgPlatformApiKey, createOrgStorageClient, createOrganizationForUser, createProjectForOrganization, declineInvitation, deleteOAuthConnectionById, deleteProjectForOrganization, encryptCredentialPayload as encryptCredentialPayload$1, ensureProjectPgBossGrants, ensureWebhookApiKeyForRoute, ensureWebhookApiKeys, hasCredentialFieldTemplate, initDatabase, insertProjectArtifact, inviteOrganizationMembers, inviteProjectMembers, isOrganizationStorageBucketInUse, listAppsForOrganization, listOrgPlatformApiKeysForOrganization, listOrgPlatformApiKeysForUser, listWebhookApiKeys, listWebhookApiKeysForProject, loadOrgPlatformApiKeyUser, mapOrgPlatformApiKeyCreator, mapOrgPlatformApiKeyCreatorOrDeleted, orgSchedulerRuntimeEnv, orgWorkspacesRuntimeEnv, organizationRowToSidebarBranding, promoteProjectArtifact, removeOrganizationMember, removeProjectMember, resolveNewOrganizationIdentity, resolveOrgProjectDatabaseOptions, resolveOrgRuntimeDatabase, revokeOrgPlatformApiKey, runWithOrganizationScope, runWithWorkspaceContext, selectActiveArtifactManifestForProject, 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";
11
+ import { createHash } from "node:crypto";
12
12
  import "node:fs";
13
13
  import { basename, join, normalize, relative, resolve } from "node:path";
14
14
  import { tmpdir } from "node:os";
15
15
  import { serve } from "@hono/node-server";
16
16
  import { AUTH_API_PATH, createAuth, createDefaultAuthJwtVerifier, extractWebhookApiKeyFromRequest, handleAuthRequest, resolveAuthEmailFrom, resolveRequestAuth } from "@keystrokehq/auth";
17
- import { buildWebhookUrl, createCredentialMaterializeHandler, extractWebhookRoutesFromManifest, seedOAuthAppsFromEnvForAllOrganizations, seedOAuthAppsFromEnvForOrganization, syncRegistryFromStoredManifest } from "@keystrokehq/runtime";
17
+ import { buildWebhookUrl, createCredentialMaterializeHandler, enqueueWorkflowRunByKey, extractWebhookRoutesFromManifest, seedOAuthAppsFromEnvForAllOrganizations, seedOAuthAppsFromEnvForOrganization, syncRegistryFromStoredManifest } from "@keystrokehq/runtime";
18
18
  import "node:url";
19
+ import "typescript";
19
20
  import { createApp, externalPlatformOrigin, getProjectScheduler, platformWebhookOrigin, resolveMcpEntityId } from "@keystrokehq/http";
20
21
  import { Hono } from "hono";
21
22
  import { Resend } from "resend";
@@ -22870,43 +22871,43 @@ var tt = [
22870
22871
  },
22871
22872
  {
22872
22873
  name: "cat",
22873
- load: async () => (await import("./cat-TSFMZVYS-BR3SDCDa.mjs")).catCommand
22874
+ load: async () => (await import("./cat-TSFMZVYS-CXlrdMsd.mjs")).catCommand
22874
22875
  },
22875
22876
  {
22876
22877
  name: "printf",
22877
- load: async () => (await import("./printf-TWGXF445-BlhAZROi.mjs")).printfCommand
22878
+ load: async () => (await import("./printf-TWGXF445-XVD9Mxrm.mjs")).printfCommand
22878
22879
  },
22879
22880
  {
22880
22881
  name: "ls",
22881
- load: async () => (await import("./ls-ZJGQER7M-BeJZta9T.mjs")).lsCommand
22882
+ load: async () => (await import("./ls-ZJGQER7M-VlE8NU2n.mjs")).lsCommand
22882
22883
  },
22883
22884
  {
22884
22885
  name: "mkdir",
22885
- load: async () => (await import("./mkdir-MEPGZOB6-X9vy2RCy.mjs")).mkdirCommand
22886
+ load: async () => (await import("./mkdir-MEPGZOB6-DKhEU_mo.mjs")).mkdirCommand
22886
22887
  },
22887
22888
  {
22888
22889
  name: "rmdir",
22889
- load: async () => (await import("./rmdir-OC4ZLPYA-B91oqgzk.mjs")).rmdirCommand
22890
+ load: async () => (await import("./rmdir-OC4ZLPYA-CbUJDjKj.mjs")).rmdirCommand
22890
22891
  },
22891
22892
  {
22892
22893
  name: "touch",
22893
- load: async () => (await import("./touch-UA33VN3N-D-0iV3bm.mjs")).touchCommand
22894
+ load: async () => (await import("./touch-UA33VN3N-D8fHlx6X.mjs")).touchCommand
22894
22895
  },
22895
22896
  {
22896
22897
  name: "rm",
22897
- load: async () => (await import("./rm-SSGETQVQ-0mxnhARQ.mjs")).rmCommand
22898
+ load: async () => (await import("./rm-SSGETQVQ-Jci5Ip6D.mjs")).rmCommand
22898
22899
  },
22899
22900
  {
22900
22901
  name: "cp",
22901
- load: async () => (await import("./cp-BISAAS7A-CpbLLWK0.mjs")).cpCommand
22902
+ load: async () => (await import("./cp-BISAAS7A-ptJev1Ed.mjs")).cpCommand
22902
22903
  },
22903
22904
  {
22904
22905
  name: "mv",
22905
- load: async () => (await import("./mv-W5BIQ646-D6ALdw02.mjs")).mvCommand
22906
+ load: async () => (await import("./mv-W5BIQ646-wEz7EErl.mjs")).mvCommand
22906
22907
  },
22907
22908
  {
22908
22909
  name: "ln",
22909
- load: async () => (await import("./ln-4LGSXXGD-Dn6vKThL.mjs")).lnCommand
22910
+ load: async () => (await import("./ln-4LGSXXGD-C8uxwN4w.mjs")).lnCommand
22910
22911
  },
22911
22912
  {
22912
22913
  name: "chmod",
@@ -22922,15 +22923,15 @@ var tt = [
22922
22923
  },
22923
22924
  {
22924
22925
  name: "head",
22925
- load: async () => (await import("./head-442HYESI-BQswaDJF.mjs")).headCommand
22926
+ load: async () => (await import("./head-442HYESI-BUT7-OAn.mjs")).headCommand
22926
22927
  },
22927
22928
  {
22928
22929
  name: "tail",
22929
- load: async () => (await import("./tail-R4PCA2C4-BYcpWm-i.mjs")).tailCommand
22930
+ load: async () => (await import("./tail-R4PCA2C4-BXsd_oGy.mjs")).tailCommand
22930
22931
  },
22931
22932
  {
22932
22933
  name: "wc",
22933
- load: async () => (await import("./wc-LF7NU4LA-DhNBsFLd.mjs")).wcCommand
22934
+ load: async () => (await import("./wc-LF7NU4LA-B3_zHGUI.mjs")).wcCommand
22934
22935
  },
22935
22936
  {
22936
22937
  name: "stat",
@@ -22938,95 +22939,95 @@ var tt = [
22938
22939
  },
22939
22940
  {
22940
22941
  name: "grep",
22941
- load: async () => (await import("./grep-V3LQVMRQ-BZCEkiLT.mjs")).grepCommand
22942
+ load: async () => (await import("./grep-V3LQVMRQ-D2erCIt8.mjs")).grepCommand
22942
22943
  },
22943
22944
  {
22944
22945
  name: "fgrep",
22945
- load: async () => (await import("./grep-V3LQVMRQ-BZCEkiLT.mjs")).fgrepCommand
22946
+ load: async () => (await import("./grep-V3LQVMRQ-D2erCIt8.mjs")).fgrepCommand
22946
22947
  },
22947
22948
  {
22948
22949
  name: "egrep",
22949
- load: async () => (await import("./grep-V3LQVMRQ-BZCEkiLT.mjs")).egrepCommand
22950
+ load: async () => (await import("./grep-V3LQVMRQ-D2erCIt8.mjs")).egrepCommand
22950
22951
  },
22951
22952
  {
22952
22953
  name: "rg",
22953
- load: async () => (await import("./rg-S4FXYXWB-BV530Cw5.mjs")).rgCommand
22954
+ load: async () => (await import("./rg-S4FXYXWB-z2oeRO1P.mjs")).rgCommand
22954
22955
  },
22955
22956
  {
22956
22957
  name: "sed",
22957
- load: async () => (await import("./sed-S5UIK574-Bn1VT3VJ.mjs")).sedCommand
22958
+ load: async () => (await import("./sed-S5UIK574-DMSLNP6f.mjs")).sedCommand
22958
22959
  },
22959
22960
  {
22960
22961
  name: "awk",
22961
- load: async () => (await import("./awk2-LA3USKJP-DsFCxrAn.mjs")).awkCommand2
22962
+ load: async () => (await import("./awk2-LA3USKJP-DeBBkGI5.mjs")).awkCommand2
22962
22963
  },
22963
22964
  {
22964
22965
  name: "sort",
22965
- load: async () => (await import("./sort-SW2YEO5B-BYbDNrah.mjs")).sortCommand
22966
+ load: async () => (await import("./sort-SW2YEO5B-BlCI4ke5.mjs")).sortCommand
22966
22967
  },
22967
22968
  {
22968
22969
  name: "uniq",
22969
- load: async () => (await import("./uniq-XSIZR6PB-CWAKZmGl.mjs")).uniqCommand
22970
+ load: async () => (await import("./uniq-XSIZR6PB-B5Bk1TsC.mjs")).uniqCommand
22970
22971
  },
22971
22972
  {
22972
22973
  name: "comm",
22973
- load: async () => (await import("./comm-VV2LDX2J-Cxkv2cbu.mjs")).commCommand
22974
+ load: async () => (await import("./comm-VV2LDX2J-NATbHp7x.mjs")).commCommand
22974
22975
  },
22975
22976
  {
22976
22977
  name: "cut",
22977
- load: async () => (await import("./cut-OKARJCCV-Co1hDP2h.mjs")).cutCommand
22978
+ load: async () => (await import("./cut-OKARJCCV-CAXXP7Q-.mjs")).cutCommand
22978
22979
  },
22979
22980
  {
22980
22981
  name: "paste",
22981
- load: async () => (await import("./paste-7JC6S4DX-Bji1Bpv0.mjs")).pasteCommand
22982
+ load: async () => (await import("./paste-7JC6S4DX-BNyYBkM9.mjs")).pasteCommand
22982
22983
  },
22983
22984
  {
22984
22985
  name: "tr",
22985
- load: async () => (await import("./tr-36LHWFRQ-DSKHB_Nc.mjs")).trCommand
22986
+ load: async () => (await import("./tr-36LHWFRQ-DkmoHg-J.mjs")).trCommand
22986
22987
  },
22987
22988
  {
22988
22989
  name: "rev",
22989
- load: async () => (await import("./rev-5EHFX4EJ-CI_VGXqm.mjs")).rev
22990
+ load: async () => (await import("./rev-5EHFX4EJ-DhVvFoTy.mjs")).rev
22990
22991
  },
22991
22992
  {
22992
22993
  name: "nl",
22993
- load: async () => (await import("./nl-WSDW7I4O-DyeXenY-.mjs")).nl
22994
+ load: async () => (await import("./nl-WSDW7I4O-BxQfwu-N.mjs")).nl
22994
22995
  },
22995
22996
  {
22996
22997
  name: "fold",
22997
- load: async () => (await import("./fold-4TQNYMSW-GT1iyvMw.mjs")).fold
22998
+ load: async () => (await import("./fold-4TQNYMSW-W2QBLbOw.mjs")).fold
22998
22999
  },
22999
23000
  {
23000
23001
  name: "expand",
23001
- load: async () => (await import("./expand-JSPG6VOP-COLerElO.mjs")).expand
23002
+ load: async () => (await import("./expand-JSPG6VOP-CyEF3l9T.mjs")).expand
23002
23003
  },
23003
23004
  {
23004
23005
  name: "unexpand",
23005
- load: async () => (await import("./unexpand-CADSA4VO-CAimwjsv.mjs")).unexpand
23006
+ load: async () => (await import("./unexpand-CADSA4VO-Bhs2BUQ5.mjs")).unexpand
23006
23007
  },
23007
23008
  {
23008
23009
  name: "strings",
23009
- load: async () => (await import("./strings-6WDHLGMX-DghW6u1V.mjs")).strings
23010
+ load: async () => (await import("./strings-6WDHLGMX-CQhR5NWI.mjs")).strings
23010
23011
  },
23011
23012
  {
23012
23013
  name: "split",
23013
- load: async () => (await import("./split-4KKZZXXE-DaVNgVyU.mjs")).split
23014
+ load: async () => (await import("./split-4KKZZXXE-DInsLVFn.mjs")).split
23014
23015
  },
23015
23016
  {
23016
23017
  name: "column",
23017
- load: async () => (await import("./column-XT6UFXNQ-CKCd9cj4.mjs")).column
23018
+ load: async () => (await import("./column-XT6UFXNQ-5YutVL6D.mjs")).column
23018
23019
  },
23019
23020
  {
23020
23021
  name: "join",
23021
- load: async () => (await import("./join-TBRGI3LQ-mMKbGeyt.mjs")).join
23022
+ load: async () => (await import("./join-TBRGI3LQ-DX7NMuzt.mjs")).join
23022
23023
  },
23023
23024
  {
23024
23025
  name: "tee",
23025
- load: async () => (await import("./tee-YUZ2FKCJ-DArfnCcS.mjs")).teeCommand
23026
+ load: async () => (await import("./tee-YUZ2FKCJ-HOwDepoa.mjs")).teeCommand
23026
23027
  },
23027
23028
  {
23028
23029
  name: "find",
23029
- load: async () => (await import("./find-INTH3OLC-CZJwhn7l.mjs")).findCommand
23030
+ load: async () => (await import("./find-INTH3OLC-BcssH53Z.mjs")).findCommand
23030
23031
  },
23031
23032
  {
23032
23033
  name: "basename",
@@ -23038,19 +23039,19 @@ var tt = [
23038
23039
  },
23039
23040
  {
23040
23041
  name: "tree",
23041
- load: async () => (await import("./tree-YLD52CNT-BWhZ09Ar.mjs")).treeCommand
23042
+ load: async () => (await import("./tree-YLD52CNT-xjlCOZ0t.mjs")).treeCommand
23042
23043
  },
23043
23044
  {
23044
23045
  name: "du",
23045
- load: async () => (await import("./du-572XNP42-BN--uF4D.mjs")).duCommand
23046
+ load: async () => (await import("./du-572XNP42-dXgrmb6w.mjs")).duCommand
23046
23047
  },
23047
23048
  {
23048
23049
  name: "env",
23049
- load: async () => (await import("./env-36M5BO7M-D69jRYN4.mjs")).envCommand
23050
+ load: async () => (await import("./env-36M5BO7M-D_IGqT9p.mjs")).envCommand
23050
23051
  },
23051
23052
  {
23052
23053
  name: "printenv",
23053
- load: async () => (await import("./env-36M5BO7M-D69jRYN4.mjs")).printenvCommand
23054
+ load: async () => (await import("./env-36M5BO7M-D_IGqT9p.mjs")).printenvCommand
23054
23055
  },
23055
23056
  {
23056
23057
  name: "alias",
@@ -23066,7 +23067,7 @@ var tt = [
23066
23067
  },
23067
23068
  {
23068
23069
  name: "xargs",
23069
- load: async () => (await import("./xargs-MGZPH7AX-BH-SyQsU.mjs")).xargsCommand
23070
+ load: async () => (await import("./xargs-MGZPH7AX-BdScic0s.mjs")).xargsCommand
23070
23071
  },
23071
23072
  {
23072
23073
  name: "true",
@@ -23082,23 +23083,23 @@ var tt = [
23082
23083
  },
23083
23084
  {
23084
23085
  name: "bash",
23085
- load: async () => (await import("./bash-YZ33HQZQ-BvR1blQy.mjs")).bashCommand
23086
+ load: async () => (await import("./bash-YZ33HQZQ-rOVeZOAg.mjs")).bashCommand
23086
23087
  },
23087
23088
  {
23088
23089
  name: "sh",
23089
- load: async () => (await import("./bash-YZ33HQZQ-BvR1blQy.mjs")).shCommand
23090
+ load: async () => (await import("./bash-YZ33HQZQ-rOVeZOAg.mjs")).shCommand
23090
23091
  },
23091
23092
  {
23092
23093
  name: "jq",
23093
- load: async () => (await import("./jq-4XLYLOS5-BtVEt-iG.mjs")).jqCommand
23094
+ load: async () => (await import("./jq-4XLYLOS5-C58Dd7RS.mjs")).jqCommand
23094
23095
  },
23095
23096
  {
23096
23097
  name: "base64",
23097
- load: async () => (await import("./base64-C2AIWVNC-BTfHxe6x.mjs")).base64Command
23098
+ load: async () => (await import("./base64-C2AIWVNC-JuDjFqOp.mjs")).base64Command
23098
23099
  },
23099
23100
  {
23100
23101
  name: "diff",
23101
- load: async () => (await import("./diff-MWJFIG7X-Buur00F5.mjs")).diffCommand
23102
+ load: async () => (await import("./diff-MWJFIG7X-CvZCw_Zo.mjs")).diffCommand
23102
23103
  },
23103
23104
  {
23104
23105
  name: "date",
@@ -23106,15 +23107,15 @@ var tt = [
23106
23107
  },
23107
23108
  {
23108
23109
  name: "sleep",
23109
- load: async () => (await import("./sleep-X22JJINO-CbNXwoha.mjs")).sleepCommand
23110
+ load: async () => (await import("./sleep-X22JJINO-B-F8EJ1A.mjs")).sleepCommand
23110
23111
  },
23111
23112
  {
23112
23113
  name: "timeout",
23113
- load: async () => (await import("./timeout-YDCRSLPQ-m0hOl9RU.mjs")).timeoutCommand
23114
+ load: async () => (await import("./timeout-YDCRSLPQ-CrDWh7NY.mjs")).timeoutCommand
23114
23115
  },
23115
23116
  {
23116
23117
  name: "time",
23117
- load: async () => (await import("./time-D4LNBSWX-D0AgPrVU.mjs")).timeCommand
23118
+ load: async () => (await import("./time-D4LNBSWX-DShdsFLL.mjs")).timeCommand
23118
23119
  },
23119
23120
  {
23120
23121
  name: "seq",
@@ -23122,19 +23123,19 @@ var tt = [
23122
23123
  },
23123
23124
  {
23124
23125
  name: "expr",
23125
- load: async () => (await import("./expr-5JAACS4X-Bq-liRWE.mjs")).exprCommand
23126
+ load: async () => (await import("./expr-5JAACS4X-BjSLGpzH.mjs")).exprCommand
23126
23127
  },
23127
23128
  {
23128
23129
  name: "md5sum",
23129
- load: async () => (await import("./md5sum-SPU24VSG-CSOni4rN.mjs")).md5sumCommand
23130
+ load: async () => (await import("./md5sum-SPU24VSG-D9FkR68Z.mjs")).md5sumCommand
23130
23131
  },
23131
23132
  {
23132
23133
  name: "sha1sum",
23133
- load: async () => (await import("./sha1sum-2PTOAFR6-DL_UeFqk.mjs")).sha1sumCommand
23134
+ load: async () => (await import("./sha1sum-2PTOAFR6-BvcG60rc.mjs")).sha1sumCommand
23134
23135
  },
23135
23136
  {
23136
23137
  name: "sha256sum",
23137
- load: async () => (await import("./sha256sum-NS7D3IXX-CmnB6TL1.mjs")).sha256sumCommand
23138
+ load: async () => (await import("./sha256sum-NS7D3IXX-DVH9Rp51.mjs")).sha256sumCommand
23138
23139
  },
23139
23140
  {
23140
23141
  name: "file",
@@ -23142,11 +23143,11 @@ var tt = [
23142
23143
  },
23143
23144
  {
23144
23145
  name: "html-to-markdown",
23145
- load: async () => (await import("./html-to-markdown-JW4MSQZO-bFXHY2YJ.mjs")).htmlToMarkdownCommand
23146
+ load: async () => (await import("./html-to-markdown-JW4MSQZO-D77ZtAkg.mjs")).htmlToMarkdownCommand
23146
23147
  },
23147
23148
  {
23148
23149
  name: "help",
23149
- load: async () => (await import("./help-HZ6M2CKN-CyQGg7tY.mjs")).helpCommand
23150
+ load: async () => (await import("./help-HZ6M2CKN-BNhOdIlA.mjs")).helpCommand
23150
23151
  },
23151
23152
  {
23152
23153
  name: "which",
@@ -23154,7 +23155,7 @@ var tt = [
23154
23155
  },
23155
23156
  {
23156
23157
  name: "tac",
23157
- load: async () => (await import("./tac-2STMMJYW-dyBrgE3g.mjs")).tac
23158
+ load: async () => (await import("./tac-2STMMJYW-DPVvOOFh.mjs")).tac
23158
23159
  },
23159
23160
  {
23160
23161
  name: "hostname",
@@ -23166,49 +23167,49 @@ var tt = [
23166
23167
  },
23167
23168
  {
23168
23169
  name: "od",
23169
- load: async () => (await import("./od-WOKFDJTP-C4rrBoz_.mjs")).od
23170
+ load: async () => (await import("./od-WOKFDJTP-BMjM1Vpo.mjs")).od
23170
23171
  },
23171
23172
  {
23172
23173
  name: "gzip",
23173
- load: async () => (await import("./gzip-O5ASJAFY-BRUoPm0T.mjs")).gzipCommand
23174
+ load: async () => (await import("./gzip-O5ASJAFY-CqxUEEM2.mjs")).gzipCommand
23174
23175
  },
23175
23176
  {
23176
23177
  name: "gunzip",
23177
- load: async () => (await import("./gzip-O5ASJAFY-BRUoPm0T.mjs")).gunzipCommand
23178
+ load: async () => (await import("./gzip-O5ASJAFY-CqxUEEM2.mjs")).gunzipCommand
23178
23179
  },
23179
23180
  {
23180
23181
  name: "zcat",
23181
- load: async () => (await import("./gzip-O5ASJAFY-BRUoPm0T.mjs")).zcatCommand
23182
+ load: async () => (await import("./gzip-O5ASJAFY-CqxUEEM2.mjs")).zcatCommand
23182
23183
  }
23183
23184
  ];
23184
23185
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (tt.push({
23185
23186
  name: "tar",
23186
- load: async () => (await import("./tar-STHHZTZ6-FTWsSEpr.mjs")).tarCommand
23187
+ load: async () => (await import("./tar-STHHZTZ6-DTf5Ifnn.mjs")).tarCommand
23187
23188
  }), tt.push({
23188
23189
  name: "yq",
23189
- load: async () => (await import("./yq-4QJW3EQG-CY_mBr2e.mjs")).yqCommand
23190
+ load: async () => (await import("./yq-4QJW3EQG-BvkjygaH.mjs")).yqCommand
23190
23191
  }), tt.push({
23191
23192
  name: "xan",
23192
- load: async () => (await import("./xan-Y6WF3IRG-DN7DU1ab.mjs")).xanCommand
23193
+ load: async () => (await import("./xan-Y6WF3IRG-9KChSctb.mjs")).xanCommand
23193
23194
  }), tt.push({
23194
23195
  name: "sqlite3",
23195
- load: async () => (await import("./sqlite3-CGOEFJAO-DWuK8T1P.mjs")).sqlite3Command
23196
+ load: async () => (await import("./sqlite3-CGOEFJAO-DdQnH7sK.mjs")).sqlite3Command
23196
23197
  }));
23197
23198
  var Yt = [];
23198
23199
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Yt.push({
23199
23200
  name: "python3",
23200
- load: async () => (await import("./python3-POMOR4OA-DR8mqMXh.mjs")).python3Command
23201
+ load: async () => (await import("./python3-POMOR4OA-Dnqvkl59.mjs")).python3Command
23201
23202
  }), Yt.push({
23202
23203
  name: "python",
23203
- load: async () => (await import("./python3-POMOR4OA-DR8mqMXh.mjs")).pythonCommand
23204
+ load: async () => (await import("./python3-POMOR4OA-Dnqvkl59.mjs")).pythonCommand
23204
23205
  }));
23205
23206
  var Qt = [];
23206
23207
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Qt.push({
23207
23208
  name: "js-exec",
23208
- load: async () => (await import("./js-exec-N5KEZBH7-yV-xrF3D.mjs")).jsExecCommand
23209
+ load: async () => (await import("./js-exec-N5KEZBH7-PxuNBAca.mjs")).jsExecCommand
23209
23210
  }), Qt.push({
23210
23211
  name: "node",
23211
- load: async () => (await import("./js-exec-N5KEZBH7-yV-xrF3D.mjs")).nodeStubCommand
23212
+ load: async () => (await import("./js-exec-N5KEZBH7-PxuNBAca.mjs")).nodeStubCommand
23212
23213
  }));
23213
23214
  new TextEncoder();
23214
23215
  Object.freeze({
@@ -24226,11 +24227,12 @@ function normalizeLegacySlugFields(value) {
24226
24227
  return next;
24227
24228
  }
24228
24229
  const slugField = z.string().trim().min(1);
24229
- const optionalTextField = z.string().optional();
24230
+ const requiredTextField = z.string().trim().min(1);
24231
+ const optionalTextField = z.string().trim().min(1).optional();
24230
24232
  const baseSourceShape = {
24231
24233
  slug: slugField,
24232
- name: optionalTextField,
24233
- description: optionalTextField,
24234
+ name: requiredTextField,
24235
+ description: requiredTextField,
24234
24236
  attach: z.function()
24235
24237
  };
24236
24238
  const webhookSourceSchema = z.object({
@@ -24848,7 +24850,7 @@ function withOrganizationProjectDatabase() {
24848
24850
  }
24849
24851
  //#endregion
24850
24852
  //#region src/routes/account/users/me/avatar/GET.ts
24851
- const handler$83 = async (c) => {
24853
+ const handler$91 = async (c) => {
24852
24854
  const dbUser = await selectUserById(c.get("user").id);
24853
24855
  if (!dbUser) return c.json(ErrorResponseSchema.parse({ error: "User not found" }), 404);
24854
24856
  return c.json(UserAvatarSchema.parse({ url: dbUser.image ?? null }));
@@ -24867,7 +24869,7 @@ function avatarExtensionForContentType(contentType) {
24867
24869
  }
24868
24870
  //#endregion
24869
24871
  //#region src/routes/account/users/me/avatar/presign/POST.ts
24870
- const handler$82 = async (c) => {
24872
+ const handler$90 = async (c) => {
24871
24873
  const parsed = PresignUserAvatarRequestSchema.safeParse(await c.req.json().catch(() => null));
24872
24874
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid avatar upload request" }), 400);
24873
24875
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -24907,7 +24909,7 @@ async function deleteStoredImageIfOwned(input) {
24907
24909
  }
24908
24910
  //#endregion
24909
24911
  //#region src/routes/account/users/me/avatar/PATCH.ts
24910
- const handler$81 = async (c) => {
24912
+ const handler$89 = async (c) => {
24911
24913
  const parsed = UserAvatarPatchSchema.safeParse(await c.req.json().catch(() => null));
24912
24914
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid avatar update" }), 400);
24913
24915
  const user = c.get("user");
@@ -24949,14 +24951,14 @@ const handler$81 = async (c) => {
24949
24951
  };
24950
24952
  //#endregion
24951
24953
  //#region src/routes/account/users/me/preferences/GET.ts
24952
- const handler$80 = async (c) => {
24954
+ const handler$88 = async (c) => {
24953
24955
  const dbUser = await selectUserById(c.get("user").id);
24954
24956
  if (!dbUser) return c.json(ErrorResponseSchema.parse({ error: "User not found" }), 404);
24955
24957
  return c.json(UserPreferencesSchema.parse(normalizeUserPreferences(dbUser.preferences)));
24956
24958
  };
24957
24959
  //#endregion
24958
24960
  //#region src/routes/account/users/me/preferences/PATCH.ts
24959
- const handler$79 = async (c) => {
24961
+ const handler$87 = async (c) => {
24960
24962
  const parsed = UserPreferencesPatchSchema.safeParse(await c.req.json().catch(() => null));
24961
24963
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid preferences update" }), 400);
24962
24964
  const user = c.get("user");
@@ -24971,7 +24973,7 @@ const handler$79 = async (c) => {
24971
24973
  };
24972
24974
  //#endregion
24973
24975
  //#region src/routes/account/organizations/GET.ts
24974
- const handler$78 = async (c) => {
24976
+ const handler$86 = async (c) => {
24975
24977
  const memberships = await selectUserOrganizations(c.get("user").id);
24976
24978
  return c.json(ListOrganizationsResponseSchema.parse(memberships.map(mapUserOrganization)));
24977
24979
  };
@@ -25049,7 +25051,7 @@ function createOrganizationHandler(deps) {
25049
25051
  }
25050
25052
  //#endregion
25051
25053
  //#region src/routes/account/organizations/slug-available/GET.ts
25052
- const handler$77 = async (c) => {
25054
+ const handler$85 = async (c) => {
25053
25055
  const parsed = SlugAvailabilityQuerySchema.safeParse({
25054
25056
  slug: c.req.query("slug"),
25055
25057
  excludeOrganizationId: c.req.query("excludeOrganizationId")
@@ -25060,7 +25062,7 @@ const handler$77 = async (c) => {
25060
25062
  };
25061
25063
  //#endregion
25062
25064
  //#region src/routes/account/organizations/[organizationId]/GET.ts
25063
- const handler$76 = async (c) => {
25065
+ const handler$84 = async (c) => {
25064
25066
  const { organizationId } = c.get("organization");
25065
25067
  const membership = await selectUserOrganizationMembership(c.get("user").id, organizationId);
25066
25068
  if (!membership) throw new Error(`Organization membership missing after param guard: ${organizationId}`);
@@ -25068,7 +25070,7 @@ const handler$76 = async (c) => {
25068
25070
  };
25069
25071
  //#endregion
25070
25072
  //#region src/routes/account/organizations/[organizationId]/PATCH.ts
25071
- const handler$75 = async (c) => {
25073
+ const handler$83 = async (c) => {
25072
25074
  const organization = c.get("organization");
25073
25075
  const body = await c.req.json().catch(() => null);
25074
25076
  const parsed = UpdateOrganizationRequestSchema.safeParse(body);
@@ -25093,7 +25095,7 @@ const handler$75 = async (c) => {
25093
25095
  };
25094
25096
  //#endregion
25095
25097
  //#region src/routes/account/organizations/[organizationId]/branding/GET.ts
25096
- const handler$74 = async (c) => {
25098
+ const handler$82 = async (c) => {
25097
25099
  const { organizationId } = c.get("organization");
25098
25100
  const organization = await selectOrganizationById(organizationId);
25099
25101
  if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
@@ -25142,7 +25144,7 @@ async function finalizeOrgLogoVariant(input) {
25142
25144
  publicUrl: finalized.publicUrl
25143
25145
  };
25144
25146
  }
25145
- const handler$73 = async (c) => {
25147
+ const handler$81 = async (c) => {
25146
25148
  const parsed = OrganizationSidebarBrandingPatchSchema.safeParse(await c.req.json().catch(() => null));
25147
25149
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid branding update" }), 400);
25148
25150
  const { organizationId } = c.get("organization");
@@ -25170,7 +25172,7 @@ const handler$73 = async (c) => {
25170
25172
  };
25171
25173
  //#endregion
25172
25174
  //#region src/routes/account/organizations/[organizationId]/branding/logo/presign/POST.ts
25173
- const handler$72 = async (c) => {
25175
+ const handler$80 = async (c) => {
25174
25176
  const parsed = PresignOrgLogoRequestSchema.safeParse(await c.req.json().catch(() => null));
25175
25177
  if (!parsed.success) return c.json(ErrorResponseSchema.parse({ error: "Invalid logo upload request" }), 400);
25176
25178
  const extension = avatarExtensionForContentType(parsed.data.contentType);
@@ -25271,7 +25273,7 @@ async function attachRanAsToDetail(detail, ranByUserId) {
25271
25273
  }
25272
25274
  //#endregion
25273
25275
  //#region src/routes/account/history/GET.ts
25274
- const handler$71 = async (c) => {
25276
+ const handler$79 = async (c) => {
25275
25277
  const organization = c.get("organization");
25276
25278
  const ctx = accessContext(c);
25277
25279
  const query = HistoryRunListQuerySchema.parse({
@@ -25294,7 +25296,7 @@ const handler$71 = async (c) => {
25294
25296
  };
25295
25297
  //#endregion
25296
25298
  //#region src/routes/account/history/[runId]/GET.ts
25297
- const handler$70 = async (c) => {
25299
+ const handler$78 = async (c) => {
25298
25300
  const runId = c.req.param("runId") ?? "";
25299
25301
  if (!runId) return c.json(null, 404);
25300
25302
  const core = await findHistoryRunCore(runId);
@@ -25329,11 +25331,12 @@ function formatModel(model) {
25329
25331
  return model;
25330
25332
  }
25331
25333
  function toAgentSummary(row, options) {
25334
+ const name = row.name?.trim() || titleCaseKey(row.slug);
25332
25335
  return AgentSummarySchema.parse({
25333
25336
  id: row.id,
25334
25337
  slug: row.slug,
25335
- name: row.name?.trim() || titleCaseKey(row.slug),
25336
- description: row.description ?? void 0,
25338
+ name,
25339
+ description: row.description?.trim() || name,
25337
25340
  projectId: row.projectId,
25338
25341
  updatedAt: row.updatedAt.toISOString(),
25339
25342
  sourcePath: row.moduleFile,
@@ -25351,7 +25354,7 @@ function toAgentSummary(row, options) {
25351
25354
  }
25352
25355
  //#endregion
25353
25356
  //#region src/routes/account/agents/GET.ts
25354
- const handler$69 = async (c) => {
25357
+ const handler$77 = async (c) => {
25355
25358
  const filter = await resolveListProjectIds(c, listScope(c, agentListScope(accessContext(c))), c.req.query("projectId"));
25356
25359
  if (filter === "empty") return c.json(AgentSummaryListResponseSchema.parse([]));
25357
25360
  const rows = await listActiveAgents(filter);
@@ -25365,7 +25368,7 @@ function touchResourceActivityBestEffort(options) {
25365
25368
  }
25366
25369
  //#endregion
25367
25370
  //#region src/routes/account/agents/[agentId]/GET.ts
25368
- const handler$68 = async (c) => {
25371
+ const handler$76 = async (c) => {
25369
25372
  const agentId = c.req.param("agentId") ?? "";
25370
25373
  const row = agentId ? await selectActiveAgentById(agentId) : void 0;
25371
25374
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(AgentSummaryDetailResponseSchema.parse(null));
@@ -25388,7 +25391,7 @@ const handler$68 = async (c) => {
25388
25391
  function relativePathsFromStorageKeys(prefix, keys) {
25389
25392
  return keys.filter((key) => key.startsWith(prefix) && key.endsWith(".md")).map((key) => key.slice(prefix.length)).filter((path) => !path.startsWith(".") && !path.includes("/."));
25390
25393
  }
25391
- const handler$67 = async (c) => {
25394
+ const handler$75 = async (c) => {
25392
25395
  const agentId = c.req.param("agentId") ?? "";
25393
25396
  const row = agentId ? await selectActiveAgentById(agentId) : void 0;
25394
25397
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(ListAgentMemoryFilesResponseSchema.parse({ files: [] }), 404);
@@ -25413,7 +25416,7 @@ function isStorageNotFoundError(error) {
25413
25416
  const status = typeof record.$metadata === "object" && record.$metadata !== null ? record.$metadata.httpStatusCode : void 0;
25414
25417
  return name === "NoSuchKey" || code === "NoSuchKey" || code === "NotFound" || status === 404;
25415
25418
  }
25416
- const handler$66 = async (c) => {
25419
+ const handler$74 = async (c) => {
25417
25420
  const agentId = c.req.param("agentId") ?? "";
25418
25421
  const path = c.req.query("path");
25419
25422
  if (!path) return c.json(ErrorResponseSchema.parse({ error: "File path is required" }), 400);
@@ -25467,7 +25470,7 @@ function workspaceRelativePathsFromStorageKeys(keys) {
25467
25470
  }
25468
25471
  //#endregion
25469
25472
  //#region src/routes/account/agents/[agentId]/workspace/files/GET.ts
25470
- const handler$65 = async (c) => {
25473
+ const handler$73 = async (c) => {
25471
25474
  const agentId = c.req.param("agentId") ?? "";
25472
25475
  const row = agentId ? await selectActiveAgentById(agentId) : void 0;
25473
25476
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessAgent)) return c.json(ListAgentWorkspaceFilesResponseSchema.parse({ files: [] }), 404);
@@ -25490,7 +25493,7 @@ const handler$65 = async (c) => {
25490
25493
  };
25491
25494
  //#endregion
25492
25495
  //#region src/routes/account/agents/[agentId]/workspace/files/content/GET.ts
25493
- const handler$64 = async (c) => {
25496
+ const handler$72 = async (c) => {
25494
25497
  const agentId = c.req.param("agentId") ?? "";
25495
25498
  const path = c.req.query("path");
25496
25499
  if (!path) return c.json(ErrorResponseSchema.parse({ error: "File path is required" }), 400);
@@ -25539,15 +25542,15 @@ async function cancelHistoryRun(c, kind, cancel) {
25539
25542
  }
25540
25543
  //#endregion
25541
25544
  //#region src/routes/account/agents/sessions/[sessionId]/cancel/POST.ts
25542
- const handler$63 = (c) => cancelHistoryRun(c, "agent", cancelAgentSession);
25545
+ const handler$71 = (c) => cancelHistoryRun(c, "agent", cancelAgentSession);
25543
25546
  //#endregion
25544
25547
  //#region src/routes/account/resources/workflows.ts
25545
25548
  function toWorkflowSummary(row, options) {
25546
25549
  return WorkflowSummarySchema.parse({
25547
25550
  id: row.id,
25548
25551
  slug: row.slug,
25549
- name: row.name?.trim() || titleCaseKey(row.slug),
25550
- description: row.description ?? void 0,
25552
+ name: row.name.trim(),
25553
+ description: row.description.trim(),
25551
25554
  projectId: row.projectId,
25552
25555
  updatedAt: row.updatedAt.toISOString(),
25553
25556
  sourcePath: row.moduleFile,
@@ -25556,7 +25559,7 @@ function toWorkflowSummary(row, options) {
25556
25559
  }
25557
25560
  //#endregion
25558
25561
  //#region src/routes/account/workflows/GET.ts
25559
- const handler$62 = async (c) => {
25562
+ const handler$70 = async (c) => {
25560
25563
  const filter = await resolveListProjectIds(c, listScope(c, workflowListScope(accessContext(c))), c.req.query("projectId"));
25561
25564
  if (filter === "empty") return c.json(WorkflowSummaryListResponseSchema.parse([]));
25562
25565
  const rows = await listActiveWorkflows(filter);
@@ -25565,7 +25568,7 @@ const handler$62 = async (c) => {
25565
25568
  };
25566
25569
  //#endregion
25567
25570
  //#region src/routes/account/workflows/[workflowId]/GET.ts
25568
- const handler$61 = async (c) => {
25571
+ const handler$69 = async (c) => {
25569
25572
  const workflowId = c.req.param("workflowId") ?? "";
25570
25573
  const row = workflowId ? await selectActiveWorkflowById(workflowId) : void 0;
25571
25574
  if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return c.json(WorkflowSummaryDetailResponseSchema.parse(null));
@@ -25579,16 +25582,985 @@ const handler$61 = async (c) => {
25579
25582
  return c.json(WorkflowSummaryDetailResponseSchema.parse(toWorkflowSummary(row, { lastRunAt: lastRunAtById.get(row.id) ?? null })));
25580
25583
  };
25581
25584
  //#endregion
25585
+ //#region src/routes/account/workflows/resolve.ts
25586
+ async function resolveWorkflow(c, workflowId) {
25587
+ const row = workflowId ? await selectActiveWorkflowById(workflowId) : void 0;
25588
+ if (!row || !await canAccessProjectId(c, row.projectId, canAccessWorkflow)) return null;
25589
+ return {
25590
+ row,
25591
+ projectId: row.projectId
25592
+ };
25593
+ }
25594
+ /** Active deploy route-manifest entry for a workflow slug (input schema, flow graph, …). */
25595
+ async function loadWorkflowManifestEntry(projectId, slug) {
25596
+ const manifestJson = await selectActiveArtifactManifestForProject(projectId);
25597
+ if (!manifestJson) return null;
25598
+ return parseStoredRouteManifest(manifestJson).entries.find((item) => item.kind === "workflow" && item.slug === slug) ?? null;
25599
+ }
25600
+ /** The full active-deploy route manifest for a project (canvas needs the whole entry set). */
25601
+ async function loadActiveManifest(projectId) {
25602
+ const manifestJson = await selectActiveArtifactManifestForProject(projectId);
25603
+ if (!manifestJson) return null;
25604
+ return parseStoredRouteManifest(manifestJson);
25605
+ }
25606
+ //#endregion
25607
+ //#region src/routes/account/workflows/[workflowId]/canvas/build-canvas.ts
25608
+ function indexManifest(entries) {
25609
+ const actions = /* @__PURE__ */ new Map();
25610
+ const agents = /* @__PURE__ */ new Map();
25611
+ const workflows = /* @__PURE__ */ new Map();
25612
+ for (const entry of entries) if (entry.kind === "action") actions.set(entry.slug, entry);
25613
+ else if (entry.kind === "agent") agents.set(entry.slug, entry);
25614
+ else if (entry.kind === "workflow") workflows.set(entry.slug, entry);
25615
+ return {
25616
+ actions,
25617
+ agents,
25618
+ workflows
25619
+ };
25620
+ }
25621
+ function fieldsFromSchema(schema) {
25622
+ return jsonSchemaToWorkflowInputSchema(schema ?? {}).fields;
25623
+ }
25624
+ /** A read-only inspector row showing a captured llm option as a literal value. */
25625
+ function llmOptionRow(key, label, value) {
25626
+ return {
25627
+ key,
25628
+ label,
25629
+ type: "string",
25630
+ required: false,
25631
+ binding: { tokens: [{
25632
+ kind: "text",
25633
+ text: value
25634
+ }] }
25635
+ };
25636
+ }
25637
+ /**
25638
+ * Fallback for manifests built before llm option bindings were captured: surface the
25639
+ * literal-only `llmOptions`. New deploys carry `data.inputBindings` on llm nodes and
25640
+ * use {@link llmOptionRowsFromBindings} instead.
25641
+ */
25642
+ function llmOptionInputs(options) {
25643
+ if (!options) return [];
25644
+ const rows = [];
25645
+ if (options.model) rows.push(llmOptionRow("model", "Model", options.model));
25646
+ if (options.thinkingLevel) rows.push(llmOptionRow("thinkingLevel", "Thinking", options.thinkingLevel));
25647
+ if (typeof options.maxTokens === "number") rows.push(llmOptionRow("maxTokens", "Max tokens", String(options.maxTokens)));
25648
+ if (typeof options.temperature === "number") rows.push(llmOptionRow("temperature", "Temperature", String(options.temperature)));
25649
+ if (options.hasSystemPrompt) rows.push(llmOptionRow("system", "System prompt", "Configured"));
25650
+ if (options.hasOutputSchema) rows.push(llmOptionRow("outputSchema", "Output", "Structured"));
25651
+ return rows;
25652
+ }
25653
+ /** Display labels + render order for known `promptLlm` options. */
25654
+ const LLM_OPTION_LABELS = {
25655
+ model: "Model",
25656
+ system: "System prompt",
25657
+ outputSchema: "Output",
25658
+ maxTokens: "Max tokens",
25659
+ temperature: "Temperature",
25660
+ thinkingLevel: "Thinking"
25661
+ };
25662
+ const LLM_OPTION_ORDER = Object.keys(LLM_OPTION_LABELS);
25663
+ /**
25664
+ * Render the producer-captured llm option bindings as visible inspector rows so
25665
+ * model/system/output appear with the same variable/call/reference chips as action
25666
+ * inputs (e.g. `model: CLASSIFY_MODEL` → a variable chip resolved to its const value).
25667
+ */
25668
+ function llmOptionRowsFromBindings(rawBindings, labelByNodeId, constants) {
25669
+ const rows = [];
25670
+ const known = new Set(LLM_OPTION_ORDER);
25671
+ for (const key of LLM_OPTION_ORDER) {
25672
+ const raw = rawBindings[key];
25673
+ if (!raw) continue;
25674
+ rows.push({
25675
+ key,
25676
+ label: LLM_OPTION_LABELS[key] ?? key,
25677
+ type: "string",
25678
+ required: false,
25679
+ binding: resolveBinding(raw, labelByNodeId, constants)
25680
+ });
25681
+ }
25682
+ for (const [key, raw] of Object.entries(rawBindings)) {
25683
+ if (known.has(key)) continue;
25684
+ rows.push({
25685
+ key,
25686
+ label: key,
25687
+ type: "string",
25688
+ required: false,
25689
+ additional: true,
25690
+ binding: resolveBinding(raw, labelByNodeId, constants)
25691
+ });
25692
+ }
25693
+ return rows;
25694
+ }
25695
+ /** The concrete value a binding resolves to, if it's a single literal/known-const token. */
25696
+ function resolvedScalar(raw, constants) {
25697
+ if (!raw || raw.tokens.length !== 1) return;
25698
+ const token = raw.tokens[0];
25699
+ if (token.kind === "text") return token.text;
25700
+ if (token.kind === "variable") {
25701
+ const value = constants?.[token.text];
25702
+ return value !== void 0 ? String(value) : void 0;
25703
+ }
25704
+ }
25705
+ /** Resolve a raw producer binding into the inspector binding, filling source labels + const values. */
25706
+ function resolveBinding(raw, labelByNodeId, constants) {
25707
+ return {
25708
+ tokens: raw.tokens.map((token) => {
25709
+ if (token.kind === "text") return {
25710
+ kind: "text",
25711
+ text: token.text
25712
+ };
25713
+ if (token.kind === "call") return {
25714
+ kind: "call",
25715
+ name: token.name
25716
+ };
25717
+ if (token.kind === "variable") {
25718
+ const value = constants?.[token.text];
25719
+ return {
25720
+ kind: "variable",
25721
+ text: token.text,
25722
+ ...value !== void 0 ? { resolvedValue: String(value) } : {}
25723
+ };
25724
+ }
25725
+ const sourceLabel = token.sourceNodeId ? labelByNodeId.get(token.sourceNodeId) ?? token.sourceNodeId : "";
25726
+ return {
25727
+ kind: "reference",
25728
+ ...token.sourceNodeId ? { sourceNodeId: token.sourceNodeId } : {},
25729
+ sourceLabel,
25730
+ ...token.field ? { field: token.field } : {}
25731
+ };
25732
+ }),
25733
+ ...raw.multiline ? { multiline: true } : {}
25734
+ };
25735
+ }
25736
+ /** Attach call-site value bindings to a step's inspector inputs (returns a new inputs list). */
25737
+ function inputsWithBindings(inputs, rawBindings, labelByNodeId, constants) {
25738
+ const matched = /* @__PURE__ */ new Set();
25739
+ const result = inputs.map((field) => {
25740
+ const raw = rawBindings[field.key];
25741
+ if (!raw) return field;
25742
+ matched.add(field.key);
25743
+ return {
25744
+ ...field,
25745
+ binding: resolveBinding(raw, labelByNodeId, constants)
25746
+ };
25747
+ });
25748
+ for (const [key, raw] of Object.entries(rawBindings)) {
25749
+ if (matched.has(key)) continue;
25750
+ result.push({
25751
+ key,
25752
+ label: key,
25753
+ type: "string",
25754
+ required: false,
25755
+ additional: true,
25756
+ binding: resolveBinding(raw, labelByNodeId, constants)
25757
+ });
25758
+ }
25759
+ return result;
25760
+ }
25761
+ /**
25762
+ * Authored metadata for a single `step` node, resolved from its deploy-time `data.slug`
25763
+ * + `data.callKind` against the manifest. v1 omits call-site input bindings (the producer
25764
+ * does not capture argument expressions yet). Returns null for steps the inspector can
25765
+ * describe from the graph alone (wait/hook) or that can't be resolved.
25766
+ */
25767
+ function stepMeta(node, index) {
25768
+ const slug = node.data.slug;
25769
+ const callKind = node.data.callKind;
25770
+ const appSlug = node.data.appSlug;
25771
+ if (callKind === "agent") {
25772
+ const agent = slug ? index.agents.get(slug) : void 0;
25773
+ return {
25774
+ kind: "agent",
25775
+ slug: slug ?? node.data.label,
25776
+ name: agent?.name ?? (node.data.label || "Agent"),
25777
+ description: agent?.description ?? "",
25778
+ ...appSlug ? { appSlug } : {},
25779
+ inputs: [],
25780
+ outputs: [],
25781
+ ...agent?.appSlugs.length ? { requiredApps: agent.appSlugs } : {},
25782
+ ...agent?.model ? { model: agent.model } : {},
25783
+ ...agent ? { toolCount: agent.toolCount } : {}
25784
+ };
25785
+ }
25786
+ if (callKind === "llm") return {
25787
+ kind: "llm",
25788
+ slug: slug ?? "llm",
25789
+ name: node.data.label || "LLM prompt",
25790
+ ...node.data.llmOptions?.model ? { model: node.data.llmOptions.model } : {},
25791
+ inputs: node.data.inputBindings ? [] : llmOptionInputs(node.data.llmOptions),
25792
+ outputs: []
25793
+ };
25794
+ if (callKind === "workflow-step") {
25795
+ const action = slug ? index.actions.get(slug) : void 0;
25796
+ if (action) return {
25797
+ kind: "action",
25798
+ slug: action.slug,
25799
+ name: action.name,
25800
+ description: action.description,
25801
+ ...appSlug ? {
25802
+ appSlug,
25803
+ requiredApps: [appSlug]
25804
+ } : {},
25805
+ inputs: fieldsFromSchema(action.inputSchema),
25806
+ outputs: fieldsFromSchema(action.outputSchema)
25807
+ };
25808
+ const childWorkflow = slug ? index.workflows.get(slug) : void 0;
25809
+ if (childWorkflow) return {
25810
+ kind: "workflow",
25811
+ slug: childWorkflow.slug,
25812
+ name: childWorkflow.name,
25813
+ description: childWorkflow.description,
25814
+ inputs: fieldsFromSchema(childWorkflow.requestSchema),
25815
+ outputs: fieldsFromSchema(childWorkflow.responseSchema)
25816
+ };
25817
+ return {
25818
+ kind: "action",
25819
+ slug: slug ?? node.data.label,
25820
+ name: node.data.label || slug || "Action",
25821
+ ...appSlug ? {
25822
+ appSlug,
25823
+ requiredApps: [appSlug]
25824
+ } : {},
25825
+ inputs: [],
25826
+ outputs: []
25827
+ };
25828
+ }
25829
+ return null;
25830
+ }
25831
+ /**
25832
+ * Assemble the read-only `WorkflowCanvas` deterministic part: the deploy-time AST skeleton
25833
+ * with manifest trigger-source node(s) prepended and the authored-metadata join keyed by
25834
+ * node id. Pure (no I/O) so it is unit-testable; the route gathers the manifest + workspace
25835
+ * triggers and the LLM annotation layer separately.
25836
+ */
25837
+ function buildWorkflowCanvas(input) {
25838
+ const { workflowSlug, workflowEntry, entries, triggers } = input;
25839
+ const flowGraph = workflowEntry.flowGraph ?? {
25840
+ nodes: [],
25841
+ edges: []
25842
+ };
25843
+ const constants = flowGraph.constants;
25844
+ const index = indexManifest(entries);
25845
+ const nodeMetadata = {};
25846
+ const attached = triggers.filter((trigger) => trigger.assignments.some((assignment) => assignment.kind === "workflow" && assignment.slug === workflowSlug));
25847
+ const triggerNodes = [];
25848
+ const triggerEdges = [];
25849
+ const workflowInputFields = fieldsFromSchema(workflowEntry.requestSchema);
25850
+ if (attached.length === 0) {
25851
+ const id = "trigger-manual";
25852
+ triggerNodes.push({
25853
+ id,
25854
+ nodeType: "trigger-source",
25855
+ data: {
25856
+ label: "Manual / API",
25857
+ triggerType: "manual"
25858
+ }
25859
+ });
25860
+ triggerEdges.push({
25861
+ id: "edge-trigger-manual",
25862
+ source: id,
25863
+ target: "entry"
25864
+ });
25865
+ nodeMetadata[id] = {
25866
+ kind: "trigger",
25867
+ slug: "manual",
25868
+ name: "Manual / API",
25869
+ inputs: [],
25870
+ outputs: workflowInputFields
25871
+ };
25872
+ } else attached.forEach((trigger, i) => {
25873
+ const id = `trigger-${trigger.slug}`;
25874
+ triggerNodes.push({
25875
+ id,
25876
+ nodeType: "trigger-source",
25877
+ data: {
25878
+ label: trigger.name,
25879
+ triggerType: trigger.type
25880
+ }
25881
+ });
25882
+ triggerEdges.push({
25883
+ id: `edge-trigger-${i}`,
25884
+ source: id,
25885
+ target: "entry"
25886
+ });
25887
+ nodeMetadata[id] = {
25888
+ kind: "trigger",
25889
+ slug: trigger.slug,
25890
+ name: trigger.name,
25891
+ description: trigger.description,
25892
+ inputs: [],
25893
+ outputs: []
25894
+ };
25895
+ });
25896
+ const codeBlocks = [];
25897
+ for (const node of flowGraph.nodes) {
25898
+ if (node.nodeType === "entry") {
25899
+ nodeMetadata[node.id] = {
25900
+ kind: "boundary",
25901
+ slug: "entry",
25902
+ name: "Start",
25903
+ inputs: workflowInputFields,
25904
+ outputs: workflowInputFields
25905
+ };
25906
+ continue;
25907
+ }
25908
+ if (node.nodeType === "exit") {
25909
+ const outputFields = fieldsFromSchema(workflowEntry.responseSchema);
25910
+ nodeMetadata[node.id] = {
25911
+ kind: "boundary",
25912
+ slug: "exit",
25913
+ name: "Output",
25914
+ inputs: outputFields,
25915
+ outputs: outputFields
25916
+ };
25917
+ continue;
25918
+ }
25919
+ if (node.nodeType === "code-block") {
25920
+ codeBlocks.push({
25921
+ nodeId: node.id,
25922
+ source: node.data.label
25923
+ });
25924
+ continue;
25925
+ }
25926
+ if (node.nodeType === "step") {
25927
+ const meta = stepMeta(node, index);
25928
+ if (meta) nodeMetadata[node.id] = meta;
25929
+ }
25930
+ }
25931
+ const labelByNodeId = /* @__PURE__ */ new Map();
25932
+ for (const [id, meta] of Object.entries(nodeMetadata)) labelByNodeId.set(id, meta.name);
25933
+ for (const node of flowGraph.nodes) if (!labelByNodeId.has(node.id)) labelByNodeId.set(node.id, node.data.label);
25934
+ for (const node of flowGraph.nodes) {
25935
+ const rawBindings = node.data.inputBindings;
25936
+ const meta = nodeMetadata[node.id];
25937
+ if (node.nodeType !== "step" || !rawBindings || !meta) continue;
25938
+ if (node.data.callKind === "llm") {
25939
+ meta.inputs = llmOptionRowsFromBindings(rawBindings, labelByNodeId, constants);
25940
+ if (!meta.model) {
25941
+ const resolvedModel = resolvedScalar(rawBindings.model, constants);
25942
+ if (resolvedModel) meta.model = resolvedModel;
25943
+ }
25944
+ } else meta.inputs = inputsWithBindings(meta.inputs, rawBindings, labelByNodeId, constants);
25945
+ }
25946
+ return {
25947
+ graph: {
25948
+ nodes: [...triggerNodes, ...flowGraph.nodes],
25949
+ edges: [...triggerEdges, ...flowGraph.edges]
25950
+ },
25951
+ nodeMetadata,
25952
+ codeBlocks
25953
+ };
25954
+ }
25955
+ //#endregion
25956
+ //#region src/routes/account/workflows/[workflowId]/canvas/GET.ts
25957
+ /** Bumped when the annotation prompt/model changes, so cached annotations invalidate. */
25958
+ const ANNOTATIONS_GENERATOR_VERSION = "wf-canvas-annotations-v1";
25959
+ const handler$68 = async (c) => {
25960
+ const { organizationId } = c.get("organization");
25961
+ const workflowId = c.req.param("workflowId") ?? "";
25962
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
25963
+ const resolved = await resolveWorkflow(c, workflowId);
25964
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
25965
+ const { row, projectId } = resolved;
25966
+ const manifest = await loadActiveManifest(projectId);
25967
+ const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
25968
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
25969
+ const triggers = await listWorkspaceTriggers([projectId]);
25970
+ const { graph, nodeMetadata, codeBlocks } = buildWorkflowCanvas({
25971
+ workflowSlug: row.slug,
25972
+ workflowEntry,
25973
+ entries: manifest?.entries ?? [],
25974
+ triggers
25975
+ });
25976
+ const model = DEFAULT_WORKFLOW_CANVAS_MODEL;
25977
+ const graphHash = createHash("sha256").update(JSON.stringify(workflowEntry.flowGraph)).digest("hex");
25978
+ const hash = createHash("sha256").update(JSON.stringify({
25979
+ source: workflowEntry.flowGraphSourceHash ?? "",
25980
+ graph: graphHash,
25981
+ model,
25982
+ version: ANNOTATIONS_GENERATOR_VERSION
25983
+ })).digest("hex");
25984
+ if (codeBlocks.length === 0) return c.json(WorkflowCanvasSchema.parse({
25985
+ graph,
25986
+ nodeMetadata,
25987
+ annotations: {},
25988
+ status: "ready",
25989
+ hash,
25990
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
25991
+ model
25992
+ }));
25993
+ const cache = await runWithProjectScope(projectId, () => selectWorkflowCanvasAnnotations(workflowId));
25994
+ const cached = cache?.annotations ?? {};
25995
+ if (cache && cache.hash === hash) {
25996
+ if (cache.status === "ready" || cache.status === "failed") return c.json(WorkflowCanvasSchema.parse({
25997
+ graph,
25998
+ nodeMetadata,
25999
+ annotations: cached,
26000
+ status: "ready",
26001
+ hash,
26002
+ generatedAt: cache.generatedAt ? cache.generatedAt.toISOString() : (/* @__PURE__ */ new Date()).toISOString(),
26003
+ model: cache.model ?? model
26004
+ }));
26005
+ if (cache.status === "generating") return c.json(WorkflowCanvasSchema.parse({
26006
+ graph,
26007
+ nodeMetadata,
26008
+ annotations: cached,
26009
+ status: "generating",
26010
+ hash,
26011
+ generatedAt: null,
26012
+ model: cache.model ?? model
26013
+ }));
26014
+ }
26015
+ const organization = await selectOrganizationById(organizationId);
26016
+ if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26017
+ await runWithProjectScope(projectId, () => setWorkflowCanvasAnnotationsGenerating(workflowId, hash));
26018
+ try {
26019
+ await (await getProjectScheduler(organization, projectId)).enqueue({
26020
+ kind: "workflow-canvas-annotations",
26021
+ targetId: workflowId,
26022
+ runId: crypto.randomUUID(),
26023
+ trigger: "api",
26024
+ projectId,
26025
+ dedupeKey: `workflow-canvas:${workflowId}:${hash}`,
26026
+ payload: {
26027
+ workflowId,
26028
+ projectId,
26029
+ hash,
26030
+ model,
26031
+ input: {
26032
+ workflowName: row.name.trim(),
26033
+ workflowDescription: row.description.trim(),
26034
+ codeBlocks
26035
+ }
26036
+ }
26037
+ });
26038
+ } catch {
26039
+ await runWithProjectScope(projectId, () => updateWorkflowCanvasAnnotations(workflowId, { status: "failed" }));
26040
+ return c.json(WorkflowCanvasSchema.parse({
26041
+ graph,
26042
+ nodeMetadata,
26043
+ annotations: {},
26044
+ status: "ready",
26045
+ hash,
26046
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
26047
+ model
26048
+ }));
26049
+ }
26050
+ return c.json(WorkflowCanvasSchema.parse({
26051
+ graph,
26052
+ nodeMetadata,
26053
+ annotations: {},
26054
+ status: "generating",
26055
+ hash,
26056
+ generatedAt: null,
26057
+ model
26058
+ }));
26059
+ };
26060
+ //#endregion
26061
+ //#region src/routes/account/workflows/[workflowId]/canvas/build-credential-requirements.ts
26062
+ /**
26063
+ * Collect each step node's credential requirements by joining its `data.slug` to
26064
+ * the manifest action (`requirements`) or agent (`toolRequirements`, flattened
26065
+ * and de-duped by key). Pure: the route resolves each requirement live. Nodes
26066
+ * with no requirement are omitted.
26067
+ */
26068
+ function collectStepCredentialRequirements(flowGraph, entries) {
26069
+ const actions = /* @__PURE__ */ new Map();
26070
+ const agents = /* @__PURE__ */ new Map();
26071
+ for (const entry of entries) if (entry.kind === "action") actions.set(entry.slug, entry);
26072
+ else if (entry.kind === "agent") agents.set(entry.slug, entry);
26073
+ const result = [];
26074
+ for (const node of flowGraph.nodes) {
26075
+ if (node.nodeType !== "step" || !node.data.slug) continue;
26076
+ let requirements;
26077
+ if (node.data.callKind === "agent") {
26078
+ const agent = agents.get(node.data.slug);
26079
+ requirements = agent?.toolRequirements ? dedupeByKey(Object.values(agent.toolRequirements).flat()) : void 0;
26080
+ } else requirements = actions.get(node.data.slug)?.requirements;
26081
+ if (requirements && requirements.length > 0) result.push({
26082
+ nodeId: node.id,
26083
+ requirements
26084
+ });
26085
+ }
26086
+ return result;
26087
+ }
26088
+ function dedupeByKey(requirements) {
26089
+ const byKey = /* @__PURE__ */ new Map();
26090
+ for (const requirement of requirements) if (!byKey.has(requirement.key)) byKey.set(requirement.key, requirement);
26091
+ return [...byKey.values()];
26092
+ }
26093
+ //#endregion
26094
+ //#region src/routes/account/workflows/[workflowId]/canvas/credentials/GET.ts
26095
+ function toResolvedCredential(row) {
26096
+ return {
26097
+ id: row.id,
26098
+ name: row.name ?? row.label ?? row.appSlug,
26099
+ scope: row.scopeType,
26100
+ appSlug: row.appSlug,
26101
+ isDefault: Boolean(row.isDefault),
26102
+ ...row.scopeType === "project" && row.scopeId ? { projectId: row.scopeId } : {}
26103
+ };
26104
+ }
26105
+ function toBinding(key, description) {
26106
+ const base = {
26107
+ credentialKey: key,
26108
+ label: key,
26109
+ appSlug: key
26110
+ };
26111
+ if (description.policy === "unresolved") return {
26112
+ ...base,
26113
+ policy: "unresolved",
26114
+ reason: description.reason,
26115
+ ...description.pinnedScope ? { pinnedScope: description.pinnedScope } : {}
26116
+ };
26117
+ if (description.policy === "scope-pinned") return {
26118
+ ...base,
26119
+ policy: "scope-pinned",
26120
+ pinnedScope: description.pinnedScope,
26121
+ instance: toResolvedCredential(description.row)
26122
+ };
26123
+ return {
26124
+ ...base,
26125
+ policy: description.policy,
26126
+ instance: toResolvedCredential(description.row)
26127
+ };
26128
+ }
26129
+ /**
26130
+ * Live credential overlay: for each step node, resolve which credential instance
26131
+ * each of its requirements currently binds to (read-only, no decryption). Not
26132
+ * content-hash cached — credential state changes without a redeploy.
26133
+ */
26134
+ const handler$67 = async (c) => {
26135
+ const workflowId = c.req.param("workflowId") ?? "";
26136
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26137
+ const resolved = await resolveWorkflow(c, workflowId);
26138
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26139
+ const { row, projectId } = resolved;
26140
+ const manifest = await loadActiveManifest(projectId);
26141
+ const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26142
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26143
+ const nodeRequirements = collectStepCredentialRequirements(workflowEntry.flowGraph, manifest?.entries ?? []);
26144
+ const userId = c.get("user").id;
26145
+ const bindings = await runWithProjectScope(projectId, async () => {
26146
+ const context = await withCredentialAssignments({
26147
+ orgId: getServerTenantScopeId(),
26148
+ projectId: getProjectScopeId(),
26149
+ userId,
26150
+ selection: {}
26151
+ }, {
26152
+ targetType: "workflow",
26153
+ targetKey: row.slug
26154
+ });
26155
+ const result = {};
26156
+ for (const { nodeId, requirements } of nodeRequirements) {
26157
+ const consumerId = `step:${nodeId}`;
26158
+ const nodeBindings = [];
26159
+ for (const requirement of requirements) {
26160
+ const description = await describeCredentialBinding({
26161
+ key: requirement.key,
26162
+ ...requirement.scope ? { scope: requirement.scope } : {},
26163
+ consumerId,
26164
+ context
26165
+ });
26166
+ nodeBindings.push(toBinding(requirement.key, description));
26167
+ }
26168
+ if (nodeBindings.length > 0) result[nodeId] = nodeBindings;
26169
+ }
26170
+ return result;
26171
+ });
26172
+ return c.json(WorkflowCanvasCredentialBindingsSchema.parse(bindings));
26173
+ };
26174
+ //#endregion
26175
+ //#region src/routes/account/workflows/[workflowId]/canvas/build-run-overlay.ts
26176
+ const STEP_PREFIX = "step:";
26177
+ /**
26178
+ * `step:<callSiteId>#<occurrence>` → `<callSiteId>` (the canvas node id). The
26179
+ * build-injected call-site id IS the node id, so stripping the `step:` prefix and
26180
+ * the `#<occurrence>` suffix lands a run event on its graph node 1:1.
26181
+ */
26182
+ function nodeIdFromCorrelation(correlationId) {
26183
+ if (!correlationId.startsWith(STEP_PREFIX)) return null;
26184
+ const rest = correlationId.slice(5);
26185
+ const hash = rest.lastIndexOf("#");
26186
+ return hash === -1 ? rest : rest.slice(0, hash);
26187
+ }
26188
+ function loopTotal(counts) {
26189
+ return counts.reduce((max, n) => n > max ? n : max, 0);
26190
+ }
26191
+ /**
26192
+ * Project a workflow run's durable event log onto the canvas skeleton: a per-node
26193
+ * `WorkflowCanvasNodeRunState` keyed by the SAME node ids as the graph. Pure (no
26194
+ * I/O) so it is unit-testable; the route supplies the graph, events, and status.
26195
+ *
26196
+ * Overlay policy (v1 — step-exact, structure-conservative):
26197
+ * - **Steps** (incl. hook/sleep): exact from replay events.
26198
+ * - **Decision / merge / loop-start / trigger-source**: neutral — no run state.
26199
+ * - **Exit nodes**: succeeded only when the graph has a single Output terminal
26200
+ * and the run succeeded (high confidence). Multiple outputs stay neutral until
26201
+ * path telemetry lands — we do not infer branch-taken paths heuristically.
26202
+ *
26203
+ * Step rules:
26204
+ * - `step_completed` → that node `succeeded`; repeated completions (loop body)
26205
+ * fold onto the one node with an `iteration` counter.
26206
+ * - a step that only `step_failed`/`step_retrying` (never completed) on a
26207
+ * non-succeeded run → `failed`.
26208
+ * - same-file `code-block` nodes light from their `containedCallSiteIds`.
26209
+ * - on a succeeded run, never-executed step/code-block/loop nodes → `skipped`
26210
+ * (a not-taken branch). On failed/canceled/running runs, unreached nodes are
26211
+ * left neutral (we can't yet distinguish not-taken from not-yet-reached).
26212
+ */
26213
+ function buildRunOverlay(input) {
26214
+ const { graph, events, runStatus } = input;
26215
+ const succeeded = runStatus === "succeeded";
26216
+ const completions = /* @__PURE__ */ new Map();
26217
+ const retried = /* @__PURE__ */ new Set();
26218
+ const waiting = /* @__PURE__ */ new Set();
26219
+ for (const event of events) {
26220
+ if (!event.correlationId) continue;
26221
+ const nodeId = nodeIdFromCorrelation(event.correlationId);
26222
+ if (!nodeId) continue;
26223
+ if (event.type === "step_completed" || event.type === "hook_resumed" || event.type === "sleep_completed") completions.set(nodeId, (completions.get(nodeId) ?? 0) + 1);
26224
+ else if (event.type === "step_failed" || event.type === "step_retrying") retried.add(nodeId);
26225
+ else if (event.type === "hook_created" || event.type === "sleep_scheduled") waiting.add(nodeId);
26226
+ }
26227
+ const isFailed = (nodeId) => !succeeded && retried.has(nodeId) && !completions.has(nodeId);
26228
+ const states = {};
26229
+ const childrenByParent = /* @__PURE__ */ new Map();
26230
+ for (const node of graph.nodes) if (node.parentId) {
26231
+ const bucket = childrenByParent.get(node.parentId) ?? [];
26232
+ bucket.push(node.id);
26233
+ childrenByParent.set(node.parentId, bucket);
26234
+ }
26235
+ for (const node of graph.nodes) {
26236
+ if (node.nodeType === "entry") {
26237
+ states[node.id] = { status: "succeeded" };
26238
+ continue;
26239
+ }
26240
+ if (node.nodeType === "step") {
26241
+ const count = completions.get(node.id) ?? 0;
26242
+ if (count > 0) states[node.id] = count > 1 ? {
26243
+ status: "succeeded",
26244
+ iteration: {
26245
+ index: count - 1,
26246
+ total: count
26247
+ }
26248
+ } : { status: "succeeded" };
26249
+ else if (isFailed(node.id)) states[node.id] = { status: "failed" };
26250
+ else if (waiting.has(node.id)) states[node.id] = { status: "running" };
26251
+ else if (succeeded) states[node.id] = { status: "skipped" };
26252
+ continue;
26253
+ }
26254
+ if (node.nodeType === "code-block") {
26255
+ const contained = node.data.containedCallSiteIds ?? [];
26256
+ const ran = contained.some((id) => completions.has(id));
26257
+ if (contained.some((id) => isFailed(id))) states[node.id] = { status: "failed" };
26258
+ else if (ran) states[node.id] = { status: "succeeded" };
26259
+ else if (succeeded) states[node.id] = { status: "skipped" };
26260
+ continue;
26261
+ }
26262
+ if (node.nodeType === "loop" || node.nodeType === "parallel") {
26263
+ const children = childrenByParent.get(node.id) ?? [];
26264
+ const total = loopTotal(children.map((id) => completions.get(id) ?? 0));
26265
+ if (children.some((id) => isFailed(id))) states[node.id] = { status: "failed" };
26266
+ else if (total > 0) states[node.id] = node.nodeType === "loop" && total > 1 ? {
26267
+ status: "succeeded",
26268
+ iteration: {
26269
+ index: total - 1,
26270
+ total
26271
+ }
26272
+ } : { status: "succeeded" };
26273
+ else if (succeeded) states[node.id] = { status: "skipped" };
26274
+ continue;
26275
+ }
26276
+ }
26277
+ const exits = graph.nodes.filter((node) => node.nodeType === "exit");
26278
+ if (succeeded && exits.length === 1) states[exits[0].id] = { status: "succeeded" };
26279
+ return states;
26280
+ }
26281
+ //#endregion
26282
+ //#region src/routes/account/workflows/[workflowId]/canvas/runs/[runId]/GET.ts
26283
+ function toCanvasRunStatus(status) {
26284
+ if (status === "completed") return "succeeded";
26285
+ if (status === "failed") return "failed";
26286
+ if (status === "canceled") return "canceled";
26287
+ return "running";
26288
+ }
26289
+ const handler$66 = async (c) => {
26290
+ const workflowId = c.req.param("workflowId") ?? "";
26291
+ const runId = c.req.param("runId") ?? "";
26292
+ if (!workflowId.trim() || !runId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow or run id" }), 400);
26293
+ const resolved = await resolveWorkflow(c, workflowId);
26294
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26295
+ const { row, projectId } = resolved;
26296
+ const run = await runWithProjectScope(projectId, () => selectWorkflowRunForWorkflow(row.slug, runId));
26297
+ if (!run) return c.json(ErrorResponseSchema.parse({ error: "Run not found" }), 404);
26298
+ const manifest = await loadActiveManifest(projectId);
26299
+ const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26300
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Canvas not available" }), 404);
26301
+ const triggers = await listWorkspaceTriggers([projectId]);
26302
+ const { graph } = buildWorkflowCanvas({
26303
+ workflowSlug: row.slug,
26304
+ workflowEntry,
26305
+ entries: manifest?.entries ?? [],
26306
+ triggers
26307
+ });
26308
+ const events = await runWithProjectScope(projectId, () => listReplayEvents(runId));
26309
+ const runStatus = toCanvasRunStatus(run.status);
26310
+ const nodeStates = buildRunOverlay({
26311
+ graph,
26312
+ events,
26313
+ runStatus
26314
+ });
26315
+ return c.json(WorkflowCanvasRunSchema.parse({
26316
+ runId,
26317
+ status: runStatus,
26318
+ startedAt: (run.startedAt ?? run.triggeredAt).toISOString(),
26319
+ finishedAt: run.finishedAt ? run.finishedAt.toISOString() : null,
26320
+ nodeStates
26321
+ }));
26322
+ };
26323
+ //#endregion
26324
+ //#region src/routes/account/workflows/[workflowId]/overview/GET.ts
26325
+ /** Bumped when the overview prompt/model changes, so cached overviews invalidate. */
26326
+ const OVERVIEW_GENERATOR_VERSION = "wf-overview-v1";
26327
+ /**
26328
+ * Best-effort read of the workflow's source from the active deploy's source snapshot, resolving
26329
+ * path → hash via the manifest so only files that belong to the deploy are served. Returns null
26330
+ * for dist-only deploys / missing source so the overview still generates from the structured graph.
26331
+ */
26332
+ async function loadWorkflowSource(organization, projectId, sourcePath) {
26333
+ try {
26334
+ const artifact = await selectActiveProjectArtifactForProject(projectId);
26335
+ if (!artifact?.sourceManifestJson) return null;
26336
+ const file = StoredProjectSourceManifestSchema.parse(artifact.sourceManifestJson).files.find((entry) => entry.path === sourcePath);
26337
+ if (!file) return null;
26338
+ const bytes = await createOrgStorageClient(organization).getObject(projectSourceBlobKey(projectId, file.hash));
26339
+ return new TextDecoder().decode(bytes);
26340
+ } catch {
26341
+ return null;
26342
+ }
26343
+ }
26344
+ const handler$65 = async (c) => {
26345
+ const { organizationId } = c.get("organization");
26346
+ const workflowId = c.req.param("workflowId") ?? "";
26347
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26348
+ const resolved = await resolveWorkflow(c, workflowId);
26349
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26350
+ const { row, projectId } = resolved;
26351
+ const manifest = await loadActiveManifest(projectId);
26352
+ const workflowEntry = manifest?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26353
+ if (!workflowEntry || workflowEntry.kind !== "workflow" || !workflowEntry.flowGraph) return c.json(ErrorResponseSchema.parse({ error: "Overview not available" }), 404);
26354
+ const triggers = await listWorkspaceTriggers([projectId]);
26355
+ const { graph, nodeMetadata } = buildWorkflowCanvas({
26356
+ workflowSlug: row.slug,
26357
+ workflowEntry,
26358
+ entries: manifest?.entries ?? [],
26359
+ triggers
26360
+ });
26361
+ const triggerLabels = graph.nodes.filter((node) => node.nodeType === "trigger-source").map((node) => node.data.label);
26362
+ const nodes = graph.nodes.map((node) => {
26363
+ const meta = nodeMetadata[node.id];
26364
+ const inputs = meta?.inputs.map((field) => field.key) ?? [];
26365
+ const outputs = meta?.outputs.map((field) => field.key) ?? [];
26366
+ return {
26367
+ nodeId: node.id,
26368
+ label: meta?.name ?? node.data.label,
26369
+ kind: meta?.kind ?? node.nodeType,
26370
+ ...meta?.description ? { description: meta.description } : {},
26371
+ ...meta?.appSlug ? { appSlug: meta.appSlug } : {},
26372
+ ...inputs.length > 0 ? { inputs } : {},
26373
+ ...outputs.length > 0 ? { outputs } : {},
26374
+ ...meta?.model ? { model: meta.model } : {},
26375
+ ...meta?.toolCount !== void 0 ? { toolCount: meta.toolCount } : {}
26376
+ };
26377
+ });
26378
+ const model = DEFAULT_WORKFLOW_OVERVIEW_MODEL;
26379
+ const graphHash = createHash("sha256").update(JSON.stringify(workflowEntry.flowGraph)).digest("hex");
26380
+ const hash = createHash("sha256").update(JSON.stringify({
26381
+ source: workflowEntry.flowGraphSourceHash ?? "",
26382
+ graph: graphHash,
26383
+ triggers: triggerLabels,
26384
+ model,
26385
+ version: OVERVIEW_GENERATOR_VERSION
26386
+ })).digest("hex");
26387
+ const cache = await runWithProjectScope(projectId, () => selectWorkflowOverview(workflowId));
26388
+ const cachedPhases = cache?.phases ?? [];
26389
+ if (cache && cache.hash === hash) {
26390
+ if (cache.status === "ready" || cache.status === "failed") return c.json(WorkspaceWorkflowOverviewSchema.parse({
26391
+ status: "ready",
26392
+ summary: cache.summary ?? "",
26393
+ phases: cachedPhases,
26394
+ hash,
26395
+ generatedAt: cache.generatedAt ? cache.generatedAt.toISOString() : (/* @__PURE__ */ new Date()).toISOString(),
26396
+ model: cache.model ?? model
26397
+ }));
26398
+ if (cache.status === "generating") return c.json(WorkspaceWorkflowOverviewSchema.parse({
26399
+ status: "generating",
26400
+ summary: cache.summary ?? "",
26401
+ phases: [],
26402
+ hash,
26403
+ generatedAt: null,
26404
+ model: cache.model ?? model
26405
+ }));
26406
+ }
26407
+ const organization = await selectOrganizationById(organizationId);
26408
+ if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26409
+ await runWithProjectScope(projectId, () => setWorkflowOverviewGenerating(workflowId, hash));
26410
+ const source = await loadWorkflowSource(organization, projectId, workflowEntry.moduleFile);
26411
+ try {
26412
+ await (await getProjectScheduler(organization, projectId)).enqueue({
26413
+ kind: "workflow-overview",
26414
+ targetId: workflowId,
26415
+ runId: crypto.randomUUID(),
26416
+ trigger: "api",
26417
+ projectId,
26418
+ dedupeKey: `workflow-overview:${workflowId}:${hash}`,
26419
+ payload: {
26420
+ workflowId,
26421
+ projectId,
26422
+ hash,
26423
+ model,
26424
+ input: {
26425
+ workflowName: row.name.trim(),
26426
+ workflowDescription: row.description.trim(),
26427
+ triggers: triggerLabels,
26428
+ nodes,
26429
+ source
26430
+ }
26431
+ }
26432
+ });
26433
+ } catch {
26434
+ await runWithProjectScope(projectId, () => updateWorkflowOverview(workflowId, { status: "failed" }));
26435
+ }
26436
+ return c.json(WorkspaceWorkflowOverviewSchema.parse({
26437
+ status: "generating",
26438
+ summary: "",
26439
+ phases: [],
26440
+ hash,
26441
+ generatedAt: null,
26442
+ model
26443
+ }));
26444
+ };
26445
+ //#endregion
26446
+ //#region src/routes/account/workflows/[workflowId]/run-inputs/GET.ts
26447
+ const handler$64 = async (c) => {
26448
+ const workflowId = c.req.param("workflowId") ?? "";
26449
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26450
+ const resolved = await resolveWorkflow(c, workflowId);
26451
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26452
+ const { row, projectId } = resolved;
26453
+ const schema = jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
26454
+ const values = await runWithProjectScope(projectId, () => selectWorkflowRunInputValues(workflowId));
26455
+ return c.json(WorkflowRunInputsSchema.parse({
26456
+ schema,
26457
+ values
26458
+ }));
26459
+ };
26460
+ //#endregion
26461
+ //#region src/routes/account/workflows/[workflowId]/run-inputs/PUT.ts
26462
+ const handler$63 = async (c) => {
26463
+ const workflowId = c.req.param("workflowId") ?? "";
26464
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26465
+ const resolved = await resolveWorkflow(c, workflowId);
26466
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26467
+ let body;
26468
+ try {
26469
+ body = WorkflowRunInputsPutBodySchema.parse(await c.req.json());
26470
+ } catch {
26471
+ return c.json(ErrorResponseSchema.parse({ error: "Invalid request body" }), 400);
26472
+ }
26473
+ const { row, projectId } = resolved;
26474
+ const schema = jsonSchemaToWorkflowInputSchema((await loadWorkflowManifestEntry(projectId, row.slug))?.requestSchema ?? {});
26475
+ const validation = validateWorkflowRunInputValues(schema, body);
26476
+ if (!validation.ok) return c.json(ErrorResponseSchema.parse({ error: validation.error }), 400);
26477
+ await runWithProjectScope(projectId, () => updateWorkflowRunInputValues(workflowId, body));
26478
+ return c.json(WorkflowRunInputsSchema.parse({
26479
+ schema,
26480
+ values: body
26481
+ }));
26482
+ };
26483
+ //#endregion
26484
+ //#region src/routes/account/workflows/[workflowId]/run/POST.ts
26485
+ function parseRunInput(requestSchema, input) {
26486
+ if (typeof z.fromJSONSchema === "function") return z.fromJSONSchema(requestSchema).parse(input ?? {});
26487
+ return z.record(z.string(), z.unknown()).parse(input ?? {});
26488
+ }
26489
+ /**
26490
+ * Manually start a workflow run from the dashboard. Validates the input against
26491
+ * the active deploy's request schema, creates a pending run, and enqueues it on
26492
+ * the project's queue (drained by the project runtime worker). Returns the run id.
26493
+ */
26494
+ const handler$62 = async (c) => {
26495
+ const { organizationId } = c.get("organization");
26496
+ const workflowId = c.req.param("workflowId") ?? "";
26497
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26498
+ const resolved = await resolveWorkflow(c, workflowId);
26499
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26500
+ const { row, projectId } = resolved;
26501
+ const workflowEntry = (await loadActiveManifest(projectId))?.entries.find((entry) => entry.kind === "workflow" && entry.slug === row.slug);
26502
+ if (!workflowEntry || workflowEntry.kind !== "workflow") return c.json(ErrorResponseSchema.parse({ error: "Workflow not deployed" }), 404);
26503
+ let body = {};
26504
+ if ((c.req.header("content-type") ?? "").includes("application/json")) try {
26505
+ body = await c.req.json();
26506
+ } catch {
26507
+ return c.json(ErrorResponseSchema.parse({ error: "Invalid JSON body" }), 400);
26508
+ }
26509
+ const organization = await selectOrganizationById(organizationId);
26510
+ if (!organization) return c.json(ErrorResponseSchema.parse({ error: "Organization not found" }), 404);
26511
+ const userId = c.get("user").id;
26512
+ try {
26513
+ const runId = await runWithProjectScope(projectId, async () => {
26514
+ const scheduler = await getProjectScheduler(organization, projectId);
26515
+ return enqueueWorkflowRunByKey({
26516
+ workflowKey: row.slug,
26517
+ input: body,
26518
+ jobQueue: scheduler,
26519
+ parseInput: (value) => parseRunInput(workflowEntry.requestSchema, value),
26520
+ ranByUserId: userId
26521
+ });
26522
+ });
26523
+ return c.json({ runId }, 202);
26524
+ } catch (error) {
26525
+ if (error instanceof ZodError) return c.json(validationErrorResponse(error, "Invalid workflow input"), 400);
26526
+ throw error;
26527
+ }
26528
+ };
26529
+ //#endregion
26530
+ //#region src/routes/account/workflows/[workflowId]/runs/GET.ts
26531
+ const handler$61 = async (c) => {
26532
+ const workflowId = c.req.param("workflowId") ?? "";
26533
+ if (!workflowId.trim()) return c.json(ErrorResponseSchema.parse({ error: "Invalid workflow id" }), 400);
26534
+ const resolved = await resolveWorkflow(c, workflowId);
26535
+ if (!resolved) return c.json(ErrorResponseSchema.parse({ error: "Workflow not found" }), 404);
26536
+ const { row, projectId } = resolved;
26537
+ const scope = listScope(c, projectListScope(accessContext(c)));
26538
+ if (await resolveListProjectIds(c, scope, projectId) === "empty") return c.json(HistoryRunListResponseSchema.parse([]));
26539
+ const runs = await listHistoryRuns({
26540
+ kind: "workflow",
26541
+ projectIds: [projectId],
26542
+ workflow: {
26543
+ projectId,
26544
+ slug: row.slug
26545
+ }
26546
+ });
26547
+ const { organizationId } = c.get("organization");
26548
+ const projects = await selectProjectsByOrganizationId(organizationId, { grantedProjectIds: await grantedProjectIds(c, scope) });
26549
+ const projectNameById = new Map(projects.map((project) => [project.id, project.name]));
26550
+ return c.json(HistoryRunListResponseSchema.parse(await enrichHistoryRuns(runs, projectNameById)));
26551
+ };
26552
+ //#endregion
25582
26553
  //#region src/routes/account/workflows/runs/[runId]/cancel/POST.ts
25583
26554
  const handler$60 = (c) => cancelHistoryRun(c, "workflow", cancelWorkflowRun);
25584
26555
  //#endregion
25585
26556
  //#region src/routes/account/resources/skills.ts
25586
26557
  function toSkillSummary(row) {
26558
+ const name = row.name?.trim() || titleCaseKey(row.slug);
25587
26559
  return SkillSummarySchema.parse({
25588
26560
  id: row.id,
25589
26561
  slug: row.slug,
25590
- name: row.name?.trim() || titleCaseKey(row.slug),
25591
- description: row.description ?? void 0,
26562
+ name,
26563
+ description: row.description?.trim() || name,
25592
26564
  projectId: row.projectId,
25593
26565
  updatedAt: row.updatedAt.toISOString(),
25594
26566
  sourcePath: row.moduleFile
@@ -27406,22 +28378,22 @@ function mountAccountRoutes(options) {
27406
28378
  const requireProjectManageMembers = authorize(projectActions.manageMembers);
27407
28379
  const requireInvitableProjectRole = authorizePayload(InviteProjectMembersRequestSchema, ({ c, ctx, body }) => canInviteToProject(ctx, { invitePermission: getProjectInvitePermission(c) }, body.role));
27408
28380
  const requireOrgParam = requireOrganizationParam();
27409
- account.get("/organizations", handler$78);
27410
- account.get("/organizations/slug-available", handler$77);
28381
+ account.get("/organizations", handler$86);
28382
+ account.get("/organizations/slug-available", handler$85);
27411
28383
  account.post("/organizations", createOrganizationHandler(options));
27412
- account.get("/organizations/:organizationId", requireOrgParam, handler$76);
27413
- account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$75);
27414
- account.get("/organizations/:organizationId/branding", requireOrgParam, handler$74);
27415
- account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$73);
27416
- account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$72);
28384
+ account.get("/organizations/:organizationId", requireOrgParam, handler$84);
28385
+ account.patch("/organizations/:organizationId", requireOrgParam, requireOrgUpdate, handler$83);
28386
+ account.get("/organizations/:organizationId/branding", requireOrgParam, handler$82);
28387
+ account.patch("/organizations/:organizationId/branding", requireOrgParam, requireOrgUpdate, handler$81);
28388
+ account.post("/organizations/:organizationId/branding/logo/presign", requireOrgParam, requireOrgUpdate, handler$80);
27417
28389
  account.get("/invitations", handler$17);
27418
28390
  account.post("/invitations/:invitationId/accept", handler$16);
27419
28391
  account.post("/invitations/:invitationId/decline", handler$15);
27420
- account.get("/users/me/avatar", handler$83);
27421
- account.post("/users/me/avatar/presign", handler$82);
27422
- account.patch("/users/me/avatar", handler$81);
27423
- account.get("/users/me/preferences", handler$80);
27424
- account.patch("/users/me/preferences", handler$79);
28392
+ account.get("/users/me/avatar", handler$91);
28393
+ account.post("/users/me/avatar/presign", handler$90);
28394
+ account.patch("/users/me/avatar", handler$89);
28395
+ account.get("/users/me/preferences", handler$88);
28396
+ account.patch("/users/me/preferences", handler$87);
27425
28397
  const withOrgDb = withOrganizationProjectDatabase();
27426
28398
  orgScoped.get("/apps", handler$14);
27427
28399
  orgScoped.get("/apps/slug-available", handler$7);
@@ -27439,14 +28411,22 @@ function mountAccountRoutes(options) {
27439
28411
  orgScoped.get("/api-keys", handler$5);
27440
28412
  orgScoped.post("/api-keys", requireApiKeyCreate, handler$4);
27441
28413
  orgScoped.delete("/api-keys/:apiKeyId", handler$3);
27442
- orgScoped.get("/agents", withOrgDb, handler$69);
27443
- orgScoped.get("/agents/:agentId", withOrgDb, handler$68);
27444
- orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$67);
27445
- orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$66);
27446
- orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, handler$65);
27447
- orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, handler$64);
27448
- orgScoped.get("/workflows", withOrgDb, handler$62);
27449
- orgScoped.get("/workflows/:workflowId", withOrgDb, handler$61);
28414
+ orgScoped.get("/agents", withOrgDb, handler$77);
28415
+ orgScoped.get("/agents/:agentId", withOrgDb, handler$76);
28416
+ orgScoped.get("/agents/:agentId/memory/files", withOrgDb, handler$75);
28417
+ orgScoped.get("/agents/:agentId/memory/files/content", withOrgDb, handler$74);
28418
+ orgScoped.get("/agents/:agentId/workspace/files", withOrgDb, handler$73);
28419
+ orgScoped.get("/agents/:agentId/workspace/files/content", withOrgDb, handler$72);
28420
+ orgScoped.get("/workflows", withOrgDb, handler$70);
28421
+ orgScoped.get("/workflows/:workflowId", withOrgDb, handler$69);
28422
+ orgScoped.get("/workflows/:workflowId/canvas", withOrgDb, handler$68);
28423
+ orgScoped.get("/workflows/:workflowId/canvas/credentials", withOrgDb, handler$67);
28424
+ orgScoped.get("/workflows/:workflowId/canvas/runs/:runId", withOrgDb, handler$66);
28425
+ orgScoped.get("/workflows/:workflowId/overview", withOrgDb, handler$65);
28426
+ orgScoped.get("/workflows/:workflowId/runs", withOrgDb, handler$61);
28427
+ orgScoped.get("/workflows/:workflowId/run-inputs", withOrgDb, handler$64);
28428
+ orgScoped.put("/workflows/:workflowId/run-inputs", withOrgDb, handler$63);
28429
+ orgScoped.post("/workflows/:workflowId/run", withOrgDb, handler$62);
27450
28430
  orgScoped.get("/skills", withOrgDb, handler$59);
27451
28431
  orgScoped.get("/skills/:skillId", withOrgDb, handler$58);
27452
28432
  orgScoped.get("/triggers", withOrgDb, handler$57);
@@ -27456,10 +28436,10 @@ function mountAccountRoutes(options) {
27456
28436
  orgScoped.get("/triggers/:triggerId/overview", withOrgDb, handler$53);
27457
28437
  orgScoped.patch("/triggers/:triggerId/attachments/:attachmentId", withOrgDb, handler$52);
27458
28438
  orgScoped.get("/recents", withOrgDb, handler$51);
27459
- orgScoped.get("/history", withOrgDb, handler$71);
27460
- orgScoped.get("/history/:runId", withOrgDb, handler$70);
28439
+ orgScoped.get("/history", withOrgDb, handler$79);
28440
+ orgScoped.get("/history/:runId", withOrgDb, handler$78);
27461
28441
  orgScoped.post("/workflows/runs/:runId/cancel", withOrgDb, handler$60);
27462
- orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$63);
28442
+ orgScoped.post("/agents/sessions/:sessionId/cancel", withOrgDb, handler$71);
27463
28443
  orgScoped.get("/credentials", withOrgDb, handler$25);
27464
28444
  orgScoped.post("/credentials", withOrgDb, handler$24);
27465
28445
  orgScoped.get("/credentials/:credentialId", withOrgDb, (c, next) => c.req.param("credentialId") === "instances" ? next() : handler$23(c, next));
@@ -27883,4 +28863,4 @@ async function startPlatformServer(platformConfig, hooks = {}) {
27883
28863
  //#endregion
27884
28864
  export { r1 as S, o as _, c as a, b$1 as b, a$1 as c, c$1 as d, r as f, e as g, u as h, n$1 as i, d$1 as l, b as m, n, p as o, r$1 as p, i as r, x as s, startPlatformServer as t, x$1 as u, r$3 as v, I1 as x, h as y };
27885
28865
 
27886
- //# sourceMappingURL=start-Bkcu3Xyf.mjs.map
28866
+ //# sourceMappingURL=start-BopA4OXE.mjs.map