@band-app/server 0.36.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/TerminalPanel-B6hpsMbz.js +1 -0
- package/dist/client/assets/{_basePickBy-D1cW8RfA.js → _basePickBy-DCmd5ciV.js} +1 -1
- package/dist/client/assets/{_baseUniq-DCImWVn2.js → _baseUniq-D9VK2Z8h.js} +1 -1
- package/dist/client/assets/{arc-Jv1JrzDM.js → arc-CUv7R2hs.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-DJTHV1y7.js → architectureDiagram-VXUJARFQ-p6VpjWC_.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-Cj_bRlht.js → blockDiagram-VD42YOAC-BqO2dZTh.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-xPUaEy7L.js → c4Diagram-YG6GDRKO-Dj3Q1dN_.js} +1 -1
- package/dist/client/assets/channel-30zU4uX-.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-DWHXL8Ea.js → chunk-4BX2VUAB-ZCRzpI76.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Bd7QCFS0.js → chunk-55IACEB6-N8w7W4nW.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-By14k0HA.js → chunk-B4BG7PRW-Bd2C6K3g.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-D6pCQEj8.js → chunk-DI55MBZ5-CSmsIkhT.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DYeXE4xT.js → chunk-FMBD7UC4-CSFx-rdE.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-DcLmw7kN.js → chunk-QN33PNHL-OZhPV9ZW.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CRzbN_tm.js → chunk-QZHKN3VN-CmQTIqBs.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-B75f53t3.js → chunk-TZMSLE5B-CZXFZkbf.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-xMXNI9Qc.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-xMXNI9Qc.js +1 -0
- package/dist/client/assets/clone-D1RDOFVG.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BkAK4OL7.js → cose-bilkent-S5V4N54A-D2ZJ7fd6.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-DncmS6YY.js → dagre-6UL2VRFP-DWWSarQ5.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-Cn4L1emn.js → diagram-PSM6KHXK-Brpmw2Hy.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-PfH1MBS7.js → diagram-QEK2KX5R-ChxL1lOj.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-DIyYe2yo.js → diagram-S2PKOQOG-CWk5ucVa.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-DWSS5ilU.js → erDiagram-Q2GNP2WA-TKtLKYBO.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-D8sgfoe8.js → flowDiagram-NV44I4VS-CNkvODlq.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-CY0uwMQo.js → ganttDiagram-JELNMOA3-GpiTT-6g.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-C5HEaqeu.js → gitGraphDiagram-V2S2FVAM-Dka5-Ebv.js} +1 -1
- package/dist/client/assets/{graph-CHdAVft2.js → graph-BJfBQ-lk.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-fz7u7Bcv.js → highlighted-body-B3W2YXNL-Dcw7_8Mg.js} +1 -1
- package/dist/client/assets/{index-DQOFyUau.js → index-B55cfwG2.js} +1 -1
- package/dist/client/assets/{index-DZYkmDwN.js → index-B8-bfanc.js} +1 -1
- package/dist/client/assets/{index-Clbffg3I.js → index-BBjfnWP1.js} +1 -1
- package/dist/client/assets/{index-Ru2Dc5A_.js → index-BVmOFLZL.js} +1 -1
- package/dist/client/assets/{index-xQGEDauU.js → index-Bf0KQTWS.js} +1 -1
- package/dist/client/assets/{index-D-HgfXJR.js → index-BqB0fXhh.js} +1 -1
- package/dist/client/assets/{index-D6YofG76.js → index-Bw0gx-LL.js} +1 -1
- package/dist/client/assets/{index-Dz2ryCk3.js → index-C04T_A2n.js} +1 -1
- package/dist/client/assets/{index-BooiqIu5.js → index-D4kWf9j1.js} +1 -1
- package/dist/client/assets/{index-DWJFPU_5.js → index-D6AQfoh3.js} +1 -1
- package/dist/client/assets/{index-DMwXny-D.js → index-D7ptzMHA.js} +1 -1
- package/dist/client/assets/{index-CrBImo8f.js → index-DNCwYJJi.js} +1 -1
- package/dist/client/assets/{index-8d72uArR.js → index-GWun5iKj.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-D0hp75aO.js → infoDiagram-HS3SLOUP-yepsEzeD.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-91HWCjRU.js → journeyDiagram-XKPGCS4Q-Ah-IVMRC.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-BzioXfF6.js → kanban-definition-3W4ZIXB7-4lmmn3Kf.js} +1 -1
- package/dist/client/assets/{layout-DfQbFp33.js → layout-WnM58jJN.js} +1 -1
- package/dist/client/assets/main-C-PIkr2h.css +1 -0
- package/dist/client/assets/{main-Dqe_6Q3-.js → main-D7maoxCk.js} +253 -248
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-C_jxHaxD.js → mindmap-definition-VGOIOE7T-CW03vZML.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-Kn_LfuP0.js → pieDiagram-ADFJNKIX-b38HzvV9.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-CbeGV886.js → quadrantDiagram-AYHSOK5B-D7COvUcB.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-COoa_fat.js → requirementDiagram-UZGBJVZJ-Dbo91lMQ.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-TXccJBqI.js → sankeyDiagram-TZEHDZUN-DPpuI6f6.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-Llnk43Jx.js → sequenceDiagram-WL72ISMW-osyniVrm.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-DsQWz-Kg.js → stateDiagram-FKZM4ZOC-CEtXxDG2.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DtnGHNEG.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-B16mbiqF.js → timeline-definition-IT6M3QCI-Bbim-hJj.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-CN_Il1TD.js → treemap-GDKQZRPO-Bo5jz1c4.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-DJz9r6Bk.js → workspace._workspaceId-BAa7JD1w.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-CXgdRFSq.js → workspace._workspaceId-Dx3IQ0uo.js} +1 -1
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-RSssrHeJ.js → xychartDiagram-PRI3JC2R-CwV1AnKv.js} +1 -1
- package/dist/openapi.json +1 -8
- package/dist/server/assets/{TerminalPanel-BE1IBqp5.js → TerminalPanel-oz5y-mkP.js} +6 -6
- package/dist/server/assets/{_basePickBy-CHo3_xmm.js → _basePickBy-DEzTaMUa.js} +2 -2
- package/dist/server/assets/{_baseUniq-CSupPFs6.js → _baseUniq-CnsXScTA.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-CGO9e_6B.js +4 -0
- package/dist/server/assets/{arc-D44kAr9U.js → arc-DFOFayWx.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-vXckakYr.js → architecture-7HQA4BMR-n9VmbCuR.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-CR2ITyvh.js → architectureDiagram-VXUJARFQ-IeNkR88v.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-DEeR9cDU.js → blockDiagram-VD42YOAC-CWXr6KW7.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-DBRRCTXb.js → c4Diagram-YG6GDRKO-DIRimETA.js} +2 -2
- package/dist/server/assets/{channel-C5tRsfJG.js → channel-Cdqq5j16.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-bf7NCd3y.js → chunk-4BX2VUAB-Cozm9hqk.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-DWdn6VWI.js → chunk-55IACEB6-DRjrJM1L.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-Dkh6IKnk.js → chunk-B4BG7PRW-BwiA7gAZ.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-DBWVZkkA.js → chunk-DI55MBZ5-DYx-lIkt.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-BdS42WOu.js → chunk-FMBD7UC4-Bd38Wnw9.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-B8Ct7vG8.js → chunk-QN33PNHL-ONbSMsSY.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-B9nHGxsX.js → chunk-QZHKN3VN-fU_vVgPJ.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-BlzccDyU.js → chunk-TZMSLE5B-BBpSfNKJ.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-Chmrw_oF.js → classDiagram-2ON5EDUG-BLteCxZe.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-Chmrw_oF.js → classDiagram-v2-WZHVMYZB-BLteCxZe.js} +5 -5
- package/dist/server/assets/{clone-aEnx_Sae.js → clone-DHWXuNGD.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-Bc5NoQXq.js → cose-bilkent-S5V4N54A-Dqv8g3XR.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-H_kNmEPM.js → dagre-6UL2VRFP-DvvoFaVJ.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-BcsANBT1.js → diagram-PSM6KHXK-CbKKlJvK.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-k-zPaYMJ.js → diagram-QEK2KX5R-GLrYhnWw.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-DjbSY-6m.js → diagram-S2PKOQOG-uaww8JQd.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-CydybEEO.js → erDiagram-Q2GNP2WA-CBpgZJNk.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-tA99onXp.js → flowDiagram-NV44I4VS-DwqeGUt2.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-DsJKSbMm.js → ganttDiagram-JELNMOA3-CSDzrG3u.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-BNHu-oQ-.js → gitGraph-G5XIXVHT-CI6QTqC-.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CzPNHl73.js → gitGraphDiagram-V2S2FVAM-4Hraf1YX.js} +7 -7
- package/dist/server/assets/{graph-BnMaPr50.js → graph-BKeol0ik.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-BdiOjvlf.js → highlighted-body-B3W2YXNL-C_Th2vxh.js} +1 -1
- package/dist/server/assets/{index-C1sJw8Wd.js → index-B-VeeFTd.js} +1 -1
- package/dist/server/assets/{index-Z2HsI7K-.js → index-BQEmg9fY.js} +1 -1
- package/dist/server/assets/{index-BdUQ01QB.js → index-BVY32Ndh.js} +1 -1
- package/dist/server/assets/{index-DYrcmtj8.js → index-BmH5PL3t.js} +1 -1
- package/dist/server/assets/{index-BuEcvcgH.js → index-BtAQWAP4.js} +1 -1
- package/dist/server/assets/{index-CvQ9Ebcc.js → index-CXm0C-yc.js} +1 -1
- package/dist/server/assets/{index-CPWcRp4N.js → index-CklLNUhb.js} +1 -1
- package/dist/server/assets/{index-BDjoQgaj.js → index-CoOBJObR.js} +1 -1
- package/dist/server/assets/{index-BcHVcca2.js → index-DOtn1sP2.js} +1 -1
- package/dist/server/assets/{index-DKZU081P.js → index-KTMc95HN.js} +1 -1
- package/dist/server/assets/{index-BbZG02I3.js → index-SeV-ZdZi.js} +1 -1
- package/dist/server/assets/{index-B5Ou6PeY.js → index-WYUrghvu.js} +1 -1
- package/dist/server/assets/{index-CGb2LUtT.js → index-dS3n7bt3.js} +1 -1
- package/dist/server/assets/{info-VBDWY6EO-C24hC3ph.js → info-VBDWY6EO-qXtU7fls.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-CSvzttKw.js → infoDiagram-HS3SLOUP-Bnhyc8dm.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-Bb7ADiou.js → journeyDiagram-XKPGCS4Q-DCeht2II.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-BCi9DXfZ.js → kanban-definition-3W4ZIXB7-D2wyptyQ.js} +2 -2
- package/dist/server/assets/{layout-CBoh_yzS.js → layout-D8oV2IEs.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-DrE5sAWk.js → mermaid-3ZIDBTTL-BLpPLDqd.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-C6_1Cugd.js → mermaid-parser.core-BbOvn3Uv.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-yqPdoOIb.js → mindmap-definition-VGOIOE7T-CKJkiH58.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-DJmc50nE.js → packet-DYOGHKS2-CnxepCEW.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-CvrR2-yk.js → pie-VRWISCQL-KXauGON3.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-CFOW6PnN.js → pieDiagram-ADFJNKIX-B8juLdbl.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-3A-aZNyC.js → quadrantDiagram-AYHSOK5B-CLY3QLCC.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-Cfbkh5bz.js → radar-ZZBFDIW7-CIRaA_9T.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-Dlll26uf.js → requirementDiagram-UZGBJVZJ-CgDmK30l.js} +3 -3
- package/dist/server/assets/{router-B261twKF.js → router-G1mE-O-Q.js} +1436 -861
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BQaOXs3v.js → sankeyDiagram-TZEHDZUN-B9355ZLW.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-BCAnfOwu.js → sequenceDiagram-WL72ISMW-SyLdlVhU.js} +3 -3
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-BqJZtxdF.js → stateDiagram-FKZM4ZOC-B8krws9Z.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-1ifEjgYq.js → stateDiagram-v2-4FDKWEC3-CqkUhCge.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-CAWbczQG.js → timeline-definition-IT6M3QCI-eG_EzXZg.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-BK5fWRQl.js → treemap-GDKQZRPO-DS3w9TMX.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-DJjGZFKN.js → workspace._workspaceId-Bd4v7PwG.js} +1 -1
- package/dist/server/assets/{workspace._workspaceId-C895SrvA.js → workspace._workspaceId-DMYkHS43.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-DfSubvZj.js → xychartDiagram-PRI3JC2R-DAi7zkg3.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +398 -363
- package/package.json +5 -5
- package/dist/client/assets/TerminalPanel-6-rt7Tzp.js +0 -1
- package/dist/client/assets/channel-BObJvFJf.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-B4j3Xs8O.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-B4j3Xs8O.js +0 -1
- package/dist/client/assets/clone-D1oJjm-k.js +0 -1
- package/dist/client/assets/main-CXgf0iaP.css +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BZgMRt9_.js +0 -1
- package/dist/server/assets/_tanstack-start-manifest_v-Cnfw-Mtl.js +0 -4
package/dist/start-server.mjs
CHANGED
|
@@ -702,7 +702,7 @@ function pipeReducer(prev, fn2) {
|
|
|
702
702
|
}
|
|
703
703
|
function observableToPromise(observable$1) {
|
|
704
704
|
const ac = new AbortController();
|
|
705
|
-
const promise2 = new Promise((
|
|
705
|
+
const promise2 = new Promise((resolve13, reject) => {
|
|
706
706
|
let isDone = false;
|
|
707
707
|
function onDone() {
|
|
708
708
|
if (isDone) return;
|
|
@@ -715,7 +715,7 @@ function observableToPromise(observable$1) {
|
|
|
715
715
|
const obs$ = observable$1.subscribe({
|
|
716
716
|
next(data2) {
|
|
717
717
|
isDone = true;
|
|
718
|
-
|
|
718
|
+
resolve13(data2);
|
|
719
719
|
onDone();
|
|
720
720
|
},
|
|
721
721
|
error(data2) {
|
|
@@ -888,15 +888,15 @@ function resolveSelfTuple(promise2) {
|
|
|
888
888
|
return Unpromise.proxy(promise2).then(() => [promise2]);
|
|
889
889
|
}
|
|
890
890
|
function withResolvers() {
|
|
891
|
-
let
|
|
891
|
+
let resolve13;
|
|
892
892
|
let reject;
|
|
893
893
|
const promise2 = new Promise((_resolve, _reject) => {
|
|
894
|
-
|
|
894
|
+
resolve13 = _resolve;
|
|
895
895
|
reject = _reject;
|
|
896
896
|
});
|
|
897
897
|
return {
|
|
898
898
|
promise: promise2,
|
|
899
|
-
resolve:
|
|
899
|
+
resolve: resolve13,
|
|
900
900
|
reject
|
|
901
901
|
};
|
|
902
902
|
}
|
|
@@ -933,8 +933,8 @@ function timerResource(ms) {
|
|
|
933
933
|
let timer = null;
|
|
934
934
|
return makeResource({ start() {
|
|
935
935
|
if (timer) throw new Error("Timer already started");
|
|
936
|
-
const promise2 = new Promise((
|
|
937
|
-
timer = setTimeout(() =>
|
|
936
|
+
const promise2 = new Promise((resolve13) => {
|
|
937
|
+
timer = setTimeout(() => resolve13(disposablePromiseTimerResult), ms);
|
|
938
938
|
});
|
|
939
939
|
return promise2;
|
|
940
940
|
} }, () => {
|
|
@@ -979,15 +979,15 @@ function _takeWithGrace() {
|
|
|
979
979
|
return _takeWithGrace.apply(this, arguments);
|
|
980
980
|
}
|
|
981
981
|
function createDeferred() {
|
|
982
|
-
let
|
|
982
|
+
let resolve13;
|
|
983
983
|
let reject;
|
|
984
984
|
const promise2 = new Promise((res, rej) => {
|
|
985
|
-
|
|
985
|
+
resolve13 = res;
|
|
986
986
|
reject = rej;
|
|
987
987
|
});
|
|
988
988
|
return {
|
|
989
989
|
promise: promise2,
|
|
990
|
-
resolve:
|
|
990
|
+
resolve: resolve13,
|
|
991
991
|
reject
|
|
992
992
|
};
|
|
993
993
|
}
|
|
@@ -2057,8 +2057,8 @@ var init_resolveResponse_BLZa62_J = __esm({
|
|
|
2057
2057
|
status: "fulfilled",
|
|
2058
2058
|
value
|
|
2059
2059
|
};
|
|
2060
|
-
subscribers === null || subscribers === void 0 || subscribers.forEach(({ resolve:
|
|
2061
|
-
|
|
2060
|
+
subscribers === null || subscribers === void 0 || subscribers.forEach(({ resolve: resolve13 }) => {
|
|
2061
|
+
resolve13(value);
|
|
2062
2062
|
});
|
|
2063
2063
|
});
|
|
2064
2064
|
if ("catch" in thenReturn) thenReturn.catch((reason) => {
|
|
@@ -11697,21 +11697,21 @@ var require_react_development = __commonJS({
|
|
|
11697
11697
|
);
|
|
11698
11698
|
actScopeDepth = prevActScopeDepth;
|
|
11699
11699
|
}
|
|
11700
|
-
function recursivelyFlushAsyncActWork(returnValue,
|
|
11700
|
+
function recursivelyFlushAsyncActWork(returnValue, resolve13, reject) {
|
|
11701
11701
|
var queue = ReactSharedInternals.actQueue;
|
|
11702
11702
|
if (null !== queue)
|
|
11703
11703
|
if (0 !== queue.length)
|
|
11704
11704
|
try {
|
|
11705
11705
|
flushActQueue(queue);
|
|
11706
11706
|
enqueueTask(function() {
|
|
11707
|
-
return recursivelyFlushAsyncActWork(returnValue,
|
|
11707
|
+
return recursivelyFlushAsyncActWork(returnValue, resolve13, reject);
|
|
11708
11708
|
});
|
|
11709
11709
|
return;
|
|
11710
11710
|
} catch (error40) {
|
|
11711
11711
|
ReactSharedInternals.thrownErrors.push(error40);
|
|
11712
11712
|
}
|
|
11713
11713
|
else ReactSharedInternals.actQueue = null;
|
|
11714
|
-
0 < ReactSharedInternals.thrownErrors.length ? (queue = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, reject(queue)) :
|
|
11714
|
+
0 < ReactSharedInternals.thrownErrors.length ? (queue = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, reject(queue)) : resolve13(returnValue);
|
|
11715
11715
|
}
|
|
11716
11716
|
function flushActQueue(queue) {
|
|
11717
11717
|
if (!isFlushing) {
|
|
@@ -11898,7 +11898,7 @@ var require_react_development = __commonJS({
|
|
|
11898
11898
|
));
|
|
11899
11899
|
});
|
|
11900
11900
|
return {
|
|
11901
|
-
then: function(
|
|
11901
|
+
then: function(resolve13, reject) {
|
|
11902
11902
|
didAwaitActCall = true;
|
|
11903
11903
|
thenable.then(
|
|
11904
11904
|
function(returnValue) {
|
|
@@ -11908,7 +11908,7 @@ var require_react_development = __commonJS({
|
|
|
11908
11908
|
flushActQueue(queue), enqueueTask(function() {
|
|
11909
11909
|
return recursivelyFlushAsyncActWork(
|
|
11910
11910
|
returnValue,
|
|
11911
|
-
|
|
11911
|
+
resolve13,
|
|
11912
11912
|
reject
|
|
11913
11913
|
);
|
|
11914
11914
|
});
|
|
@@ -11922,7 +11922,7 @@ var require_react_development = __commonJS({
|
|
|
11922
11922
|
ReactSharedInternals.thrownErrors.length = 0;
|
|
11923
11923
|
reject(_thrownError);
|
|
11924
11924
|
}
|
|
11925
|
-
} else
|
|
11925
|
+
} else resolve13(returnValue);
|
|
11926
11926
|
},
|
|
11927
11927
|
function(error40) {
|
|
11928
11928
|
popActScope(prevActQueue, prevActScopeDepth);
|
|
@@ -11944,15 +11944,15 @@ var require_react_development = __commonJS({
|
|
|
11944
11944
|
if (0 < ReactSharedInternals.thrownErrors.length)
|
|
11945
11945
|
throw callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback;
|
|
11946
11946
|
return {
|
|
11947
|
-
then: function(
|
|
11947
|
+
then: function(resolve13, reject) {
|
|
11948
11948
|
didAwaitActCall = true;
|
|
11949
11949
|
0 === prevActScopeDepth ? (ReactSharedInternals.actQueue = queue, enqueueTask(function() {
|
|
11950
11950
|
return recursivelyFlushAsyncActWork(
|
|
11951
11951
|
returnValue$jscomp$0,
|
|
11952
|
-
|
|
11952
|
+
resolve13,
|
|
11953
11953
|
reject
|
|
11954
11954
|
);
|
|
11955
|
-
})) :
|
|
11955
|
+
})) : resolve13(returnValue$jscomp$0);
|
|
11956
11956
|
}
|
|
11957
11957
|
};
|
|
11958
11958
|
};
|
|
@@ -37623,11 +37623,11 @@ function __metadata(metadataKey, metadataValue) {
|
|
|
37623
37623
|
}
|
|
37624
37624
|
function __awaiter(thisArg, _arguments, P3, generator) {
|
|
37625
37625
|
function adopt(value) {
|
|
37626
|
-
return value instanceof P3 ? value : new P3(function(
|
|
37627
|
-
|
|
37626
|
+
return value instanceof P3 ? value : new P3(function(resolve13) {
|
|
37627
|
+
resolve13(value);
|
|
37628
37628
|
});
|
|
37629
37629
|
}
|
|
37630
|
-
return new (P3 || (P3 = Promise))(function(
|
|
37630
|
+
return new (P3 || (P3 = Promise))(function(resolve13, reject) {
|
|
37631
37631
|
function fulfilled(value) {
|
|
37632
37632
|
try {
|
|
37633
37633
|
step(generator.next(value));
|
|
@@ -37643,7 +37643,7 @@ function __awaiter(thisArg, _arguments, P3, generator) {
|
|
|
37643
37643
|
}
|
|
37644
37644
|
}
|
|
37645
37645
|
function step(result) {
|
|
37646
|
-
result.done ?
|
|
37646
|
+
result.done ? resolve13(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
37647
37647
|
}
|
|
37648
37648
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
37649
37649
|
});
|
|
@@ -37834,14 +37834,14 @@ function __asyncValues(o) {
|
|
|
37834
37834
|
}, i);
|
|
37835
37835
|
function verb(n) {
|
|
37836
37836
|
i[n] = o[n] && function(v2) {
|
|
37837
|
-
return new Promise(function(
|
|
37838
|
-
v2 = o[n](v2), settle(
|
|
37837
|
+
return new Promise(function(resolve13, reject) {
|
|
37838
|
+
v2 = o[n](v2), settle(resolve13, reject, v2.done, v2.value);
|
|
37839
37839
|
});
|
|
37840
37840
|
};
|
|
37841
37841
|
}
|
|
37842
|
-
function settle(
|
|
37842
|
+
function settle(resolve13, reject, d2, v2) {
|
|
37843
37843
|
Promise.resolve(v2).then(function(v3) {
|
|
37844
|
-
|
|
37844
|
+
resolve13({ value: v3, done: d2 });
|
|
37845
37845
|
}, reject);
|
|
37846
37846
|
}
|
|
37847
37847
|
}
|
|
@@ -72653,10 +72653,10 @@ function dataLoader(batchLoader) {
|
|
|
72653
72653
|
resolve: throwFatalError,
|
|
72654
72654
|
reject: throwFatalError
|
|
72655
72655
|
};
|
|
72656
|
-
const promise2 = new Promise((
|
|
72656
|
+
const promise2 = new Promise((resolve13, reject) => {
|
|
72657
72657
|
var _pendingItems;
|
|
72658
72658
|
item.reject = reject;
|
|
72659
|
-
item.resolve =
|
|
72659
|
+
item.resolve = resolve13;
|
|
72660
72660
|
(_pendingItems = pendingItems) !== null && _pendingItems !== void 0 || (pendingItems = []);
|
|
72661
72661
|
pendingItems.push(item);
|
|
72662
72662
|
});
|
|
@@ -72780,15 +72780,15 @@ var init_loggerLink_ineCN1PO = __esm({
|
|
|
72780
72780
|
|
|
72781
72781
|
// ../../node_modules/.pnpm/@trpc+client@11.12.0_@trpc+server@11.12.0_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/dist/wsLink-DSf4KOdW.mjs
|
|
72782
72782
|
function withResolvers2() {
|
|
72783
|
-
let
|
|
72783
|
+
let resolve13;
|
|
72784
72784
|
let reject;
|
|
72785
72785
|
const promise2 = new Promise((res, rej) => {
|
|
72786
|
-
|
|
72786
|
+
resolve13 = res;
|
|
72787
72787
|
reject = rej;
|
|
72788
72788
|
});
|
|
72789
72789
|
return {
|
|
72790
72790
|
promise: promise2,
|
|
72791
|
-
resolve:
|
|
72791
|
+
resolve: resolve13,
|
|
72792
72792
|
reject
|
|
72793
72793
|
};
|
|
72794
72794
|
}
|
|
@@ -72807,10 +72807,10 @@ async function buildConnectionMessage(connectionParams, encoder) {
|
|
|
72807
72807
|
return encoder.encode(message);
|
|
72808
72808
|
}
|
|
72809
72809
|
function asyncWsOpen(ws) {
|
|
72810
|
-
const { promise: promise2, resolve:
|
|
72810
|
+
const { promise: promise2, resolve: resolve13, reject } = withResolvers2();
|
|
72811
72811
|
ws.addEventListener("open", () => {
|
|
72812
72812
|
ws.removeEventListener("error", reject);
|
|
72813
|
-
|
|
72813
|
+
resolve13();
|
|
72814
72814
|
});
|
|
72815
72815
|
ws.addEventListener("error", reject);
|
|
72816
72816
|
return promise2;
|
|
@@ -72967,7 +72967,7 @@ var init_wsLink_DSf4KOdW = __esm({
|
|
|
72967
72967
|
* @returns A cleanup function to manually remove the request.
|
|
72968
72968
|
*/
|
|
72969
72969
|
register(message, callbacks) {
|
|
72970
|
-
const { promise: end, resolve:
|
|
72970
|
+
const { promise: end, resolve: resolve13 } = withResolvers2();
|
|
72971
72971
|
this.outgoingRequests.push({
|
|
72972
72972
|
id: String(message.id),
|
|
72973
72973
|
message,
|
|
@@ -72976,18 +72976,18 @@ var init_wsLink_DSf4KOdW = __esm({
|
|
|
72976
72976
|
next: callbacks.next,
|
|
72977
72977
|
complete: () => {
|
|
72978
72978
|
callbacks.complete();
|
|
72979
|
-
|
|
72979
|
+
resolve13();
|
|
72980
72980
|
},
|
|
72981
72981
|
error: (e) => {
|
|
72982
72982
|
callbacks.error(e);
|
|
72983
|
-
|
|
72983
|
+
resolve13();
|
|
72984
72984
|
}
|
|
72985
72985
|
}
|
|
72986
72986
|
});
|
|
72987
72987
|
return () => {
|
|
72988
72988
|
this.delete(message.id);
|
|
72989
72989
|
callbacks.complete();
|
|
72990
|
-
|
|
72990
|
+
resolve13();
|
|
72991
72991
|
};
|
|
72992
72992
|
}
|
|
72993
72993
|
/**
|
|
@@ -78772,10 +78772,10 @@ var require_core_cjs_development = __commonJS({
|
|
|
78772
78772
|
easing,
|
|
78773
78773
|
fill: "forwards"
|
|
78774
78774
|
});
|
|
78775
|
-
return new Promise((
|
|
78775
|
+
return new Promise((resolve13) => {
|
|
78776
78776
|
animation.onfinish = () => {
|
|
78777
78777
|
cleanup == null ? void 0 : cleanup();
|
|
78778
|
-
|
|
78778
|
+
resolve13();
|
|
78779
78779
|
};
|
|
78780
78780
|
});
|
|
78781
78781
|
};
|
|
@@ -87218,7 +87218,7 @@ var require_compile = __commonJS({
|
|
|
87218
87218
|
const schOrFunc = root.refs[ref];
|
|
87219
87219
|
if (schOrFunc)
|
|
87220
87220
|
return schOrFunc;
|
|
87221
|
-
let _sch =
|
|
87221
|
+
let _sch = resolve13.call(this, root, ref);
|
|
87222
87222
|
if (_sch === void 0) {
|
|
87223
87223
|
const schema = (_a2 = root.localRefs) === null || _a2 === void 0 ? void 0 : _a2[ref];
|
|
87224
87224
|
const { schemaId } = this.opts;
|
|
@@ -87245,7 +87245,7 @@ var require_compile = __commonJS({
|
|
|
87245
87245
|
function sameSchemaEnv(s1, s2) {
|
|
87246
87246
|
return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
|
|
87247
87247
|
}
|
|
87248
|
-
function
|
|
87248
|
+
function resolve13(root, ref) {
|
|
87249
87249
|
let sch;
|
|
87250
87250
|
while (typeof (sch = this.refs[ref]) == "string")
|
|
87251
87251
|
ref = sch;
|
|
@@ -87820,7 +87820,7 @@ var require_fast_uri = __commonJS({
|
|
|
87820
87820
|
}
|
|
87821
87821
|
return uri;
|
|
87822
87822
|
}
|
|
87823
|
-
function
|
|
87823
|
+
function resolve13(baseURI, relativeURI, options2) {
|
|
87824
87824
|
const schemelessOptions = options2 ? Object.assign({ scheme: "null" }, options2) : { scheme: "null" };
|
|
87825
87825
|
const resolved = resolveComponent(parse5(baseURI, schemelessOptions), parse5(relativeURI, schemelessOptions), schemelessOptions, true);
|
|
87826
87826
|
schemelessOptions.skipEscape = true;
|
|
@@ -88047,7 +88047,7 @@ var require_fast_uri = __commonJS({
|
|
|
88047
88047
|
var fastUri = {
|
|
88048
88048
|
SCHEMES,
|
|
88049
88049
|
normalize: normalize3,
|
|
88050
|
-
resolve:
|
|
88050
|
+
resolve: resolve13,
|
|
88051
88051
|
resolveComponent,
|
|
88052
88052
|
equal,
|
|
88053
88053
|
serialize,
|
|
@@ -91039,7 +91039,7 @@ var require_dist5 = __commonJS({
|
|
|
91039
91039
|
// start-server.ts
|
|
91040
91040
|
import { appendFileSync, createReadStream as createReadStream3, mkdirSync as mkdirSync8, readFileSync as readFileSync10, statSync as statSync12 } from "node:fs";
|
|
91041
91041
|
import { createServer } from "node:http";
|
|
91042
|
-
import { basename as basename5, join as join39, resolve as
|
|
91042
|
+
import { basename as basename5, join as join39, resolve as resolve12, sep as sep8 } from "node:path";
|
|
91043
91043
|
|
|
91044
91044
|
// ../../node_modules/.pnpm/@trpc+server@11.12.0_typescript@5.9.3/node_modules/@trpc/server/dist/adapters/fetch/index.mjs
|
|
91045
91045
|
init_getErrorShape_vC8mUXJD();
|
|
@@ -91281,8 +91281,8 @@ function getWSConnectionHandler(opts) {
|
|
|
91281
91281
|
try {
|
|
91282
91282
|
var _usingCtx = (0, import_usingCtx2.default)();
|
|
91283
91283
|
const iterator = _usingCtx.a(iteratorResource(iterable));
|
|
91284
|
-
const abortPromise = new Promise((
|
|
91285
|
-
abortController$1.signal.onabort = () =>
|
|
91284
|
+
const abortPromise = new Promise((resolve13) => {
|
|
91285
|
+
abortController$1.signal.onabort = () => resolve13("abort");
|
|
91286
91286
|
});
|
|
91287
91287
|
let next;
|
|
91288
91288
|
let result$1;
|
|
@@ -92460,6 +92460,8 @@ import { join as join25 } from "node:path";
|
|
|
92460
92460
|
|
|
92461
92461
|
// src/server/infra/agents/acp-agent-process.ts
|
|
92462
92462
|
import { spawn } from "node:child_process";
|
|
92463
|
+
import { realpathSync } from "node:fs";
|
|
92464
|
+
import { resolve as resolve3 } from "node:path";
|
|
92463
92465
|
import { Readable, Writable } from "node:stream";
|
|
92464
92466
|
|
|
92465
92467
|
// ../../node_modules/.pnpm/@agentclientprotocol+sdk@1.5.0_zod@3.25.76/node_modules/@agentclientprotocol/sdk/dist/schema/index.js
|
|
@@ -105777,11 +105779,11 @@ var Connection = class {
|
|
|
105777
105779
|
const id2 = this.nextRequestId++;
|
|
105778
105780
|
let cancel = () => {
|
|
105779
105781
|
};
|
|
105780
|
-
const response = new Promise((
|
|
105782
|
+
const response = new Promise((resolve13, reject) => {
|
|
105781
105783
|
const pendingResponse = {
|
|
105782
105784
|
resolve: (value) => {
|
|
105783
105785
|
try {
|
|
105784
|
-
|
|
105786
|
+
resolve13(mapResponse ? mapResponse(value) : value);
|
|
105785
105787
|
} catch (error40) {
|
|
105786
105788
|
reject(error40);
|
|
105787
105789
|
}
|
|
@@ -105838,8 +105840,8 @@ var Connection = class {
|
|
|
105838
105840
|
this.stream = stream;
|
|
105839
105841
|
this.staticHandlers = handlers3;
|
|
105840
105842
|
this.allowBatches = options2?.allowBatches ?? true;
|
|
105841
|
-
this.closedPromise = new Promise((
|
|
105842
|
-
this.abortController.signal.addEventListener("abort", () =>
|
|
105843
|
+
this.closedPromise = new Promise((resolve13) => {
|
|
105844
|
+
this.abortController.signal.addEventListener("abort", () => resolve13());
|
|
105843
105845
|
});
|
|
105844
105846
|
void this.receive();
|
|
105845
105847
|
}
|
|
@@ -106733,8 +106735,8 @@ var AsyncQueue = class {
|
|
|
106733
106735
|
if (this.failed) {
|
|
106734
106736
|
return Promise.reject(this.failure);
|
|
106735
106737
|
}
|
|
106736
|
-
return new Promise((
|
|
106737
|
-
this.waiters.push({ resolve:
|
|
106738
|
+
return new Promise((resolve13, reject) => {
|
|
106739
|
+
this.waiters.push({ resolve: resolve13, reject });
|
|
106738
106740
|
});
|
|
106739
106741
|
}
|
|
106740
106742
|
};
|
|
@@ -107340,6 +107342,13 @@ var legacyClientNotificationMethods = /* @__PURE__ */ new Set([
|
|
|
107340
107342
|
|
|
107341
107343
|
// src/server/infra/agents/acp-agent-process.ts
|
|
107342
107344
|
var log = createLogger("acp-agent");
|
|
107345
|
+
function canonicalPath(path) {
|
|
107346
|
+
try {
|
|
107347
|
+
return realpathSync(path);
|
|
107348
|
+
} catch {
|
|
107349
|
+
return resolve3(path);
|
|
107350
|
+
}
|
|
107351
|
+
}
|
|
107343
107352
|
var STARTUP_TIMEOUT_MS = 6e4;
|
|
107344
107353
|
var LOAD_TIMEOUT_MS = 18e4;
|
|
107345
107354
|
var STOP_TIMEOUT_MS = 3e3;
|
|
@@ -107410,8 +107419,8 @@ var AcpAgentProcess = class _AcpAgentProcess {
|
|
|
107410
107419
|
if (child.pid === void 0) liveChildren.delete(child);
|
|
107411
107420
|
});
|
|
107412
107421
|
try {
|
|
107413
|
-
await new Promise((
|
|
107414
|
-
child.once("spawn",
|
|
107422
|
+
await new Promise((resolve13, reject) => {
|
|
107423
|
+
child.once("spawn", resolve13);
|
|
107415
107424
|
child.once("error", reject);
|
|
107416
107425
|
});
|
|
107417
107426
|
} catch (err) {
|
|
@@ -107525,6 +107534,16 @@ var AcpAgentProcess = class _AcpAgentProcess {
|
|
|
107525
107534
|
* the page cap bounds that walk.
|
|
107526
107535
|
*/
|
|
107527
107536
|
async listSessions(cwd, limit = 200) {
|
|
107537
|
+
const dir = canonicalPath(cwd);
|
|
107538
|
+
const resolved = /* @__PURE__ */ new Map();
|
|
107539
|
+
const inDir = (s2) => {
|
|
107540
|
+
let path = resolved.get(s2.cwd);
|
|
107541
|
+
if (path === void 0) {
|
|
107542
|
+
path = canonicalPath(s2.cwd);
|
|
107543
|
+
resolved.set(s2.cwd, path);
|
|
107544
|
+
}
|
|
107545
|
+
return path === dir;
|
|
107546
|
+
};
|
|
107528
107547
|
const sessions = [];
|
|
107529
107548
|
let cursor;
|
|
107530
107549
|
for (let page = 0; page < 10 && sessions.length < limit; page++) {
|
|
@@ -107534,7 +107553,7 @@ var AcpAgentProcess = class _AcpAgentProcess {
|
|
|
107534
107553
|
this.label
|
|
107535
107554
|
)
|
|
107536
107555
|
);
|
|
107537
|
-
sessions.push(...res.sessions);
|
|
107556
|
+
sessions.push(...res.sessions.filter(inDir));
|
|
107538
107557
|
cursor = res.nextCursor;
|
|
107539
107558
|
if (!cursor) break;
|
|
107540
107559
|
}
|
|
@@ -107620,16 +107639,16 @@ async function stopAllAgentProcesses() {
|
|
|
107620
107639
|
}
|
|
107621
107640
|
async function stopAgentProcess(child) {
|
|
107622
107641
|
if (child.pid === void 0) {
|
|
107623
|
-
await new Promise((
|
|
107624
|
-
child.once("spawn", () =>
|
|
107625
|
-
child.once("error", () =>
|
|
107642
|
+
await new Promise((resolve13) => {
|
|
107643
|
+
child.once("spawn", () => resolve13());
|
|
107644
|
+
child.once("error", () => resolve13());
|
|
107626
107645
|
});
|
|
107627
107646
|
}
|
|
107628
107647
|
const pid = child.pid;
|
|
107629
107648
|
if (pid === void 0) return;
|
|
107630
|
-
const exited = new Promise((
|
|
107631
|
-
if (child.exitCode !== null || child.signalCode !== null)
|
|
107632
|
-
else child.once("exit", () =>
|
|
107649
|
+
const exited = new Promise((resolve13) => {
|
|
107650
|
+
if (child.exitCode !== null || child.signalCode !== null) resolve13();
|
|
107651
|
+
else child.once("exit", () => resolve13());
|
|
107633
107652
|
});
|
|
107634
107653
|
const running = () => {
|
|
107635
107654
|
if (process.platform === "win32") return child.exitCode === null && child.signalCode === null;
|
|
@@ -107647,7 +107666,7 @@ async function stopAgentProcess(child) {
|
|
|
107647
107666
|
await Promise.race([exited, delay(1e3)]);
|
|
107648
107667
|
}
|
|
107649
107668
|
function delay(ms) {
|
|
107650
|
-
return new Promise((
|
|
107669
|
+
return new Promise((resolve13) => setTimeout(resolve13, ms));
|
|
107651
107670
|
}
|
|
107652
107671
|
function signalGroup(child, pid, signal) {
|
|
107653
107672
|
try {
|
|
@@ -108253,7 +108272,7 @@ import { execFile } from "node:child_process";
|
|
|
108253
108272
|
var log3 = createLogger("coding-agent:usage:opencode");
|
|
108254
108273
|
function createOpenCodeUsageReader(command = OPENCODE_DEFAULT_BINARY) {
|
|
108255
108274
|
async function listSessions3(dir) {
|
|
108256
|
-
const sessions = await new Promise((
|
|
108275
|
+
const sessions = await new Promise((resolve13, reject) => {
|
|
108257
108276
|
execFile(
|
|
108258
108277
|
command,
|
|
108259
108278
|
["session", "list", "--format", "json"],
|
|
@@ -108264,9 +108283,9 @@ function createOpenCodeUsageReader(command = OPENCODE_DEFAULT_BINARY) {
|
|
|
108264
108283
|
return;
|
|
108265
108284
|
}
|
|
108266
108285
|
try {
|
|
108267
|
-
|
|
108286
|
+
resolve13(JSON.parse(stdout));
|
|
108268
108287
|
} catch {
|
|
108269
|
-
|
|
108288
|
+
resolve13([]);
|
|
108270
108289
|
}
|
|
108271
108290
|
}
|
|
108272
108291
|
);
|
|
@@ -108277,7 +108296,7 @@ function createOpenCodeUsageReader(command = OPENCODE_DEFAULT_BINARY) {
|
|
|
108277
108296
|
async function getSessionUsage3(sessionId, _dir) {
|
|
108278
108297
|
let raw;
|
|
108279
108298
|
try {
|
|
108280
|
-
raw = await new Promise((
|
|
108299
|
+
raw = await new Promise((resolve13, reject) => {
|
|
108281
108300
|
execFile(
|
|
108282
108301
|
command,
|
|
108283
108302
|
["export", sessionId],
|
|
@@ -108287,7 +108306,7 @@ function createOpenCodeUsageReader(command = OPENCODE_DEFAULT_BINARY) {
|
|
|
108287
108306
|
reject(err);
|
|
108288
108307
|
return;
|
|
108289
108308
|
}
|
|
108290
|
-
|
|
108309
|
+
resolve13(stdout);
|
|
108291
108310
|
}
|
|
108292
108311
|
);
|
|
108293
108312
|
});
|
|
@@ -108423,13 +108442,13 @@ async function shellPath() {
|
|
|
108423
108442
|
}
|
|
108424
108443
|
const shell2 = defaultShell();
|
|
108425
108444
|
try {
|
|
108426
|
-
const result = await new Promise((
|
|
108445
|
+
const result = await new Promise((resolve13, reject) => {
|
|
108427
108446
|
execFile2(shell2, ["-li", "-c", "echo $PATH"], { timeout: 5e3 }, (err, stdout) => {
|
|
108428
108447
|
if (err) {
|
|
108429
108448
|
reject(err);
|
|
108430
108449
|
return;
|
|
108431
108450
|
}
|
|
108432
|
-
|
|
108451
|
+
resolve13(stdout.trim());
|
|
108433
108452
|
});
|
|
108434
108453
|
});
|
|
108435
108454
|
if (result) {
|
|
@@ -108446,13 +108465,13 @@ async function whichBinary(name3) {
|
|
|
108446
108465
|
const resolvedPath = await shellPath();
|
|
108447
108466
|
const locator = process.platform === "win32" ? "where" : "which";
|
|
108448
108467
|
try {
|
|
108449
|
-
const result = await new Promise((
|
|
108468
|
+
const result = await new Promise((resolve13, reject) => {
|
|
108450
108469
|
execFile2(locator, [name3], { env: { ...process.env, PATH: resolvedPath } }, (err, stdout) => {
|
|
108451
108470
|
if (err) {
|
|
108452
108471
|
reject(err);
|
|
108453
108472
|
return;
|
|
108454
108473
|
}
|
|
108455
|
-
|
|
108474
|
+
resolve13(stdout.trim());
|
|
108456
108475
|
});
|
|
108457
108476
|
});
|
|
108458
108477
|
const first = result.split(/\r?\n/)[0]?.trim();
|
|
@@ -108551,7 +108570,7 @@ async function resolveAcpLaunch(def2) {
|
|
|
108551
108570
|
|
|
108552
108571
|
// src/server/infra/agents/claude-defaults.ts
|
|
108553
108572
|
import { execFile as execFile3 } from "node:child_process";
|
|
108554
|
-
import { closeSync, openSync, readFileSync, readSync, realpathSync, statSync as statSync4 } from "node:fs";
|
|
108573
|
+
import { closeSync, openSync, readFileSync, readSync, realpathSync as realpathSync2, statSync as statSync4 } from "node:fs";
|
|
108555
108574
|
import { homedir as homedir5 } from "node:os";
|
|
108556
108575
|
import { join as join7, resolve as resolvePath2 } from "node:path";
|
|
108557
108576
|
var EFFORT_LEVELS = /* @__PURE__ */ new Set(["low", "medium", "high", "xhigh", "max"]);
|
|
@@ -108634,7 +108653,7 @@ function configuredClaudeDefaults(opts) {
|
|
|
108634
108653
|
function transcriptPath(env, cwd, sessionId) {
|
|
108635
108654
|
let real3 = cwd;
|
|
108636
108655
|
try {
|
|
108637
|
-
real3 =
|
|
108656
|
+
real3 = realpathSync2(cwd);
|
|
108638
108657
|
} catch {
|
|
108639
108658
|
}
|
|
108640
108659
|
return join7(
|
|
@@ -108700,19 +108719,19 @@ function parseClaudeCliArgs(commandLine) {
|
|
|
108700
108719
|
return out;
|
|
108701
108720
|
}
|
|
108702
108721
|
function listProcesses() {
|
|
108703
|
-
return new Promise((
|
|
108722
|
+
return new Promise((resolve13) => {
|
|
108704
108723
|
execFile3(
|
|
108705
108724
|
"ps",
|
|
108706
108725
|
["-A", "-o", "pid=,ppid=,args="],
|
|
108707
108726
|
{ maxBuffer: 16 * 1024 * 1024 },
|
|
108708
108727
|
(err, out) => {
|
|
108709
|
-
if (err) return
|
|
108728
|
+
if (err) return resolve13([]);
|
|
108710
108729
|
const rows = [];
|
|
108711
108730
|
for (const line2 of out.split("\n")) {
|
|
108712
108731
|
const m3 = /^\s*(\d+)\s+(\d+)\s+(.*)$/.exec(line2);
|
|
108713
108732
|
if (m3) rows.push({ pid: Number(m3[1]), ppid: Number(m3[2]), args: m3[3] ?? "" });
|
|
108714
108733
|
}
|
|
108715
|
-
|
|
108734
|
+
resolve13(rows);
|
|
108716
108735
|
}
|
|
108717
108736
|
);
|
|
108718
108737
|
});
|
|
@@ -116817,7 +116836,7 @@ var ChatEventQueries = class {
|
|
|
116817
116836
|
...indexFields(input.event),
|
|
116818
116837
|
turnStart: input.turnStart ?? false,
|
|
116819
116838
|
payload: JSON.stringify(input.event),
|
|
116820
|
-
createdAt: Date.now()
|
|
116839
|
+
createdAt: input.createdAt ?? Date.now()
|
|
116821
116840
|
}).returning({ id: chatEvents.id }).get();
|
|
116822
116841
|
return row.id;
|
|
116823
116842
|
}
|
|
@@ -116935,7 +116954,8 @@ function rowsToEvents(rows) {
|
|
|
116935
116954
|
out.push({
|
|
116936
116955
|
type: "update",
|
|
116937
116956
|
update: { ...run2.update, content: { type: "text", text: run2.text } },
|
|
116938
|
-
eventId: run2.lastId
|
|
116957
|
+
eventId: run2.lastId,
|
|
116958
|
+
createdAt: run2.createdAt
|
|
116939
116959
|
});
|
|
116940
116960
|
run2 = null;
|
|
116941
116961
|
};
|
|
@@ -116951,11 +116971,12 @@ function rowsToEvents(rows) {
|
|
|
116951
116971
|
run2 = {
|
|
116952
116972
|
update: chunk,
|
|
116953
116973
|
text: chunk.content.type === "text" ? chunk.content.text : "",
|
|
116954
|
-
lastId: row.id
|
|
116974
|
+
lastId: row.id,
|
|
116975
|
+
createdAt: row.createdAt
|
|
116955
116976
|
};
|
|
116956
116977
|
continue;
|
|
116957
116978
|
}
|
|
116958
|
-
out.push({ ...row.event, eventId: row.id });
|
|
116979
|
+
out.push({ ...row.event, eventId: row.id, createdAt: row.createdAt });
|
|
116959
116980
|
}
|
|
116960
116981
|
flush();
|
|
116961
116982
|
return out;
|
|
@@ -126543,6 +126564,10 @@ var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1);
|
|
|
126543
126564
|
// ../../packages/ui/src/components/input.tsx
|
|
126544
126565
|
var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1);
|
|
126545
126566
|
|
|
126567
|
+
// ../../packages/ui/src/popper.ts
|
|
126568
|
+
var POPPER_MAX_HEIGHT = "max-h-[min(var(--popper-max-height,100dvh),calc(var(--radix-popper-available-height)/var(--app-zoom,1)))]";
|
|
126569
|
+
var POPPER_MAX_WIDTH = "max-w-[calc(var(--radix-popper-available-width)/var(--app-zoom,1))]";
|
|
126570
|
+
|
|
126546
126571
|
// ../../packages/ui/src/components/popover.tsx
|
|
126547
126572
|
var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1);
|
|
126548
126573
|
function Popover2({ ...props }) {
|
|
@@ -126564,7 +126589,9 @@ function PopoverContent2({
|
|
|
126564
126589
|
align,
|
|
126565
126590
|
sideOffset,
|
|
126566
126591
|
className: cn(
|
|
126567
|
-
"ease-out duration-150 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
126592
|
+
"ease-out duration-150 z-50 w-72 origin-(--radix-popover-content-transform-origin) overflow-y-auto rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
126593
|
+
POPPER_MAX_HEIGHT,
|
|
126594
|
+
POPPER_MAX_WIDTH,
|
|
126568
126595
|
className
|
|
126569
126596
|
),
|
|
126570
126597
|
...props
|
|
@@ -126956,10 +126983,10 @@ var DIALOG_CONTENT_VARIANTS = {
|
|
|
126956
126983
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
126957
126984
|
// Mobile (< lg): bottom drawer
|
|
126958
126985
|
"inset-x-0 bottom-0 w-full max-w-none rounded-t-2xl border border-b-0 p-6",
|
|
126959
|
-
"max-h-[calc(100dvh-env(safe-area-inset-top)-1.5rem)]",
|
|
126986
|
+
"max-h-[calc(100dvh/var(--app-zoom,1)-env(safe-area-inset-top)-1.5rem)]",
|
|
126960
126987
|
"max-lg:data-[state=open]:slide-in-from-bottom max-lg:data-[state=closed]:slide-out-to-bottom",
|
|
126961
126988
|
// Desktop (lg+): revert to the centred modal
|
|
126962
|
-
"lg:inset-auto lg:top-[50%] lg:left-[50%] lg:bottom-auto lg:w-full lg:max-w-lg lg:max-h-[85vh] lg:translate-x-[-50%] lg:translate-y-[-50%] lg:rounded-lg lg:border-b",
|
|
126989
|
+
"lg:inset-auto lg:top-[50%] lg:left-[50%] lg:bottom-auto lg:w-full lg:max-w-lg lg:max-h-[calc(85vh/var(--app-zoom,1))] lg:translate-x-[-50%] lg:translate-y-[-50%] lg:rounded-lg lg:border-b",
|
|
126963
126990
|
"lg:data-[state=open]:zoom-in-95 lg:data-[state=closed]:zoom-out-95"
|
|
126964
126991
|
].join(" "),
|
|
126965
126992
|
"command-palette": [
|
|
@@ -126975,13 +127002,13 @@ var DIALOG_CONTENT_VARIANTS = {
|
|
|
126975
127002
|
// floats at `bottom: var(--kb-inset)` (keyboard height; 0 when closed) so
|
|
126976
127003
|
// the input clears the on-screen keyboard — see `useKeyboardInset`.
|
|
126977
127004
|
"inset-x-0 bottom-[var(--kb-inset,0px)] w-full max-w-none rounded-t-2xl border border-b-0",
|
|
126978
|
-
"max-h-[calc(100dvh-var(--kb-inset,0px)-env(safe-area-inset-top)-1.5rem)]",
|
|
127005
|
+
"max-h-[calc(100dvh/var(--app-zoom,1)-var(--kb-inset,0px)-env(safe-area-inset-top)-1.5rem)]",
|
|
126979
127006
|
"max-lg:[&_[data-slot=command]]:flex-col-reverse",
|
|
126980
127007
|
"max-lg:[&_[cmdk-input-wrapper]]:border-t max-lg:[&_[cmdk-input-wrapper]]:border-b-0",
|
|
126981
127008
|
"max-lg:data-[state=open]:slide-in-from-bottom max-lg:data-[state=closed]:slide-out-to-bottom",
|
|
126982
127009
|
// Desktop (lg+): anchored in the upper third by its TOP edge — no
|
|
126983
127010
|
// `translate-y`, so the input never moves as the list grows downward.
|
|
126984
|
-
"lg:inset-x-auto lg:bottom-auto lg:top-[12vh] lg:left-1/2 lg:w-full lg:max-w-lg lg:max-h-[70vh] lg:-translate-x-1/2 lg:rounded-lg lg:border"
|
|
127011
|
+
"lg:inset-x-auto lg:bottom-auto lg:top-[calc(12vh/var(--app-zoom,1))] lg:left-1/2 lg:w-full lg:max-w-lg lg:max-h-[calc(70vh/var(--app-zoom,1))] lg:-translate-x-1/2 lg:rounded-lg lg:border"
|
|
126985
127012
|
].join(" ")
|
|
126986
127013
|
};
|
|
126987
127014
|
var keyboardInsetHolders = /* @__PURE__ */ new Set();
|
|
@@ -127148,7 +127175,8 @@ function ContextMenuContent2({
|
|
|
127148
127175
|
if (event.button === 2) event.stopPropagation();
|
|
127149
127176
|
},
|
|
127150
127177
|
className: cn(
|
|
127151
|
-
"ease-out duration-150 z-50
|
|
127178
|
+
"ease-out duration-150 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md dark:text-neutral-50 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
127179
|
+
POPPER_MAX_HEIGHT,
|
|
127152
127180
|
className
|
|
127153
127181
|
),
|
|
127154
127182
|
...props
|
|
@@ -127534,8 +127562,8 @@ function hasObjectPrototype(o) {
|
|
|
127534
127562
|
return Object.prototype.toString.call(o) === "[object Object]";
|
|
127535
127563
|
}
|
|
127536
127564
|
function sleep2(timeout) {
|
|
127537
|
-
return new Promise((
|
|
127538
|
-
timeoutManager.setTimeout(
|
|
127565
|
+
return new Promise((resolve13) => {
|
|
127566
|
+
timeoutManager.setTimeout(resolve13, timeout);
|
|
127539
127567
|
});
|
|
127540
127568
|
}
|
|
127541
127569
|
function replaceData(prevData, data2, options2) {
|
|
@@ -127673,10 +127701,10 @@ var focusManager = new FocusManager();
|
|
|
127673
127701
|
|
|
127674
127702
|
// ../../node_modules/.pnpm/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/thenable.js
|
|
127675
127703
|
function pendingThenable() {
|
|
127676
|
-
let
|
|
127704
|
+
let resolve13;
|
|
127677
127705
|
let reject;
|
|
127678
127706
|
const thenable = new Promise((_resolve, _reject) => {
|
|
127679
|
-
|
|
127707
|
+
resolve13 = _resolve;
|
|
127680
127708
|
reject = _reject;
|
|
127681
127709
|
});
|
|
127682
127710
|
thenable.status = "pending";
|
|
@@ -127692,7 +127720,7 @@ function pendingThenable() {
|
|
|
127692
127720
|
status: "fulfilled",
|
|
127693
127721
|
value
|
|
127694
127722
|
});
|
|
127695
|
-
|
|
127723
|
+
resolve13(value);
|
|
127696
127724
|
};
|
|
127697
127725
|
thenable.reject = (reason) => {
|
|
127698
127726
|
finalize({
|
|
@@ -127871,7 +127899,7 @@ function createRetryer(config2) {
|
|
|
127871
127899
|
};
|
|
127872
127900
|
const canContinue = () => focusManager.isFocused() && (config2.networkMode === "always" || onlineManager.isOnline()) && config2.canRun();
|
|
127873
127901
|
const canStart = () => canFetch(config2.networkMode) && config2.canRun();
|
|
127874
|
-
const
|
|
127902
|
+
const resolve13 = (value) => {
|
|
127875
127903
|
if (!isResolved()) {
|
|
127876
127904
|
continueFn?.();
|
|
127877
127905
|
thenable.resolve(value);
|
|
@@ -127909,7 +127937,7 @@ function createRetryer(config2) {
|
|
|
127909
127937
|
} catch (error40) {
|
|
127910
127938
|
promiseOrValue = Promise.reject(error40);
|
|
127911
127939
|
}
|
|
127912
|
-
Promise.resolve(promiseOrValue).then(
|
|
127940
|
+
Promise.resolve(promiseOrValue).then(resolve13).catch((error40) => {
|
|
127913
127941
|
if (isResolved()) {
|
|
127914
127942
|
return;
|
|
127915
127943
|
}
|
|
@@ -130973,7 +131001,7 @@ var import_react16 = __toESM(require_react(), 1);
|
|
|
130973
131001
|
var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1);
|
|
130974
131002
|
|
|
130975
131003
|
// src/dashboard/components/DashboardShell.tsx
|
|
130976
|
-
var
|
|
131004
|
+
var import_react32 = __toESM(require_react(), 1);
|
|
130977
131005
|
|
|
130978
131006
|
// src/lib/toast-obstructions.ts
|
|
130979
131007
|
var import_react17 = __toESM(require_react(), 1);
|
|
@@ -131614,13 +131642,15 @@ function pullRequestTone(pr, ciState) {
|
|
|
131614
131642
|
}
|
|
131615
131643
|
}
|
|
131616
131644
|
var TONE_CLASS = {
|
|
131617
|
-
failure: "text-red-600 dark:text-red-400",
|
|
131618
|
-
pending: "text-yellow-700 dark:text-yellow-400",
|
|
131619
|
-
success: "text-green-700 dark:text-green-400",
|
|
131620
|
-
neutral: "text-muted-foreground",
|
|
131621
|
-
merged: "text-violet-600 dark:text-violet-400",
|
|
131622
|
-
closed: "text-muted-foreground line-through"
|
|
131623
|
-
};
|
|
131645
|
+
failure: "text-red-600 border-red-600/40 bg-red-500/10 dark:text-red-400 dark:border-red-400/40",
|
|
131646
|
+
pending: "text-yellow-700 border-yellow-600/50 bg-yellow-500/10 dark:text-yellow-400 dark:border-yellow-400/40",
|
|
131647
|
+
success: "text-green-700 border-green-600/40 bg-green-500/10 dark:text-green-400 dark:border-green-400/40",
|
|
131648
|
+
neutral: "text-muted-foreground border-border bg-muted/50",
|
|
131649
|
+
merged: "text-violet-600 border-violet-600/40 bg-violet-500/10 dark:text-violet-400 dark:border-violet-400/40",
|
|
131650
|
+
closed: "text-muted-foreground border-border bg-muted/50 line-through"
|
|
131651
|
+
};
|
|
131652
|
+
var TAG_CLASS = "inline-flex items-center rounded border px-1 py-px leading-none";
|
|
131653
|
+
var NUMBER_CLASS = `${TAG_CLASS} text-[11px] font-semibold tabular-nums`;
|
|
131624
131654
|
function statusLabel(pr, ciState) {
|
|
131625
131655
|
if (pr.state === "merged") return "Merged";
|
|
131626
131656
|
if (pr.state === "closed") return "Closed";
|
|
@@ -131682,7 +131712,7 @@ function PullRequestBadge({ pr, ciState, onOpenChecks }) {
|
|
|
131682
131712
|
"aria-expanded": open3,
|
|
131683
131713
|
"data-testid": "workspace-card__pr-badge",
|
|
131684
131714
|
"data-tone": tone,
|
|
131685
|
-
className: `shrink-0
|
|
131715
|
+
className: `shrink-0 outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring ${NUMBER_CLASS} ${TONE_CLASS[tone]}`,
|
|
131686
131716
|
onPointerEnter: (e) => {
|
|
131687
131717
|
if (e.pointerType !== "touch") setOpenAfter(true, OPEN_DELAY_MS);
|
|
131688
131718
|
},
|
|
@@ -131757,7 +131787,8 @@ function PullRequestBadge({ pr, ciState, onOpenChecks }) {
|
|
|
131757
131787
|
"span",
|
|
131758
131788
|
{
|
|
131759
131789
|
"data-testid": "pr-popover__number",
|
|
131760
|
-
|
|
131790
|
+
"data-tone": tone,
|
|
131791
|
+
className: `${NUMBER_CLASS} ${TONE_CLASS[tone]}`,
|
|
131761
131792
|
children: [
|
|
131762
131793
|
"#",
|
|
131763
131794
|
pr.number
|
|
@@ -131768,7 +131799,7 @@ function PullRequestBadge({ pr, ciState, onOpenChecks }) {
|
|
|
131768
131799
|
"span",
|
|
131769
131800
|
{
|
|
131770
131801
|
"data-testid": "pr-popover__draft",
|
|
131771
|
-
className:
|
|
131802
|
+
className: `${TAG_CLASS} border-border text-[10px] font-medium text-muted-foreground`,
|
|
131772
131803
|
children: "Draft"
|
|
131773
131804
|
}
|
|
131774
131805
|
),
|
|
@@ -132108,14 +132139,11 @@ var WorkspaceCard = (0, import_react29.memo)(function WorkspaceCard2({
|
|
|
132108
132139
|
var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
|
|
132109
132140
|
|
|
132110
132141
|
// src/dashboard/components/SettingsPage.tsx
|
|
132111
|
-
var
|
|
132142
|
+
var import_react31 = __toESM(require_react(), 1);
|
|
132112
132143
|
|
|
132113
132144
|
// src/dashboard/hooks/use-terminal-daemon.ts
|
|
132114
132145
|
init_trpc_client();
|
|
132115
132146
|
|
|
132116
|
-
// src/dashboard/lib/experimental-flags.ts
|
|
132117
|
-
var import_react31 = __toESM(require_react(), 1);
|
|
132118
|
-
|
|
132119
132147
|
// src/dashboard/components/RestartTerminalDaemonDialog.tsx
|
|
132120
132148
|
var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
|
|
132121
132149
|
|
|
@@ -132141,7 +132169,7 @@ var isElectron = typeof window !== "undefined" && "__BAND_DESKTOP__" in window;
|
|
|
132141
132169
|
|
|
132142
132170
|
// src/dashboard/components/DiffFileContent.tsx
|
|
132143
132171
|
init_dist2();
|
|
132144
|
-
var
|
|
132172
|
+
var import_react33 = __toESM(require_react(), 1);
|
|
132145
132173
|
|
|
132146
132174
|
// src/dashboard/lib/language-map.ts
|
|
132147
132175
|
var SUPPORTED_LANGUAGES = [
|
|
@@ -132246,12 +132274,12 @@ var diffTheme = EditorView.theme({
|
|
|
132246
132274
|
});
|
|
132247
132275
|
|
|
132248
132276
|
// src/dashboard/components/DiffOverviewRuler.tsx
|
|
132249
|
-
var
|
|
132277
|
+
var import_react34 = __toESM(require_react(), 1);
|
|
132250
132278
|
var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1);
|
|
132251
132279
|
|
|
132252
132280
|
// src/dashboard/components/FileBrowser.tsx
|
|
132253
132281
|
var import_lucide_react7 = __toESM(require_lucide_react(), 1);
|
|
132254
|
-
var
|
|
132282
|
+
var import_react35 = __toESM(require_react(), 1);
|
|
132255
132283
|
var import_jsx_runtime74 = __toESM(require_jsx_runtime(), 1);
|
|
132256
132284
|
var DRAG_MIME = "application/x-band-tree-entry";
|
|
132257
132285
|
var DRAG_EXPAND_DELAY_MS = 600;
|
|
@@ -132298,11 +132326,11 @@ function EntryNameInput({
|
|
|
132298
132326
|
onSubmit,
|
|
132299
132327
|
onCancel
|
|
132300
132328
|
}) {
|
|
132301
|
-
const [value, setValue2] = (0,
|
|
132302
|
-
const [submitting, setSubmitting] = (0,
|
|
132303
|
-
const [error40, setError] = (0,
|
|
132304
|
-
const inputRef = (0,
|
|
132305
|
-
(0,
|
|
132329
|
+
const [value, setValue2] = (0, import_react35.useState)(initialValue);
|
|
132330
|
+
const [submitting, setSubmitting] = (0, import_react35.useState)(false);
|
|
132331
|
+
const [error40, setError] = (0, import_react35.useState)(null);
|
|
132332
|
+
const inputRef = (0, import_react35.useRef)(null);
|
|
132333
|
+
(0, import_react35.useEffect)(() => {
|
|
132306
132334
|
const el = inputRef.current;
|
|
132307
132335
|
if (!el) return;
|
|
132308
132336
|
el.focus();
|
|
@@ -132766,7 +132794,7 @@ function TreeNode2({
|
|
|
132766
132794
|
})()
|
|
132767
132795
|
] });
|
|
132768
132796
|
}
|
|
132769
|
-
var FileBrowser = (0,
|
|
132797
|
+
var FileBrowser = (0, import_react35.forwardRef)(function FileBrowser2({
|
|
132770
132798
|
workspaceId: workspaceId2,
|
|
132771
132799
|
workspacePath,
|
|
132772
132800
|
onOpenFile,
|
|
@@ -132778,24 +132806,24 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132778
132806
|
}, handleRef) {
|
|
132779
132807
|
const adapter = useAdapter();
|
|
132780
132808
|
const capabilities = useCapabilities();
|
|
132781
|
-
const [expandedPaths, setExpandedPaths] = (0,
|
|
132809
|
+
const [expandedPaths, setExpandedPaths] = (0, import_react35.useState)(
|
|
132782
132810
|
() => new Set(getCachedExpanded(workspaceId2))
|
|
132783
132811
|
);
|
|
132784
|
-
const [dirContents, setDirContents] = (0,
|
|
132812
|
+
const [dirContents, setDirContents] = (0, import_react35.useState)(
|
|
132785
132813
|
() => new Map(getCachedContents(workspaceId2))
|
|
132786
132814
|
);
|
|
132787
|
-
const [loadingPaths, setLoadingPaths] = (0,
|
|
132788
|
-
const [newEntry, setNewEntry] = (0,
|
|
132789
|
-
const [pendingDelete, setPendingDelete] = (0,
|
|
132790
|
-
const [deleteError, setDeleteError] = (0,
|
|
132791
|
-
const [deleteSubmitting, setDeleteSubmitting] = (0,
|
|
132792
|
-
const [renamingPath, setRenamingPath] = (0,
|
|
132793
|
-
const [clipboard, setClipboard] = (0,
|
|
132794
|
-
const [operationError, setOperationError] = (0,
|
|
132795
|
-
const [treeSelection, setTreeSelection] = (0,
|
|
132796
|
-
const selectedRef = (0,
|
|
132797
|
-
const prevWorkspaceRef = (0,
|
|
132798
|
-
(0,
|
|
132815
|
+
const [loadingPaths, setLoadingPaths] = (0, import_react35.useState)(/* @__PURE__ */ new Set());
|
|
132816
|
+
const [newEntry, setNewEntry] = (0, import_react35.useState)(null);
|
|
132817
|
+
const [pendingDelete, setPendingDelete] = (0, import_react35.useState)(null);
|
|
132818
|
+
const [deleteError, setDeleteError] = (0, import_react35.useState)(null);
|
|
132819
|
+
const [deleteSubmitting, setDeleteSubmitting] = (0, import_react35.useState)(false);
|
|
132820
|
+
const [renamingPath, setRenamingPath] = (0, import_react35.useState)(null);
|
|
132821
|
+
const [clipboard, setClipboard] = (0, import_react35.useState)(null);
|
|
132822
|
+
const [operationError, setOperationError] = (0, import_react35.useState)(null);
|
|
132823
|
+
const [treeSelection, setTreeSelection] = (0, import_react35.useState)(() => selectedFile ? { path: selectedFile, kind: "file" } : null);
|
|
132824
|
+
const selectedRef = (0, import_react35.useRef)(null);
|
|
132825
|
+
const prevWorkspaceRef = (0, import_react35.useRef)(workspaceId2);
|
|
132826
|
+
(0, import_react35.useEffect)(() => {
|
|
132799
132827
|
if (prevWorkspaceRef.current !== workspaceId2) {
|
|
132800
132828
|
prevWorkspaceRef.current = workspaceId2;
|
|
132801
132829
|
setExpandedPaths(new Set(getCachedExpanded(workspaceId2)));
|
|
@@ -132811,18 +132839,18 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132811
132839
|
setOperationError(null);
|
|
132812
132840
|
}
|
|
132813
132841
|
}, [workspaceId2]);
|
|
132814
|
-
(0,
|
|
132842
|
+
(0, import_react35.useEffect)(() => {
|
|
132815
132843
|
if (selectedFile) {
|
|
132816
132844
|
setTreeSelection({ path: selectedFile, kind: "file" });
|
|
132817
132845
|
}
|
|
132818
132846
|
}, [selectedFile]);
|
|
132819
|
-
const handleSelectRow = (0,
|
|
132847
|
+
const handleSelectRow = (0, import_react35.useCallback)((path, kind) => {
|
|
132820
132848
|
setTreeSelection({ path, kind });
|
|
132821
132849
|
}, []);
|
|
132822
|
-
const clearTreeSelection = (0,
|
|
132850
|
+
const clearTreeSelection = (0, import_react35.useCallback)(() => {
|
|
132823
132851
|
setTreeSelection(null);
|
|
132824
132852
|
}, []);
|
|
132825
|
-
const fetchDir = (0,
|
|
132853
|
+
const fetchDir = (0, import_react35.useCallback)(
|
|
132826
132854
|
async (dirPath, opts) => {
|
|
132827
132855
|
if (!adapter.listWorkspaceFiles) return;
|
|
132828
132856
|
const cache4 = getCachedContents(workspaceId2);
|
|
@@ -132846,10 +132874,10 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132846
132874
|
},
|
|
132847
132875
|
[adapter, workspaceId2]
|
|
132848
132876
|
);
|
|
132849
|
-
(0,
|
|
132877
|
+
(0, import_react35.useEffect)(() => {
|
|
132850
132878
|
fetchDir("");
|
|
132851
132879
|
}, [fetchDir]);
|
|
132852
|
-
(0,
|
|
132880
|
+
(0, import_react35.useEffect)(() => {
|
|
132853
132881
|
if (!adapter.subscribeFileChanges) return;
|
|
132854
132882
|
const unsubscribe = adapter.subscribeFileChanges(workspaceId2, (changedPath) => {
|
|
132855
132883
|
const cache4 = getCachedContents(workspaceId2);
|
|
@@ -132858,8 +132886,8 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132858
132886
|
});
|
|
132859
132887
|
return unsubscribe;
|
|
132860
132888
|
}, [adapter, workspaceId2, fetchDir]);
|
|
132861
|
-
const prevSelectedRef = (0,
|
|
132862
|
-
(0,
|
|
132889
|
+
const prevSelectedRef = (0, import_react35.useRef)(void 0);
|
|
132890
|
+
(0, import_react35.useEffect)(() => {
|
|
132863
132891
|
if (!selectedFile || selectedFile === prevSelectedRef.current) {
|
|
132864
132892
|
prevSelectedRef.current = selectedFile;
|
|
132865
132893
|
return;
|
|
@@ -132886,7 +132914,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132886
132914
|
fetchDir(dir);
|
|
132887
132915
|
}
|
|
132888
132916
|
}, [selectedFile, workspaceId2, fetchDir]);
|
|
132889
|
-
(0,
|
|
132917
|
+
(0, import_react35.useEffect)(() => {
|
|
132890
132918
|
if (selectedFile && selectedRef.current) {
|
|
132891
132919
|
const timer = setTimeout(() => {
|
|
132892
132920
|
selectedRef.current?.scrollIntoView({ block: "nearest" });
|
|
@@ -132894,7 +132922,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132894
132922
|
return () => clearTimeout(timer);
|
|
132895
132923
|
}
|
|
132896
132924
|
}, [selectedFile, dirContents]);
|
|
132897
|
-
const toggleExpand = (0,
|
|
132925
|
+
const toggleExpand = (0, import_react35.useCallback)(
|
|
132898
132926
|
(dirPath) => {
|
|
132899
132927
|
setExpandedPaths((prev) => {
|
|
132900
132928
|
const next = new Set(prev);
|
|
@@ -132910,7 +132938,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132910
132938
|
},
|
|
132911
132939
|
[workspaceId2, fetchDir]
|
|
132912
132940
|
);
|
|
132913
|
-
const ensureDirExpanded = (0,
|
|
132941
|
+
const ensureDirExpanded = (0, import_react35.useCallback)(
|
|
132914
132942
|
async (dirPath) => {
|
|
132915
132943
|
const cached2 = getCachedExpanded(workspaceId2);
|
|
132916
132944
|
if (!cached2.has(dirPath)) {
|
|
@@ -132922,17 +132950,17 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132922
132950
|
},
|
|
132923
132951
|
[workspaceId2, fetchDir]
|
|
132924
132952
|
);
|
|
132925
|
-
const requestNewEntry = (0,
|
|
132953
|
+
const requestNewEntry = (0, import_react35.useCallback)(
|
|
132926
132954
|
(parentPath, kind) => {
|
|
132927
132955
|
void ensureDirExpanded(parentPath);
|
|
132928
132956
|
setNewEntry({ parentPath, kind });
|
|
132929
132957
|
},
|
|
132930
132958
|
[ensureDirExpanded]
|
|
132931
132959
|
);
|
|
132932
|
-
const cancelNewEntry = (0,
|
|
132960
|
+
const cancelNewEntry = (0, import_react35.useCallback)(() => {
|
|
132933
132961
|
setNewEntry(null);
|
|
132934
132962
|
}, []);
|
|
132935
|
-
const submitNewEntry = (0,
|
|
132963
|
+
const submitNewEntry = (0, import_react35.useCallback)(
|
|
132936
132964
|
async (name3) => {
|
|
132937
132965
|
if (!newEntry) return;
|
|
132938
132966
|
const fullPath = newEntry.parentPath ? `${newEntry.parentPath}/${name3}` : name3;
|
|
@@ -132965,16 +132993,16 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
132965
132993
|
[adapter, newEntry, fetchDir, onOpenFile, workspaceId2]
|
|
132966
132994
|
);
|
|
132967
132995
|
const canDelete = Boolean(adapter.deleteWorkspacePath);
|
|
132968
|
-
const requestDelete = (0,
|
|
132996
|
+
const requestDelete = (0, import_react35.useCallback)((path, kind) => {
|
|
132969
132997
|
setDeleteError(null);
|
|
132970
132998
|
setPendingDelete({ path, kind });
|
|
132971
132999
|
}, []);
|
|
132972
|
-
const cancelDelete = (0,
|
|
133000
|
+
const cancelDelete = (0, import_react35.useCallback)(() => {
|
|
132973
133001
|
if (deleteSubmitting) return;
|
|
132974
133002
|
setPendingDelete(null);
|
|
132975
133003
|
setDeleteError(null);
|
|
132976
133004
|
}, [deleteSubmitting]);
|
|
132977
|
-
const confirmDelete = (0,
|
|
133005
|
+
const confirmDelete = (0, import_react35.useCallback)(async () => {
|
|
132978
133006
|
if (!pendingDelete || !adapter.deleteWorkspacePath) return;
|
|
132979
133007
|
setDeleteSubmitting(true);
|
|
132980
133008
|
setDeleteError(null);
|
|
@@ -133020,7 +133048,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133020
133048
|
}
|
|
133021
133049
|
}, [adapter, pendingDelete, fetchDir, workspaceId2, onPathDeleted]);
|
|
133022
133050
|
const canRename = Boolean(adapter.renameWorkspacePath);
|
|
133023
|
-
const remapCachesAfterMove = (0,
|
|
133051
|
+
const remapCachesAfterMove = (0, import_react35.useCallback)(
|
|
133024
133052
|
(from3, to) => {
|
|
133025
133053
|
const cache4 = getCachedContents(workspaceId2);
|
|
133026
133054
|
const remapped = /* @__PURE__ */ new Map();
|
|
@@ -133045,13 +133073,13 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133045
133073
|
},
|
|
133046
133074
|
[workspaceId2]
|
|
133047
133075
|
);
|
|
133048
|
-
const requestRename = (0,
|
|
133076
|
+
const requestRename = (0, import_react35.useCallback)((path) => {
|
|
133049
133077
|
setRenamingPath(path);
|
|
133050
133078
|
}, []);
|
|
133051
|
-
const cancelRename = (0,
|
|
133079
|
+
const cancelRename = (0, import_react35.useCallback)(() => {
|
|
133052
133080
|
setRenamingPath(null);
|
|
133053
133081
|
}, []);
|
|
133054
|
-
const submitRename = (0,
|
|
133082
|
+
const submitRename = (0, import_react35.useCallback)(
|
|
133055
133083
|
async (newName) => {
|
|
133056
133084
|
if (renamingPath == null || !adapter.renameWorkspacePath) return;
|
|
133057
133085
|
const oldPath = renamingPath;
|
|
@@ -133066,7 +133094,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133066
133094
|
},
|
|
133067
133095
|
[adapter, renamingPath, fetchDir, onPathRenamed, remapCachesAfterMove, workspaceId2]
|
|
133068
133096
|
);
|
|
133069
|
-
const resolveDefaultTarget = (0,
|
|
133097
|
+
const resolveDefaultTarget = (0, import_react35.useCallback)(() => {
|
|
133070
133098
|
if (treeSelection?.kind === "directory") return treeSelection.path;
|
|
133071
133099
|
if (treeSelection?.kind === "file") {
|
|
133072
133100
|
const idx = treeSelection.path.lastIndexOf("/");
|
|
@@ -133079,13 +133107,13 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133079
133107
|
const canPaste = Boolean(
|
|
133080
133108
|
clipboard && (clipboard.op === "copy" && adapter.copyWorkspacePath || clipboard.op === "cut" && adapter.renameWorkspacePath)
|
|
133081
133109
|
);
|
|
133082
|
-
const cutPath = (0,
|
|
133110
|
+
const cutPath = (0, import_react35.useCallback)((path, kind) => {
|
|
133083
133111
|
setClipboard({ path, kind, op: "cut" });
|
|
133084
133112
|
}, []);
|
|
133085
|
-
const copyPath = (0,
|
|
133113
|
+
const copyPath = (0, import_react35.useCallback)((path, kind) => {
|
|
133086
133114
|
setClipboard({ path, kind, op: "copy" });
|
|
133087
133115
|
}, []);
|
|
133088
|
-
const uniqueCopyName = (0,
|
|
133116
|
+
const uniqueCopyName = (0, import_react35.useCallback)(
|
|
133089
133117
|
(baseName, destFolder, kind) => {
|
|
133090
133118
|
const siblings = new Set(
|
|
133091
133119
|
(getCachedContents(workspaceId2).get(destFolder) ?? []).map((e) => e.name)
|
|
@@ -133103,7 +133131,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133103
133131
|
},
|
|
133104
133132
|
[workspaceId2]
|
|
133105
133133
|
);
|
|
133106
|
-
const canTransferInto = (0,
|
|
133134
|
+
const canTransferInto = (0, import_react35.useCallback)(
|
|
133107
133135
|
(source, destFolder, op) => {
|
|
133108
133136
|
if (source.kind === "directory" && (destFolder === source.path || destFolder.startsWith(`${source.path}/`))) {
|
|
133109
133137
|
return false;
|
|
@@ -133113,7 +133141,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133113
133141
|
},
|
|
133114
133142
|
[canCopyOp, canCutCopy]
|
|
133115
133143
|
);
|
|
133116
|
-
const transferInto = (0,
|
|
133144
|
+
const transferInto = (0, import_react35.useCallback)(
|
|
133117
133145
|
async (source, destFolder, op) => {
|
|
133118
133146
|
if (!canTransferInto(source, destFolder, op)) return false;
|
|
133119
133147
|
const baseName = baseNameOf(source.path);
|
|
@@ -133150,7 +133178,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133150
133178
|
workspaceId2
|
|
133151
133179
|
]
|
|
133152
133180
|
);
|
|
133153
|
-
const runOperation = (0,
|
|
133181
|
+
const runOperation = (0, import_react35.useCallback)(async (op) => {
|
|
133154
133182
|
setOperationError(null);
|
|
133155
133183
|
try {
|
|
133156
133184
|
await op();
|
|
@@ -133158,7 +133186,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133158
133186
|
setOperationError(err instanceof Error ? err.message : String(err));
|
|
133159
133187
|
}
|
|
133160
133188
|
}, []);
|
|
133161
|
-
const pasteInto = (0,
|
|
133189
|
+
const pasteInto = (0, import_react35.useCallback)(
|
|
133162
133190
|
(destFolder) => runOperation(async () => {
|
|
133163
133191
|
if (!clipboard) return;
|
|
133164
133192
|
const moved = await transferInto(clipboard, destFolder, clipboard.op);
|
|
@@ -133166,22 +133194,22 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133166
133194
|
}),
|
|
133167
133195
|
[clipboard, runOperation, transferInto]
|
|
133168
133196
|
);
|
|
133169
|
-
const dragSourceRef = (0,
|
|
133170
|
-
const [dropTarget, setDropTarget] = (0,
|
|
133171
|
-
const expandTimerRef = (0,
|
|
133197
|
+
const dragSourceRef = (0, import_react35.useRef)(null);
|
|
133198
|
+
const [dropTarget, setDropTarget] = (0, import_react35.useState)(null);
|
|
133199
|
+
const expandTimerRef = (0, import_react35.useRef)(
|
|
133172
133200
|
null
|
|
133173
133201
|
);
|
|
133174
|
-
const clearExpandTimer = (0,
|
|
133202
|
+
const clearExpandTimer = (0, import_react35.useCallback)(() => {
|
|
133175
133203
|
if (expandTimerRef.current) clearTimeout(expandTimerRef.current.timer);
|
|
133176
133204
|
expandTimerRef.current = null;
|
|
133177
133205
|
}, []);
|
|
133178
|
-
(0,
|
|
133179
|
-
const endDrag = (0,
|
|
133206
|
+
(0, import_react35.useEffect)(() => clearExpandTimer, [clearExpandTimer]);
|
|
133207
|
+
const endDrag = (0, import_react35.useCallback)(() => {
|
|
133180
133208
|
dragSourceRef.current = null;
|
|
133181
133209
|
setDropTarget(null);
|
|
133182
133210
|
clearExpandTimer();
|
|
133183
133211
|
}, [clearExpandTimer]);
|
|
133184
|
-
const dnd = (0,
|
|
133212
|
+
const dnd = (0, import_react35.useMemo)(
|
|
133185
133213
|
() => ({
|
|
133186
133214
|
dropTarget,
|
|
133187
133215
|
onDragStart(path, kind, e) {
|
|
@@ -133238,7 +133266,7 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133238
133266
|
workspaceId2
|
|
133239
133267
|
]
|
|
133240
133268
|
);
|
|
133241
|
-
const refreshTree = (0,
|
|
133269
|
+
const refreshTree = (0, import_react35.useCallback)(async () => {
|
|
133242
133270
|
const cache4 = getCachedContents(workspaceId2);
|
|
133243
133271
|
const expanded = getCachedExpanded(workspaceId2);
|
|
133244
133272
|
for (const key2 of Array.from(cache4.keys())) {
|
|
@@ -133247,17 +133275,17 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133247
133275
|
setDirContents(new Map(cache4));
|
|
133248
133276
|
await Promise.all(Array.from(expanded, (dir) => fetchDir(dir, { force: true })));
|
|
133249
133277
|
}, [fetchDir, workspaceId2]);
|
|
133250
|
-
const collapseAll = (0,
|
|
133278
|
+
const collapseAll = (0, import_react35.useCallback)(() => {
|
|
133251
133279
|
const root = /* @__PURE__ */ new Set([""]);
|
|
133252
133280
|
expandedStateCache.set(workspaceId2, root);
|
|
133253
133281
|
setExpandedPaths(new Set(root));
|
|
133254
133282
|
}, [workspaceId2]);
|
|
133255
133283
|
const revealInFinder = capabilities.revealInFinder;
|
|
133256
|
-
const onRevealInFinder = (0,
|
|
133284
|
+
const onRevealInFinder = (0, import_react35.useMemo)(
|
|
133257
133285
|
() => revealInFinder && workspacePath ? (path) => void revealInFinder(joinWorkspacePath(workspacePath, path)) : void 0,
|
|
133258
133286
|
[revealInFinder, workspacePath]
|
|
133259
133287
|
);
|
|
133260
|
-
(0,
|
|
133288
|
+
(0, import_react35.useImperativeHandle)(
|
|
133261
133289
|
handleRef,
|
|
133262
133290
|
() => ({
|
|
133263
133291
|
startNewFile(parentPath) {
|
|
@@ -133530,17 +133558,17 @@ var FileBrowser = (0, import_react36.forwardRef)(function FileBrowser2({
|
|
|
133530
133558
|
});
|
|
133531
133559
|
|
|
133532
133560
|
// src/dashboard/components/FileViewer.tsx
|
|
133533
|
-
var
|
|
133561
|
+
var import_react39 = __toESM(require_react(), 1);
|
|
133534
133562
|
|
|
133535
133563
|
// src/dashboard/lib/markdown-preview-width.ts
|
|
133536
|
-
var
|
|
133564
|
+
var import_react36 = __toESM(require_react(), 1);
|
|
133537
133565
|
|
|
133538
133566
|
// src/dashboard/components/ImagePreview.tsx
|
|
133539
|
-
var
|
|
133567
|
+
var import_react37 = __toESM(require_react(), 1);
|
|
133540
133568
|
var import_jsx_runtime75 = __toESM(require_jsx_runtime(), 1);
|
|
133541
133569
|
|
|
133542
133570
|
// src/dashboard/components/LanguagePickerDialog.tsx
|
|
133543
|
-
var
|
|
133571
|
+
var import_react38 = __toESM(require_react(), 1);
|
|
133544
133572
|
var import_jsx_runtime76 = __toESM(require_jsx_runtime(), 1);
|
|
133545
133573
|
|
|
133546
133574
|
// src/dashboard/components/PdfPreview.tsx
|
|
@@ -133550,7 +133578,7 @@ var import_jsx_runtime77 = __toESM(require_jsx_runtime(), 1);
|
|
|
133550
133578
|
var import_jsx_runtime78 = __toESM(require_jsx_runtime(), 1);
|
|
133551
133579
|
|
|
133552
133580
|
// src/dashboard/components/QuickOpenDialog.tsx
|
|
133553
|
-
var
|
|
133581
|
+
var import_react40 = __toESM(require_react(), 1);
|
|
133554
133582
|
|
|
133555
133583
|
// src/dashboard/lib/file-location.ts
|
|
133556
133584
|
function formatFileLocation(filePath, line2, options2) {
|
|
@@ -133565,7 +133593,7 @@ var import_jsx_runtime79 = __toESM(require_jsx_runtime(), 1);
|
|
|
133565
133593
|
|
|
133566
133594
|
// src/dashboard/components/SearchBar.tsx
|
|
133567
133595
|
var import_lucide_react8 = __toESM(require_lucide_react(), 1);
|
|
133568
|
-
var
|
|
133596
|
+
var import_react41 = __toESM(require_react(), 1);
|
|
133569
133597
|
var import_jsx_runtime80 = __toESM(require_jsx_runtime(), 1);
|
|
133570
133598
|
var DEFAULT_VISIBLE_OPTIONS = ["caseSensitive", "wholeWord", "regex"];
|
|
133571
133599
|
function ToggleButton({
|
|
@@ -133585,7 +133613,7 @@ function ToggleButton({
|
|
|
133585
133613
|
}
|
|
133586
133614
|
);
|
|
133587
133615
|
}
|
|
133588
|
-
var SearchBar = (0,
|
|
133616
|
+
var SearchBar = (0, import_react41.forwardRef)(function SearchBar2({
|
|
133589
133617
|
query,
|
|
133590
133618
|
onQueryChange,
|
|
133591
133619
|
options: options2,
|
|
@@ -133602,18 +133630,18 @@ var SearchBar = (0, import_react42.forwardRef)(function SearchBar2({
|
|
|
133602
133630
|
const showCase = visibleOptions.includes("caseSensitive");
|
|
133603
133631
|
const showWholeWord = visibleOptions.includes("wholeWord");
|
|
133604
133632
|
const showRegex = visibleOptions.includes("regex");
|
|
133605
|
-
const inputRef = (0,
|
|
133606
|
-
(0,
|
|
133633
|
+
const inputRef = (0, import_react41.useRef)(null);
|
|
133634
|
+
(0, import_react41.useImperativeHandle)(ref, () => ({
|
|
133607
133635
|
focus: () => inputRef.current?.focus(),
|
|
133608
133636
|
select: () => inputRef.current?.select()
|
|
133609
133637
|
}));
|
|
133610
|
-
const toggleCase = (0,
|
|
133638
|
+
const toggleCase = (0, import_react41.useCallback)(() => {
|
|
133611
133639
|
onOptionsChange({ ...options2, caseSensitive: !options2.caseSensitive });
|
|
133612
133640
|
}, [options2, onOptionsChange]);
|
|
133613
|
-
const toggleWholeWord = (0,
|
|
133641
|
+
const toggleWholeWord = (0, import_react41.useCallback)(() => {
|
|
133614
133642
|
onOptionsChange({ ...options2, wholeWord: !options2.wholeWord });
|
|
133615
133643
|
}, [options2, onOptionsChange]);
|
|
133616
|
-
const toggleRegex = (0,
|
|
133644
|
+
const toggleRegex = (0, import_react41.useCallback)(() => {
|
|
133617
133645
|
onOptionsChange({ ...options2, regex: !options2.regex });
|
|
133618
133646
|
}, [options2, onOptionsChange]);
|
|
133619
133647
|
const floating = variant === "floating";
|
|
@@ -133716,27 +133744,27 @@ var SearchBar = (0, import_react42.forwardRef)(function SearchBar2({
|
|
|
133716
133744
|
});
|
|
133717
133745
|
|
|
133718
133746
|
// src/dashboard/components/SearchFilesDialog.tsx
|
|
133719
|
-
var
|
|
133747
|
+
var import_react42 = __toESM(require_react(), 1);
|
|
133720
133748
|
var import_jsx_runtime81 = __toESM(require_jsx_runtime(), 1);
|
|
133721
133749
|
|
|
133722
133750
|
// src/dashboard/components/WorkspacePickerDialog.tsx
|
|
133723
|
-
var
|
|
133751
|
+
var import_react43 = __toESM(require_react(), 1);
|
|
133724
133752
|
var import_jsx_runtime82 = __toESM(require_jsx_runtime(), 1);
|
|
133725
133753
|
|
|
133726
133754
|
// src/dashboard/components/WorkspaceTabNav.tsx
|
|
133727
133755
|
var import_jsx_runtime83 = __toESM(require_jsx_runtime(), 1);
|
|
133728
133756
|
|
|
133729
133757
|
// src/dashboard/hooks/use-diff-target.ts
|
|
133730
|
-
var
|
|
133758
|
+
var import_react44 = __toESM(require_react(), 1);
|
|
133731
133759
|
|
|
133732
133760
|
// src/dashboard/hooks/use-editor-history.ts
|
|
133733
|
-
var
|
|
133761
|
+
var import_react45 = __toESM(require_react(), 1);
|
|
133734
133762
|
|
|
133735
133763
|
// src/dashboard/hooks/use-search.ts
|
|
133736
|
-
var
|
|
133764
|
+
var import_react46 = __toESM(require_react(), 1);
|
|
133737
133765
|
|
|
133738
133766
|
// src/dashboard/hooks/use-workspace-path.ts
|
|
133739
|
-
var
|
|
133767
|
+
var import_react47 = __toESM(require_react(), 1);
|
|
133740
133768
|
|
|
133741
133769
|
// ../../node_modules/.pnpm/marked@15.0.12/node_modules/marked/lib/marked.esm.js
|
|
133742
133770
|
function _getDefaults() {
|
|
@@ -135940,13 +135968,13 @@ var startFailures = 0;
|
|
|
135940
135968
|
var nextId = 1;
|
|
135941
135969
|
var pending = /* @__PURE__ */ new Map();
|
|
135942
135970
|
function execOnThisThread({ command, args, options: options2 }) {
|
|
135943
|
-
return new Promise((
|
|
135971
|
+
return new Promise((resolve13) => {
|
|
135944
135972
|
try {
|
|
135945
135973
|
execFile4(command, args, { ...options2, encoding: "utf8" }, (err, stdout, stderr) => {
|
|
135946
|
-
|
|
135974
|
+
resolve13({ stdout, stderr, error: err ? err.message : null });
|
|
135947
135975
|
});
|
|
135948
135976
|
} catch (err) {
|
|
135949
|
-
|
|
135977
|
+
resolve13({ stdout: "", stderr: "", error: err instanceof Error ? err.message : String(err) });
|
|
135950
135978
|
}
|
|
135951
135979
|
});
|
|
135952
135980
|
}
|
|
@@ -135984,11 +136012,11 @@ function getWorker() {
|
|
|
135984
136012
|
workerUnavailable = true;
|
|
135985
136013
|
log6.warn("exec-file worker won't start, spawning on the main thread");
|
|
135986
136014
|
}
|
|
135987
|
-
for (const { request, resolve:
|
|
136015
|
+
for (const { request, resolve: resolve13 } of orphaned) void execOnThisThread(request).then(resolve13);
|
|
135988
136016
|
return;
|
|
135989
136017
|
}
|
|
135990
|
-
for (const { resolve:
|
|
135991
|
-
|
|
136018
|
+
for (const { resolve: resolve13 } of orphaned) {
|
|
136019
|
+
resolve13({ stdout: "", stderr: "", error: `exec-file worker exited (code ${code})` });
|
|
135992
136020
|
}
|
|
135993
136021
|
});
|
|
135994
136022
|
worker = created;
|
|
@@ -136003,8 +136031,8 @@ function execFileOffThread(command, args, options2) {
|
|
|
136003
136031
|
};
|
|
136004
136032
|
const target = getWorker();
|
|
136005
136033
|
if (!target) return execOnThisThread(request);
|
|
136006
|
-
return new Promise((
|
|
136007
|
-
pending.set(request.id, { request, resolve:
|
|
136034
|
+
return new Promise((resolve13) => {
|
|
136035
|
+
pending.set(request.id, { request, resolve: resolve13 });
|
|
136008
136036
|
if (pending.size === 1) target.ref();
|
|
136009
136037
|
target.postMessage(request);
|
|
136010
136038
|
});
|
|
@@ -141601,7 +141629,7 @@ var PluginHost = class {
|
|
|
141601
141629
|
warn: (message, ...args) => pluginLog.warn(message, ...args),
|
|
141602
141630
|
error: (message, ...args) => pluginLog.error(message, ...args)
|
|
141603
141631
|
},
|
|
141604
|
-
exec: (bin, args, options2) => new Promise((
|
|
141632
|
+
exec: (bin, args, options2) => new Promise((resolve13, reject) => {
|
|
141605
141633
|
const env = { ...process.env, ...options2.env };
|
|
141606
141634
|
env.PATH = prependBinDirs(process.env.PATH);
|
|
141607
141635
|
execFile5(
|
|
@@ -141613,7 +141641,7 @@ var PluginHost = class {
|
|
|
141613
141641
|
reject(new Error(stderr.trim() || err.message));
|
|
141614
141642
|
return;
|
|
141615
141643
|
}
|
|
141616
|
-
|
|
141644
|
+
resolve13({ stdout, stderr });
|
|
141617
141645
|
}
|
|
141618
141646
|
);
|
|
141619
141647
|
}),
|
|
@@ -142197,8 +142225,8 @@ async function prepareScriptRun(script, label) {
|
|
|
142197
142225
|
let poll = null;
|
|
142198
142226
|
let disposed = false;
|
|
142199
142227
|
let resolveExited;
|
|
142200
|
-
const exited = new Promise((
|
|
142201
|
-
resolveExited =
|
|
142228
|
+
const exited = new Promise((resolve13) => {
|
|
142229
|
+
resolveExited = resolve13;
|
|
142202
142230
|
});
|
|
142203
142231
|
const check2 = () => {
|
|
142204
142232
|
if (disposed) return;
|
|
@@ -142236,7 +142264,7 @@ async function prepareScriptRun(script, label) {
|
|
|
142236
142264
|
return { command, exited, dispose };
|
|
142237
142265
|
}
|
|
142238
142266
|
function runScriptHidden(script, cwd, timeoutMs) {
|
|
142239
|
-
return new Promise((
|
|
142267
|
+
return new Promise((resolve13, reject) => {
|
|
142240
142268
|
const { PORT: _port, ...parentEnv } = process.env;
|
|
142241
142269
|
const child = spawn2(process.env.ComSpec || "cmd.exe", ["/d", "/s", "/c", script], {
|
|
142242
142270
|
cwd,
|
|
@@ -142246,7 +142274,7 @@ function runScriptHidden(script, cwd, timeoutMs) {
|
|
|
142246
142274
|
});
|
|
142247
142275
|
const timer = timeoutMs === void 0 ? void 0 : setTimeout(() => {
|
|
142248
142276
|
child.kill();
|
|
142249
|
-
|
|
142277
|
+
resolve13(null);
|
|
142250
142278
|
}, timeoutMs);
|
|
142251
142279
|
child.on("error", (err) => {
|
|
142252
142280
|
clearTimeout(timer);
|
|
@@ -142254,7 +142282,7 @@ function runScriptHidden(script, cwd, timeoutMs) {
|
|
|
142254
142282
|
});
|
|
142255
142283
|
child.on("exit", (code) => {
|
|
142256
142284
|
clearTimeout(timer);
|
|
142257
|
-
|
|
142285
|
+
resolve13(code ?? 1);
|
|
142258
142286
|
});
|
|
142259
142287
|
});
|
|
142260
142288
|
}
|
|
@@ -142553,13 +142581,13 @@ var DaemonClient = class _DaemonClient {
|
|
|
142553
142581
|
request(t4, params) {
|
|
142554
142582
|
if (this.closed) return Promise.reject(new Error("Terminal daemon connection closed"));
|
|
142555
142583
|
const id2 = this.nextId++;
|
|
142556
|
-
return new Promise((
|
|
142584
|
+
return new Promise((resolve13, reject) => {
|
|
142557
142585
|
const timer = setTimeout(() => {
|
|
142558
142586
|
this.pending.delete(id2);
|
|
142559
142587
|
reject(new Error(`Terminal daemon did not answer ${t4} within ${REQUEST_TIMEOUT_MS} ms`));
|
|
142560
142588
|
}, REQUEST_TIMEOUT_MS);
|
|
142561
142589
|
this.pending.set(id2, {
|
|
142562
|
-
resolve:
|
|
142590
|
+
resolve: resolve13,
|
|
142563
142591
|
reject,
|
|
142564
142592
|
timer
|
|
142565
142593
|
});
|
|
@@ -142621,7 +142649,7 @@ async function retireDaemon(paths, buildId) {
|
|
|
142621
142649
|
return false;
|
|
142622
142650
|
} catch (err) {
|
|
142623
142651
|
if (!(err instanceof DaemonRejectedError) || err.reply.t !== "mismatch") throw err;
|
|
142624
|
-
const closed = new Promise((
|
|
142652
|
+
const closed = new Promise((resolve13) => socket.once("close", () => resolve13()));
|
|
142625
142653
|
writeFrame(socket, { t: "shutdown" });
|
|
142626
142654
|
await closed;
|
|
142627
142655
|
return true;
|
|
@@ -142657,7 +142685,7 @@ function openSocket(path) {
|
|
|
142657
142685
|
} catch (err) {
|
|
142658
142686
|
return Promise.reject(err);
|
|
142659
142687
|
}
|
|
142660
|
-
return new Promise((
|
|
142688
|
+
return new Promise((resolve13, reject) => {
|
|
142661
142689
|
const socket = connect({ path });
|
|
142662
142690
|
const timer = setTimeout(() => {
|
|
142663
142691
|
socket.destroy();
|
|
@@ -142666,7 +142694,7 @@ function openSocket(path) {
|
|
|
142666
142694
|
socket.once("connect", () => {
|
|
142667
142695
|
clearTimeout(timer);
|
|
142668
142696
|
socket.removeAllListeners("error");
|
|
142669
|
-
|
|
142697
|
+
resolve13(socket);
|
|
142670
142698
|
});
|
|
142671
142699
|
socket.once("error", (err) => {
|
|
142672
142700
|
clearTimeout(timer);
|
|
@@ -142680,7 +142708,7 @@ function openSocket(path) {
|
|
|
142680
142708
|
});
|
|
142681
142709
|
}
|
|
142682
142710
|
function handshake(socket, frames, hello) {
|
|
142683
|
-
return new Promise((
|
|
142711
|
+
return new Promise((resolve13, reject) => {
|
|
142684
142712
|
const timer = setTimeout(() => {
|
|
142685
142713
|
socket.destroy();
|
|
142686
142714
|
reject(new Error("Terminal daemon did not answer hello"));
|
|
@@ -142697,7 +142725,7 @@ function handshake(socket, frames, hello) {
|
|
|
142697
142725
|
clearTimeout(timer);
|
|
142698
142726
|
socket.off("close", onClose);
|
|
142699
142727
|
const reply = frame;
|
|
142700
|
-
if (reply.t === "ready")
|
|
142728
|
+
if (reply.t === "ready") resolve13(reply);
|
|
142701
142729
|
else reject(new DaemonRejectedError(reply));
|
|
142702
142730
|
});
|
|
142703
142731
|
writeFrame(socket, hello);
|
|
@@ -142744,7 +142772,7 @@ async function launchDaemon(options2) {
|
|
|
142744
142772
|
})();
|
|
142745
142773
|
child.on("error", () => {
|
|
142746
142774
|
});
|
|
142747
|
-
return new Promise((
|
|
142775
|
+
return new Promise((resolve13, reject) => {
|
|
142748
142776
|
let settled = false;
|
|
142749
142777
|
const finish = (outcome) => {
|
|
142750
142778
|
if (settled) return;
|
|
@@ -142762,7 +142790,7 @@ async function launchDaemon(options2) {
|
|
|
142762
142790
|
Daemon log:
|
|
142763
142791
|
${tail}`) : outcome);
|
|
142764
142792
|
} else {
|
|
142765
|
-
|
|
142793
|
+
resolve13(outcome);
|
|
142766
142794
|
}
|
|
142767
142795
|
};
|
|
142768
142796
|
const onMessage = (message) => {
|
|
@@ -143310,7 +143338,7 @@ function readPidRecord(path) {
|
|
|
143310
143338
|
async function waitForExit(pid, timeoutMs) {
|
|
143311
143339
|
const deadline = Date.now() + timeoutMs;
|
|
143312
143340
|
while (isProcessAlive(pid) && Date.now() < deadline) {
|
|
143313
|
-
await new Promise((
|
|
143341
|
+
await new Promise((resolve13) => setTimeout(resolve13, RESTART_POLL_INTERVAL_MS));
|
|
143314
143342
|
}
|
|
143315
143343
|
}
|
|
143316
143344
|
function isProcessAlive(pid) {
|
|
@@ -143328,7 +143356,7 @@ async function connectWithRetry(paths, buildId) {
|
|
|
143328
143356
|
} catch (err) {
|
|
143329
143357
|
const retriable = err instanceof DaemonRejectedError && err.reply.t === "rejected" && attempt < CONNECT_RETRIES;
|
|
143330
143358
|
if (!retriable) throw err;
|
|
143331
|
-
await new Promise((
|
|
143359
|
+
await new Promise((resolve13) => setTimeout(resolve13, CONNECT_RETRY_DELAY_MS));
|
|
143332
143360
|
}
|
|
143333
143361
|
}
|
|
143334
143362
|
}
|
|
@@ -144107,13 +144135,13 @@ var TerminalPool = class {
|
|
|
144107
144135
|
let deathWatch;
|
|
144108
144136
|
let drainCap;
|
|
144109
144137
|
try {
|
|
144110
|
-
await new Promise((
|
|
144111
|
-
session.headless.write("",
|
|
144138
|
+
await new Promise((resolve13) => {
|
|
144139
|
+
session.headless.write("", resolve13);
|
|
144112
144140
|
deathWatch = setInterval(() => {
|
|
144113
|
-
if (this.terminals.get(terminalId) !== session)
|
|
144141
|
+
if (this.terminals.get(terminalId) !== session) resolve13();
|
|
144114
144142
|
}, 50);
|
|
144115
144143
|
deathWatch.unref();
|
|
144116
|
-
drainCap = setTimeout(
|
|
144144
|
+
drainCap = setTimeout(resolve13, 1e3);
|
|
144117
144145
|
drainCap.unref();
|
|
144118
144146
|
});
|
|
144119
144147
|
if (this.terminals.get(terminalId) !== session) return null;
|
|
@@ -144996,7 +145024,7 @@ function formatFileList(files) {
|
|
|
144996
145024
|
|
|
144997
145025
|
// src/server/infra/lsp/lsp-manager.ts
|
|
144998
145026
|
import { spawn as spawn3 } from "node:child_process";
|
|
144999
|
-
import { dirname as dirname5, join as join21, resolve as
|
|
145027
|
+
import { dirname as dirname5, join as join21, resolve as resolve4 } from "node:path";
|
|
145000
145028
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
145001
145029
|
var workspaceQueries = new WorkspaceQueries();
|
|
145002
145030
|
var __dirname2 = dirname5(fileURLToPath2(import.meta.url));
|
|
@@ -145023,8 +145051,8 @@ async function getOrSpawnServer(workspaceId2, lang) {
|
|
|
145023
145051
|
}
|
|
145024
145052
|
const resolvedPath = await shellPath();
|
|
145025
145053
|
const cwd = workspace.worktreePath;
|
|
145026
|
-
const appBin =
|
|
145027
|
-
const bundledBin =
|
|
145054
|
+
const appBin = resolve4(__dirname2, "../../../../node_modules/.bin");
|
|
145055
|
+
const bundledBin = resolve4(__dirname2, "node_modules/.bin");
|
|
145028
145056
|
const workspaceBin = join21(cwd, "node_modules/.bin");
|
|
145029
145057
|
const pathSep = process.platform === "win32" ? ";" : ":";
|
|
145030
145058
|
const combinedPath = [bundledBin, appBin, workspaceBin, resolvedPath].join(pathSep);
|
|
@@ -145071,8 +145099,8 @@ async function getOrSpawnServer(workspaceId2, lang) {
|
|
|
145071
145099
|
child.stderr?.on("data", (chunk) => {
|
|
145072
145100
|
log17.debug("LSP stderr [%s]: %s", serverId, chunk.toString().trimEnd());
|
|
145073
145101
|
});
|
|
145074
|
-
await new Promise((
|
|
145075
|
-
child.once("spawn",
|
|
145102
|
+
await new Promise((resolve13, reject) => {
|
|
145103
|
+
child.once("spawn", resolve13);
|
|
145076
145104
|
child.once("error", (err) => reject(err));
|
|
145077
145105
|
});
|
|
145078
145106
|
return session;
|
|
@@ -145105,10 +145133,10 @@ import {
|
|
|
145105
145133
|
globSync,
|
|
145106
145134
|
mkdirSync as mkdirSync4,
|
|
145107
145135
|
readFileSync as readFileSync7,
|
|
145108
|
-
realpathSync as
|
|
145136
|
+
realpathSync as realpathSync3,
|
|
145109
145137
|
statSync as statSync9
|
|
145110
145138
|
} from "node:fs";
|
|
145111
|
-
import { dirname as dirname6, isAbsolute, join as join22, relative, resolve as
|
|
145139
|
+
import { dirname as dirname6, isAbsolute, join as join22, relative, resolve as resolve5, sep as sep3 } from "node:path";
|
|
145112
145140
|
import { promisify } from "node:util";
|
|
145113
145141
|
var log18 = createLogger("workspace-files");
|
|
145114
145142
|
var execFileAsync = promisify(execFile6);
|
|
@@ -145134,7 +145162,7 @@ async function copyWorkspaceFiles(projectPath, worktreePath) {
|
|
|
145134
145162
|
const copied = [];
|
|
145135
145163
|
let canonicalProjectRoot;
|
|
145136
145164
|
try {
|
|
145137
|
-
canonicalProjectRoot =
|
|
145165
|
+
canonicalProjectRoot = realpathSync3(projectPath);
|
|
145138
145166
|
} catch (err) {
|
|
145139
145167
|
log18.warn({ err, projectPath }, "failed to resolve project root \u2014 skipping workspace file copy");
|
|
145140
145168
|
return copied;
|
|
@@ -145150,7 +145178,7 @@ async function copyWorkspaceFiles(projectPath, worktreePath) {
|
|
|
145150
145178
|
continue;
|
|
145151
145179
|
}
|
|
145152
145180
|
try {
|
|
145153
|
-
const canonicalSource =
|
|
145181
|
+
const canonicalSource = realpathSync3(absSource);
|
|
145154
145182
|
const insideRoot = canonicalSource === canonicalProjectRoot || canonicalSource.startsWith(canonicalProjectRoot + sep3);
|
|
145155
145183
|
if (!insideRoot) {
|
|
145156
145184
|
log18.warn(
|
|
@@ -145211,7 +145239,7 @@ function resolveFromConfig(projectPath, missing) {
|
|
|
145211
145239
|
);
|
|
145212
145240
|
break;
|
|
145213
145241
|
}
|
|
145214
|
-
const abs =
|
|
145242
|
+
const abs = resolve5(projectPath, m3);
|
|
145215
145243
|
try {
|
|
145216
145244
|
if (statSync9(abs).isFile()) {
|
|
145217
145245
|
out.push(abs);
|
|
@@ -145220,7 +145248,7 @@ function resolveFromConfig(projectPath, missing) {
|
|
|
145220
145248
|
}
|
|
145221
145249
|
}
|
|
145222
145250
|
} else {
|
|
145223
|
-
const abs =
|
|
145251
|
+
const abs = resolve5(projectPath, entry);
|
|
145224
145252
|
try {
|
|
145225
145253
|
if (statSync9(abs).isFile()) {
|
|
145226
145254
|
out.push(abs);
|
|
@@ -145260,7 +145288,7 @@ async function resolveFromWorktreeInclude(projectPath) {
|
|
|
145260
145288
|
const out = [];
|
|
145261
145289
|
for (const rel of matchingWorktreeInclude) {
|
|
145262
145290
|
if (!standardSet.has(rel)) continue;
|
|
145263
|
-
out.push(
|
|
145291
|
+
out.push(resolve5(projectPath, rel));
|
|
145264
145292
|
}
|
|
145265
145293
|
return out;
|
|
145266
145294
|
}
|
|
@@ -145545,9 +145573,7 @@ async function runTask(task) {
|
|
|
145545
145573
|
});
|
|
145546
145574
|
}
|
|
145547
145575
|
});
|
|
145548
|
-
const previousCost = agentSessionService.
|
|
145549
|
-
resolveDefaults: false
|
|
145550
|
-
}).costUsd;
|
|
145576
|
+
const previousCost = agentSessionService.sessionCostUsd(chatId);
|
|
145551
145577
|
agentSessionService.record(
|
|
145552
145578
|
chatId,
|
|
145553
145579
|
{
|
|
@@ -148725,9 +148751,9 @@ var TerminalService = class {
|
|
|
148725
148751
|
let exited = false;
|
|
148726
148752
|
let wake = null;
|
|
148727
148753
|
const notify2 = () => {
|
|
148728
|
-
const
|
|
148754
|
+
const resolve13 = wake;
|
|
148729
148755
|
wake = null;
|
|
148730
|
-
|
|
148756
|
+
resolve13?.();
|
|
148731
148757
|
};
|
|
148732
148758
|
const unsubscribeExit = this.onExit(terminalId, () => {
|
|
148733
148759
|
exited = true;
|
|
@@ -148755,9 +148781,9 @@ var TerminalService = class {
|
|
|
148755
148781
|
yield { kind: "exit" };
|
|
148756
148782
|
return;
|
|
148757
148783
|
}
|
|
148758
|
-
await new Promise((
|
|
148759
|
-
if (exited || queue.length > 0 || signal?.aborted)
|
|
148760
|
-
else wake =
|
|
148784
|
+
await new Promise((resolve13) => {
|
|
148785
|
+
if (exited || queue.length > 0 || signal?.aborted) resolve13();
|
|
148786
|
+
else wake = resolve13;
|
|
148761
148787
|
});
|
|
148762
148788
|
}
|
|
148763
148789
|
} finally {
|
|
@@ -148887,12 +148913,12 @@ var WorkspaceScriptService = class {
|
|
|
148887
148913
|
try {
|
|
148888
148914
|
prepared = await prepareScriptRun(command, script);
|
|
148889
148915
|
const { exited } = prepared;
|
|
148890
|
-
const closed = new Promise((
|
|
148891
|
-
unsubscribeExit = terminalService.onExit(terminalId, () =>
|
|
148916
|
+
const closed = new Promise((resolve13) => {
|
|
148917
|
+
unsubscribeExit = terminalService.onExit(terminalId, () => resolve13({ kind: "closed" }));
|
|
148892
148918
|
});
|
|
148893
|
-
const timedOut = new Promise((
|
|
148919
|
+
const timedOut = new Promise((resolve13) => {
|
|
148894
148920
|
if (timeoutMs !== void 0) {
|
|
148895
|
-
timer = setTimeout(() =>
|
|
148921
|
+
timer = setTimeout(() => resolve13({ kind: "timeout" }), timeoutMs);
|
|
148896
148922
|
}
|
|
148897
148923
|
});
|
|
148898
148924
|
await terminalService.spawn(workspaceId2, terminalId, { command: prepared.command });
|
|
@@ -149669,17 +149695,19 @@ function record2(rt, event, turnStart = false) {
|
|
|
149669
149695
|
broadcastTransient(rt.chatId, event);
|
|
149670
149696
|
return;
|
|
149671
149697
|
}
|
|
149698
|
+
const createdAt = Date.now();
|
|
149672
149699
|
const id2 = events.append({
|
|
149673
149700
|
chatId: rt.chatId,
|
|
149674
149701
|
sessionId: rt.sessionId,
|
|
149675
149702
|
revision: rt.revision,
|
|
149676
149703
|
event,
|
|
149677
|
-
turnStart
|
|
149704
|
+
turnStart,
|
|
149705
|
+
createdAt
|
|
149678
149706
|
});
|
|
149679
|
-
emit2(rt.chatId, { ...event, eventId: id2 });
|
|
149707
|
+
emit2(rt.chatId, { ...event, eventId: id2, createdAt });
|
|
149680
149708
|
}
|
|
149681
149709
|
function broadcastTransient(chatId, event) {
|
|
149682
|
-
emit2(chatId, { ...event, eventId: transientId
|
|
149710
|
+
emit2(chatId, { ...event, eventId: transientId--, createdAt: Date.now() });
|
|
149683
149711
|
}
|
|
149684
149712
|
function remember(def2, patch) {
|
|
149685
149713
|
const prev = catalog.get(def2.id);
|
|
@@ -149747,7 +149775,11 @@ function applyLive(rt, update) {
|
|
|
149747
149775
|
if (rt.live.modes) rt.live.modes = { ...rt.live.modes, currentModeId: update.currentModeId };
|
|
149748
149776
|
break;
|
|
149749
149777
|
case "usage_update":
|
|
149750
|
-
rt.live.usage = {
|
|
149778
|
+
rt.live.usage = {
|
|
149779
|
+
used: update.used,
|
|
149780
|
+
size: update.size,
|
|
149781
|
+
cost: update.cost ?? rt.live.usage?.cost ?? null
|
|
149782
|
+
};
|
|
149751
149783
|
break;
|
|
149752
149784
|
case "session_info_update":
|
|
149753
149785
|
if (update.title !== void 0) {
|
|
@@ -149805,7 +149837,7 @@ function openRequest(rt, signal, make, onCancel) {
|
|
|
149805
149837
|
return requestId;
|
|
149806
149838
|
}
|
|
149807
149839
|
function requestPermission(rt, request, signal) {
|
|
149808
|
-
return new Promise((
|
|
149840
|
+
return new Promise((resolve13) => {
|
|
149809
149841
|
const requestId = openRequest(
|
|
149810
149842
|
rt,
|
|
149811
149843
|
signal,
|
|
@@ -149813,10 +149845,10 @@ function requestPermission(rt, request, signal) {
|
|
|
149813
149845
|
optionIds: request.options.map((o) => o.optionId),
|
|
149814
149846
|
permission: (optionId) => {
|
|
149815
149847
|
done(optionId ?? "cancelled");
|
|
149816
|
-
|
|
149848
|
+
resolve13(optionId ? { outcome: "selected", optionId } : { outcome: "cancelled" });
|
|
149817
149849
|
}
|
|
149818
149850
|
}),
|
|
149819
|
-
() =>
|
|
149851
|
+
() => resolve13({ outcome: "cancelled" })
|
|
149820
149852
|
);
|
|
149821
149853
|
record2(rt, { type: "permission", requestId, request });
|
|
149822
149854
|
pendingObserver?.(rt.chatId, rt.workspaceId);
|
|
@@ -149824,17 +149856,17 @@ function requestPermission(rt, request, signal) {
|
|
|
149824
149856
|
}
|
|
149825
149857
|
function requestElicitation(rt, request, signal) {
|
|
149826
149858
|
if (request.mode !== "form") return Promise.resolve({ action: "decline" });
|
|
149827
|
-
return new Promise((
|
|
149859
|
+
return new Promise((resolve13) => {
|
|
149828
149860
|
const requestId = openRequest(
|
|
149829
149861
|
rt,
|
|
149830
149862
|
signal,
|
|
149831
149863
|
(done) => ({
|
|
149832
149864
|
elicitation: (response) => {
|
|
149833
149865
|
done(response.action);
|
|
149834
|
-
|
|
149866
|
+
resolve13(response);
|
|
149835
149867
|
}
|
|
149836
149868
|
}),
|
|
149837
|
-
() =>
|
|
149869
|
+
() => resolve13({ action: "cancel" })
|
|
149838
149870
|
);
|
|
149839
149871
|
record2(rt, { type: "elicitation", requestId, request });
|
|
149840
149872
|
pendingObserver?.(rt.chatId, rt.workspaceId);
|
|
@@ -150110,6 +150142,15 @@ var AgentSessionService = class {
|
|
|
150110
150142
|
const cost = runtimes.get(chatId)?.live.usage?.cost;
|
|
150111
150143
|
return cost && cost.currency === "USD" ? cost.amount : void 0;
|
|
150112
150144
|
}
|
|
150145
|
+
/** The session's cumulative cost in USD so far: the agent's own figure
|
|
150146
|
+
* when it reports one, else Band's estimate from the last finished turn.
|
|
150147
|
+
* The next turn's estimate builds on it. */
|
|
150148
|
+
sessionCostUsd(chatId) {
|
|
150149
|
+
const reported = this.reportedCost(chatId);
|
|
150150
|
+
if (reported !== void 0) return reported;
|
|
150151
|
+
const sessionId = chatService.get(chatId)?.activeSessionId;
|
|
150152
|
+
return sessionId ? sessionCost(sessionId) : null;
|
|
150153
|
+
}
|
|
150113
150154
|
/** Runs one prompt turn on the attached session. */
|
|
150114
150155
|
async prompt(chatId, blocks) {
|
|
150115
150156
|
const rt = runtimes.get(chatId);
|
|
@@ -150309,11 +150350,7 @@ var AgentSessionService = class {
|
|
|
150309
150350
|
const rt = runtimes.get(chatId);
|
|
150310
150351
|
const sessionId = chat.activeSessionId;
|
|
150311
150352
|
if (rt?.process?.alive && rt.sessionId && rt.sessionId === sessionId) {
|
|
150312
|
-
return {
|
|
150313
|
-
source: "live",
|
|
150314
|
-
...rt.live,
|
|
150315
|
-
costUsd: this.reportedCost(chatId) ?? sessionCost(sessionId)
|
|
150316
|
-
};
|
|
150353
|
+
return { source: "live", ...rt.live };
|
|
150317
150354
|
}
|
|
150318
150355
|
const revision = sessionId ? events.currentRevision(sessionId) : 0;
|
|
150319
150356
|
if (sessionId && revision > 0) {
|
|
@@ -150335,7 +150372,6 @@ var AgentSessionService = class {
|
|
|
150335
150372
|
models: base3?.models ?? null,
|
|
150336
150373
|
commands: commands?.type === "update" && commands.update.sessionUpdate === "available_commands_update" ? commands.update.availableCommands : catalog.get(def2.id)?.commands ?? [],
|
|
150337
150374
|
usage: usageUpdate,
|
|
150338
|
-
costUsd: usageUpdate?.cost?.currency === "USD" ? usageUpdate.cost.amount : sessionCost(sessionId),
|
|
150339
150375
|
title: info?.type === "update" && info.update.sessionUpdate === "session_info_update" ? info.update.title ?? null : null
|
|
150340
150376
|
};
|
|
150341
150377
|
}
|
|
@@ -150355,7 +150391,6 @@ var AgentSessionService = class {
|
|
|
150355
150391
|
models: models && modelChoice && models.availableModels.some((m3) => m3.modelId === modelChoice) ? { ...models, currentModelId: modelChoice } : models,
|
|
150356
150392
|
commands: cached2?.commands ?? [],
|
|
150357
150393
|
usage: null,
|
|
150358
|
-
costUsd: null,
|
|
150359
150394
|
title: null
|
|
150360
150395
|
};
|
|
150361
150396
|
}
|
|
@@ -150537,13 +150572,13 @@ var AgentSessionService = class {
|
|
|
150537
150572
|
}
|
|
150538
150573
|
}
|
|
150539
150574
|
};
|
|
150575
|
+
var agentSessionService = new AgentSessionService();
|
|
150540
150576
|
function sessionCost(sessionId) {
|
|
150541
150577
|
const revision = events.currentRevision(sessionId);
|
|
150542
150578
|
if (revision === 0) return null;
|
|
150543
150579
|
const row = events.latest(sessionId, revision, { kind: "turn-ended" });
|
|
150544
150580
|
return row?.event.type === "turn-ended" ? row.event.usage?.costUsd ?? null : null;
|
|
150545
150581
|
}
|
|
150546
|
-
var agentSessionService = new AgentSessionService();
|
|
150547
150582
|
|
|
150548
150583
|
// src/shared/chat-events.ts
|
|
150549
150584
|
var HISTORY_PAGE_SIZE = 20;
|
|
@@ -150761,10 +150796,10 @@ async function saveUploadedFilesDetailed(fileParts) {
|
|
|
150761
150796
|
// src/api/chat-submit.ts
|
|
150762
150797
|
var log33 = createLogger("chat-submit");
|
|
150763
150798
|
function readBody(req) {
|
|
150764
|
-
return new Promise((
|
|
150799
|
+
return new Promise((resolve13, reject) => {
|
|
150765
150800
|
const chunks = [];
|
|
150766
150801
|
req.on("data", (chunk) => chunks.push(chunk));
|
|
150767
|
-
req.on("end", () =>
|
|
150802
|
+
req.on("end", () => resolve13(Buffer.concat(chunks).toString("utf-8")));
|
|
150768
150803
|
req.on("error", reject);
|
|
150769
150804
|
});
|
|
150770
150805
|
}
|
|
@@ -154394,7 +154429,7 @@ var Protocol = class {
|
|
|
154394
154429
|
return;
|
|
154395
154430
|
}
|
|
154396
154431
|
const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
|
|
154397
|
-
await new Promise((
|
|
154432
|
+
await new Promise((resolve13) => setTimeout(resolve13, pollInterval));
|
|
154398
154433
|
options2?.signal?.throwIfAborted();
|
|
154399
154434
|
}
|
|
154400
154435
|
} catch (error40) {
|
|
@@ -154411,7 +154446,7 @@ var Protocol = class {
|
|
|
154411
154446
|
*/
|
|
154412
154447
|
request(request, resultSchema, options2) {
|
|
154413
154448
|
const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options2 ?? {};
|
|
154414
|
-
return new Promise((
|
|
154449
|
+
return new Promise((resolve13, reject) => {
|
|
154415
154450
|
const earlyReject = (error40) => {
|
|
154416
154451
|
reject(error40);
|
|
154417
154452
|
};
|
|
@@ -154489,7 +154524,7 @@ var Protocol = class {
|
|
|
154489
154524
|
if (!parseResult.success) {
|
|
154490
154525
|
reject(parseResult.error);
|
|
154491
154526
|
} else {
|
|
154492
|
-
|
|
154527
|
+
resolve13(parseResult.data);
|
|
154493
154528
|
}
|
|
154494
154529
|
} catch (error40) {
|
|
154495
154530
|
reject(error40);
|
|
@@ -154750,12 +154785,12 @@ var Protocol = class {
|
|
|
154750
154785
|
}
|
|
154751
154786
|
} catch {
|
|
154752
154787
|
}
|
|
154753
|
-
return new Promise((
|
|
154788
|
+
return new Promise((resolve13, reject) => {
|
|
154754
154789
|
if (signal.aborted) {
|
|
154755
154790
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
|
154756
154791
|
return;
|
|
154757
154792
|
}
|
|
154758
|
-
const timeoutId = setTimeout(
|
|
154793
|
+
const timeoutId = setTimeout(resolve13, interval2);
|
|
154759
154794
|
signal.addEventListener("abort", () => {
|
|
154760
154795
|
clearTimeout(timeoutId);
|
|
154761
154796
|
reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
|
|
@@ -155855,7 +155890,7 @@ var McpServer = class {
|
|
|
155855
155890
|
let task = createTaskResult.task;
|
|
155856
155891
|
const pollInterval = task.pollInterval ?? 5e3;
|
|
155857
155892
|
while (task.status !== "completed" && task.status !== "failed" && task.status !== "cancelled") {
|
|
155858
|
-
await new Promise((
|
|
155893
|
+
await new Promise((resolve13) => setTimeout(resolve13, pollInterval));
|
|
155859
155894
|
const updatedTask = await extra.taskStore.getTask(taskId);
|
|
155860
155895
|
if (!updatedTask) {
|
|
155861
155896
|
throw new McpError(ErrorCode.InternalError, `Task ${taskId} not found during polling`);
|
|
@@ -156894,7 +156929,7 @@ var responseViaResponseObject = async (res, outgoing, options2 = {}) => {
|
|
|
156894
156929
|
});
|
|
156895
156930
|
if (!chunk) {
|
|
156896
156931
|
if (i === 1) {
|
|
156897
|
-
await new Promise((
|
|
156932
|
+
await new Promise((resolve13) => setTimeout(resolve13));
|
|
156898
156933
|
maxReadCount = 3;
|
|
156899
156934
|
continue;
|
|
156900
156935
|
}
|
|
@@ -157394,9 +157429,9 @@ data:
|
|
|
157394
157429
|
const initRequest = messages.find((m3) => isInitializeRequest(m3));
|
|
157395
157430
|
const clientProtocolVersion = initRequest ? initRequest.params.protocolVersion : req.headers.get("mcp-protocol-version") ?? DEFAULT_NEGOTIATED_PROTOCOL_VERSION;
|
|
157396
157431
|
if (this._enableJsonResponse) {
|
|
157397
|
-
return new Promise((
|
|
157432
|
+
return new Promise((resolve13) => {
|
|
157398
157433
|
this._streamMapping.set(streamId, {
|
|
157399
|
-
resolveJson:
|
|
157434
|
+
resolveJson: resolve13,
|
|
157400
157435
|
cleanup: () => {
|
|
157401
157436
|
this._streamMapping.delete(streamId);
|
|
157402
157437
|
}
|
|
@@ -157829,8 +157864,8 @@ async function ensureCdpTargetId(bandTabId) {
|
|
|
157829
157864
|
};
|
|
157830
157865
|
let rejectFn = () => {
|
|
157831
157866
|
};
|
|
157832
|
-
const promise2 = new Promise((
|
|
157833
|
-
resolveFn =
|
|
157867
|
+
const promise2 = new Promise((resolve13, reject) => {
|
|
157868
|
+
resolveFn = resolve13;
|
|
157834
157869
|
rejectFn = reject;
|
|
157835
157870
|
});
|
|
157836
157871
|
const timeoutId = setTimeout(() => {
|
|
@@ -158052,14 +158087,14 @@ var browserHostRouter = t3.router({
|
|
|
158052
158087
|
}),
|
|
158053
158088
|
ensureView: publicProcedure.subscription(async function* (opts) {
|
|
158054
158089
|
const queue = [];
|
|
158055
|
-
let
|
|
158090
|
+
let resolve13 = null;
|
|
158056
158091
|
const unsubscribe = browserHostService.onEnsureView((event) => {
|
|
158057
158092
|
queue.push(event);
|
|
158058
|
-
|
|
158093
|
+
resolve13?.();
|
|
158059
158094
|
});
|
|
158060
158095
|
opts.signal?.addEventListener("abort", () => {
|
|
158061
158096
|
unsubscribe();
|
|
158062
|
-
|
|
158097
|
+
resolve13?.();
|
|
158063
158098
|
});
|
|
158064
158099
|
try {
|
|
158065
158100
|
while (!opts.signal?.aborted) {
|
|
@@ -158067,9 +158102,9 @@ var browserHostRouter = t3.router({
|
|
|
158067
158102
|
yield queue.shift();
|
|
158068
158103
|
}
|
|
158069
158104
|
await new Promise((r3) => {
|
|
158070
|
-
|
|
158105
|
+
resolve13 = r3;
|
|
158071
158106
|
});
|
|
158072
|
-
|
|
158107
|
+
resolve13 = null;
|
|
158073
158108
|
}
|
|
158074
158109
|
} finally {
|
|
158075
158110
|
unsubscribe();
|
|
@@ -158657,13 +158692,13 @@ import {
|
|
|
158657
158692
|
lstatSync as lstatSync3,
|
|
158658
158693
|
mkdirSync as mkdirSync6,
|
|
158659
158694
|
readFileSync as readFileSync8,
|
|
158660
|
-
realpathSync as
|
|
158695
|
+
realpathSync as realpathSync4,
|
|
158661
158696
|
symlinkSync,
|
|
158662
158697
|
unlinkSync as unlinkSync4,
|
|
158663
158698
|
writeFileSync as writeFileSync3
|
|
158664
158699
|
} from "node:fs";
|
|
158665
158700
|
import { homedir as homedir8, platform as platform2 } from "node:os";
|
|
158666
|
-
import { basename as basename2, dirname as dirname7, join as join27, resolve as
|
|
158701
|
+
import { basename as basename2, dirname as dirname7, join as join27, resolve as resolve6 } from "node:path";
|
|
158667
158702
|
function windowsBinDir() {
|
|
158668
158703
|
const localAppData = process.env.LOCALAPPDATA || join27(homedir8(), "AppData", "Local");
|
|
158669
158704
|
return join27(localAppData, "band", "bin");
|
|
@@ -158674,11 +158709,11 @@ function findCliBinaryAt(opts) {
|
|
|
158674
158709
|
const exe = platform2() === "win32" ? "band.exe" : "band";
|
|
158675
158710
|
const appsStrategies = [
|
|
158676
158711
|
// cwd = apps/web/ (Vite dev and production server)
|
|
158677
|
-
|
|
158712
|
+
resolve6(cwd, ".."),
|
|
158678
158713
|
// cwd = project root (fallback)
|
|
158679
|
-
|
|
158714
|
+
resolve6(cwd, "apps"),
|
|
158680
158715
|
// From this source file in dev (apps/web/src/server/services/ → apps/)
|
|
158681
|
-
|
|
158716
|
+
resolve6(dirname11, "..", "..", "..", ".."),
|
|
158682
158717
|
// From bundled `dist/` file (<Resources>/web/dist/ → <Resources>/) only
|
|
158683
158718
|
// — in dev mode this resolves to `apps/web/src/`, which has no
|
|
158684
158719
|
// `cli/target/<profile>/band` and is harmless; the four-level walk
|
|
@@ -158686,7 +158721,7 @@ function findCliBinaryAt(opts) {
|
|
|
158686
158721
|
// layout under <Resources>/cli/ would still resolve. Today's Electron
|
|
158687
158722
|
// bundle ships the binary under `binaries/` (handled by Strategy B),
|
|
158688
158723
|
// so this strategy never hits in production either.
|
|
158689
|
-
|
|
158724
|
+
resolve6(dirname11, "..", "..", "..")
|
|
158690
158725
|
];
|
|
158691
158726
|
for (const appsDir of appsStrategies) {
|
|
158692
158727
|
for (const profile of ["release", "debug"]) {
|
|
@@ -158700,10 +158735,10 @@ function findCliBinaryAt(opts) {
|
|
|
158700
158735
|
}
|
|
158701
158736
|
const electronCandidates = [
|
|
158702
158737
|
// From cwd (<Resources>/web) → <Resources>/binaries/band
|
|
158703
|
-
|
|
158738
|
+
resolve6(cwd, "..", "binaries", exe),
|
|
158704
158739
|
// From the bundled dist file (<Resources>/web/dist/start-server.mjs)
|
|
158705
158740
|
// → <Resources>/binaries/band
|
|
158706
|
-
|
|
158741
|
+
resolve6(dirname11, "..", "..", "binaries", exe)
|
|
158707
158742
|
];
|
|
158708
158743
|
for (const p3 of electronCandidates) {
|
|
158709
158744
|
try {
|
|
@@ -158743,7 +158778,7 @@ async function checkCli() {
|
|
|
158743
158778
|
}
|
|
158744
158779
|
let target;
|
|
158745
158780
|
try {
|
|
158746
|
-
target =
|
|
158781
|
+
target = realpathSync4(SYMLINK_PATH);
|
|
158747
158782
|
} catch {
|
|
158748
158783
|
return "NotInstalled";
|
|
158749
158784
|
}
|
|
@@ -158790,9 +158825,9 @@ function noBinaryError(env = process.env) {
|
|
|
158790
158825
|
);
|
|
158791
158826
|
}
|
|
158792
158827
|
function runReg(args) {
|
|
158793
|
-
return new Promise((
|
|
158828
|
+
return new Promise((resolve13) => {
|
|
158794
158829
|
execFile8("reg", args, { windowsHide: true }, (err, stdout) => {
|
|
158795
|
-
|
|
158830
|
+
resolve13(err ? "" : stdout ?? "");
|
|
158796
158831
|
});
|
|
158797
158832
|
});
|
|
158798
158833
|
}
|
|
@@ -158984,7 +159019,7 @@ init_dist38();
|
|
|
158984
159019
|
|
|
158985
159020
|
// src/server/services/editor-service.ts
|
|
158986
159021
|
import { realpath as realpath2, stat as stat4 } from "node:fs/promises";
|
|
158987
|
-
import { isAbsolute as isAbsolute4, join as join29, resolve as
|
|
159022
|
+
import { isAbsolute as isAbsolute4, join as join29, resolve as resolve7, sep as sep4 } from "node:path";
|
|
158988
159023
|
|
|
158989
159024
|
// src/server/services/file-watcher.ts
|
|
158990
159025
|
import { watch as fsWatch } from "node:fs";
|
|
@@ -159079,7 +159114,7 @@ function subscribeToFileChanges(workspaceId2, listener) {
|
|
|
159079
159114
|
}
|
|
159080
159115
|
|
|
159081
159116
|
// src/server/services/formatter.ts
|
|
159082
|
-
import { existsSync as existsSync12, realpathSync as
|
|
159117
|
+
import { existsSync as existsSync12, realpathSync as realpathSync5 } from "node:fs";
|
|
159083
159118
|
import { basename as basename3, dirname as dirname8, isAbsolute as isAbsolute3, join as join28, resolve as resolvePath3 } from "node:path";
|
|
159084
159119
|
import prettier from "prettier";
|
|
159085
159120
|
var log37 = createLogger("formatter");
|
|
@@ -159156,17 +159191,17 @@ async function formatFile(worktreePath, filePath, content2, options2 = {}) {
|
|
|
159156
159191
|
function isInsideWorktree(absFile, worktreePath) {
|
|
159157
159192
|
let realFile;
|
|
159158
159193
|
try {
|
|
159159
|
-
realFile =
|
|
159194
|
+
realFile = realpathSync5(absFile);
|
|
159160
159195
|
} catch {
|
|
159161
159196
|
try {
|
|
159162
|
-
realFile = join28(
|
|
159197
|
+
realFile = join28(realpathSync5(dirname8(absFile)), basename3(absFile));
|
|
159163
159198
|
} catch {
|
|
159164
159199
|
realFile = absFile;
|
|
159165
159200
|
}
|
|
159166
159201
|
}
|
|
159167
159202
|
let realWorktree;
|
|
159168
159203
|
try {
|
|
159169
|
-
realWorktree =
|
|
159204
|
+
realWorktree = realpathSync5(worktreePath);
|
|
159170
159205
|
} catch {
|
|
159171
159206
|
realWorktree = worktreePath;
|
|
159172
159207
|
}
|
|
@@ -159293,7 +159328,7 @@ var EditorService = class {
|
|
|
159293
159328
|
* segment-aware containment check against the canonicalized worktree root.
|
|
159294
159329
|
*/
|
|
159295
159330
|
async resolveTarget(root, filePath) {
|
|
159296
|
-
const absoluteTarget = isAbsolute4(filePath) ?
|
|
159331
|
+
const absoluteTarget = isAbsolute4(filePath) ? resolve7(filePath) : resolve7(root, filePath);
|
|
159297
159332
|
let canonicalRoot = root;
|
|
159298
159333
|
try {
|
|
159299
159334
|
canonicalRoot = await realpath2(root);
|
|
@@ -159750,7 +159785,7 @@ async function duBytes(path) {
|
|
|
159750
159785
|
if (process.platform === "win32") {
|
|
159751
159786
|
return duBytesNodeWalk(path);
|
|
159752
159787
|
}
|
|
159753
|
-
const stdout = await new Promise((
|
|
159788
|
+
const stdout = await new Promise((resolve13, reject) => {
|
|
159754
159789
|
execFile9(
|
|
159755
159790
|
"du",
|
|
159756
159791
|
["-sk", path],
|
|
@@ -159760,7 +159795,7 @@ async function duBytes(path) {
|
|
|
159760
159795
|
reject(err);
|
|
159761
159796
|
return;
|
|
159762
159797
|
}
|
|
159763
|
-
|
|
159798
|
+
resolve13(out);
|
|
159764
159799
|
}
|
|
159765
159800
|
);
|
|
159766
159801
|
});
|
|
@@ -159775,7 +159810,7 @@ async function duBytes(path) {
|
|
|
159775
159810
|
// src/server/infra/process/install.ts
|
|
159776
159811
|
import { execFile as execFile10 } from "node:child_process";
|
|
159777
159812
|
async function brewInstall(pkg, resolvedPath) {
|
|
159778
|
-
await new Promise((
|
|
159813
|
+
await new Promise((resolve13, reject) => {
|
|
159779
159814
|
execFile10(
|
|
159780
159815
|
"brew",
|
|
159781
159816
|
["install", pkg],
|
|
@@ -159785,7 +159820,7 @@ async function brewInstall(pkg, resolvedPath) {
|
|
|
159785
159820
|
reject(new Error(stderr || err.message));
|
|
159786
159821
|
return;
|
|
159787
159822
|
}
|
|
159788
|
-
|
|
159823
|
+
resolve13();
|
|
159789
159824
|
}
|
|
159790
159825
|
);
|
|
159791
159826
|
});
|
|
@@ -159796,10 +159831,10 @@ var DU_GLOBAL_CONCURRENCY = 8;
|
|
|
159796
159831
|
var duInFlight = 0;
|
|
159797
159832
|
var duWaiting = [];
|
|
159798
159833
|
function acquireDuSlot() {
|
|
159799
|
-
return new Promise((
|
|
159834
|
+
return new Promise((resolve13) => {
|
|
159800
159835
|
const grant = () => {
|
|
159801
159836
|
duInFlight++;
|
|
159802
|
-
|
|
159837
|
+
resolve13(() => {
|
|
159803
159838
|
duInFlight--;
|
|
159804
159839
|
const next = duWaiting.shift();
|
|
159805
159840
|
if (next) next();
|
|
@@ -160307,7 +160342,7 @@ var prereqsRouter = t3.router({
|
|
|
160307
160342
|
// src/server/services/project-service.ts
|
|
160308
160343
|
init_dist38();
|
|
160309
160344
|
import { existsSync as existsSync13 } from "node:fs";
|
|
160310
|
-
import { basename as basename4, join as join33, resolve as
|
|
160345
|
+
import { basename as basename4, join as join33, resolve as resolve8 } from "node:path";
|
|
160311
160346
|
|
|
160312
160347
|
// src/server/services/project-avatar-service.ts
|
|
160313
160348
|
import { mkdir as mkdir4, readFile as readFile5, rename as rename2, writeFile as writeFile4 } from "node:fs/promises";
|
|
@@ -160606,7 +160641,7 @@ var ProjectService = class {
|
|
|
160606
160641
|
* `git init` checkbox. Read-only — never touches state.
|
|
160607
160642
|
*/
|
|
160608
160643
|
checkPath(path) {
|
|
160609
|
-
const resolvedPath =
|
|
160644
|
+
const resolvedPath = resolve8(path);
|
|
160610
160645
|
const isGitRepo = existsSync13(join33(resolvedPath, ".git"));
|
|
160611
160646
|
return { isGitRepo };
|
|
160612
160647
|
}
|
|
@@ -160616,7 +160651,7 @@ var ProjectService = class {
|
|
|
160616
160651
|
* features at the same time as registering the project.
|
|
160617
160652
|
*/
|
|
160618
160653
|
async gitInit(path) {
|
|
160619
|
-
const resolvedPath =
|
|
160654
|
+
const resolvedPath = resolve8(path);
|
|
160620
160655
|
await this.git.init(resolvedPath);
|
|
160621
160656
|
}
|
|
160622
160657
|
/**
|
|
@@ -160642,7 +160677,7 @@ var ProjectService = class {
|
|
|
160642
160677
|
);
|
|
160643
160678
|
}
|
|
160644
160679
|
}
|
|
160645
|
-
const resolvedPath =
|
|
160680
|
+
const resolvedPath = resolve8(path);
|
|
160646
160681
|
const kind = existsSync13(join33(resolvedPath, ".git")) ? "git" : "plain";
|
|
160647
160682
|
let defaultBranch = "main";
|
|
160648
160683
|
let worktrees2 = [];
|
|
@@ -160822,8 +160857,8 @@ var projectsRouter = t3.router({
|
|
|
160822
160857
|
});
|
|
160823
160858
|
|
|
160824
160859
|
// src/server/api/queue/router.ts
|
|
160825
|
-
import { realpathSync as
|
|
160826
|
-
import { join as join34, resolve as
|
|
160860
|
+
import { realpathSync as realpathSync6 } from "node:fs";
|
|
160861
|
+
import { join as join34, resolve as resolve9, sep as sep5 } from "node:path";
|
|
160827
160862
|
var log40 = createLogger("trpc.queue");
|
|
160828
160863
|
var queuedFileSchema = external_exports2.object({
|
|
160829
160864
|
mediaType: external_exports2.string(),
|
|
@@ -160833,14 +160868,14 @@ var queuedFileSchema = external_exports2.object({
|
|
|
160833
160868
|
});
|
|
160834
160869
|
function isPathWithinUploadDir(p3) {
|
|
160835
160870
|
const uploadDir = join34(bandHome(), "uploads");
|
|
160836
|
-
const normalized2 =
|
|
160871
|
+
const normalized2 = resolve9(p3);
|
|
160837
160872
|
if (normalized2 !== uploadDir && !normalized2.startsWith(uploadDir + sep5)) {
|
|
160838
160873
|
return false;
|
|
160839
160874
|
}
|
|
160840
160875
|
try {
|
|
160841
|
-
const canonicalUploadDir =
|
|
160842
|
-
const
|
|
160843
|
-
return
|
|
160876
|
+
const canonicalUploadDir = realpathSync6(uploadDir);
|
|
160877
|
+
const canonicalPath2 = realpathSync6(p3);
|
|
160878
|
+
return canonicalPath2 === canonicalUploadDir || canonicalPath2.startsWith(canonicalUploadDir + sep5);
|
|
160844
160879
|
} catch {
|
|
160845
160880
|
return true;
|
|
160846
160881
|
}
|
|
@@ -161015,15 +161050,15 @@ var queueRouter = t3.router({
|
|
|
161015
161050
|
stream: publicProcedure.input(external_exports2.object({ workspaceId: external_exports2.string(), chatId: external_exports2.string().optional() })).subscription(async function* (opts) {
|
|
161016
161051
|
const chatId = opts.input.chatId ?? chatService.getOrCreateDefault(opts.input.workspaceId).id;
|
|
161017
161052
|
const queue = [];
|
|
161018
|
-
let
|
|
161053
|
+
let resolve13 = null;
|
|
161019
161054
|
const unsubscribe = subscribeQueue((id2, messages) => {
|
|
161020
161055
|
if (id2 !== chatId) return;
|
|
161021
161056
|
queue.push({ messages });
|
|
161022
|
-
|
|
161057
|
+
resolve13?.();
|
|
161023
161058
|
});
|
|
161024
161059
|
opts.signal?.addEventListener("abort", () => {
|
|
161025
161060
|
unsubscribe();
|
|
161026
|
-
|
|
161061
|
+
resolve13?.();
|
|
161027
161062
|
});
|
|
161028
161063
|
yield { messages: toWireQueuedMessages(getQueuedMessages(chatId)) };
|
|
161029
161064
|
queue.length = 0;
|
|
@@ -161034,9 +161069,9 @@ var queueRouter = t3.router({
|
|
|
161034
161069
|
yield { messages: toWireQueuedMessages(update.messages) };
|
|
161035
161070
|
}
|
|
161036
161071
|
await new Promise((r3) => {
|
|
161037
|
-
|
|
161072
|
+
resolve13 = r3;
|
|
161038
161073
|
});
|
|
161039
|
-
|
|
161074
|
+
resolve13 = null;
|
|
161040
161075
|
}
|
|
161041
161076
|
} finally {
|
|
161042
161077
|
unsubscribe();
|
|
@@ -161090,7 +161125,7 @@ var USAGE_SCAN_INTERVAL_MS = 5 * 60 * 1e3;
|
|
|
161090
161125
|
var MAX_SESSIONS_PER_TICK = 100;
|
|
161091
161126
|
var EPOCH_SENTINEL = 0;
|
|
161092
161127
|
function yieldToEventLoop2() {
|
|
161093
|
-
return new Promise((
|
|
161128
|
+
return new Promise((resolve13) => setImmediate(resolve13));
|
|
161094
161129
|
}
|
|
161095
161130
|
var UsageScannerService = class {
|
|
161096
161131
|
usageEvents;
|
|
@@ -161697,14 +161732,14 @@ var statusesRouter = t3.router({
|
|
|
161697
161732
|
var statusRouter = t3.router({
|
|
161698
161733
|
stream: publicProcedure.subscription(async function* (opts) {
|
|
161699
161734
|
const queue = [];
|
|
161700
|
-
let
|
|
161735
|
+
let resolve13 = null;
|
|
161701
161736
|
const unsubscribe = watcherService.subscribe((event) => {
|
|
161702
161737
|
queue.push(event);
|
|
161703
|
-
|
|
161738
|
+
resolve13?.();
|
|
161704
161739
|
});
|
|
161705
161740
|
opts.signal?.addEventListener("abort", () => {
|
|
161706
161741
|
unsubscribe();
|
|
161707
|
-
|
|
161742
|
+
resolve13?.();
|
|
161708
161743
|
});
|
|
161709
161744
|
try {
|
|
161710
161745
|
while (!opts.signal?.aborted) {
|
|
@@ -161712,9 +161747,9 @@ var statusRouter = t3.router({
|
|
|
161712
161747
|
yield queue.shift();
|
|
161713
161748
|
}
|
|
161714
161749
|
await new Promise((r3) => {
|
|
161715
|
-
|
|
161750
|
+
resolve13 = r3;
|
|
161716
161751
|
});
|
|
161717
|
-
|
|
161752
|
+
resolve13 = null;
|
|
161718
161753
|
}
|
|
161719
161754
|
} finally {
|
|
161720
161755
|
unsubscribe();
|
|
@@ -161761,7 +161796,7 @@ var TunnelClient = class _TunnelClient {
|
|
|
161761
161796
|
const nullDevice = process.platform === "win32" ? "NUL" : "/dev/null";
|
|
161762
161797
|
const args = ["tunnel", "--config", nullDevice, "--url", `http://localhost:${options2.port}`];
|
|
161763
161798
|
log44.debug("spawning cloudflared %s", args.join(" "));
|
|
161764
|
-
return new Promise((
|
|
161799
|
+
return new Promise((resolve13, reject) => {
|
|
161765
161800
|
const child = spawn4("cloudflared", args, {
|
|
161766
161801
|
env: { ...process.env, PATH: resolvedPath },
|
|
161767
161802
|
stdio: ["ignore", "pipe", "pipe"]
|
|
@@ -161783,7 +161818,7 @@ var TunnelClient = class _TunnelClient {
|
|
|
161783
161818
|
emit({ kind: "tunnel-url", url: this.tunnelUrl });
|
|
161784
161819
|
if (!settled) {
|
|
161785
161820
|
settled = true;
|
|
161786
|
-
|
|
161821
|
+
resolve13();
|
|
161787
161822
|
}
|
|
161788
161823
|
}
|
|
161789
161824
|
}
|
|
@@ -161815,7 +161850,7 @@ var TunnelClient = class _TunnelClient {
|
|
|
161815
161850
|
new Error(`cloudflared exited with code ${code}: ${stderrChunks.join("").trim()}`)
|
|
161816
161851
|
);
|
|
161817
161852
|
} else {
|
|
161818
|
-
|
|
161853
|
+
resolve13();
|
|
161819
161854
|
}
|
|
161820
161855
|
} else if (wasRunning && code !== 0) {
|
|
161821
161856
|
emit({
|
|
@@ -161828,7 +161863,7 @@ var TunnelClient = class _TunnelClient {
|
|
|
161828
161863
|
if (!settled) {
|
|
161829
161864
|
log44.debug("30s timeout reached, resolving without URL");
|
|
161830
161865
|
settled = true;
|
|
161831
|
-
|
|
161866
|
+
resolve13();
|
|
161832
161867
|
}
|
|
161833
161868
|
}, 3e4);
|
|
161834
161869
|
});
|
|
@@ -162332,7 +162367,7 @@ init_dist38();
|
|
|
162332
162367
|
// src/server/services/diff-service.ts
|
|
162333
162368
|
import { existsSync as existsSync14 } from "node:fs";
|
|
162334
162369
|
import { readFile as readFile6, rm as rm3, stat as stat6 } from "node:fs/promises";
|
|
162335
|
-
import { join as join35, resolve as
|
|
162370
|
+
import { join as join35, resolve as resolve10, sep as sep6 } from "node:path";
|
|
162336
162371
|
var log48 = createLogger("diff-service");
|
|
162337
162372
|
var EMPTY_TREE_ARGS = ["hash-object", "-t", "tree", "/dev/null"];
|
|
162338
162373
|
var DEFAULT_BRANCH_LIMIT = 50;
|
|
@@ -162429,7 +162464,7 @@ function parseFileStatuses(nameStatusOutput) {
|
|
|
162429
162464
|
return fileStatuses;
|
|
162430
162465
|
}
|
|
162431
162466
|
function assertWorktreeRelative(cwd, filePath) {
|
|
162432
|
-
const target =
|
|
162467
|
+
const target = resolve10(join35(cwd, filePath));
|
|
162433
162468
|
if (target !== cwd && !target.startsWith(cwd + sep6)) {
|
|
162434
162469
|
throw new Error("Invalid path");
|
|
162435
162470
|
}
|
|
@@ -162961,7 +162996,7 @@ var diffService = new DiffService();
|
|
|
162961
162996
|
// src/server/services/files-service.ts
|
|
162962
162997
|
import { existsSync as existsSync15 } from "node:fs";
|
|
162963
162998
|
import { cp, mkdir as mkdir5, readdir as readdir4, readFile as readFile7, rename as rename3, rm as rm4, stat as stat7, writeFile as writeFile5 } from "node:fs/promises";
|
|
162964
|
-
import { dirname as dirname10, extname as extname3, join as join36, resolve as
|
|
162999
|
+
import { dirname as dirname10, extname as extname3, join as join36, resolve as resolve11, sep as sep7 } from "node:path";
|
|
162965
163000
|
var MAX_FILE_SIZE2 = 1024 * 1024;
|
|
162966
163001
|
var LANG_MAP2 = {
|
|
162967
163002
|
".js": "javascript",
|
|
@@ -163009,7 +163044,7 @@ var FilesService = class {
|
|
|
163009
163044
|
throw new WorkspaceNotFoundError(workspaceId2);
|
|
163010
163045
|
}
|
|
163011
163046
|
const root = workspace.worktree.path;
|
|
163012
|
-
const target =
|
|
163047
|
+
const target = resolve11(join36(root, relative2));
|
|
163013
163048
|
const insideRoot = target === root || target.startsWith(root + sep7);
|
|
163014
163049
|
if (!insideRoot) {
|
|
163015
163050
|
throw new Error("Invalid path");
|
|
@@ -163463,8 +163498,8 @@ function createIterator(options2) {
|
|
|
163463
163498
|
}
|
|
163464
163499
|
if (error40) throw error40;
|
|
163465
163500
|
if (done) return { value: void 0, done: true };
|
|
163466
|
-
await new Promise((
|
|
163467
|
-
notify2 =
|
|
163501
|
+
await new Promise((resolve13) => {
|
|
163502
|
+
notify2 = resolve13;
|
|
163468
163503
|
});
|
|
163469
163504
|
}
|
|
163470
163505
|
},
|
|
@@ -163497,7 +163532,7 @@ function listFiles2(cwd) {
|
|
|
163497
163532
|
"-g",
|
|
163498
163533
|
"!**/.DS_Store"
|
|
163499
163534
|
];
|
|
163500
|
-
return new Promise((
|
|
163535
|
+
return new Promise((resolve13, reject) => {
|
|
163501
163536
|
execFile11(
|
|
163502
163537
|
rgPath,
|
|
163503
163538
|
args,
|
|
@@ -163508,7 +163543,7 @@ function listFiles2(cwd) {
|
|
|
163508
163543
|
return;
|
|
163509
163544
|
}
|
|
163510
163545
|
const files = stdout.split("\n").filter(Boolean);
|
|
163511
|
-
|
|
163546
|
+
resolve13(files);
|
|
163512
163547
|
}
|
|
163513
163548
|
);
|
|
163514
163549
|
});
|
|
@@ -164356,7 +164391,7 @@ function basicMatch(query) {
|
|
|
164356
164391
|
}
|
|
164357
164392
|
var isNode2 = typeof __require !== "undefined" && typeof window === "undefined";
|
|
164358
164393
|
function asyncMatcher(token, len, iter2, onFinish) {
|
|
164359
|
-
return new Promise((
|
|
164394
|
+
return new Promise((resolve13, reject) => {
|
|
164360
164395
|
const INCREMENT = 1e3;
|
|
164361
164396
|
let i = 0, end = Math.min(INCREMENT, len);
|
|
164362
164397
|
const step = () => {
|
|
@@ -164369,7 +164404,7 @@ function asyncMatcher(token, len, iter2, onFinish) {
|
|
|
164369
164404
|
end = Math.min(end + INCREMENT, len);
|
|
164370
164405
|
isNode2 ? setImmediate(step) : setTimeout(step);
|
|
164371
164406
|
} else {
|
|
164372
|
-
|
|
164407
|
+
resolve13(onFinish());
|
|
164373
164408
|
}
|
|
164374
164409
|
};
|
|
164375
164410
|
step();
|
|
@@ -164637,7 +164672,7 @@ var workspaceRouter = t3.router({
|
|
|
164637
164672
|
}
|
|
164638
164673
|
const signal = opts.signal;
|
|
164639
164674
|
const queue = [];
|
|
164640
|
-
let
|
|
164675
|
+
let resolve13 = null;
|
|
164641
164676
|
let watcherClosed = false;
|
|
164642
164677
|
const unsubscribe = editorService.subscribeToFileChanges(opts.input.workspaceId, (path) => {
|
|
164643
164678
|
if (path === null) {
|
|
@@ -164645,9 +164680,9 @@ var workspaceRouter = t3.router({
|
|
|
164645
164680
|
} else {
|
|
164646
164681
|
queue.push({ path });
|
|
164647
164682
|
}
|
|
164648
|
-
|
|
164683
|
+
resolve13?.();
|
|
164649
164684
|
});
|
|
164650
|
-
const onAbort = () =>
|
|
164685
|
+
const onAbort = () => resolve13?.();
|
|
164651
164686
|
signal.addEventListener("abort", onAbort);
|
|
164652
164687
|
try {
|
|
164653
164688
|
while (!signal.aborted && !watcherClosed) {
|
|
@@ -164656,10 +164691,10 @@ var workspaceRouter = t3.router({
|
|
|
164656
164691
|
}
|
|
164657
164692
|
if (signal.aborted || watcherClosed) break;
|
|
164658
164693
|
await new Promise((r3) => {
|
|
164659
|
-
|
|
164694
|
+
resolve13 = r3;
|
|
164660
164695
|
if (signal.aborted || watcherClosed) r3();
|
|
164661
164696
|
});
|
|
164662
|
-
|
|
164697
|
+
resolve13 = null;
|
|
164663
164698
|
}
|
|
164664
164699
|
} finally {
|
|
164665
164700
|
signal.removeEventListener("abort", onAbort);
|
|
@@ -165167,9 +165202,9 @@ function createInbox(ws) {
|
|
|
165167
165202
|
if (handler) {
|
|
165168
165203
|
handler(message);
|
|
165169
165204
|
} else if (waiter) {
|
|
165170
|
-
const
|
|
165205
|
+
const resolve13 = waiter;
|
|
165171
165206
|
waiter = null;
|
|
165172
|
-
|
|
165207
|
+
resolve13(message);
|
|
165173
165208
|
} else {
|
|
165174
165209
|
queue.push(message);
|
|
165175
165210
|
}
|
|
@@ -165187,8 +165222,8 @@ function createInbox(ws) {
|
|
|
165187
165222
|
const queued = queue.shift();
|
|
165188
165223
|
if (queued !== void 0) return Promise.resolve(queued);
|
|
165189
165224
|
if (closed) return Promise.resolve(null);
|
|
165190
|
-
return new Promise((
|
|
165191
|
-
waiter =
|
|
165225
|
+
return new Promise((resolve13) => {
|
|
165226
|
+
waiter = resolve13;
|
|
165192
165227
|
});
|
|
165193
165228
|
},
|
|
165194
165229
|
listen(next) {
|
|
@@ -165511,7 +165546,7 @@ var CdpUnreachableError = class extends Error {
|
|
|
165511
165546
|
async function captureSnapshot(bandTabId) {
|
|
165512
165547
|
const cdpTargetId = await ensureCdpTargetId(bandTabId);
|
|
165513
165548
|
const wsUrl = `ws://${DESKTOP_CDP_HOST}:${DESKTOP_CDP_PORT}/devtools/page/${encodeURIComponent(cdpTargetId)}`;
|
|
165514
|
-
return await new Promise((
|
|
165549
|
+
return await new Promise((resolve13, reject) => {
|
|
165515
165550
|
const ws = new wrapper_default(wsUrl);
|
|
165516
165551
|
let nextId2 = 1;
|
|
165517
165552
|
let settled = false;
|
|
@@ -165523,7 +165558,7 @@ async function captureSnapshot(bandTabId) {
|
|
|
165523
165558
|
} catch {
|
|
165524
165559
|
}
|
|
165525
165560
|
if (err) reject(err);
|
|
165526
|
-
else if (data2)
|
|
165561
|
+
else if (data2) resolve13(data2);
|
|
165527
165562
|
else reject(new Error("captureSnapshot: no data and no error"));
|
|
165528
165563
|
};
|
|
165529
165564
|
const timeout = setTimeout(() => {
|
|
@@ -165786,14 +165821,14 @@ function createTerminalBackend(serverRoot, bandHome2) {
|
|
|
165786
165821
|
async function listenWithFallback(server, startPort, attempts = 20) {
|
|
165787
165822
|
for (let port = startPort; port < startPort + attempts; port++) {
|
|
165788
165823
|
try {
|
|
165789
|
-
await new Promise((
|
|
165824
|
+
await new Promise((resolve13, reject) => {
|
|
165790
165825
|
const onError = (err) => {
|
|
165791
165826
|
server.removeListener("listening", onListening);
|
|
165792
165827
|
reject(err);
|
|
165793
165828
|
};
|
|
165794
165829
|
const onListening = () => {
|
|
165795
165830
|
server.removeListener("error", onError);
|
|
165796
|
-
|
|
165831
|
+
resolve13();
|
|
165797
165832
|
};
|
|
165798
165833
|
server.once("error", onError);
|
|
165799
165834
|
server.once("listening", onListening);
|
|
@@ -165842,7 +165877,7 @@ async function findBandBinary() {
|
|
|
165842
165877
|
return findCliBinary();
|
|
165843
165878
|
}
|
|
165844
165879
|
async function runBandSkillsInstall(bandPath, home) {
|
|
165845
|
-
return new Promise((
|
|
165880
|
+
return new Promise((resolve13, reject) => {
|
|
165846
165881
|
execFile12(
|
|
165847
165882
|
bandPath,
|
|
165848
165883
|
["--output", "json", "skills", "install", "--home", home],
|
|
@@ -165853,7 +165888,7 @@ async function runBandSkillsInstall(bandPath, home) {
|
|
|
165853
165888
|
reject(new Error(detail ? `${err.message}: ${detail}` : err.message));
|
|
165854
165889
|
return;
|
|
165855
165890
|
}
|
|
165856
|
-
|
|
165891
|
+
resolve13(stdout.toString());
|
|
165857
165892
|
}
|
|
165858
165893
|
);
|
|
165859
165894
|
});
|
|
@@ -166214,7 +166249,7 @@ function serveWorkspaceFile(res, workspaceId2, rawPath) {
|
|
|
166214
166249
|
return;
|
|
166215
166250
|
}
|
|
166216
166251
|
const root = workspace.worktree.path;
|
|
166217
|
-
const target =
|
|
166252
|
+
const target = resolve12(join39(root, rawPath));
|
|
166218
166253
|
if (!target.startsWith(root + sep8) && target !== root) {
|
|
166219
166254
|
res.writeHead(400);
|
|
166220
166255
|
res.end("Bad request");
|
|
@@ -166250,7 +166285,7 @@ async function nodeRequestToWeb(req) {
|
|
|
166250
166285
|
let body;
|
|
166251
166286
|
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
166252
166287
|
const MAX_REQUEST_BODY_BYTES = 100 * 1024 * 1024;
|
|
166253
|
-
body = await new Promise((
|
|
166288
|
+
body = await new Promise((resolve13, reject) => {
|
|
166254
166289
|
const chunks = [];
|
|
166255
166290
|
let bytesSoFar = 0;
|
|
166256
166291
|
req.on("data", (chunk) => {
|
|
@@ -166262,7 +166297,7 @@ async function nodeRequestToWeb(req) {
|
|
|
166262
166297
|
}
|
|
166263
166298
|
chunks.push(chunk);
|
|
166264
166299
|
});
|
|
166265
|
-
req.on("end", () =>
|
|
166300
|
+
req.on("end", () => resolve13(Buffer.concat(chunks)));
|
|
166266
166301
|
req.on("error", reject);
|
|
166267
166302
|
});
|
|
166268
166303
|
}
|
|
@@ -166296,10 +166331,10 @@ function pipeWebResponseToNodeRes(response, res) {
|
|
|
166296
166331
|
break;
|
|
166297
166332
|
}
|
|
166298
166333
|
if (!res.write(value)) {
|
|
166299
|
-
await new Promise((
|
|
166334
|
+
await new Promise((resolve13, reject) => {
|
|
166300
166335
|
const onDrain = () => {
|
|
166301
166336
|
res.removeListener("error", onError);
|
|
166302
|
-
|
|
166337
|
+
resolve13();
|
|
166303
166338
|
};
|
|
166304
166339
|
const onError = (err) => {
|
|
166305
166340
|
res.removeListener("drain", onDrain);
|
|
@@ -166649,8 +166684,8 @@ async function main() {
|
|
|
166649
166684
|
});
|
|
166650
166685
|
});
|
|
166651
166686
|
let phaseBStarted;
|
|
166652
|
-
const phaseBSettlePromise = new Promise((
|
|
166653
|
-
phaseBStarted =
|
|
166687
|
+
const phaseBSettlePromise = new Promise((resolve13) => {
|
|
166688
|
+
phaseBStarted = resolve13;
|
|
166654
166689
|
});
|
|
166655
166690
|
let boundPort;
|
|
166656
166691
|
try {
|
|
@@ -166723,7 +166758,7 @@ Failed to bind any port in ${initialPort}..${initialPort + 19}:
|
|
|
166723
166758
|
killAllServers();
|
|
166724
166759
|
await Promise.race([
|
|
166725
166760
|
phaseBSettlePromise,
|
|
166726
|
-
new Promise((
|
|
166761
|
+
new Promise((resolve13) => setTimeout(resolve13, 5e3).unref())
|
|
166727
166762
|
]);
|
|
166728
166763
|
await tunnelService.stop().catch(() => {
|
|
166729
166764
|
});
|