@keystrokehq/platform 0.1.89 → 0.1.92

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 (295) hide show
  1. package/dist/{awk2-LA3USKJP-DooaSE0f.cjs → awk2-LA3USKJP-pKmGobcZ.cjs} +2 -2
  2. package/dist/{awk2-LA3USKJP-DooaSE0f.cjs.map → awk2-LA3USKJP-pKmGobcZ.cjs.map} +1 -1
  3. package/dist/{awk2-LA3USKJP-BrOJVMnW.mjs → awk2-LA3USKJP-pnoNftT8.mjs} +2 -2
  4. package/dist/{awk2-LA3USKJP-BrOJVMnW.mjs.map → awk2-LA3USKJP-pnoNftT8.mjs.map} +1 -1
  5. package/dist/{base64-C2AIWVNC-B6d_XRzq.cjs → base64-C2AIWVNC-CrtpD1na.cjs} +2 -2
  6. package/dist/{base64-C2AIWVNC-B6d_XRzq.cjs.map → base64-C2AIWVNC-CrtpD1na.cjs.map} +1 -1
  7. package/dist/{base64-C2AIWVNC-BdpVvQCG.mjs → base64-C2AIWVNC-CyAyrmOE.mjs} +2 -2
  8. package/dist/{base64-C2AIWVNC-BdpVvQCG.mjs.map → base64-C2AIWVNC-CyAyrmOE.mjs.map} +1 -1
  9. package/dist/{bash-YZ33HQZQ-Cb3XYO9_.mjs → bash-YZ33HQZQ-Bft3qmnm.mjs} +2 -2
  10. package/dist/{bash-YZ33HQZQ-Cb3XYO9_.mjs.map → bash-YZ33HQZQ-Bft3qmnm.mjs.map} +1 -1
  11. package/dist/{bash-YZ33HQZQ-pzSUz2vh.cjs → bash-YZ33HQZQ-DLA5dK37.cjs} +2 -2
  12. package/dist/{bash-YZ33HQZQ-pzSUz2vh.cjs.map → bash-YZ33HQZQ-DLA5dK37.cjs.map} +1 -1
  13. package/dist/{cat-TSFMZVYS-DXk7vabW.cjs → cat-TSFMZVYS-BaKHr4U0.cjs} +3 -3
  14. package/dist/{cat-TSFMZVYS-DXk7vabW.cjs.map → cat-TSFMZVYS-BaKHr4U0.cjs.map} +1 -1
  15. package/dist/{cat-TSFMZVYS-DHNG8vxH.mjs → cat-TSFMZVYS-CblTQ5QR.mjs} +3 -3
  16. package/dist/{cat-TSFMZVYS-DHNG8vxH.mjs.map → cat-TSFMZVYS-CblTQ5QR.mjs.map} +1 -1
  17. package/dist/{chunk-5H5SCKJM-BOddIanm.cjs → chunk-5H5SCKJM-J5-RMqlK.cjs} +2 -2
  18. package/dist/{chunk-5H5SCKJM-BOddIanm.cjs.map → chunk-5H5SCKJM-J5-RMqlK.cjs.map} +1 -1
  19. package/dist/{chunk-5H5SCKJM-DoVM8JRZ.mjs → chunk-5H5SCKJM-gg7VwICJ.mjs} +2 -2
  20. package/dist/{chunk-5H5SCKJM-DoVM8JRZ.mjs.map → chunk-5H5SCKJM-gg7VwICJ.mjs.map} +1 -1
  21. package/dist/{chunk-AQ6FYS2X-C_ZJqqvV.cjs → chunk-AQ6FYS2X-BTQ2ZWeh.cjs} +2 -2
  22. package/dist/{chunk-AQ6FYS2X-C_ZJqqvV.cjs.map → chunk-AQ6FYS2X-BTQ2ZWeh.cjs.map} +1 -1
  23. package/dist/{chunk-AQ6FYS2X-B2mPI2jw.mjs → chunk-AQ6FYS2X-CrZWHyzD.mjs} +2 -2
  24. package/dist/{chunk-AQ6FYS2X-B2mPI2jw.mjs.map → chunk-AQ6FYS2X-CrZWHyzD.mjs.map} +1 -1
  25. package/dist/{chunk-CHFEPBH4-BTyz0GV1.mjs → chunk-CHFEPBH4-CINsrE8W.mjs} +2 -2
  26. package/dist/{chunk-CHFEPBH4-BTyz0GV1.mjs.map → chunk-CHFEPBH4-CINsrE8W.mjs.map} +1 -1
  27. package/dist/{chunk-CHFEPBH4-BxZrXD9Q.cjs → chunk-CHFEPBH4-CPiu5G3a.cjs} +2 -2
  28. package/dist/{chunk-CHFEPBH4-BxZrXD9Q.cjs.map → chunk-CHFEPBH4-CPiu5G3a.cjs.map} +1 -1
  29. package/dist/{chunk-EBAPSGAO-gM9UMpYJ.mjs → chunk-EBAPSGAO-C93v3qzT.mjs} +2 -2
  30. package/dist/{chunk-EBAPSGAO-gM9UMpYJ.mjs.map → chunk-EBAPSGAO-C93v3qzT.mjs.map} +1 -1
  31. package/dist/{chunk-EBAPSGAO-Dl0RMM9_.cjs → chunk-EBAPSGAO-DZoiCbGH.cjs} +2 -2
  32. package/dist/{chunk-EBAPSGAO-Dl0RMM9_.cjs.map → chunk-EBAPSGAO-DZoiCbGH.cjs.map} +1 -1
  33. package/dist/{chunk-LEKBROJD-B3mM5xCR.mjs → chunk-LEKBROJD-BuX8Z517.mjs} +2 -2
  34. package/dist/{chunk-LEKBROJD-B3mM5xCR.mjs.map → chunk-LEKBROJD-BuX8Z517.mjs.map} +1 -1
  35. package/dist/{chunk-LEKBROJD-c0PVLang.cjs → chunk-LEKBROJD-hm07oWvp.cjs} +2 -2
  36. package/dist/{chunk-LEKBROJD-c0PVLang.cjs.map → chunk-LEKBROJD-hm07oWvp.cjs.map} +1 -1
  37. package/dist/{chunk-VPADYNBD-Bhw5Z8ZC.mjs → chunk-VPADYNBD-BwKY-5Xk.mjs} +2 -2
  38. package/dist/{chunk-VPADYNBD-Bhw5Z8ZC.mjs.map → chunk-VPADYNBD-BwKY-5Xk.mjs.map} +1 -1
  39. package/dist/{chunk-VPADYNBD-gKvOtbeQ.cjs → chunk-VPADYNBD-ZJpUxqq9.cjs} +2 -2
  40. package/dist/{chunk-VPADYNBD-gKvOtbeQ.cjs.map → chunk-VPADYNBD-ZJpUxqq9.cjs.map} +1 -1
  41. package/dist/{chunk-YCLFEX4T-C38uYpk5.cjs → chunk-YCLFEX4T-BmQTDw1Y.cjs} +2 -2
  42. package/dist/{chunk-YCLFEX4T-C38uYpk5.cjs.map → chunk-YCLFEX4T-BmQTDw1Y.cjs.map} +1 -1
  43. package/dist/{chunk-YCLFEX4T-BlgBu5U6.mjs → chunk-YCLFEX4T-DvGVdefs.mjs} +2 -2
  44. package/dist/{chunk-YCLFEX4T-BlgBu5U6.mjs.map → chunk-YCLFEX4T-DvGVdefs.mjs.map} +1 -1
  45. package/dist/{column-XT6UFXNQ-Cy-XZPg8.mjs → column-XT6UFXNQ-CEthufNl.mjs} +2 -2
  46. package/dist/{column-XT6UFXNQ-Cy-XZPg8.mjs.map → column-XT6UFXNQ-CEthufNl.mjs.map} +1 -1
  47. package/dist/{column-XT6UFXNQ-CsS5ibw9.cjs → column-XT6UFXNQ-tddqJ9Kg.cjs} +2 -2
  48. package/dist/{column-XT6UFXNQ-CsS5ibw9.cjs.map → column-XT6UFXNQ-tddqJ9Kg.cjs.map} +1 -1
  49. package/dist/{comm-VV2LDX2J-BDMZTVrS.mjs → comm-VV2LDX2J-BpdAYzr_.mjs} +2 -2
  50. package/dist/{comm-VV2LDX2J-BDMZTVrS.mjs.map → comm-VV2LDX2J-BpdAYzr_.mjs.map} +1 -1
  51. package/dist/{comm-VV2LDX2J-sYGNzb6Z.cjs → comm-VV2LDX2J-D8M6JDGH.cjs} +2 -2
  52. package/dist/{comm-VV2LDX2J-sYGNzb6Z.cjs.map → comm-VV2LDX2J-D8M6JDGH.cjs.map} +1 -1
  53. package/dist/config.cjs +1 -1
  54. package/dist/config.mjs +1 -1
  55. package/dist/{cp-BISAAS7A-0CyhG8QG.cjs → cp-BISAAS7A-BO2reDJf.cjs} +2 -2
  56. package/dist/{cp-BISAAS7A-0CyhG8QG.cjs.map → cp-BISAAS7A-BO2reDJf.cjs.map} +1 -1
  57. package/dist/{cp-BISAAS7A-Dp6w8p3Z.mjs → cp-BISAAS7A-Bgk2QUcq.mjs} +2 -2
  58. package/dist/{cp-BISAAS7A-Dp6w8p3Z.mjs.map → cp-BISAAS7A-Bgk2QUcq.mjs.map} +1 -1
  59. package/dist/{cut-OKARJCCV-DEgfPRDw.mjs → cut-OKARJCCV-DPm1czVO.mjs} +3 -3
  60. package/dist/{cut-OKARJCCV-DEgfPRDw.mjs.map → cut-OKARJCCV-DPm1czVO.mjs.map} +1 -1
  61. package/dist/{cut-OKARJCCV-QbOPZAW_.cjs → cut-OKARJCCV-DaBpPPf8.cjs} +3 -3
  62. package/dist/{cut-OKARJCCV-QbOPZAW_.cjs.map → cut-OKARJCCV-DaBpPPf8.cjs.map} +1 -1
  63. package/dist/{diff-MWJFIG7X-C7MR2MXV.mjs → diff-MWJFIG7X-DZWE4by5.mjs} +2 -2
  64. package/dist/{diff-MWJFIG7X-C7MR2MXV.mjs.map → diff-MWJFIG7X-DZWE4by5.mjs.map} +1 -1
  65. package/dist/{diff-MWJFIG7X-CxO5o3uV.cjs → diff-MWJFIG7X-sW58v-In.cjs} +2 -2
  66. package/dist/{diff-MWJFIG7X-CxO5o3uV.cjs.map → diff-MWJFIG7X-sW58v-In.cjs.map} +1 -1
  67. package/dist/{dist-lnU7GO-O.mjs → dist-B_VrBT_r.mjs} +92 -25
  68. package/dist/dist-B_VrBT_r.mjs.map +1 -0
  69. package/dist/dist-BdxWQmKK.mjs.map +1 -1
  70. package/dist/{dist-DXWcIK6r.cjs → dist-DCAFVLts.cjs} +97 -24
  71. package/dist/dist-DCAFVLts.cjs.map +1 -0
  72. package/dist/dist-QIg3f1DP.cjs.map +1 -1
  73. package/dist/{du-572XNP42-BV-U6uvT.mjs → du-572XNP42-CRWdTyWl.mjs} +2 -2
  74. package/dist/{du-572XNP42-BV-U6uvT.mjs.map → du-572XNP42-CRWdTyWl.mjs.map} +1 -1
  75. package/dist/{du-572XNP42-D9cDsTJc.cjs → du-572XNP42-CqHbkS7A.cjs} +2 -2
  76. package/dist/{du-572XNP42-D9cDsTJc.cjs.map → du-572XNP42-CqHbkS7A.cjs.map} +1 -1
  77. package/dist/{env-36M5BO7M-BLdYzA-I.mjs → env-36M5BO7M-B3hY6c1d.mjs} +2 -2
  78. package/dist/{env-36M5BO7M-BLdYzA-I.mjs.map → env-36M5BO7M-B3hY6c1d.mjs.map} +1 -1
  79. package/dist/{env-36M5BO7M-D__VNL1a.cjs → env-36M5BO7M-BJX6pRHi.cjs} +2 -2
  80. package/dist/{env-36M5BO7M-D__VNL1a.cjs.map → env-36M5BO7M-BJX6pRHi.cjs.map} +1 -1
  81. package/dist/{expand-JSPG6VOP-Cxyfhu-Y.mjs → expand-JSPG6VOP-C4ZcygSl.mjs} +2 -2
  82. package/dist/{expand-JSPG6VOP-Cxyfhu-Y.mjs.map → expand-JSPG6VOP-C4ZcygSl.mjs.map} +1 -1
  83. package/dist/{expand-JSPG6VOP--3QEqbQx.cjs → expand-JSPG6VOP-Dd-2L8yn.cjs} +2 -2
  84. package/dist/{expand-JSPG6VOP--3QEqbQx.cjs.map → expand-JSPG6VOP-Dd-2L8yn.cjs.map} +1 -1
  85. package/dist/{expr-5JAACS4X-SYYSyqw9.mjs → expr-5JAACS4X-Cxs0wDb3.mjs} +2 -2
  86. package/dist/{expr-5JAACS4X-SYYSyqw9.mjs.map → expr-5JAACS4X-Cxs0wDb3.mjs.map} +1 -1
  87. package/dist/{expr-5JAACS4X-BBP0fs9x.cjs → expr-5JAACS4X-DmKCLgI8.cjs} +2 -2
  88. package/dist/{expr-5JAACS4X-BBP0fs9x.cjs.map → expr-5JAACS4X-DmKCLgI8.cjs.map} +1 -1
  89. package/dist/{find-INTH3OLC-Cr35rkmV.mjs → find-INTH3OLC-BR7ZZKkF.mjs} +3 -3
  90. package/dist/{find-INTH3OLC-Cr35rkmV.mjs.map → find-INTH3OLC-BR7ZZKkF.mjs.map} +1 -1
  91. package/dist/{find-INTH3OLC-CZfaCvrt.cjs → find-INTH3OLC-C2Uc7scj.cjs} +3 -3
  92. package/dist/{find-INTH3OLC-CZfaCvrt.cjs.map → find-INTH3OLC-C2Uc7scj.cjs.map} +1 -1
  93. package/dist/{fold-4TQNYMSW-BzRrKNB9.cjs → fold-4TQNYMSW-BQ9ukqex.cjs} +2 -2
  94. package/dist/{fold-4TQNYMSW-BzRrKNB9.cjs.map → fold-4TQNYMSW-BQ9ukqex.cjs.map} +1 -1
  95. package/dist/{fold-4TQNYMSW-BO4s4vUL.mjs → fold-4TQNYMSW-DsDovqTl.mjs} +2 -2
  96. package/dist/{fold-4TQNYMSW-BO4s4vUL.mjs.map → fold-4TQNYMSW-DsDovqTl.mjs.map} +1 -1
  97. package/dist/{grep-V3LQVMRQ-Dk74sqlP.mjs → grep-V3LQVMRQ-BsgT3xzo.mjs} +4 -4
  98. package/dist/{grep-V3LQVMRQ-Dk74sqlP.mjs.map → grep-V3LQVMRQ-BsgT3xzo.mjs.map} +1 -1
  99. package/dist/{grep-V3LQVMRQ-pFoJNxuG.cjs → grep-V3LQVMRQ-ChT5D1RX.cjs} +4 -4
  100. package/dist/{grep-V3LQVMRQ-pFoJNxuG.cjs.map → grep-V3LQVMRQ-ChT5D1RX.cjs.map} +1 -1
  101. package/dist/{gzip-O5ASJAFY-BRN2UO9f.mjs → gzip-O5ASJAFY-ClxvbIo6.mjs} +2 -2
  102. package/dist/{gzip-O5ASJAFY-BRN2UO9f.mjs.map → gzip-O5ASJAFY-ClxvbIo6.mjs.map} +1 -1
  103. package/dist/{gzip-O5ASJAFY-BVG2ER1u.cjs → gzip-O5ASJAFY-DJOwjcpB.cjs} +2 -2
  104. package/dist/{gzip-O5ASJAFY-BVG2ER1u.cjs.map → gzip-O5ASJAFY-DJOwjcpB.cjs.map} +1 -1
  105. package/dist/{head-442HYESI-Cr4vUjZo.mjs → head-442HYESI-B1LlP95a.mjs} +2 -2
  106. package/dist/{head-442HYESI-Cr4vUjZo.mjs.map → head-442HYESI-B1LlP95a.mjs.map} +1 -1
  107. package/dist/{head-442HYESI-Cso1bzGG.cjs → head-442HYESI-CL9VIqkb.cjs} +2 -2
  108. package/dist/{head-442HYESI-Cso1bzGG.cjs.map → head-442HYESI-CL9VIqkb.cjs.map} +1 -1
  109. package/dist/{help-HZ6M2CKN-53-jdHf_.mjs → help-HZ6M2CKN-BjVXFW-f.mjs} +2 -2
  110. package/dist/{help-HZ6M2CKN-53-jdHf_.mjs.map → help-HZ6M2CKN-BjVXFW-f.mjs.map} +1 -1
  111. package/dist/{help-HZ6M2CKN-Cts_1YcS.cjs → help-HZ6M2CKN-CzUrqQB7.cjs} +2 -2
  112. package/dist/{help-HZ6M2CKN-Cts_1YcS.cjs.map → help-HZ6M2CKN-CzUrqQB7.cjs.map} +1 -1
  113. package/dist/{html-to-markdown-JW4MSQZO-wIbdJdg6.mjs → html-to-markdown-JW4MSQZO-BKOSSsyy.mjs} +3 -3
  114. package/dist/{html-to-markdown-JW4MSQZO-wIbdJdg6.mjs.map → html-to-markdown-JW4MSQZO-BKOSSsyy.mjs.map} +1 -1
  115. package/dist/{html-to-markdown-JW4MSQZO-BQNs7tTN.cjs → html-to-markdown-JW4MSQZO-TyAsgBnO.cjs} +2 -2
  116. package/dist/{html-to-markdown-JW4MSQZO-BQNs7tTN.cjs.map → html-to-markdown-JW4MSQZO-TyAsgBnO.cjs.map} +1 -1
  117. package/dist/{join-TBRGI3LQ-BtSbyYEn.mjs → join-TBRGI3LQ-CwgUaVoR.mjs} +2 -2
  118. package/dist/{join-TBRGI3LQ-BtSbyYEn.mjs.map → join-TBRGI3LQ-CwgUaVoR.mjs.map} +1 -1
  119. package/dist/{join-TBRGI3LQ-DcNQmOfW.cjs → join-TBRGI3LQ-JKyApOii.cjs} +2 -2
  120. package/dist/{join-TBRGI3LQ-DcNQmOfW.cjs.map → join-TBRGI3LQ-JKyApOii.cjs.map} +1 -1
  121. package/dist/{jq-4XLYLOS5-BZaKCWvT.cjs → jq-4XLYLOS5-D6TJiRje.cjs} +4 -4
  122. package/dist/{jq-4XLYLOS5-BZaKCWvT.cjs.map → jq-4XLYLOS5-D6TJiRje.cjs.map} +1 -1
  123. package/dist/{jq-4XLYLOS5-D5AOcEQ1.mjs → jq-4XLYLOS5-ZisFFv1P.mjs} +4 -4
  124. package/dist/{jq-4XLYLOS5-D5AOcEQ1.mjs.map → jq-4XLYLOS5-ZisFFv1P.mjs.map} +1 -1
  125. package/dist/{js-exec-N5KEZBH7-BPZSvRX_.cjs → js-exec-N5KEZBH7-BDEPJLK5.cjs} +3 -3
  126. package/dist/{js-exec-N5KEZBH7-BPZSvRX_.cjs.map → js-exec-N5KEZBH7-BDEPJLK5.cjs.map} +1 -1
  127. package/dist/{js-exec-N5KEZBH7-DR9awvO3.mjs → js-exec-N5KEZBH7-Dp6FRM8y.mjs} +3 -3
  128. package/dist/{js-exec-N5KEZBH7-DR9awvO3.mjs.map → js-exec-N5KEZBH7-Dp6FRM8y.mjs.map} +1 -1
  129. package/dist/{lib-BUqUrXFo.mjs → lib-Dsemc_Ik.mjs} +2 -2
  130. package/dist/{lib-BUqUrXFo.mjs.map → lib-Dsemc_Ik.mjs.map} +1 -1
  131. package/dist/{ln-4LGSXXGD-BO6hipTE.cjs → ln-4LGSXXGD-DCt-08KM.cjs} +2 -2
  132. package/dist/{ln-4LGSXXGD-BO6hipTE.cjs.map → ln-4LGSXXGD-DCt-08KM.cjs.map} +1 -1
  133. package/dist/{ln-4LGSXXGD-Dmbe160C.mjs → ln-4LGSXXGD-DbVtAqnH.mjs} +2 -2
  134. package/dist/{ln-4LGSXXGD-Dmbe160C.mjs.map → ln-4LGSXXGD-DbVtAqnH.mjs.map} +1 -1
  135. package/dist/{ls-ZJGQER7M-BUz_Fdvv.cjs → ls-ZJGQER7M-BQuAedIy.cjs} +2 -2
  136. package/dist/{ls-ZJGQER7M-BUz_Fdvv.cjs.map → ls-ZJGQER7M-BQuAedIy.cjs.map} +1 -1
  137. package/dist/{ls-ZJGQER7M-BRlp9SBJ.mjs → ls-ZJGQER7M-PRXSwGZZ.mjs} +2 -2
  138. package/dist/{ls-ZJGQER7M-BRlp9SBJ.mjs.map → ls-ZJGQER7M-PRXSwGZZ.mjs.map} +1 -1
  139. package/dist/{md5sum-SPU24VSG-CObeH38x.mjs → md5sum-SPU24VSG-CmmvMGPa.mjs} +3 -3
  140. package/dist/{md5sum-SPU24VSG-CObeH38x.mjs.map → md5sum-SPU24VSG-CmmvMGPa.mjs.map} +1 -1
  141. package/dist/{md5sum-SPU24VSG-B869_LjC.cjs → md5sum-SPU24VSG-xbLQd_LU.cjs} +3 -3
  142. package/dist/{md5sum-SPU24VSG-B869_LjC.cjs.map → md5sum-SPU24VSG-xbLQd_LU.cjs.map} +1 -1
  143. package/dist/{mkdir-MEPGZOB6-Cw1dg2iu.mjs → mkdir-MEPGZOB6-DB938M04.mjs} +2 -2
  144. package/dist/{mkdir-MEPGZOB6-Cw1dg2iu.mjs.map → mkdir-MEPGZOB6-DB938M04.mjs.map} +1 -1
  145. package/dist/{mkdir-MEPGZOB6-Cm8ymTjX.cjs → mkdir-MEPGZOB6-IHvBvQTL.cjs} +2 -2
  146. package/dist/{mkdir-MEPGZOB6-Cm8ymTjX.cjs.map → mkdir-MEPGZOB6-IHvBvQTL.cjs.map} +1 -1
  147. package/dist/{mv-W5BIQ646-Cpm-NInY.mjs → mv-W5BIQ646-B2XVmdN4.mjs} +2 -2
  148. package/dist/{mv-W5BIQ646-Cpm-NInY.mjs.map → mv-W5BIQ646-B2XVmdN4.mjs.map} +1 -1
  149. package/dist/{mv-W5BIQ646-5u7wnqJx.cjs → mv-W5BIQ646-CFwaJ3Xx.cjs} +2 -2
  150. package/dist/{mv-W5BIQ646-5u7wnqJx.cjs.map → mv-W5BIQ646-CFwaJ3Xx.cjs.map} +1 -1
  151. package/dist/{nl-WSDW7I4O-Cmxmw4mz.mjs → nl-WSDW7I4O-CRYsCXB7.mjs} +2 -2
  152. package/dist/{nl-WSDW7I4O-Cmxmw4mz.mjs.map → nl-WSDW7I4O-CRYsCXB7.mjs.map} +1 -1
  153. package/dist/{nl-WSDW7I4O-CtGL_tfR.cjs → nl-WSDW7I4O-FzZXRAwD.cjs} +2 -2
  154. package/dist/{nl-WSDW7I4O-CtGL_tfR.cjs.map → nl-WSDW7I4O-FzZXRAwD.cjs.map} +1 -1
  155. package/dist/{od-WOKFDJTP-9-Frojmg.mjs → od-WOKFDJTP-DVBJw76D.mjs} +2 -2
  156. package/dist/{od-WOKFDJTP-9-Frojmg.mjs.map → od-WOKFDJTP-DVBJw76D.mjs.map} +1 -1
  157. package/dist/{od-WOKFDJTP-DKRiAPkJ.cjs → od-WOKFDJTP-M80nAztL.cjs} +2 -2
  158. package/dist/{od-WOKFDJTP-DKRiAPkJ.cjs.map → od-WOKFDJTP-M80nAztL.cjs.map} +1 -1
  159. package/dist/{paste-7JC6S4DX-DLyDg0y3.cjs → paste-7JC6S4DX-DOPeey0W.cjs} +2 -2
  160. package/dist/{paste-7JC6S4DX-DLyDg0y3.cjs.map → paste-7JC6S4DX-DOPeey0W.cjs.map} +1 -1
  161. package/dist/{paste-7JC6S4DX-XEAhoYyI.mjs → paste-7JC6S4DX-q6d7adhi.mjs} +2 -2
  162. package/dist/{paste-7JC6S4DX-XEAhoYyI.mjs.map → paste-7JC6S4DX-q6d7adhi.mjs.map} +1 -1
  163. package/dist/{printf-TWGXF445-CPWsLoIF.mjs → printf-TWGXF445-BOz88v_H.mjs} +3 -3
  164. package/dist/{printf-TWGXF445-CPWsLoIF.mjs.map → printf-TWGXF445-BOz88v_H.mjs.map} +1 -1
  165. package/dist/{printf-TWGXF445-BB0OAcHV.cjs → printf-TWGXF445-BXve-Eiv.cjs} +2 -2
  166. package/dist/{printf-TWGXF445-BB0OAcHV.cjs.map → printf-TWGXF445-BXve-Eiv.cjs.map} +1 -1
  167. package/dist/{python3-POMOR4OA-CeeRiQlN.mjs → python3-POMOR4OA-DRta50Gp.mjs} +3 -3
  168. package/dist/{python3-POMOR4OA-CeeRiQlN.mjs.map → python3-POMOR4OA-DRta50Gp.mjs.map} +1 -1
  169. package/dist/{python3-POMOR4OA-CJL23Wvy.cjs → python3-POMOR4OA-__fmhnV2.cjs} +3 -3
  170. package/dist/{python3-POMOR4OA-CJL23Wvy.cjs.map → python3-POMOR4OA-__fmhnV2.cjs.map} +1 -1
  171. package/dist/{rev-5EHFX4EJ-2accTfuD.cjs → rev-5EHFX4EJ-CFFAX-eL.cjs} +2 -2
  172. package/dist/{rev-5EHFX4EJ-2accTfuD.cjs.map → rev-5EHFX4EJ-CFFAX-eL.cjs.map} +1 -1
  173. package/dist/{rev-5EHFX4EJ-ev3ppTR5.mjs → rev-5EHFX4EJ-DP28Z2tI.mjs} +2 -2
  174. package/dist/{rev-5EHFX4EJ-ev3ppTR5.mjs.map → rev-5EHFX4EJ-DP28Z2tI.mjs.map} +1 -1
  175. package/dist/{rg-S4FXYXWB-DWs8w6bl.mjs → rg-S4FXYXWB-Bawo1fot.mjs} +3 -3
  176. package/dist/{rg-S4FXYXWB-DWs8w6bl.mjs.map → rg-S4FXYXWB-Bawo1fot.mjs.map} +1 -1
  177. package/dist/{rg-S4FXYXWB-wLTEWfj6.cjs → rg-S4FXYXWB-DrdwsBhO.cjs} +3 -3
  178. package/dist/{rg-S4FXYXWB-wLTEWfj6.cjs.map → rg-S4FXYXWB-DrdwsBhO.cjs.map} +1 -1
  179. package/dist/{rm-SSGETQVQ-CCWr2-sA.cjs → rm-SSGETQVQ-BaWdfV2i.cjs} +2 -2
  180. package/dist/{rm-SSGETQVQ-CCWr2-sA.cjs.map → rm-SSGETQVQ-BaWdfV2i.cjs.map} +1 -1
  181. package/dist/{rm-SSGETQVQ-DrTCkIR-.mjs → rm-SSGETQVQ-C6EQ5XnR.mjs} +2 -2
  182. package/dist/{rm-SSGETQVQ-DrTCkIR-.mjs.map → rm-SSGETQVQ-C6EQ5XnR.mjs.map} +1 -1
  183. package/dist/{rmdir-OC4ZLPYA-CE_UL-UN.mjs → rmdir-OC4ZLPYA-COg4QKnN.mjs} +2 -2
  184. package/dist/{rmdir-OC4ZLPYA-CE_UL-UN.mjs.map → rmdir-OC4ZLPYA-COg4QKnN.mjs.map} +1 -1
  185. package/dist/{rmdir-OC4ZLPYA--kyBv7yW.cjs → rmdir-OC4ZLPYA-DK3A8POR.cjs} +2 -2
  186. package/dist/{rmdir-OC4ZLPYA--kyBv7yW.cjs.map → rmdir-OC4ZLPYA-DK3A8POR.cjs.map} +1 -1
  187. package/dist/run.cjs +1 -1
  188. package/dist/run.mjs +1 -1
  189. package/dist/{sed-S5UIK574-DFogVE5M.cjs → sed-S5UIK574-CQ1AnR3r.cjs} +2 -2
  190. package/dist/{sed-S5UIK574-DFogVE5M.cjs.map → sed-S5UIK574-CQ1AnR3r.cjs.map} +1 -1
  191. package/dist/{sed-S5UIK574-DJKlkN9t.mjs → sed-S5UIK574-P4wu0pe1.mjs} +2 -2
  192. package/dist/{sed-S5UIK574-DJKlkN9t.mjs.map → sed-S5UIK574-P4wu0pe1.mjs.map} +1 -1
  193. package/dist/{sha1sum-2PTOAFR6-gb3yYwdI.cjs → sha1sum-2PTOAFR6-BPLIR6an.cjs} +3 -3
  194. package/dist/{sha1sum-2PTOAFR6-gb3yYwdI.cjs.map → sha1sum-2PTOAFR6-BPLIR6an.cjs.map} +1 -1
  195. package/dist/{sha1sum-2PTOAFR6-Dt83QGu0.mjs → sha1sum-2PTOAFR6-jNQ-uyUw.mjs} +3 -3
  196. package/dist/{sha1sum-2PTOAFR6-Dt83QGu0.mjs.map → sha1sum-2PTOAFR6-jNQ-uyUw.mjs.map} +1 -1
  197. package/dist/{sha256sum-NS7D3IXX-PwjbH162.cjs → sha256sum-NS7D3IXX-Bvq-KnSV.cjs} +3 -3
  198. package/dist/{sha256sum-NS7D3IXX-PwjbH162.cjs.map → sha256sum-NS7D3IXX-Bvq-KnSV.cjs.map} +1 -1
  199. package/dist/{sha256sum-NS7D3IXX-CtJwtIJK.mjs → sha256sum-NS7D3IXX-DebIy64D.mjs} +3 -3
  200. package/dist/{sha256sum-NS7D3IXX-CtJwtIJK.mjs.map → sha256sum-NS7D3IXX-DebIy64D.mjs.map} +1 -1
  201. package/dist/{sleep-X22JJINO-BlJEmP07.mjs → sleep-X22JJINO-BZNoBeaB.mjs} +2 -2
  202. package/dist/{sleep-X22JJINO-BlJEmP07.mjs.map → sleep-X22JJINO-BZNoBeaB.mjs.map} +1 -1
  203. package/dist/{sleep-X22JJINO-CFfw4Hkc.cjs → sleep-X22JJINO-DP1z72-Q.cjs} +2 -2
  204. package/dist/{sleep-X22JJINO-CFfw4Hkc.cjs.map → sleep-X22JJINO-DP1z72-Q.cjs.map} +1 -1
  205. package/dist/{sort-SW2YEO5B-CnVEW3WP.cjs → sort-SW2YEO5B-BWZaGhuw.cjs} +3 -3
  206. package/dist/{sort-SW2YEO5B-CnVEW3WP.cjs.map → sort-SW2YEO5B-BWZaGhuw.cjs.map} +1 -1
  207. package/dist/{sort-SW2YEO5B-DQR03TsT.mjs → sort-SW2YEO5B-DewIJ9_h.mjs} +3 -3
  208. package/dist/{sort-SW2YEO5B-DQR03TsT.mjs.map → sort-SW2YEO5B-DewIJ9_h.mjs.map} +1 -1
  209. package/dist/{split-4KKZZXXE-BPg_-zUa.cjs → split-4KKZZXXE-Bhr_rhRz.cjs} +2 -2
  210. package/dist/{split-4KKZZXXE-BPg_-zUa.cjs.map → split-4KKZZXXE-Bhr_rhRz.cjs.map} +1 -1
  211. package/dist/{split-4KKZZXXE-BWscZaNr.mjs → split-4KKZZXXE-ciJXyT15.mjs} +2 -2
  212. package/dist/{split-4KKZZXXE-BWscZaNr.mjs.map → split-4KKZZXXE-ciJXyT15.mjs.map} +1 -1
  213. package/dist/{sqlite3-CGOEFJAO-M0jaZ2uV.cjs → sqlite3-CGOEFJAO-CdyK5NF3.cjs} +2 -2
  214. package/dist/{sqlite3-CGOEFJAO-M0jaZ2uV.cjs.map → sqlite3-CGOEFJAO-CdyK5NF3.cjs.map} +1 -1
  215. package/dist/{sqlite3-CGOEFJAO-BHanls9z.mjs → sqlite3-CGOEFJAO-K8u_Ru5X.mjs} +3 -3
  216. package/dist/{sqlite3-CGOEFJAO-BHanls9z.mjs.map → sqlite3-CGOEFJAO-K8u_Ru5X.mjs.map} +1 -1
  217. package/dist/{start-cGM9WLRm.mjs → start-DCnxLHI5.mjs} +416 -88
  218. package/dist/start-DCnxLHI5.mjs.map +1 -0
  219. package/dist/{start-BaCZfQVN.cjs → start-y3y8zgSv.cjs} +415 -87
  220. package/dist/start-y3y8zgSv.cjs.map +1 -0
  221. package/dist/start.cjs +1 -1
  222. package/dist/start.mjs +1 -1
  223. package/dist/{strings-6WDHLGMX-5BkwdbE6.cjs → strings-6WDHLGMX-Xt8Gbe8-.cjs} +2 -2
  224. package/dist/{strings-6WDHLGMX-5BkwdbE6.cjs.map → strings-6WDHLGMX-Xt8Gbe8-.cjs.map} +1 -1
  225. package/dist/{strings-6WDHLGMX-CXzWzuwm.mjs → strings-6WDHLGMX-lZect78u.mjs} +2 -2
  226. package/dist/{strings-6WDHLGMX-CXzWzuwm.mjs.map → strings-6WDHLGMX-lZect78u.mjs.map} +1 -1
  227. package/dist/{tac-2STMMJYW-DTyFoSgk.cjs → tac-2STMMJYW-6DSfXKEM.cjs} +2 -2
  228. package/dist/{tac-2STMMJYW-DTyFoSgk.cjs.map → tac-2STMMJYW-6DSfXKEM.cjs.map} +1 -1
  229. package/dist/{tac-2STMMJYW-Bh3Q5HWG.mjs → tac-2STMMJYW-CYopDu0z.mjs} +2 -2
  230. package/dist/{tac-2STMMJYW-Bh3Q5HWG.mjs.map → tac-2STMMJYW-CYopDu0z.mjs.map} +1 -1
  231. package/dist/{tail-R4PCA2C4--q57VrHP.mjs → tail-R4PCA2C4-05tRE3pO.mjs} +2 -2
  232. package/dist/{tail-R4PCA2C4--q57VrHP.mjs.map → tail-R4PCA2C4-05tRE3pO.mjs.map} +1 -1
  233. package/dist/{tail-R4PCA2C4-CwEo6jOP.cjs → tail-R4PCA2C4-B8zVnbJv.cjs} +2 -2
  234. package/dist/{tail-R4PCA2C4-CwEo6jOP.cjs.map → tail-R4PCA2C4-B8zVnbJv.cjs.map} +1 -1
  235. package/dist/{tar-STHHZTZ6-DJj9jLmb.cjs → tar-STHHZTZ6-BF9uOAeY.cjs} +2 -2
  236. package/dist/{tar-STHHZTZ6-DJj9jLmb.cjs.map → tar-STHHZTZ6-BF9uOAeY.cjs.map} +1 -1
  237. package/dist/{tar-STHHZTZ6-DHygHVmD.mjs → tar-STHHZTZ6-BGc4fGMj.mjs} +4 -4
  238. package/dist/{tar-STHHZTZ6-DHygHVmD.mjs.map → tar-STHHZTZ6-BGc4fGMj.mjs.map} +1 -1
  239. package/dist/{tee-YUZ2FKCJ-BSQlUfHz.mjs → tee-YUZ2FKCJ-CZGSWOLF.mjs} +2 -2
  240. package/dist/{tee-YUZ2FKCJ-BSQlUfHz.mjs.map → tee-YUZ2FKCJ-CZGSWOLF.mjs.map} +1 -1
  241. package/dist/{tee-YUZ2FKCJ-B1F6iNhB.cjs → tee-YUZ2FKCJ-DXc_xwaw.cjs} +2 -2
  242. package/dist/{tee-YUZ2FKCJ-B1F6iNhB.cjs.map → tee-YUZ2FKCJ-DXc_xwaw.cjs.map} +1 -1
  243. package/dist/{time-D4LNBSWX-CP3RRaPJ.mjs → time-D4LNBSWX-C5yYBJS0.mjs} +2 -2
  244. package/dist/{time-D4LNBSWX-CP3RRaPJ.mjs.map → time-D4LNBSWX-C5yYBJS0.mjs.map} +1 -1
  245. package/dist/{time-D4LNBSWX-BU85ohpD.cjs → time-D4LNBSWX-CQI3pEaI.cjs} +2 -2
  246. package/dist/{time-D4LNBSWX-BU85ohpD.cjs.map → time-D4LNBSWX-CQI3pEaI.cjs.map} +1 -1
  247. package/dist/{timeout-YDCRSLPQ-BmOUKWdW.cjs → timeout-YDCRSLPQ-C57Y8ySP.cjs} +2 -2
  248. package/dist/{timeout-YDCRSLPQ-BmOUKWdW.cjs.map → timeout-YDCRSLPQ-C57Y8ySP.cjs.map} +1 -1
  249. package/dist/{timeout-YDCRSLPQ-B93yB5Us.mjs → timeout-YDCRSLPQ-CsT6X_C0.mjs} +2 -2
  250. package/dist/{timeout-YDCRSLPQ-B93yB5Us.mjs.map → timeout-YDCRSLPQ-CsT6X_C0.mjs.map} +1 -1
  251. package/dist/{touch-UA33VN3N-H_Pi6PAf.cjs → touch-UA33VN3N-Cyx5v5-2.cjs} +2 -2
  252. package/dist/{touch-UA33VN3N-H_Pi6PAf.cjs.map → touch-UA33VN3N-Cyx5v5-2.cjs.map} +1 -1
  253. package/dist/{touch-UA33VN3N-B0lHRylM.mjs → touch-UA33VN3N-DYslBCYn.mjs} +2 -2
  254. package/dist/{touch-UA33VN3N-B0lHRylM.mjs.map → touch-UA33VN3N-DYslBCYn.mjs.map} +1 -1
  255. package/dist/{tr-36LHWFRQ-BlhpRWz1.mjs → tr-36LHWFRQ-C57tK13M.mjs} +2 -2
  256. package/dist/{tr-36LHWFRQ-BlhpRWz1.mjs.map → tr-36LHWFRQ-C57tK13M.mjs.map} +1 -1
  257. package/dist/{tr-36LHWFRQ-BIHb14IT.cjs → tr-36LHWFRQ-CJ7ZK1Cv.cjs} +2 -2
  258. package/dist/{tr-36LHWFRQ-BIHb14IT.cjs.map → tr-36LHWFRQ-CJ7ZK1Cv.cjs.map} +1 -1
  259. package/dist/{tree-YLD52CNT-D3sTfr7B.mjs → tree-YLD52CNT-C01jI2xZ.mjs} +2 -2
  260. package/dist/{tree-YLD52CNT-D3sTfr7B.mjs.map → tree-YLD52CNT-C01jI2xZ.mjs.map} +1 -1
  261. package/dist/{tree-YLD52CNT-2sThOTan.cjs → tree-YLD52CNT-C0new1hw.cjs} +2 -2
  262. package/dist/{tree-YLD52CNT-2sThOTan.cjs.map → tree-YLD52CNT-C0new1hw.cjs.map} +1 -1
  263. package/dist/{unexpand-CADSA4VO-3Hl_LfrA.mjs → unexpand-CADSA4VO-DgiJnv3D.mjs} +2 -2
  264. package/dist/{unexpand-CADSA4VO-3Hl_LfrA.mjs.map → unexpand-CADSA4VO-DgiJnv3D.mjs.map} +1 -1
  265. package/dist/{unexpand-CADSA4VO-WHauyp2a.cjs → unexpand-CADSA4VO-KAVxaOsW.cjs} +2 -2
  266. package/dist/{unexpand-CADSA4VO-WHauyp2a.cjs.map → unexpand-CADSA4VO-KAVxaOsW.cjs.map} +1 -1
  267. package/dist/{uniq-XSIZR6PB-DmxSoY3E.mjs → uniq-XSIZR6PB-C05c3Clm.mjs} +3 -3
  268. package/dist/{uniq-XSIZR6PB-DmxSoY3E.mjs.map → uniq-XSIZR6PB-C05c3Clm.mjs.map} +1 -1
  269. package/dist/{uniq-XSIZR6PB-BEbWfmC8.cjs → uniq-XSIZR6PB-a2hQnbkY.cjs} +3 -3
  270. package/dist/{uniq-XSIZR6PB-BEbWfmC8.cjs.map → uniq-XSIZR6PB-a2hQnbkY.cjs.map} +1 -1
  271. package/dist/{wc-LF7NU4LA-BmTM6zi_.mjs → wc-LF7NU4LA-D_LGPXUP.mjs} +3 -3
  272. package/dist/{wc-LF7NU4LA-BmTM6zi_.mjs.map → wc-LF7NU4LA-D_LGPXUP.mjs.map} +1 -1
  273. package/dist/{wc-LF7NU4LA-H_xphL2p.cjs → wc-LF7NU4LA-UNORxUJr.cjs} +3 -3
  274. package/dist/{wc-LF7NU4LA-H_xphL2p.cjs.map → wc-LF7NU4LA-UNORxUJr.cjs.map} +1 -1
  275. package/dist/{xan-Y6WF3IRG-Cjrd8Neo.mjs → xan-Y6WF3IRG-B_ysBBaD.mjs} +6 -6
  276. package/dist/{xan-Y6WF3IRG-Cjrd8Neo.mjs.map → xan-Y6WF3IRG-B_ysBBaD.mjs.map} +1 -1
  277. package/dist/{xan-Y6WF3IRG-CZ2-00N1.cjs → xan-Y6WF3IRG-DvYlOlaJ.cjs} +6 -6
  278. package/dist/{xan-Y6WF3IRG-CZ2-00N1.cjs.map → xan-Y6WF3IRG-DvYlOlaJ.cjs.map} +1 -1
  279. package/dist/{xan-view-HDVKHFC2-DNqNMYGW.mjs → xan-view-HDVKHFC2-Bv8_W4eE.mjs} +3 -3
  280. package/dist/{xan-view-HDVKHFC2-DNqNMYGW.mjs.map → xan-view-HDVKHFC2-Bv8_W4eE.mjs.map} +1 -1
  281. package/dist/{xan-view-HDVKHFC2-BDm9LRRD.cjs → xan-view-HDVKHFC2-ClhOnUAS.cjs} +3 -3
  282. package/dist/{xan-view-HDVKHFC2-BDm9LRRD.cjs.map → xan-view-HDVKHFC2-ClhOnUAS.cjs.map} +1 -1
  283. package/dist/{xargs-MGZPH7AX-Bjsroawq.cjs → xargs-MGZPH7AX-BvvOKhXS.cjs} +2 -2
  284. package/dist/{xargs-MGZPH7AX-Bjsroawq.cjs.map → xargs-MGZPH7AX-BvvOKhXS.cjs.map} +1 -1
  285. package/dist/{xargs-MGZPH7AX-CMqJ7R_M.mjs → xargs-MGZPH7AX-la_JFVst.mjs} +2 -2
  286. package/dist/{xargs-MGZPH7AX-CMqJ7R_M.mjs.map → xargs-MGZPH7AX-la_JFVst.mjs.map} +1 -1
  287. package/dist/{yq-4QJW3EQG-Dpg7cFrO.mjs → yq-4QJW3EQG-Bq2dt3bL.mjs} +3 -3
  288. package/dist/{yq-4QJW3EQG-Dpg7cFrO.mjs.map → yq-4QJW3EQG-Bq2dt3bL.mjs.map} +1 -1
  289. package/dist/{yq-4QJW3EQG-DJeB7mtl.cjs → yq-4QJW3EQG-WlQHm2uv.cjs} +3 -3
  290. package/dist/{yq-4QJW3EQG-DJeB7mtl.cjs.map → yq-4QJW3EQG-WlQHm2uv.cjs.map} +1 -1
  291. package/package.json +4 -4
  292. package/dist/dist-DXWcIK6r.cjs.map +0 -1
  293. package/dist/dist-lnU7GO-O.mjs.map +0 -1
  294. package/dist/start-BaCZfQVN.cjs.map +0 -1
  295. package/dist/start-cGM9WLRm.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  const require_dist = require("./dist-QIg3f1DP.cjs");
2
- const require_dist$1 = require("./dist-DXWcIK6r.cjs");
2
+ const require_dist$1 = require("./dist-DCAFVLts.cjs");
3
3
  require("./chunk-BZUGFHVS-7RRM7Jpb.cjs");
4
4
  const require_chunk_TN7HHBQW = require("./chunk-TN7HHBQW-D_SK6w5n.cjs");
5
5
  const require_with_project_scope = require("./with-project-scope-Drmz2h2Z.cjs");
@@ -26,6 +26,83 @@ require("hono/http-exception");
26
26
  require("hono/route");
27
27
  let resend = require("resend");
28
28
  let _hono_node_server_conninfo = require("@hono/node-server/conninfo");
29
+ //#region ../../packages/telemetry/dist/index.mjs
30
+ const storage$1 = new node_async_hooks.AsyncLocalStorage();
31
+ function getTelemetryContext() {
32
+ return storage$1.getStore();
33
+ }
34
+ /** Patch the active store when present (no-op outside `runWithTelemetryContext`). */
35
+ function setTelemetryContext(patch) {
36
+ const current = storage$1.getStore();
37
+ if (!current) return;
38
+ if (patch.actorId !== void 0) current.actorId = patch.actorId;
39
+ if (patch.analyticsId !== void 0) current.analyticsId = patch.analyticsId;
40
+ if (patch.organizationId !== void 0) current.organizationId = patch.organizationId;
41
+ if (patch.projectId !== void 0) current.projectId = patch.projectId;
42
+ if (patch.sessionId !== void 0) current.sessionId = patch.sessionId;
43
+ if (patch.client !== void 0) current.client = patch.client;
44
+ }
45
+ /**
46
+ * Returns true when an error is an expected client/control-flow failure that
47
+ * should not become an Error Tracking issue.
48
+ */
49
+ function isExpectedError(error) {
50
+ if (!error || typeof error !== "object") return false;
51
+ const status = readStatus(error);
52
+ if (status !== void 0 && (status === 0 || status >= 400 && status < 500)) return true;
53
+ if ("name" in error && typeof error.name === "string") {
54
+ if (error.name === "AbortError" || error.name === "CanceledError" || error.name === "CancelledError" || error.name === "RunTimeoutError") return true;
55
+ }
56
+ return false;
57
+ }
58
+ function readStatus(error) {
59
+ if ("status" in error && typeof error.status === "number") return error.status;
60
+ if ("statusCode" in error && typeof error.statusCode === "number") return error.statusCode;
61
+ }
62
+ const EVENT_NAME_PATTERN = /^[a-z][a-z0-9_]*(:[a-z][a-z0-9_]*)?$/;
63
+ let sink;
64
+ async function captureException(input) {
65
+ if (isExpectedError(input.error) || true) return;
66
+ const context = getTelemetryContext();
67
+ const actorId = input.actorId ?? context?.actorId;
68
+ const analyticsId = input.analyticsId ?? context?.analyticsId;
69
+ const organizationId = input.organizationId ?? context?.organizationId;
70
+ const projectId = input.projectId ?? context?.projectId;
71
+ const sessionId = input.sessionId ?? context?.sessionId;
72
+ const enriched = {
73
+ error: input.error,
74
+ ...actorId ? { actorId } : {},
75
+ ...analyticsId ? { analyticsId } : {},
76
+ ...organizationId ? { organizationId } : {},
77
+ ...projectId ? { projectId } : {},
78
+ ...sessionId ? { sessionId } : {},
79
+ ...input.operation ? { operation: input.operation } : {},
80
+ ...input.properties ? { properties: input.properties } : {}
81
+ };
82
+ try {
83
+ await sink.captureException(enriched);
84
+ } catch (error) {
85
+ console.error("[telemetry] captureException sink failed", error);
86
+ }
87
+ }
88
+ async function event(input) {
89
+ if (!EVENT_NAME_PATTERN.test(input.name)) {
90
+ console.error(`[telemetry] rejected invalid event name: ${input.name}`);
91
+ return;
92
+ }
93
+ if (!input.actorId.trim()) {
94
+ console.error("[telemetry] rejected event without actorId");
95
+ return;
96
+ }
97
+ }
98
+ async function groupIdentify(input) {
99
+ const groupType = input.groupType.trim();
100
+ const groupKey = input.groupKey.trim();
101
+ if (!groupType || !groupKey) {
102
+ console.error("[telemetry] rejected groupIdentify without groupType/groupKey");
103
+ return;
104
+ }
105
+ }
29
106
  const replaceEditSchema = zod.z.object({
30
107
  oldText: zod.z.string().describe("Exact text to replace. Must be unique in the file and must not overlap other edits in this call."),
31
108
  newText: zod.z.string().describe("Replacement text")
@@ -22876,43 +22953,43 @@ var tt = [
22876
22953
  },
22877
22954
  {
22878
22955
  name: "cat",
22879
- load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-DXk7vabW.cjs"))).catCommand
22956
+ load: async () => (await Promise.resolve().then(() => require("./cat-TSFMZVYS-BaKHr4U0.cjs"))).catCommand
22880
22957
  },
22881
22958
  {
22882
22959
  name: "printf",
22883
- load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-BB0OAcHV.cjs"))).printfCommand
22960
+ load: async () => (await Promise.resolve().then(() => require("./printf-TWGXF445-BXve-Eiv.cjs"))).printfCommand
22884
22961
  },
22885
22962
  {
22886
22963
  name: "ls",
22887
- load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-BUz_Fdvv.cjs"))).lsCommand
22964
+ load: async () => (await Promise.resolve().then(() => require("./ls-ZJGQER7M-BQuAedIy.cjs"))).lsCommand
22888
22965
  },
22889
22966
  {
22890
22967
  name: "mkdir",
22891
- load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-Cm8ymTjX.cjs"))).mkdirCommand
22968
+ load: async () => (await Promise.resolve().then(() => require("./mkdir-MEPGZOB6-IHvBvQTL.cjs"))).mkdirCommand
22892
22969
  },
22893
22970
  {
22894
22971
  name: "rmdir",
22895
- load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA--kyBv7yW.cjs"))).rmdirCommand
22972
+ load: async () => (await Promise.resolve().then(() => require("./rmdir-OC4ZLPYA-DK3A8POR.cjs"))).rmdirCommand
22896
22973
  },
22897
22974
  {
22898
22975
  name: "touch",
22899
- load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-H_Pi6PAf.cjs"))).touchCommand
22976
+ load: async () => (await Promise.resolve().then(() => require("./touch-UA33VN3N-Cyx5v5-2.cjs"))).touchCommand
22900
22977
  },
22901
22978
  {
22902
22979
  name: "rm",
22903
- load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-CCWr2-sA.cjs"))).rmCommand
22980
+ load: async () => (await Promise.resolve().then(() => require("./rm-SSGETQVQ-BaWdfV2i.cjs"))).rmCommand
22904
22981
  },
22905
22982
  {
22906
22983
  name: "cp",
22907
- load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-0CyhG8QG.cjs"))).cpCommand
22984
+ load: async () => (await Promise.resolve().then(() => require("./cp-BISAAS7A-BO2reDJf.cjs"))).cpCommand
22908
22985
  },
22909
22986
  {
22910
22987
  name: "mv",
22911
- load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-5u7wnqJx.cjs"))).mvCommand
22988
+ load: async () => (await Promise.resolve().then(() => require("./mv-W5BIQ646-CFwaJ3Xx.cjs"))).mvCommand
22912
22989
  },
22913
22990
  {
22914
22991
  name: "ln",
22915
- load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-BO6hipTE.cjs"))).lnCommand
22992
+ load: async () => (await Promise.resolve().then(() => require("./ln-4LGSXXGD-DCt-08KM.cjs"))).lnCommand
22916
22993
  },
22917
22994
  {
22918
22995
  name: "chmod",
@@ -22928,15 +23005,15 @@ var tt = [
22928
23005
  },
22929
23006
  {
22930
23007
  name: "head",
22931
- load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-Cso1bzGG.cjs"))).headCommand
23008
+ load: async () => (await Promise.resolve().then(() => require("./head-442HYESI-CL9VIqkb.cjs"))).headCommand
22932
23009
  },
22933
23010
  {
22934
23011
  name: "tail",
22935
- load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-CwEo6jOP.cjs"))).tailCommand
23012
+ load: async () => (await Promise.resolve().then(() => require("./tail-R4PCA2C4-B8zVnbJv.cjs"))).tailCommand
22936
23013
  },
22937
23014
  {
22938
23015
  name: "wc",
22939
- load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-H_xphL2p.cjs"))).wcCommand
23016
+ load: async () => (await Promise.resolve().then(() => require("./wc-LF7NU4LA-UNORxUJr.cjs"))).wcCommand
22940
23017
  },
22941
23018
  {
22942
23019
  name: "stat",
@@ -22944,95 +23021,95 @@ var tt = [
22944
23021
  },
22945
23022
  {
22946
23023
  name: "grep",
22947
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-pFoJNxuG.cjs"))).grepCommand
23024
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-ChT5D1RX.cjs"))).grepCommand
22948
23025
  },
22949
23026
  {
22950
23027
  name: "fgrep",
22951
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-pFoJNxuG.cjs"))).fgrepCommand
23028
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-ChT5D1RX.cjs"))).fgrepCommand
22952
23029
  },
22953
23030
  {
22954
23031
  name: "egrep",
22955
- load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-pFoJNxuG.cjs"))).egrepCommand
23032
+ load: async () => (await Promise.resolve().then(() => require("./grep-V3LQVMRQ-ChT5D1RX.cjs"))).egrepCommand
22956
23033
  },
22957
23034
  {
22958
23035
  name: "rg",
22959
- load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-wLTEWfj6.cjs"))).rgCommand
23036
+ load: async () => (await Promise.resolve().then(() => require("./rg-S4FXYXWB-DrdwsBhO.cjs"))).rgCommand
22960
23037
  },
22961
23038
  {
22962
23039
  name: "sed",
22963
- load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-DFogVE5M.cjs"))).sedCommand
23040
+ load: async () => (await Promise.resolve().then(() => require("./sed-S5UIK574-CQ1AnR3r.cjs"))).sedCommand
22964
23041
  },
22965
23042
  {
22966
23043
  name: "awk",
22967
- load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-DooaSE0f.cjs"))).awkCommand2
23044
+ load: async () => (await Promise.resolve().then(() => require("./awk2-LA3USKJP-pKmGobcZ.cjs"))).awkCommand2
22968
23045
  },
22969
23046
  {
22970
23047
  name: "sort",
22971
- load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-CnVEW3WP.cjs"))).sortCommand
23048
+ load: async () => (await Promise.resolve().then(() => require("./sort-SW2YEO5B-BWZaGhuw.cjs"))).sortCommand
22972
23049
  },
22973
23050
  {
22974
23051
  name: "uniq",
22975
- load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-BEbWfmC8.cjs"))).uniqCommand
23052
+ load: async () => (await Promise.resolve().then(() => require("./uniq-XSIZR6PB-a2hQnbkY.cjs"))).uniqCommand
22976
23053
  },
22977
23054
  {
22978
23055
  name: "comm",
22979
- load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-sYGNzb6Z.cjs"))).commCommand
23056
+ load: async () => (await Promise.resolve().then(() => require("./comm-VV2LDX2J-D8M6JDGH.cjs"))).commCommand
22980
23057
  },
22981
23058
  {
22982
23059
  name: "cut",
22983
- load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-QbOPZAW_.cjs"))).cutCommand
23060
+ load: async () => (await Promise.resolve().then(() => require("./cut-OKARJCCV-DaBpPPf8.cjs"))).cutCommand
22984
23061
  },
22985
23062
  {
22986
23063
  name: "paste",
22987
- load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-DLyDg0y3.cjs"))).pasteCommand
23064
+ load: async () => (await Promise.resolve().then(() => require("./paste-7JC6S4DX-DOPeey0W.cjs"))).pasteCommand
22988
23065
  },
22989
23066
  {
22990
23067
  name: "tr",
22991
- load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-BIHb14IT.cjs"))).trCommand
23068
+ load: async () => (await Promise.resolve().then(() => require("./tr-36LHWFRQ-CJ7ZK1Cv.cjs"))).trCommand
22992
23069
  },
22993
23070
  {
22994
23071
  name: "rev",
22995
- load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-2accTfuD.cjs"))).rev
23072
+ load: async () => (await Promise.resolve().then(() => require("./rev-5EHFX4EJ-CFFAX-eL.cjs"))).rev
22996
23073
  },
22997
23074
  {
22998
23075
  name: "nl",
22999
- load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-CtGL_tfR.cjs"))).nl
23076
+ load: async () => (await Promise.resolve().then(() => require("./nl-WSDW7I4O-FzZXRAwD.cjs"))).nl
23000
23077
  },
23001
23078
  {
23002
23079
  name: "fold",
23003
- load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-BzRrKNB9.cjs"))).fold
23080
+ load: async () => (await Promise.resolve().then(() => require("./fold-4TQNYMSW-BQ9ukqex.cjs"))).fold
23004
23081
  },
23005
23082
  {
23006
23083
  name: "expand",
23007
- load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP--3QEqbQx.cjs"))).expand
23084
+ load: async () => (await Promise.resolve().then(() => require("./expand-JSPG6VOP-Dd-2L8yn.cjs"))).expand
23008
23085
  },
23009
23086
  {
23010
23087
  name: "unexpand",
23011
- load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-WHauyp2a.cjs"))).unexpand
23088
+ load: async () => (await Promise.resolve().then(() => require("./unexpand-CADSA4VO-KAVxaOsW.cjs"))).unexpand
23012
23089
  },
23013
23090
  {
23014
23091
  name: "strings",
23015
- load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-5BkwdbE6.cjs"))).strings
23092
+ load: async () => (await Promise.resolve().then(() => require("./strings-6WDHLGMX-Xt8Gbe8-.cjs"))).strings
23016
23093
  },
23017
23094
  {
23018
23095
  name: "split",
23019
- load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-BPg_-zUa.cjs"))).split
23096
+ load: async () => (await Promise.resolve().then(() => require("./split-4KKZZXXE-Bhr_rhRz.cjs"))).split
23020
23097
  },
23021
23098
  {
23022
23099
  name: "column",
23023
- load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-CsS5ibw9.cjs"))).column
23100
+ load: async () => (await Promise.resolve().then(() => require("./column-XT6UFXNQ-tddqJ9Kg.cjs"))).column
23024
23101
  },
23025
23102
  {
23026
23103
  name: "join",
23027
- load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-DcNQmOfW.cjs"))).join
23104
+ load: async () => (await Promise.resolve().then(() => require("./join-TBRGI3LQ-JKyApOii.cjs"))).join
23028
23105
  },
23029
23106
  {
23030
23107
  name: "tee",
23031
- load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-B1F6iNhB.cjs"))).teeCommand
23108
+ load: async () => (await Promise.resolve().then(() => require("./tee-YUZ2FKCJ-DXc_xwaw.cjs"))).teeCommand
23032
23109
  },
23033
23110
  {
23034
23111
  name: "find",
23035
- load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-CZfaCvrt.cjs"))).findCommand
23112
+ load: async () => (await Promise.resolve().then(() => require("./find-INTH3OLC-C2Uc7scj.cjs"))).findCommand
23036
23113
  },
23037
23114
  {
23038
23115
  name: "basename",
@@ -23044,19 +23121,19 @@ var tt = [
23044
23121
  },
23045
23122
  {
23046
23123
  name: "tree",
23047
- load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-2sThOTan.cjs"))).treeCommand
23124
+ load: async () => (await Promise.resolve().then(() => require("./tree-YLD52CNT-C0new1hw.cjs"))).treeCommand
23048
23125
  },
23049
23126
  {
23050
23127
  name: "du",
23051
- load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-D9cDsTJc.cjs"))).duCommand
23128
+ load: async () => (await Promise.resolve().then(() => require("./du-572XNP42-CqHbkS7A.cjs"))).duCommand
23052
23129
  },
23053
23130
  {
23054
23131
  name: "env",
23055
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-D__VNL1a.cjs"))).envCommand
23132
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-BJX6pRHi.cjs"))).envCommand
23056
23133
  },
23057
23134
  {
23058
23135
  name: "printenv",
23059
- load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-D__VNL1a.cjs"))).printenvCommand
23136
+ load: async () => (await Promise.resolve().then(() => require("./env-36M5BO7M-BJX6pRHi.cjs"))).printenvCommand
23060
23137
  },
23061
23138
  {
23062
23139
  name: "alias",
@@ -23072,7 +23149,7 @@ var tt = [
23072
23149
  },
23073
23150
  {
23074
23151
  name: "xargs",
23075
- load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-Bjsroawq.cjs"))).xargsCommand
23152
+ load: async () => (await Promise.resolve().then(() => require("./xargs-MGZPH7AX-BvvOKhXS.cjs"))).xargsCommand
23076
23153
  },
23077
23154
  {
23078
23155
  name: "true",
@@ -23088,23 +23165,23 @@ var tt = [
23088
23165
  },
23089
23166
  {
23090
23167
  name: "bash",
23091
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-pzSUz2vh.cjs"))).bashCommand
23168
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-DLA5dK37.cjs"))).bashCommand
23092
23169
  },
23093
23170
  {
23094
23171
  name: "sh",
23095
- load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-pzSUz2vh.cjs"))).shCommand
23172
+ load: async () => (await Promise.resolve().then(() => require("./bash-YZ33HQZQ-DLA5dK37.cjs"))).shCommand
23096
23173
  },
23097
23174
  {
23098
23175
  name: "jq",
23099
- load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-BZaKCWvT.cjs"))).jqCommand
23176
+ load: async () => (await Promise.resolve().then(() => require("./jq-4XLYLOS5-D6TJiRje.cjs"))).jqCommand
23100
23177
  },
23101
23178
  {
23102
23179
  name: "base64",
23103
- load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-B6d_XRzq.cjs"))).base64Command
23180
+ load: async () => (await Promise.resolve().then(() => require("./base64-C2AIWVNC-CrtpD1na.cjs"))).base64Command
23104
23181
  },
23105
23182
  {
23106
23183
  name: "diff",
23107
- load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-CxO5o3uV.cjs"))).diffCommand
23184
+ load: async () => (await Promise.resolve().then(() => require("./diff-MWJFIG7X-sW58v-In.cjs"))).diffCommand
23108
23185
  },
23109
23186
  {
23110
23187
  name: "date",
@@ -23112,15 +23189,15 @@ var tt = [
23112
23189
  },
23113
23190
  {
23114
23191
  name: "sleep",
23115
- load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-CFfw4Hkc.cjs"))).sleepCommand
23192
+ load: async () => (await Promise.resolve().then(() => require("./sleep-X22JJINO-DP1z72-Q.cjs"))).sleepCommand
23116
23193
  },
23117
23194
  {
23118
23195
  name: "timeout",
23119
- load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-BmOUKWdW.cjs"))).timeoutCommand
23196
+ load: async () => (await Promise.resolve().then(() => require("./timeout-YDCRSLPQ-C57Y8ySP.cjs"))).timeoutCommand
23120
23197
  },
23121
23198
  {
23122
23199
  name: "time",
23123
- load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-BU85ohpD.cjs"))).timeCommand
23200
+ load: async () => (await Promise.resolve().then(() => require("./time-D4LNBSWX-CQI3pEaI.cjs"))).timeCommand
23124
23201
  },
23125
23202
  {
23126
23203
  name: "seq",
@@ -23128,19 +23205,19 @@ var tt = [
23128
23205
  },
23129
23206
  {
23130
23207
  name: "expr",
23131
- load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-BBP0fs9x.cjs"))).exprCommand
23208
+ load: async () => (await Promise.resolve().then(() => require("./expr-5JAACS4X-DmKCLgI8.cjs"))).exprCommand
23132
23209
  },
23133
23210
  {
23134
23211
  name: "md5sum",
23135
- load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-B869_LjC.cjs"))).md5sumCommand
23212
+ load: async () => (await Promise.resolve().then(() => require("./md5sum-SPU24VSG-xbLQd_LU.cjs"))).md5sumCommand
23136
23213
  },
23137
23214
  {
23138
23215
  name: "sha1sum",
23139
- load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-gb3yYwdI.cjs"))).sha1sumCommand
23216
+ load: async () => (await Promise.resolve().then(() => require("./sha1sum-2PTOAFR6-BPLIR6an.cjs"))).sha1sumCommand
23140
23217
  },
23141
23218
  {
23142
23219
  name: "sha256sum",
23143
- load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-PwjbH162.cjs"))).sha256sumCommand
23220
+ load: async () => (await Promise.resolve().then(() => require("./sha256sum-NS7D3IXX-Bvq-KnSV.cjs"))).sha256sumCommand
23144
23221
  },
23145
23222
  {
23146
23223
  name: "file",
@@ -23148,11 +23225,11 @@ var tt = [
23148
23225
  },
23149
23226
  {
23150
23227
  name: "html-to-markdown",
23151
- load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-BQNs7tTN.cjs"))).htmlToMarkdownCommand
23228
+ load: async () => (await Promise.resolve().then(() => require("./html-to-markdown-JW4MSQZO-TyAsgBnO.cjs"))).htmlToMarkdownCommand
23152
23229
  },
23153
23230
  {
23154
23231
  name: "help",
23155
- load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-Cts_1YcS.cjs"))).helpCommand
23232
+ load: async () => (await Promise.resolve().then(() => require("./help-HZ6M2CKN-CzUrqQB7.cjs"))).helpCommand
23156
23233
  },
23157
23234
  {
23158
23235
  name: "which",
@@ -23160,7 +23237,7 @@ var tt = [
23160
23237
  },
23161
23238
  {
23162
23239
  name: "tac",
23163
- load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-DTyFoSgk.cjs"))).tac
23240
+ load: async () => (await Promise.resolve().then(() => require("./tac-2STMMJYW-6DSfXKEM.cjs"))).tac
23164
23241
  },
23165
23242
  {
23166
23243
  name: "hostname",
@@ -23172,49 +23249,49 @@ var tt = [
23172
23249
  },
23173
23250
  {
23174
23251
  name: "od",
23175
- load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-DKRiAPkJ.cjs"))).od
23252
+ load: async () => (await Promise.resolve().then(() => require("./od-WOKFDJTP-M80nAztL.cjs"))).od
23176
23253
  },
23177
23254
  {
23178
23255
  name: "gzip",
23179
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-BVG2ER1u.cjs"))).gzipCommand
23256
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-DJOwjcpB.cjs"))).gzipCommand
23180
23257
  },
23181
23258
  {
23182
23259
  name: "gunzip",
23183
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-BVG2ER1u.cjs"))).gunzipCommand
23260
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-DJOwjcpB.cjs"))).gunzipCommand
23184
23261
  },
23185
23262
  {
23186
23263
  name: "zcat",
23187
- load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-BVG2ER1u.cjs"))).zcatCommand
23264
+ load: async () => (await Promise.resolve().then(() => require("./gzip-O5ASJAFY-DJOwjcpB.cjs"))).zcatCommand
23188
23265
  }
23189
23266
  ];
23190
23267
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (tt.push({
23191
23268
  name: "tar",
23192
- load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-DJj9jLmb.cjs"))).tarCommand
23269
+ load: async () => (await Promise.resolve().then(() => require("./tar-STHHZTZ6-BF9uOAeY.cjs"))).tarCommand
23193
23270
  }), tt.push({
23194
23271
  name: "yq",
23195
- load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-DJeB7mtl.cjs"))).yqCommand
23272
+ load: async () => (await Promise.resolve().then(() => require("./yq-4QJW3EQG-WlQHm2uv.cjs"))).yqCommand
23196
23273
  }), tt.push({
23197
23274
  name: "xan",
23198
- load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-CZ2-00N1.cjs"))).xanCommand
23275
+ load: async () => (await Promise.resolve().then(() => require("./xan-Y6WF3IRG-DvYlOlaJ.cjs"))).xanCommand
23199
23276
  }), tt.push({
23200
23277
  name: "sqlite3",
23201
- load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-M0jaZ2uV.cjs"))).sqlite3Command
23278
+ load: async () => (await Promise.resolve().then(() => require("./sqlite3-CGOEFJAO-CdyK5NF3.cjs"))).sqlite3Command
23202
23279
  }));
23203
23280
  var Yt = [];
23204
23281
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Yt.push({
23205
23282
  name: "python3",
23206
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-CJL23Wvy.cjs"))).python3Command
23283
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-__fmhnV2.cjs"))).python3Command
23207
23284
  }), Yt.push({
23208
23285
  name: "python",
23209
- load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-CJL23Wvy.cjs"))).pythonCommand
23286
+ load: async () => (await Promise.resolve().then(() => require("./python3-POMOR4OA-__fmhnV2.cjs"))).pythonCommand
23210
23287
  }));
23211
23288
  var Qt = [];
23212
23289
  (typeof __BROWSER__ > "u" || !__BROWSER__) && (Qt.push({
23213
23290
  name: "js-exec",
23214
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-BPZSvRX_.cjs"))).jsExecCommand
23291
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-BDEPJLK5.cjs"))).jsExecCommand
23215
23292
  }), Qt.push({
23216
23293
  name: "node",
23217
- load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-BPZSvRX_.cjs"))).nodeStubCommand
23294
+ load: async () => (await Promise.resolve().then(() => require("./js-exec-N5KEZBH7-BDEPJLK5.cjs"))).nodeStubCommand
23218
23295
  }));
23219
23296
  new TextEncoder();
23220
23297
  Object.freeze({
@@ -24421,6 +24498,19 @@ function projectNeedsRuntimeFollowUp(project) {
24421
24498
  if (project.pendingArtifactId && project.activeArtifactId !== project.pendingArtifactId) return true;
24422
24499
  return false;
24423
24500
  }
24501
+ function emitDeployOutcome(input) {
24502
+ (async () => {
24503
+ const actorId = (await (0, _keystrokehq_platform_database.selectProjectArtifactById)(input.artifactId))?.createdByUserId?.trim();
24504
+ if (!actorId) return;
24505
+ await event({
24506
+ name: input.name,
24507
+ actorId,
24508
+ organizationId: input.organizationId,
24509
+ projectId: input.projectId,
24510
+ properties: { ...input.errorKind ? { error_kind: input.errorKind } : {} }
24511
+ });
24512
+ })().catch(() => {});
24513
+ }
24424
24514
  let runtimeQueue;
24425
24515
  let runtimeQueueInit;
24426
24516
  let runtimeSchedulerPlugin;
@@ -24559,6 +24649,13 @@ async function handleOrgRuntimeJob(runtime, resolveStartInput, payload) {
24559
24649
  const failure = failedProjects.get(project.projectId);
24560
24650
  if (failure) {
24561
24651
  await (0, _keystrokehq_platform_database.updateProjectFailed)(project.projectId, failure);
24652
+ emitDeployOutcome({
24653
+ name: "deploy:failed",
24654
+ artifactId: project.artifactId,
24655
+ organizationId: job.organizationId,
24656
+ projectId: project.projectId,
24657
+ errorKind: "project_start"
24658
+ });
24562
24659
  continue;
24563
24660
  }
24564
24661
  await promoteProjectDeploy({
@@ -24570,6 +24667,12 @@ async function handleOrgRuntimeJob(runtime, resolveStartInput, payload) {
24570
24667
  baseUrl: result.baseUrl,
24571
24668
  runtimeId: result.runtimeId
24572
24669
  });
24670
+ emitDeployOutcome({
24671
+ name: "deploy:succeeded",
24672
+ artifactId: project.artifactId,
24673
+ organizationId: job.organizationId,
24674
+ projectId: project.projectId
24675
+ });
24573
24676
  }
24574
24677
  await (0, _keystrokehq_platform_database.updateOrganizationActive)(job.organizationId, {
24575
24678
  baseUrl: result.baseUrl,
@@ -24587,6 +24690,13 @@ async function handleOrgRuntimeJob(runtime, resolveStartInput, payload) {
24587
24690
  if (job.triggerProjectId) {
24588
24691
  const message = error instanceof Error ? error.message : String(error);
24589
24692
  await (0, _keystrokehq_platform_database.updateProjectFailed)(job.triggerProjectId, message);
24693
+ if (job.triggerArtifactId) emitDeployOutcome({
24694
+ name: "deploy:failed",
24695
+ artifactId: job.triggerArtifactId,
24696
+ organizationId: job.organizationId,
24697
+ projectId: job.triggerProjectId,
24698
+ errorKind: "runtime_exhausted"
24699
+ });
24590
24700
  }
24591
24701
  await (0, _keystrokehq_platform_database.updateOrganizationFailed)(job.organizationId, "Org runtime failed after retries");
24592
24702
  }
@@ -24809,19 +24919,6 @@ function getProjectInvitePermission(c) {
24809
24919
  return c.get("project").invitePermission;
24810
24920
  }
24811
24921
  //#endregion
24812
- //#region ../../packages/telemetry/dist/index.mjs
24813
- const storage = new node_async_hooks.AsyncLocalStorage();
24814
- /** Patch the active store when present (no-op outside `runWithTelemetryContext`). */
24815
- function setTelemetryContext(patch) {
24816
- const current = storage.getStore();
24817
- if (!current) return;
24818
- if (patch.actorId !== void 0) current.actorId = patch.actorId;
24819
- if (patch.analyticsId !== void 0) current.analyticsId = patch.analyticsId;
24820
- if (patch.organizationId !== void 0) current.organizationId = patch.organizationId;
24821
- if (patch.projectId !== void 0) current.projectId = patch.projectId;
24822
- if (patch.sessionId !== void 0) current.sessionId = patch.sessionId;
24823
- }
24824
- //#endregion
24825
24922
  //#region ../../packages/http/dist/require-session-fERJkKuQ.mjs
24826
24923
  function resolveActiveOrganizationId(c) {
24827
24924
  const header = c.req.header(require_dist$1.ACTIVE_ORG_HEADER)?.trim();
@@ -25820,7 +25917,7 @@ const trace = class TraceAPI {
25820
25917
  }
25821
25918
  }.getInstance();
25822
25919
  //#endregion
25823
- //#region ../../packages/http/dist/with-public-project-runtime-Cx-Zh4qz.mjs
25920
+ //#region ../../packages/http/dist/with-public-project-runtime-CxtHfvNL.mjs
25824
25921
  const requestBackgroundTasks = new node_async_hooks.AsyncLocalStorage();
25825
25922
  function runWithRequestBackgroundTasks(fn) {
25826
25923
  return requestBackgroundTasks.run([], fn);
@@ -26017,6 +26114,31 @@ async function createOrganizationWithHosting(deps, userId, name, preferredSlug)
26017
26114
  }
26018
26115
  }
26019
26116
  //#endregion
26117
+ //#region src/lib/product-analytics.ts
26118
+ /** Fail-open product event with request-scoped client channel when available. */
26119
+ async function trackProductEvent(input) {
26120
+ const client = getTelemetryContext()?.client;
26121
+ await event({
26122
+ name: input.name,
26123
+ actorId: input.actorId,
26124
+ ...input.organizationId ? { organizationId: input.organizationId } : {},
26125
+ ...input.projectId ? { projectId: input.projectId } : {},
26126
+ ...input.anonymous ? { anonymous: true } : {},
26127
+ ...input.uuid ? { uuid: input.uuid } : {},
26128
+ properties: {
26129
+ ...client ? { client } : {},
26130
+ ...input.properties
26131
+ }
26132
+ });
26133
+ }
26134
+ async function identifyOrganizationGroup(input) {
26135
+ await groupIdentify({
26136
+ groupType: "organization",
26137
+ groupKey: input.organizationId,
26138
+ properties: input.properties
26139
+ });
26140
+ }
26141
+ //#endregion
26020
26142
  //#region src/routes/account/organizations/slug-errors.ts
26021
26143
  function organizationSlugErrorBody(error) {
26022
26144
  if (error instanceof _keystrokehq_platform_database.OrganizationSlugTakenError) return {
@@ -26039,6 +26161,26 @@ function createOrganizationHandler(deps) {
26039
26161
  if (!parsed.success) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invalid organization request" }), 400);
26040
26162
  try {
26041
26163
  const membership = await createOrganizationWithHosting(deps, user.id, parsed.data.name, parsed.data.slug);
26164
+ const organizationId = membership.organization.id;
26165
+ trackProductEvent({
26166
+ name: "org:created",
26167
+ actorId: user.id,
26168
+ organizationId,
26169
+ properties: {
26170
+ from_onboarding: true,
26171
+ slug: membership.organization.slug
26172
+ }
26173
+ }).catch(() => {});
26174
+ identifyOrganizationGroup({
26175
+ organizationId,
26176
+ properties: {
26177
+ name: membership.organization.name,
26178
+ slug: membership.organization.slug,
26179
+ created_at: membership.organization.createdAt.toISOString(),
26180
+ member_count: 1,
26181
+ project_count: 0
26182
+ }
26183
+ }).catch(() => {});
26042
26184
  return c.json(require_dist$1.CreateOrganizationResponseSchema.parse(require_dist$1.mapUserOrganization(membership)), 201);
26043
26185
  } catch (error) {
26044
26186
  if (error instanceof _keystrokehq_platform_database.OrganizationSlugTakenError) return c.json(require_dist$1.ErrorResponseSchema.parse(organizationSlugErrorBody(error)), 409);
@@ -28342,6 +28484,18 @@ function createCreateProjectHandler(projectQuotaGate) {
28342
28484
  if (!verdict.allow) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: verdict.reason }), 403);
28343
28485
  }
28344
28486
  const project = await (0, _keystrokehq_platform_database.createProjectForOrganization)(organization.organizationId, parsed.data.name, parsed.data.description, user.id);
28487
+ const projectCount = await (0, _keystrokehq_platform_database.countActiveProjectsForOrganization)(organization.organizationId).catch(() => void 0);
28488
+ trackProductEvent({
28489
+ name: "project:created",
28490
+ actorId: user.id,
28491
+ organizationId: organization.organizationId,
28492
+ projectId: project.id,
28493
+ properties: { ...projectCount !== void 0 ? { project_count: projectCount } : {} }
28494
+ }).catch(() => {});
28495
+ if (projectCount !== void 0) identifyOrganizationGroup({
28496
+ organizationId: organization.organizationId,
28497
+ properties: { project_count: projectCount }
28498
+ }).catch(() => {});
28345
28499
  return c.json(require_dist$1.CreateProjectResponseSchema.parse(require_dist$1.mapProject(project)), 201);
28346
28500
  };
28347
28501
  }
@@ -28468,8 +28622,15 @@ const handler$47 = async (c) => {
28468
28622
  };
28469
28623
  //#endregion
28470
28624
  //#region src/routes/account/projects/[projectId]/artifacts/[artifactId]/complete/POST.ts
28625
+ const TRIGGER_KINDS = new Set([
28626
+ "trigger-webhook",
28627
+ "trigger-poll",
28628
+ "trigger-poll-group",
28629
+ "cron-schedule"
28630
+ ]);
28471
28631
  const handler$46 = async (c) => {
28472
28632
  const project = c.get("project");
28633
+ const user = c.get("user");
28473
28634
  const artifactId = c.req.param("artifactId");
28474
28635
  if (!artifactId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact id is required" }), 400);
28475
28636
  const existing = await (0, _keystrokehq_platform_database.selectProjectArtifactForProject)(artifactId, project.id);
@@ -28486,6 +28647,15 @@ const handler$46 = async (c) => {
28486
28647
  if (!artifactBytes || artifactBytes.byteLength <= 0) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Artifact upload not found in storage" }), 400);
28487
28648
  const manifestJson = require_dist$1.parseStoredRouteManifest(require_dist$1.extractRouteManifestFromArtifact(Buffer.from(artifactBytes)));
28488
28649
  await validateAgentModelIds(agentModelIdsFromStoredManifest(manifestJson));
28650
+ const isFirstDeploy = project.activeArtifactId == null;
28651
+ const workflowCount = manifestJson.entries.filter((entry) => entry.kind === "workflow").length;
28652
+ const agentCount = manifestJson.entries.filter((entry) => entry.kind === "agent").length;
28653
+ const triggerCount = manifestJson.entries.filter((entry) => TRIGGER_KINDS.has(entry.kind)).length;
28654
+ const skillCount = manifestJson.skills.length;
28655
+ const hasCustomContent = manifestJson.entries.some((entry) => {
28656
+ if (entry.kind !== "workflow" && entry.kind !== "agent" && entry.kind !== "action") return false;
28657
+ return !require_dist$1.isHelloWorldTemplateSlug(entry.slug);
28658
+ });
28489
28659
  const result = await (0, _keystrokehq_platform_database.completeProjectArtifact)({
28490
28660
  artifactId,
28491
28661
  projectId: project.id,
@@ -28496,6 +28666,20 @@ const handler$46 = async (c) => {
28496
28666
  name: project.name,
28497
28667
  artifactId
28498
28668
  });
28669
+ trackProductEvent({
28670
+ name: "deploy:uploaded",
28671
+ actorId: user.id,
28672
+ organizationId,
28673
+ projectId: project.id,
28674
+ properties: {
28675
+ is_first_deploy: isFirstDeploy,
28676
+ workflow_count: workflowCount,
28677
+ agent_count: agentCount,
28678
+ trigger_count: triggerCount,
28679
+ skill_count: skillCount,
28680
+ has_custom_content: hasCustomContent
28681
+ }
28682
+ }).catch(() => {});
28499
28683
  return c.json(require_dist$1.CompleteProjectArtifactResponseSchema.parse({
28500
28684
  artifact: require_dist$1.mapProjectArtifact(result.artifact),
28501
28685
  project: require_dist$1.mapProject(result.project)
@@ -28974,7 +29158,7 @@ const handler$31 = async (c) => {
28974
29158
  const resolvedProjects = [];
28975
29159
  for (const slug of input.projects) {
28976
29160
  const project = await (0, _keystrokehq_platform_database.selectProjectForOrganizationBySlug)(organization.organizationId, slug);
28977
- if (!project) return c.json({ error: `Project "${slug}" not found` }, 400);
29161
+ if (!project || !await canAccessProjectId(c, project.id, canReadProject)) return c.json({ error: `Project "${slug}" not found` }, 400);
28978
29162
  resolvedProjects.push({
28979
29163
  id: project.id,
28980
29164
  name: project.name
@@ -29032,15 +29216,51 @@ const handler$31 = async (c) => {
29032
29216
  if (row) rows.push(row);
29033
29217
  }
29034
29218
  const credentials = await enrichCredentialInstances(rows, organization.organizationId);
29219
+ let app;
29220
+ try {
29221
+ app = await (0, _keystrokehq_platform_database.selectAppForOrganization)(organization.organizationId, input.appId);
29222
+ } catch (error) {
29223
+ console.warn(`[credentials] app lookup for analytics failed (app=${input.appId})`, error);
29224
+ app = void 0;
29225
+ }
29226
+ trackProductEvent({
29227
+ name: "credential:connected",
29228
+ actorId: user.id,
29229
+ organizationId: organization.organizationId,
29230
+ properties: {
29231
+ app_slug: input.appId,
29232
+ ...app?.source ? { app_source: app.source } : {},
29233
+ connection_kind: input.connectionKind,
29234
+ ...app?.authKind ? { auth_kind: app.authKind } : {}
29235
+ }
29236
+ }).catch(() => {});
29035
29237
  return c.json(require_dist$1.CreateCredentialsResponseSchema.parse(credentials), 201);
29036
29238
  };
29037
29239
  //#endregion
29240
+ //#region src/routes/account/credentials/access.ts
29241
+ /** Visibility for a known credential id (create/get/patch/delete) — org admins see all projects. */
29242
+ async function canAccessCredentialRow(c, row) {
29243
+ if (row.scopeType === "project") {
29244
+ const projectId = row.scopeId ?? row.projectId;
29245
+ if (!projectId) return false;
29246
+ return canAccessProjectId(c, projectId, canReadProject);
29247
+ }
29248
+ const user = c.get("user");
29249
+ const granted = await grantedProjectIds(c, credentialListScope(accessContext(c)));
29250
+ const projectIds = granted === void 0 ? "all" : new Set(granted);
29251
+ return canViewCredential(row, {
29252
+ userId: user.id,
29253
+ projectIds
29254
+ });
29255
+ }
29256
+ //#endregion
29038
29257
  //#region src/routes/account/credentials/[credentialId]/GET.ts
29039
29258
  const handler$30 = async (c) => {
29040
29259
  const organization = c.get("organization");
29041
29260
  const credentialId = c.req.param("credentialId") ?? "";
29042
29261
  const row = credentialId ? await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId) : void 0;
29043
29262
  if (!row || toAppCredentialScope(row.scopeType) === null) return c.json({ error: "Credential not found" }, 404);
29263
+ if (!await canAccessCredentialRow(c, row)) return c.json({ error: "Credential not found" }, 404);
29044
29264
  const [credential] = await enrichCredentialInstances([row], organization.organizationId);
29045
29265
  return c.json(require_dist$1.GetCredentialResponseSchema.parse(credential));
29046
29266
  };
@@ -29052,7 +29272,7 @@ const handler$29 = async (c) => {
29052
29272
  const credentialId = c.req.param("credentialId") ?? "";
29053
29273
  const existing = credentialId ? await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId) : void 0;
29054
29274
  if (!existing || toAppCredentialScope(existing.scopeType) === null) return c.json({ error: "Credential not found" }, 404);
29055
- if (!canManageCredential(existing, user.id)) return c.json({ error: "Forbidden" }, 403);
29275
+ if (!await canAccessCredentialRow(c, existing) || !canManageCredential(existing, user.id)) return c.json({ error: "Forbidden" }, 403);
29056
29276
  const parsed = require_dist$1.UpdateCredentialRequestSchema.safeParse(await c.req.json().catch(() => null));
29057
29277
  if (!parsed.success) {
29058
29278
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
@@ -29125,7 +29345,7 @@ function createDeleteCredentialHandler(options = {}) {
29125
29345
  const credentialId = c.req.param("credentialId") ?? "";
29126
29346
  const existing = credentialId ? await (0, _keystrokehq_database.selectCredentialInstanceById)(credentialId) : void 0;
29127
29347
  if (!existing || toAppCredentialScope(existing.scopeType) === null) return c.json({ error: "Credential not found" }, 404);
29128
- if (!canManageCredential(existing, user.id)) return c.json({ error: "Forbidden" }, 403);
29348
+ if (!await canAccessCredentialRow(c, existing) || !canManageCredential(existing, user.id)) return c.json({ error: "Forbidden" }, 403);
29129
29349
  if (existing.authKind === "oauth_managed") {
29130
29350
  if (existing.connectionId) {
29131
29351
  if ((await (0, _keystrokehq_database.listCredentialInstancesByConnectionId)(existing.connectionId)).every((row) => row.id === existing.id)) await (0, _keystrokehq_platform_database.deleteOAuthConnectionById)(existing.connectionId);
@@ -29271,6 +29491,11 @@ const handler$23 = async (c) => {
29271
29491
  if (!invitationId) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: "Invitation id is required" }), 400);
29272
29492
  try {
29273
29493
  const membership = await (0, _keystrokehq_platform_database.acceptInvitation)(invitationId, user.id);
29494
+ const memberCount = await (0, _keystrokehq_platform_database.countActiveMembersForOrganization)(membership.organization.id).catch(() => void 0);
29495
+ if (memberCount !== void 0) identifyOrganizationGroup({
29496
+ organizationId: membership.organization.id,
29497
+ properties: { member_count: memberCount }
29498
+ }).catch(() => {});
29274
29499
  return c.json(require_dist$1.AcceptOrganizationInvitationResponseSchema.parse(require_dist$1.mapUserOrganization(membership)));
29275
29500
  } catch (error) {
29276
29501
  if (error instanceof _keystrokehq_platform_database.OrganizationInvitationNotFoundError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 404);
@@ -29375,6 +29600,7 @@ const handler$21 = async (c) => {
29375
29600
  //#region src/routes/account/apps/POST.ts
29376
29601
  const handler$20 = async (c) => {
29377
29602
  const organization = c.get("organization");
29603
+ const user = c.get("user");
29378
29604
  const parsed = require_dist$1.CreateCustomAppRequestSchema.safeParse(await c.req.json().catch(() => null));
29379
29605
  if (!parsed.success) {
29380
29606
  const message = parsed.error.issues[0]?.message ?? "Invalid request body";
@@ -29398,6 +29624,16 @@ const handler$20 = async (c) => {
29398
29624
  credentialScheme: parsed.data.credentialScheme,
29399
29625
  oauthScopes: parsed.data.oauthScopes
29400
29626
  });
29627
+ trackProductEvent({
29628
+ name: "app:created",
29629
+ actorId: user.id,
29630
+ organizationId: organization.organizationId,
29631
+ properties: {
29632
+ app_slug: row.slug,
29633
+ app_source: row.source,
29634
+ auth_kind: row.authKind
29635
+ }
29636
+ }).catch(() => {});
29401
29637
  return c.json(require_dist$1.CreateCustomAppResponseSchema.parse(appRowToCustomAppDetail(row)), 201);
29402
29638
  } catch (error) {
29403
29639
  if (error instanceof _keystrokehq_platform_database.OrgAppSlugTakenError) return c.json(require_dist$1.ErrorResponseSchema.parse({ error: error.message }), 409);
@@ -29511,6 +29747,22 @@ const handler$15 = async (c) => {
29511
29747
  const state = c.req.query("state")?.trim();
29512
29748
  const oauthError = c.req.query("error")?.trim();
29513
29749
  if (oauthError) {
29750
+ if (state) try {
29751
+ const payload = require_dist$1.decodeOAuthState(state);
29752
+ trackProductEvent({
29753
+ name: "credential:connect_failed",
29754
+ actorId: payload.userId,
29755
+ organizationId: payload.organizationId,
29756
+ properties: {
29757
+ app_slug: payload.appSlug,
29758
+ app_source: "mcp",
29759
+ connection_kind: "oauth",
29760
+ auth_kind: "oauth"
29761
+ }
29762
+ }).catch(() => {});
29763
+ } catch (decodeError) {
29764
+ console.warn("[mcp-oauth-callback] state decode for analytics failed", decodeError);
29765
+ }
29514
29766
  const redirect = buildOAuthWebLandingUrl(process.env.PUBLIC_WEB_URL, {
29515
29767
  key: "mcp",
29516
29768
  ok: false,
@@ -29530,6 +29782,24 @@ const handler$15 = async (c) => {
29530
29782
  state,
29531
29783
  code
29532
29784
  }))));
29785
+ let app;
29786
+ try {
29787
+ app = await (0, _keystrokehq_platform_database.selectAppForOrganization)(organization.id, result.appSlug);
29788
+ } catch (lookupError) {
29789
+ console.warn(`[mcp-oauth-callback] app lookup for analytics failed (app=${result.appSlug})`, lookupError);
29790
+ app = void 0;
29791
+ }
29792
+ trackProductEvent({
29793
+ name: "credential:connected",
29794
+ actorId: payload.userId,
29795
+ organizationId: organization.id,
29796
+ properties: {
29797
+ app_slug: result.appSlug,
29798
+ app_source: app?.source ?? "mcp",
29799
+ connection_kind: "oauth",
29800
+ auth_kind: app?.authKind ?? "oauth"
29801
+ }
29802
+ }).catch(() => {});
29533
29803
  const redirect = buildOAuthWebLandingUrl(process.env.PUBLIC_WEB_URL, {
29534
29804
  key: result.appSlug,
29535
29805
  ok: true,
@@ -29543,6 +29813,22 @@ const handler$15 = async (c) => {
29543
29813
  });
29544
29814
  } catch (error) {
29545
29815
  console.error("[mcp-oauth-callback] OAuth connection failed", error);
29816
+ if (state) try {
29817
+ const payload = require_dist$1.decodeOAuthState(state);
29818
+ trackProductEvent({
29819
+ name: "credential:connect_failed",
29820
+ actorId: payload.userId,
29821
+ organizationId: payload.organizationId,
29822
+ properties: {
29823
+ app_slug: payload.appSlug,
29824
+ app_source: "mcp",
29825
+ connection_kind: "oauth",
29826
+ auth_kind: "oauth"
29827
+ }
29828
+ }).catch(() => {});
29829
+ } catch (decodeError) {
29830
+ console.warn("[mcp-oauth-callback] state decode for analytics failed", decodeError);
29831
+ }
29546
29832
  const redirect = buildOAuthWebLandingUrl(process.env.PUBLIC_WEB_URL, {
29547
29833
  key: appSlug,
29548
29834
  ok: false,
@@ -29913,6 +30199,12 @@ const handler$3 = async (c) => {
29913
30199
  console.error("Failed to deliver team request to Slack", error);
29914
30200
  return c.json({ error: "Failed to deliver team request" }, 502);
29915
30201
  }
30202
+ trackProductEvent({
30203
+ name: "support:requested",
30204
+ actorId: user.id,
30205
+ organizationId: organization.id,
30206
+ properties: { request_type: parsed.data.type }
30207
+ }).catch(() => {});
29916
30208
  return c.json(require_dist$1.SubmitTeamRequestResponseSchema.parse({ ok: true }), 200);
29917
30209
  };
29918
30210
  //#endregion
@@ -30509,6 +30801,28 @@ function usesPgBossScheduler(platformConfig) {
30509
30801
  async function startPlatformServer(platformConfig, hooks = {}) {
30510
30802
  const runtime = platformConfig.hosting.createRuntime();
30511
30803
  await (0, _keystrokehq_platform_database.initDatabase)();
30804
+ (0, _keystrokehq_platform_database.migrateAllOrgSchemas)({ tryLock: true }).then(async ({ organizationCount, migratedCount, failures, skipped }) => {
30805
+ if (skipped) {
30806
+ console.log("[platform] org schema migrate-all skipped (another machine holds the cluster lock)");
30807
+ return;
30808
+ }
30809
+ console.log(`Applied org runtime migrations for ${migratedCount}/${organizationCount} organization(s).`);
30810
+ for (const failure of failures) {
30811
+ console.error(`[platform] org schema migration failed for ${failure.organizationId} (${failure.dbSchema})`, failure.error);
30812
+ await captureException({
30813
+ error: failure.error,
30814
+ organizationId: failure.organizationId,
30815
+ operation: "platform.migrate_org_schema",
30816
+ properties: { db_schema: failure.dbSchema }
30817
+ });
30818
+ }
30819
+ }).catch((error) => {
30820
+ console.error("[platform] background org schema migrate-all failed", error);
30821
+ captureException({
30822
+ error,
30823
+ operation: "platform.migrate_org_schema"
30824
+ });
30825
+ });
30512
30826
  await require_dist$1.ensureKeystrokeAssetsBucket();
30513
30827
  await (0, _keystrokehq_runtime.seedOAuthAppsFromEnvForAllOrganizations)();
30514
30828
  if (usesPgBossScheduler(platformConfig)) await (0, _keystrokehq_platform_database.ensureProjectPgBossGrants)();
@@ -30555,10 +30869,24 @@ async function startPlatformServer(platformConfig, hooks = {}) {
30555
30869
  verificationUri: `${webUrl.replace(/\/+$/, "")}/device`,
30556
30870
  trustedOrigins: [webUrl],
30557
30871
  onUserCreated: (user) => {
30872
+ event({
30873
+ name: "user:signed_up",
30874
+ actorId: user.id
30875
+ }).catch((error) => {
30876
+ console.error("Failed to emit user:signed_up", error);
30877
+ });
30558
30878
  postSignupToSlack({ user }).catch((error) => {
30559
30879
  console.error("Failed to deliver signup notification to Slack", error);
30560
30880
  });
30561
30881
  },
30882
+ onSessionCreated: (session) => {
30883
+ event({
30884
+ name: "user:logged_in",
30885
+ actorId: session.userId
30886
+ }).catch((error) => {
30887
+ console.error("Failed to emit user:logged_in", error);
30888
+ });
30889
+ },
30562
30890
  mcp: mcpServerEnabled ? {
30563
30891
  loginPage: `${webUrl.replace(/\/+$/, "")}/login`,
30564
30892
  resource: `${platformUrl}/v1/mcp`
@@ -30720,4 +31048,4 @@ Object.defineProperty(exports, "x$1", {
30720
31048
  }
30721
31049
  });
30722
31050
 
30723
- //# sourceMappingURL=start-BaCZfQVN.cjs.map
31051
+ //# sourceMappingURL=start-y3y8zgSv.cjs.map