@symerian/symi 3.4.1 → 3.4.2
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/{agent-BgGJEKk4.js → agent-BcHmIY_n.js} +17 -17
- package/dist/{agent-scope-DIjW66iO.js → agent-scope-CKTVXF_1.js} +18 -18
- package/dist/{agents.config-CuasVG0i.js → agents.config-D6lBCMyT.js} +1 -1
- package/dist/{audit-BRI7EaSZ.js → audit-CMPCYnHv.js} +20 -20
- package/dist/{auth-choice-Ar8WHnyN.js → auth-choice-s1SGAS0u.js} +8 -8
- package/dist/{auth-profiles-BFSVvFKy.js → auth-profiles-BDvJK1Bg.js} +9 -9
- package/dist/{auth-token-C8wKZLJM.js → auth-token-BKp_ClDP.js} +1 -1
- package/dist/{browser-cli-BdYqssco.js → browser-cli-DW3CxkSc.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +4 -4
- package/dist/{call-CbF18cyd.js → call-BjHvYJx2.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-D2lzRM-e.js → channel-options-77nGDc70.js} +1 -1
- package/dist/{channels-cli-DFN6N0Vp.js → channels-cli-C048Z7h-.js} +54 -54
- package/dist/{chrome-D5UEEo4y.js → chrome-BQoO4LXq.js} +2 -2
- package/dist/{chrome-CbVmSQ7D.js → chrome-C0vnHDyY.js} +7 -7
- package/dist/{chrome-BWQSyLHT.js → chrome-droANDig.js} +7 -7
- package/dist/{cli-BI2hMJ3x.js → cli-CXAyZ9dx.js} +42 -42
- package/dist/{client-ZZqt0H0-.js → client-Bs2zB0rY.js} +1 -1
- package/dist/{command-registry-CwnRHggJ.js → command-registry-B9TplwzB.js} +4 -4
- package/dist/{commands-registry-BNCcZy2y.js → commands-registry-CLePPNDW.js} +1 -1
- package/dist/{completion-cli-DwN2HXNn.js → completion-cli-Dv8CNTMW.js} +2 -2
- package/dist/{completion-cli-Cyueakwc.js → completion-cli-ecfjoaIU.js} +12 -12
- package/dist/{config-MU0QT0xu.js → config-BEaq2Sb6.js} +2 -2
- package/dist/{config-cli-C2Nwn4ID.js → config-cli-CAwWFZwh.js} +4 -4
- package/dist/{config-guard-VJr2yVm_.js → config-guard-29sjAeg8.js} +6 -6
- package/dist/{config-validation-BkJh21Ko.js → config-validation-Bp2AdKjN.js} +1 -1
- package/dist/{configure-2zKlA3cu.js → configure-DvVtZB1V.js} +14 -14
- package/dist/{consolidate-DhJ5sq5p.js → consolidate-DeA11kIO.js} +6 -6
- package/dist/{control-service-D1aZqS0Q.js → control-service-DhlgNQGb.js} +4 -4
- package/dist/{control-ui-assets-DUhvOLUL.js → control-ui-assets-D22DSxhv.js} +1 -1
- package/dist/{cron-cli-Ch8MwxYs.js → cron-cli-Cr8hrEDQ.js} +7 -7
- package/dist/{daemon-cli-DbwmIQAj.js → daemon-cli-OZuuMobs.js} +11 -11
- package/dist/{daemon-runtime-DDwhgI7i.js → daemon-runtime-Dr_xKl0r.js} +10 -10
- package/dist/{deliver-VAsFQe0w.js → deliver-BwcK0QD6.js} +4 -4
- package/dist/{deliver-BX3IOm7k.js → deliver-ccf_boim.js} +2 -2
- package/dist/{deliver-BBoTRer2.js → deliver-vzAN9mRl.js} +4 -4
- package/dist/{deps-BCywDAi0.js → deps-B6QYsl_-.js} +1 -1
- package/dist/{devices-cli-ZiU2HGbP.js → devices-cli-DN3SH89Z.js} +6 -6
- package/dist/{diagnostics-DxdqTfpW.js → diagnostics-nLP2i_BY.js} +5 -5
- package/dist/{directory-cli-DJnKldBM.js → directory-cli-B72WzWuP.js} +3 -3
- package/dist/{dm-policy-shared-BzGFEhLb.js → dm-policy-shared-DiZ3lMtl.js} +1 -1
- package/dist/{dns-cli-LhrwMgGE.js → dns-cli-DPO4AuUq.js} +3 -3
- package/dist/{docs-cli-DjQ3SvBq.js → docs-cli-C2BEC5yU.js} +1 -1
- package/dist/{doctor-completion-DLMAxB2b.js → doctor-completion-Cvu8koMQ.js} +2 -2
- package/dist/{doctor-completion-B9khF9iy.js → doctor-completion-DwrIExJJ.js} +1 -1
- package/dist/{doctor-config-flow-j1iK-0XV.js → doctor-config-flow-Cu1ZuFHd.js} +9 -9
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-DqWFmApk.js → exec-approvals-cli-BN5OFwrg.js} +13 -13
- package/dist/extensionAPI.js +4 -4
- package/dist/{fs-safe-B6nMaZqV.js → fs-safe-DjAKGGJ8.js} +6 -6
- package/dist/{gateway-cli-05LQa0LN.js → gateway-cli-C_wDspkm.js} +120 -120
- package/dist/{gateway-cli-CUiAKfCT.js → gateway-cli-uquFQTQW.js} +1 -1
- package/dist/{gateway-rpc-RZAJMB1i.js → gateway-rpc-fQLZhzRK.js} +1 -1
- package/dist/{health-DnOYGIFp.js → health-DUulgHFK.js} +4 -4
- package/dist/{hooks-cli-BERKc4aw.js → hooks-cli-6UBBpeAz.js} +56 -56
- package/dist/{image-ops-C-gIIp7Q.js → image-ops-c7_of0HT.js} +10 -10
- package/dist/index.js +49 -49
- package/dist/{inspect-BDzd6yBs.js → inspect-op0Ov-v4.js} +4 -4
- package/dist/{install-safe-path-CQXx3s9R.js → install-safe-path-B73BkVO3.js} +11 -11
- package/dist/{installs-DhSLZRT7.js → installs-BzgwvqqQ.js} +10 -10
- package/dist/{internal-CHnZdvRy.js → internal-C3o_xyzP.js} +9 -9
- package/dist/{lifecycle-core-B9_prcP5.js → lifecycle-core-BmGPBj_P.js} +5 -5
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{local-roots-BnDnugq3.js → local-roots-CUKhHNCV.js} +1 -1
- package/dist/{logs-cli-BuaYoENt.js → logs-cli-BXBN6_Kf.js} +7 -7
- package/dist/{manager-BQJivzx9.js → manager-C_5p8DxF.js} +14 -14
- package/dist/{manager-GRHfrG3p.js → manager-DOfc0hW0.js} +1 -1
- package/dist/{manager-1b5V7lDX.js → manager-WHZtXzz0.js} +1 -1
- package/dist/{memory-ZiPonhHz.js → memory-BZPO-RoX.js} +5 -5
- package/dist/{memory-cli-B5TU8zxX.js → memory-cli-4vj-LpgO.js} +12 -12
- package/dist/{model-BRcKPW49.js → model-CbRy_3xW.js} +1 -1
- package/dist/{model-catalog-De1c8o1y.js → model-catalog-BrW9BL1p.js} +4 -4
- package/dist/{model-picker-CjVFmtQf.js → model-picker-UrQQVAuN.js} +3 -3
- package/dist/{models-cli-BzP7r0Pr.js → models-cli-BRnmApgY.js} +52 -52
- package/dist/{models-config-C-VjjDXg.js → models-config-Dh1tABIl.js} +7 -7
- package/dist/{node-cli-dAjmpFFQ.js → node-cli-DXCDRV3y.js} +27 -27
- package/dist/{node-service-DLCN3Pek.js → node-service-n6G8Ybbk.js} +1 -1
- package/dist/{nodes-cli-Bavn0Wq1.js → nodes-cli-Fyv-oG6A.js} +10 -10
- package/dist/{nodes-screen-JELuBMBi.js → nodes-screen-CT94yu_w.js} +4 -4
- package/dist/{npm-registry-spec-BXw_6vF6.js → npm-registry-spec-B8X06AqB.js} +9 -9
- package/dist/{onboard-DbjF9LIj.js → onboard-CEyd79t_.js} +13 -13
- package/dist/{onboard-Yx5pWXot.js → onboard-CLSFAKKt.js} +1 -1
- package/dist/{onboard-channels-D1ThqeIv.js → onboard-channels-DqhDDHZ3.js} +4 -4
- package/dist/{onboard-custom-Dmv0zr-6.js → onboard-custom-BRFhBogJ.js} +3 -3
- package/dist/{onboard-helpers-DpIB1xVU.js → onboard-helpers-wgkj6qF2.js} +8 -8
- package/dist/{onboard-hooks-DDANBk-9.js → onboard-hooks-CknstfLG.js} +1 -1
- package/dist/{onboard-remote-MlK-zjua.js → onboard-remote-B5rlIYUq.js} +1 -1
- package/dist/{onboard-skills-BFebcdsU.js → onboard-skills-_6kHqhHz.js} +4 -4
- package/dist/{onboarding-BIOnPknC.js → onboarding-CJuG6AyD.js} +1 -1
- package/dist/{onboarding-B4y_mt01.js → onboarding-CREA0oQK.js} +12 -12
- package/dist/{onboarding.finalize-DvuthtW0.js → onboarding.finalize-7iPylQyi.js} +4 -4
- package/dist/{onboarding.finalize-CdYyVsOB.js → onboarding.finalize-CkgL8Zde.js} +31 -31
- package/dist/{onboarding.gateway-config-DC9fM10t.js → onboarding.gateway-config-DtNG0As8.js} +8 -8
- package/dist/{openai-model-default-DYlS_J2T.js → openai-model-default-DeTAMJKz.js} +2 -2
- package/dist/{pairing-cli-D1zyMuRV.js → pairing-cli-BvP6MoPZ.js} +4 -4
- package/dist/{pairing-store-BGf29nPx.js → pairing-store-S9CXOhSG.js} +1 -1
- package/dist/{pairing-token-CURbSHdi.js → pairing-token-DorpwP8O.js} +7 -7
- package/dist/{paths-Dc6A9_vI.js → paths-DaQrPPet.js} +1 -1
- package/dist/{pi-auth-json-SHGGQzOL.js → pi-auth-json-CVwNh4rb.js} +5 -5
- package/dist/{pi-embedded-BvMMjrvj.js → pi-embedded-B7_uthwZ.js} +10 -10
- package/dist/{pi-embedded-helpers-D4cxQiPr.js → pi-embedded-helpers-DGW2untm.js} +6 -6
- package/dist/{pi-tools.policy-NmG0EGEY.js → pi-tools.policy-BcTgKDG6.js} +3 -3
- package/dist/{plugin-auto-enable-D2TNEv3x.js → plugin-auto-enable-BDPdHiLS.js} +1 -1
- package/dist/{plugin-registry-B0d7w7Tq.js → plugin-registry-bskbnEuW.js} +3 -3
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/{plugins-cli-DNMBwSsv.js → plugins-cli-LQUO7D2v.js} +51 -51
- package/dist/{ports-DRHSHvqY.js → ports-ChuJYhEL.js} +1 -1
- package/dist/{ports-DqxP-bXz.js → ports-EAVAOFyK.js} +2 -2
- package/dist/{program-DKmohZYs.js → program-BgrmtnFn.js} +2 -2
- package/dist/{program-context-BHCqXp7K.js → program-context-C_uJXnZV.js} +38 -38
- package/dist/{prompt-select-styled-DIpkZ3Py.js → prompt-select-styled-B3nTSykf.js} +36 -35
- package/dist/{prompt-select-styled-CJ7vyifz.js → prompt-select-styled-CuGBQ9LO.js} +2 -1
- package/dist/{provider-auth-helpers-rT0mj3Rg.js → provider-auth-helpers-IsZNkaS0.js} +5 -5
- package/dist/{push-apns-KHQGzTcZ.js → push-apns-C7t2qAZ6.js} +4 -4
- package/dist/{pw-ai-HU-K9Kp6.js → pw-ai-Bc5uzn_J.js} +1 -1
- package/dist/{pw-ai-CNOE7SUx.js → pw-ai-Tm3pd-HP.js} +1 -1
- package/dist/{pw-ai-CyCnG_Kj.js → pw-ai-YJhl5L-z.js} +7 -7
- package/dist/{qmd-manager-CAQYVZT8.js → qmd-manager-CrRvB46v.js} +19 -19
- package/dist/{qr-cli-Cc3gulVb.js → qr-cli-D1U-qIkG.js} +3 -3
- package/dist/{register.agent-D3QRjMQA.js → register.agent-BblNQlzT.js} +64 -64
- package/dist/{register.configure-BlCCtcgW.js → register.configure-BJ7xtOUZ.js} +67 -67
- package/dist/{register.maintenance-C-U8Vjdk.js → register.maintenance-DLJpeuc4.js} +64 -64
- package/dist/{register.maintenance-BH0tQsKC.js → register.maintenance-w7sKxODf.js} +5 -5
- package/dist/{register.message-BJEu7jXo.js → register.message-CXEwBJ1O.js} +44 -44
- package/dist/{register.onboard-B_WCIG9n.js → register.onboard-B520Ixsd.js} +22 -22
- package/dist/{register.onboard-CcvZY9rS.js → register.onboard-DJmVC_6h.js} +2 -2
- package/dist/{register.setup-CXojM7PS.js → register.setup-BTse4F3a.js} +25 -25
- package/dist/{register.setup-CLFM22gp.js → register.setup-Br-aZ0qD.js} +2 -2
- package/dist/{register.status-health-sessions-DAraoWwd.js → register.status-health-sessions-Dbizirr2.js} +38 -38
- package/dist/{register.subclis-4IO5JLGL.js → register.subclis-CSJZQox4.js} +3 -3
- package/dist/{replies-t5bPemnD.js → replies-CbipVshj.js} +1 -1
- package/dist/{reply-prefix-BOdARKaY.js → reply-prefix-DZQBodKF.js} +1 -1
- package/dist/{resolve-route-CRWE36h5.js → resolve-route-BbUl3Hi7.js} +1 -1
- package/dist/{routes-CTOYLhQ1.js → routes-DiqMB1cp.js} +10 -10
- package/dist/{rpc-BLUOZg0H.js → rpc-BcPBUUXl.js} +1 -1
- package/dist/{run-main-dgWHEHSR.js → run-main-DISYU1dh.js} +3 -3
- package/dist/{sandbox-CpZmnHRC.js → sandbox-DPn-s_K5.js} +18 -18
- package/dist/{sandbox-cli-DtbM64tR.js → sandbox-cli-Bl5CMRjH.js} +13 -13
- package/dist/{security-cli-CnNnxSRu.js → security-cli-DuxEuSGr.js} +28 -28
- package/dist/{send-zbkImdk9.js → send-CYJucYob.js} +7 -7
- package/dist/{server-context-Dytgl6ZD.js → server-context-BUbuOgNz.js} +5 -5
- package/dist/{server-node-events-CY5_aNdi.js → server-node-events-7ToqdaU5.js} +45 -45
- package/dist/{service-AP9pR9R5.js → service-9ItKCWWS.js} +15 -15
- package/dist/{session-dirs-CFEdAT4Z.js → session-dirs-DONOhYc3.js} +16 -16
- package/dist/{session-utils-NOQiGgMD.js → session-utils-CqSXwGYa.js} +12 -12
- package/dist/{sessions-B7Of0Rqm.js → sessions-DorP6zY8.js} +11 -11
- package/dist/{shared-BmS-LOw8.js → shared-Z3KjnA8n.js} +3 -3
- package/dist/{shared-DmYHvtn2.js → shared-ot5_jkpP.js} +1 -1
- package/dist/{skill-commands-5QB5E8bv.js → skill-commands-RbglvrSW.js} +4 -4
- package/dist/{skill-scanner-YF2jR4RY.js → skill-scanner-CZK0TG9g.js} +5 -5
- package/dist/{skills-Bmjf5nFv.js → skills-DS1Vdylm.js} +4 -4
- package/dist/{skills-cli-CGPerRcN.js → skills-cli-BmIb-9--.js} +7 -7
- package/dist/{skills-install-DLUMpiCC.js → skills-install-DcX1Txvp.js} +3 -3
- package/dist/{skills-remote-CqwR3Zvp.js → skills-remote-BDSyRdyX.js} +3 -3
- package/dist/{skills-status-BNDqwHkP.js → skills-status-F7nlolZZ.js} +1 -1
- package/dist/{sqlite-DBEvS-Ne.js → sqlite-BUXBg2yu.js} +5 -5
- package/dist/{status-C6HwMPLx.js → status-CR4VgVZ0.js} +3 -3
- package/dist/{status-CJ4x2gHu.js → status-Hf__QNbH.js} +23 -23
- package/dist/{status.update-iWEAq6bt.js → status.update-DOj5ifHZ.js} +3 -3
- package/dist/{symi-root-DueRHNOE.js → symi-root-0MUhiNlM.js} +2 -2
- package/dist/{synthesis-Q30uczDF.js → synthesis-B4G0BnU5.js} +4 -4
- package/dist/{synthesis-DcGTICel.js → synthesis-C-IePZG6.js} +4 -4
- package/dist/{synthesis-DvSl5w4K.js → synthesis-CK0K7wFk.js} +42 -42
- package/dist/{system-cli-DKMfh71A.js → system-cli-BKp2K0sb.js} +7 -7
- package/dist/{systemd-9LEEqibe.js → systemd-8KKQdTO_.js} +5 -5
- package/dist/{systemd-hints-RoqMZFFM.js → systemd-hints-BefHB3bX.js} +6 -6
- package/dist/{systemd-linger-CWJhsBBY.js → systemd-linger-C0-G8yq4.js} +1 -1
- package/dist/{tui-DeVQrlt9.js → tui-BheB3rbE.js} +7 -7
- package/dist/{tui-cli-3EAQXwu7.js → tui-cli-BDcU-VgA.js} +19 -19
- package/dist/{unified-runner-CSn91cbr.js → unified-runner-BSdnT6eM.js} +10 -10
- package/dist/{unified-runner-CjFXehHb.js → unified-runner-D6p4N2vu.js} +99 -99
- package/dist/{update-CE8nDV7s.js → update-Djvyvehx.js} +3 -3
- package/dist/{update-check-CZxZhEXr.js → update-check-BdSIMYWq.js} +5 -5
- package/dist/{update-cli-BN4_mr6c.js → update-cli-BmQuYKTw.js} +5 -5
- package/dist/{update-cli-CUGTzKWo.js → update-cli-CwznFR5g.js} +74 -74
- package/dist/{webhooks-cli-CoIL1D4T.js → webhooks-cli-D_wAaLOU.js} +4 -4
- package/dist/{with-timeout-COajnkmj.js → with-timeout-CAUWEPmp.js} +1 -1
- package/dist/{workspace-dirs-D5OnUmvw.js → workspace-dirs-QmSWJptJ.js} +1 -1
- package/dist/{wsl-ZWGwnnKI.js → wsl-DO9usEVV.js} +2 -2
- package/package.json +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { D as shouldLogVerbose, w as logVerbose } from "./registry-DKJLAPDB.js";
|
|
3
3
|
import { h as resolveUserPath } from "./utils-BU8jVQFM.js";
|
|
4
|
-
import { i as loadConfig } from "./config-
|
|
5
|
-
import { r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-
|
|
6
|
-
import { _ as mediaKindFromMime, a as hasAlphaChannel, c as detectMime, g as maxBytesForKind, l as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg } from "./image-ops-
|
|
4
|
+
import { i as loadConfig } from "./config-BEaq2Sb6.js";
|
|
5
|
+
import { r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-DjAKGGJ8.js";
|
|
6
|
+
import { _ as mediaKindFromMime, a as hasAlphaChannel, c as detectMime, g as maxBytesForKind, l as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg } from "./image-ops-c7_of0HT.js";
|
|
7
7
|
import { a as resolveSlackAccount, c as resolveSlackBotToken } from "./plugins-DuuHorqi.js";
|
|
8
8
|
import { a as chunkText, c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-DQGU0F8t.js";
|
|
9
9
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-GTLvbzuR.js";
|
|
10
10
|
import { t as fetchWithSsrFGuard } from "./fetch-guard-DG6T0ZdL.js";
|
|
11
|
-
import { n as getDefaultMediaLocalRoots } from "./local-roots-
|
|
11
|
+
import { n as getDefaultMediaLocalRoots } from "./local-roots-CUKhHNCV.js";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
13
|
import path from "node:path";
|
|
14
|
-
import
|
|
14
|
+
import fsPromises from "node:fs/promises";
|
|
15
15
|
import { WebClient } from "@slack/web-api";
|
|
16
16
|
import MarkdownIt from "markdown-it";
|
|
17
17
|
|
|
@@ -380,7 +380,7 @@ async function assertLocalMediaAllowed(mediaPath, localRoots) {
|
|
|
380
380
|
const roots = localRoots ?? getDefaultLocalRoots();
|
|
381
381
|
let resolved;
|
|
382
382
|
try {
|
|
383
|
-
resolved = await
|
|
383
|
+
resolved = await fsPromises.realpath(mediaPath);
|
|
384
384
|
} catch {
|
|
385
385
|
resolved = path.resolve(mediaPath);
|
|
386
386
|
}
|
|
@@ -397,7 +397,7 @@ async function assertLocalMediaAllowed(mediaPath, localRoots) {
|
|
|
397
397
|
for (const root of roots) {
|
|
398
398
|
let resolvedRoot;
|
|
399
399
|
try {
|
|
400
|
-
resolvedRoot = await
|
|
400
|
+
resolvedRoot = await fsPromises.realpath(root);
|
|
401
401
|
} catch {
|
|
402
402
|
resolvedRoot = path.resolve(root);
|
|
403
403
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { u as resolveGatewayPort } from "./paths-BSzKwaxE.js";
|
|
2
|
-
import { i as loadConfig, l as writeConfigFile, r as createConfigIO } from "./config-
|
|
3
|
-
import { A as DEFAULT_SYMI_BROWSER_PROFILE_NAME, D as DEFAULT_BROWSER_EVALUATE_ENABLED, E as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, O as DEFAULT_SYMI_BROWSER_COLOR, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, k as DEFAULT_SYMI_BROWSER_ENABLED, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, v as fetchOk, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
2
|
+
import { i as loadConfig, l as writeConfigFile, r as createConfigIO } from "./config-BEaq2Sb6.js";
|
|
3
|
+
import { A as DEFAULT_SYMI_BROWSER_PROFILE_NAME, D as DEFAULT_BROWSER_EVALUATE_ENABLED, E as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, O as DEFAULT_SYMI_BROWSER_COLOR, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, k as DEFAULT_SYMI_BROWSER_ENABLED, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, v as fetchOk, x as ensureChromeExtensionRelayServer } from "./chrome-BQoO4LXq.js";
|
|
4
4
|
import { r as isLoopbackHost } from "./ws-CahTJvD6.js";
|
|
5
5
|
import { a as resolveGatewayAuth } from "./auth-BbwD4lRX.js";
|
|
6
6
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-Z-WkF18Q.js";
|
|
@@ -152,7 +152,7 @@ function isModuleNotFoundError(err) {
|
|
|
152
152
|
}
|
|
153
153
|
async function loadPwAiModule(mode) {
|
|
154
154
|
try {
|
|
155
|
-
return await import("./pw-ai-
|
|
155
|
+
return await import("./pw-ai-YJhl5L-z.js");
|
|
156
156
|
} catch (err) {
|
|
157
157
|
if (mode === "soft") return null;
|
|
158
158
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -775,11 +775,11 @@ function createProfileContext(opts, profile) {
|
|
|
775
775
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
776
776
|
const profileState = getProfileState();
|
|
777
777
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
778
|
-
await (await import("./pw-ai-
|
|
778
|
+
await (await import("./pw-ai-YJhl5L-z.js")).closePlaywrightBrowserConnection();
|
|
779
779
|
} catch {}
|
|
780
780
|
if (profileState.running) await stopRunningBrowser();
|
|
781
781
|
try {
|
|
782
|
-
await (await import("./pw-ai-
|
|
782
|
+
await (await import("./pw-ai-YJhl5L-z.js")).closePlaywrightBrowserConnection();
|
|
783
783
|
} catch {}
|
|
784
784
|
if (!fs.existsSync(userDataDir)) return {
|
|
785
785
|
moved: false,
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
import { O as resolveOutboundTarget } from "./unified-runner-
|
|
1
|
+
import { O as resolveOutboundTarget } from "./unified-runner-D6p4N2vu.js";
|
|
2
2
|
import "./registry-DKJLAPDB.js";
|
|
3
3
|
import "./paths-BSzKwaxE.js";
|
|
4
4
|
import "./utils-BU8jVQFM.js";
|
|
5
5
|
import { f as defaultRuntime } from "./subsystem-CtH6J8AV.js";
|
|
6
|
-
import "./auth-profiles-
|
|
6
|
+
import "./auth-profiles-BDvJK1Bg.js";
|
|
7
7
|
import { s as normalizeMainKey } from "./session-key-B_ZVH1kE.js";
|
|
8
8
|
import "./exec-DKyLtSjm.js";
|
|
9
|
-
import { d as resolveSessionAgentId } from "./agent-scope-
|
|
9
|
+
import { d as resolveSessionAgentId } from "./agent-scope-CKTVXF_1.js";
|
|
10
10
|
import "./github-copilot-token-BTNK6Tcd.js";
|
|
11
11
|
import "./boolean-Wzu0-e0P.js";
|
|
12
12
|
import "./env-B97Ms861.js";
|
|
13
|
-
import "./pi-embedded-helpers-
|
|
14
|
-
import { i as loadConfig } from "./config-
|
|
13
|
+
import "./pi-embedded-helpers-DGW2untm.js";
|
|
14
|
+
import { i as loadConfig } from "./config-BEaq2Sb6.js";
|
|
15
15
|
import "./manifest-registry-D_LsBSyt.js";
|
|
16
|
-
import "./sandbox-
|
|
17
|
-
import "./chrome-
|
|
16
|
+
import "./sandbox-DPn-s_K5.js";
|
|
17
|
+
import "./chrome-BQoO4LXq.js";
|
|
18
18
|
import "./tailscale-D7dC-5EX.js";
|
|
19
19
|
import "./auth-BbwD4lRX.js";
|
|
20
|
-
import "./server-context-
|
|
20
|
+
import "./server-context-BUbuOgNz.js";
|
|
21
21
|
import "./frontmatter-CHu3sfCM.js";
|
|
22
|
-
import "./skills-
|
|
23
|
-
import "./routes-
|
|
22
|
+
import "./skills-DS1Vdylm.js";
|
|
23
|
+
import "./routes-DiqMB1cp.js";
|
|
24
24
|
import "./redact-CSc_2Nka.js";
|
|
25
25
|
import "./errors-Z-WkF18Q.js";
|
|
26
|
-
import "./fs-safe-
|
|
27
|
-
import "./paths-
|
|
26
|
+
import "./fs-safe-DjAKGGJ8.js";
|
|
27
|
+
import "./paths-DaQrPPet.js";
|
|
28
28
|
import "./ssrf-CC9kEPCT.js";
|
|
29
|
-
import "./image-ops-
|
|
30
|
-
import "./ports-
|
|
29
|
+
import "./image-ops-c7_of0HT.js";
|
|
30
|
+
import "./ports-EAVAOFyK.js";
|
|
31
31
|
import "./trash-BjVrPcAx.js";
|
|
32
|
-
import { d as updateSessionStore } from "./sessions-
|
|
32
|
+
import { d as updateSessionStore } from "./sessions-DorP6zY8.js";
|
|
33
33
|
import "./dock-CnGWTXL4.js";
|
|
34
34
|
import "./message-channel-C_V8IAYx.js";
|
|
35
35
|
import { r as normalizeChannelId } from "./plugins-DuuHorqi.js";
|
|
36
|
-
import "./send-
|
|
36
|
+
import "./send-CYJucYob.js";
|
|
37
37
|
import "./paths-CJcw9nbZ.js";
|
|
38
38
|
import "./thinking-177f26eg.js";
|
|
39
39
|
import "./tokens-BKbemuIk.js";
|
|
40
|
-
import { t as deliverOutboundPayloads } from "./deliver-
|
|
40
|
+
import { t as deliverOutboundPayloads } from "./deliver-ccf_boim.js";
|
|
41
41
|
import "./diagnostic-CwF3MnBL.js";
|
|
42
42
|
import "./diagnostic-session-state-I4x9gPY4.js";
|
|
43
|
-
import "./models-config-
|
|
44
|
-
import "./pi-auth-json-
|
|
43
|
+
import "./models-config-Dh1tABIl.js";
|
|
44
|
+
import "./pi-auth-json-CVwNh4rb.js";
|
|
45
45
|
import "./session-cost-usage-DYcv40ss.js";
|
|
46
|
-
import { C as enqueueSystemEvent, c as resolveGatewaySessionStoreTarget, o as loadSessionEntry, s as pruneLegacyStoreKeys } from "./session-utils-
|
|
47
|
-
import "./with-timeout-
|
|
48
|
-
import "./reply-prefix-
|
|
49
|
-
import "./memory-
|
|
50
|
-
import "./manager-
|
|
51
|
-
import "./sqlite-
|
|
46
|
+
import { C as enqueueSystemEvent, c as resolveGatewaySessionStoreTarget, o as loadSessionEntry, s as pruneLegacyStoreKeys } from "./session-utils-CqSXwGYa.js";
|
|
47
|
+
import "./with-timeout-CAUWEPmp.js";
|
|
48
|
+
import "./reply-prefix-DZQBodKF.js";
|
|
49
|
+
import "./memory-BZPO-RoX.js";
|
|
50
|
+
import "./manager-C_5p8DxF.js";
|
|
51
|
+
import "./sqlite-BUXBg2yu.js";
|
|
52
52
|
import "./chunk-DQGU0F8t.js";
|
|
53
53
|
import "./markdown-tables-GTLvbzuR.js";
|
|
54
54
|
import "./fetch-guard-DG6T0ZdL.js";
|
|
55
|
-
import "./local-roots-
|
|
55
|
+
import "./local-roots-CUKhHNCV.js";
|
|
56
56
|
import "./commands-B3UrgxIz.js";
|
|
57
|
-
import "./commands-registry-
|
|
58
|
-
import "./client-
|
|
59
|
-
import "./call-
|
|
60
|
-
import "./pairing-token-
|
|
57
|
+
import "./commands-registry-CLePPNDW.js";
|
|
58
|
+
import "./client-Bs2zB0rY.js";
|
|
59
|
+
import "./call-BjHvYJx2.js";
|
|
60
|
+
import "./pairing-token-DorpwP8O.js";
|
|
61
61
|
import "./tool-display-Dr6VaTg5.js";
|
|
62
|
-
import "./skills-remote-
|
|
63
|
-
import "./workspace-dirs-
|
|
62
|
+
import "./skills-remote-BDSyRdyX.js";
|
|
63
|
+
import "./workspace-dirs-QmSWJptJ.js";
|
|
64
64
|
import "./pi-model-discovery-DdkUSfiI.js";
|
|
65
|
-
import "./model-catalog-
|
|
66
|
-
import "./skill-commands-
|
|
67
|
-
import "./pairing-store-
|
|
65
|
+
import "./model-catalog-BrW9BL1p.js";
|
|
66
|
+
import "./skill-commands-RbglvrSW.js";
|
|
67
|
+
import "./pairing-store-S9CXOhSG.js";
|
|
68
68
|
import "./exec-approvals-CZOc8M5w.js";
|
|
69
|
-
import "./nodes-screen-
|
|
70
|
-
import "./control-service-
|
|
69
|
+
import "./nodes-screen-CT94yu_w.js";
|
|
70
|
+
import "./control-service-DhlgNQGb.js";
|
|
71
71
|
import "./stagger-BhvnarfO.js";
|
|
72
72
|
import "./channel-selection-BvIcXQLj.js";
|
|
73
73
|
import "./delivery-queue-DDs84baU.js";
|
|
74
74
|
import "./bindings-9LSA3Jr1.js";
|
|
75
|
-
import "./resolve-route-
|
|
75
|
+
import "./resolve-route-BbUl3Hi7.js";
|
|
76
76
|
import "./links-CSaUKNKm.js";
|
|
77
77
|
import "./cli-utils-CX1oQ81G.js";
|
|
78
78
|
import "./help-format-BI_G2p1e.js";
|
|
79
79
|
import "./progress-CyPyGCDn.js";
|
|
80
|
-
import "./memory-cli-
|
|
80
|
+
import "./memory-cli-4vj-LpgO.js";
|
|
81
81
|
import "./logging-B5YNzZB9.js";
|
|
82
|
-
import "./replies-
|
|
83
|
-
import "./pi-tools.policy-
|
|
84
|
-
import "./model-
|
|
85
|
-
import "./deps-
|
|
86
|
-
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-
|
|
87
|
-
import { t as agentCommand } from "./agent-
|
|
82
|
+
import "./replies-CbipVshj.js";
|
|
83
|
+
import "./pi-tools.policy-BcTgKDG6.js";
|
|
84
|
+
import "./model-CbRy_3xW.js";
|
|
85
|
+
import "./deps-B6QYsl_-.js";
|
|
86
|
+
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-C7t2qAZ6.js";
|
|
87
|
+
import { t as agentCommand } from "./agent-BcHmIY_n.js";
|
|
88
88
|
import { t as createOutboundSendDeps } from "./outbound-send-deps-pzO0D6kV.js";
|
|
89
89
|
import { randomUUID } from "node:crypto";
|
|
90
90
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as resolveGatewayLaunchAgentLabel, f as resolveGatewayWindowsTaskName, p as resolveLegacyGatewayLaunchAgentLabels, t as GATEWAY_LAUNCH_AGENT_LABEL, u as resolveGatewayServiceDescription } from "./constants-DsZw7bas.js";
|
|
2
|
-
import { _ as toPosixPath, a as readSystemdServiceRuntime, c as stopSystemdService, f as splitArgsPreservingQuotes, g as formatLine, h as resolveHomeDir, i as readSystemdServiceExecStart, l as uninstallSystemdService, m as resolveGatewayStateDir, n as isSystemdServiceEnabled, p as parseKeyValueOutput, s as restartSystemdService, t as installSystemdService, v as writeFormattedLines, y as execFileUtf8 } from "./systemd-
|
|
2
|
+
import { _ as toPosixPath, a as readSystemdServiceRuntime, c as stopSystemdService, f as splitArgsPreservingQuotes, g as formatLine, h as resolveHomeDir, i as readSystemdServiceExecStart, l as uninstallSystemdService, m as resolveGatewayStateDir, n as isSystemdServiceEnabled, p as parseKeyValueOutput, s as restartSystemdService, t as installSystemdService, v as writeFormattedLines, y as execFileUtf8 } from "./systemd-8KKQdTO_.js";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fsPromises from "node:fs/promises";
|
|
5
5
|
|
|
6
6
|
//#region src/daemon/launchd-plist.ts
|
|
7
7
|
const plistEscape = (value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
|
|
@@ -14,7 +14,7 @@ const renderEnvDict = (env) => {
|
|
|
14
14
|
};
|
|
15
15
|
async function readLaunchAgentProgramArgumentsFromFile(plistPath) {
|
|
16
16
|
try {
|
|
17
|
-
const plist = await
|
|
17
|
+
const plist = await fsPromises.readFile(plistPath, "utf8");
|
|
18
18
|
const programMatch = plist.match(/<key>ProgramArguments<\/key>\s*<array>([\s\S]*?)<\/array>/i);
|
|
19
19
|
if (!programMatch) return null;
|
|
20
20
|
const args = Array.from(programMatch[1].matchAll(/<string>([\s\S]*?)<\/string>/gi)).map((match) => plistUnescape(match[1] ?? "").trim());
|
|
@@ -128,7 +128,7 @@ async function isLaunchAgentListed(args) {
|
|
|
128
128
|
async function launchAgentPlistExists(env) {
|
|
129
129
|
try {
|
|
130
130
|
const plistPath = resolveLaunchAgentPlistPath(env);
|
|
131
|
-
await
|
|
131
|
+
await fsPromises.access(plistPath);
|
|
132
132
|
return true;
|
|
133
133
|
} catch {
|
|
134
134
|
return false;
|
|
@@ -188,7 +188,7 @@ async function uninstallLaunchAgent({ env, stdout }) {
|
|
|
188
188
|
]);
|
|
189
189
|
await execLaunchctl(["unload", plistPath]);
|
|
190
190
|
try {
|
|
191
|
-
await
|
|
191
|
+
await fsPromises.access(plistPath);
|
|
192
192
|
} catch {
|
|
193
193
|
stdout.write(`LaunchAgent not found at ${plistPath}\n`);
|
|
194
194
|
return;
|
|
@@ -197,8 +197,8 @@ async function uninstallLaunchAgent({ env, stdout }) {
|
|
|
197
197
|
const trashDir = path.join(home, ".Trash");
|
|
198
198
|
const dest = path.join(trashDir, `${label}.plist`);
|
|
199
199
|
try {
|
|
200
|
-
await
|
|
201
|
-
await
|
|
200
|
+
await fsPromises.mkdir(trashDir, { recursive: true });
|
|
201
|
+
await fsPromises.rename(plistPath, dest);
|
|
202
202
|
stdout.write(`${formatLine("Moved LaunchAgent to Trash", dest)}\n`);
|
|
203
203
|
} catch {
|
|
204
204
|
stdout.write(`LaunchAgent remains at ${plistPath} (could not move)\n`);
|
|
@@ -221,7 +221,7 @@ async function stopLaunchAgent({ stdout, env }) {
|
|
|
221
221
|
}
|
|
222
222
|
async function installLaunchAgent({ env, stdout, programArguments, workingDirectory, environment, description }) {
|
|
223
223
|
const { logDir, stdoutPath, stderrPath } = resolveGatewayLogPaths(env);
|
|
224
|
-
await
|
|
224
|
+
await fsPromises.mkdir(logDir, { recursive: true });
|
|
225
225
|
const domain = resolveGuiDomain();
|
|
226
226
|
const label = resolveLaunchAgentLabel({ env });
|
|
227
227
|
for (const legacyLabel of resolveLegacyGatewayLaunchAgentLabels(env.SYMI_PROFILE)) {
|
|
@@ -233,11 +233,11 @@ async function installLaunchAgent({ env, stdout, programArguments, workingDirect
|
|
|
233
233
|
]);
|
|
234
234
|
await execLaunchctl(["unload", legacyPlistPath]);
|
|
235
235
|
try {
|
|
236
|
-
await
|
|
236
|
+
await fsPromises.unlink(legacyPlistPath);
|
|
237
237
|
} catch {}
|
|
238
238
|
}
|
|
239
239
|
const plistPath = resolveLaunchAgentPlistPathForLabel(env, label);
|
|
240
|
-
await
|
|
240
|
+
await fsPromises.mkdir(path.dirname(plistPath), { recursive: true });
|
|
241
241
|
const plist = buildLaunchAgentPlist({
|
|
242
242
|
label,
|
|
243
243
|
comment: resolveGatewayServiceDescription({
|
|
@@ -251,7 +251,7 @@ async function installLaunchAgent({ env, stdout, programArguments, workingDirect
|
|
|
251
251
|
stderrPath,
|
|
252
252
|
environment
|
|
253
253
|
});
|
|
254
|
-
await
|
|
254
|
+
await fsPromises.writeFile(plistPath, plist, "utf8");
|
|
255
255
|
await execLaunchctl([
|
|
256
256
|
"bootout",
|
|
257
257
|
domain,
|
|
@@ -408,7 +408,7 @@ function resolveTaskUser(env) {
|
|
|
408
408
|
async function readScheduledTaskCommand(env) {
|
|
409
409
|
const scriptPath = resolveTaskScriptPath(env);
|
|
410
410
|
try {
|
|
411
|
-
const content = await
|
|
411
|
+
const content = await fsPromises.readFile(scriptPath, "utf8");
|
|
412
412
|
let workingDirectory = "";
|
|
413
413
|
let commandLine = "";
|
|
414
414
|
const environment = {};
|
|
@@ -476,7 +476,7 @@ async function assertSchtasksAvailable() {
|
|
|
476
476
|
async function installScheduledTask({ env, stdout, programArguments, workingDirectory, environment, description }) {
|
|
477
477
|
await assertSchtasksAvailable();
|
|
478
478
|
const scriptPath = resolveTaskScriptPath(env);
|
|
479
|
-
await
|
|
479
|
+
await fsPromises.mkdir(path.dirname(scriptPath), { recursive: true });
|
|
480
480
|
const script = buildTaskScript({
|
|
481
481
|
description: resolveGatewayServiceDescription({
|
|
482
482
|
env,
|
|
@@ -487,7 +487,7 @@ async function installScheduledTask({ env, stdout, programArguments, workingDire
|
|
|
487
487
|
workingDirectory,
|
|
488
488
|
environment
|
|
489
489
|
});
|
|
490
|
-
await
|
|
490
|
+
await fsPromises.writeFile(scriptPath, script, "utf8");
|
|
491
491
|
const taskName = resolveTaskName(env);
|
|
492
492
|
const baseArgs = [
|
|
493
493
|
"/Create",
|
|
@@ -539,7 +539,7 @@ async function uninstallScheduledTask({ env, stdout }) {
|
|
|
539
539
|
]);
|
|
540
540
|
const scriptPath = resolveTaskScriptPath(env);
|
|
541
541
|
try {
|
|
542
|
-
await
|
|
542
|
+
await fsPromises.unlink(scriptPath);
|
|
543
543
|
stdout.write(`${formatLine("Removed task script", scriptPath)}\n`);
|
|
544
544
|
} catch {
|
|
545
545
|
stdout.write(`Task script not found at ${scriptPath}\n`);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { f as pathExists } from "./utils-BU8jVQFM.js";
|
|
2
2
|
import { t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
|
|
3
|
-
import { h as trimLogTail } from "./session-utils-
|
|
4
|
-
import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-
|
|
5
|
-
import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-
|
|
3
|
+
import { h as trimLogTail } from "./session-utils-CqSXwGYa.js";
|
|
4
|
+
import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-D22DSxhv.js";
|
|
5
|
+
import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-BdSIMYWq.js";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import os from "node:os";
|
|
8
|
-
import
|
|
8
|
+
import fsPromises from "node:fs/promises";
|
|
9
9
|
|
|
10
10
|
//#region src/infra/package-json.ts
|
|
11
11
|
async function readPackageVersion(root) {
|
|
12
12
|
try {
|
|
13
|
-
const raw = await
|
|
13
|
+
const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
|
|
14
14
|
const parsed = JSON.parse(raw);
|
|
15
15
|
return typeof parsed?.version === "string" ? parsed.version : null;
|
|
16
16
|
} catch {
|
|
@@ -19,7 +19,7 @@ async function readPackageVersion(root) {
|
|
|
19
19
|
}
|
|
20
20
|
async function readPackageName(root) {
|
|
21
21
|
try {
|
|
22
|
-
const raw = await
|
|
22
|
+
const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
|
|
23
23
|
const name = JSON.parse(raw)?.name?.trim();
|
|
24
24
|
return name ? name : null;
|
|
25
25
|
} catch {
|
|
@@ -39,7 +39,7 @@ const NPM_GLOBAL_INSTALL_QUIET_FLAGS = [
|
|
|
39
39
|
];
|
|
40
40
|
async function tryRealpath(targetPath) {
|
|
41
41
|
try {
|
|
42
|
-
return await
|
|
42
|
+
return await fsPromises.realpath(targetPath);
|
|
43
43
|
} catch {
|
|
44
44
|
return path.resolve(targetPath);
|
|
45
45
|
}
|
|
@@ -140,7 +140,7 @@ async function cleanupGlobalRenameDirs(params) {
|
|
|
140
140
|
const prefix = `${GLOBAL_RENAME_PREFIX}${name}-`;
|
|
141
141
|
let entries = [];
|
|
142
142
|
try {
|
|
143
|
-
entries = await
|
|
143
|
+
entries = await fsPromises.readdir(root);
|
|
144
144
|
} catch {
|
|
145
145
|
return { removed };
|
|
146
146
|
}
|
|
@@ -148,8 +148,8 @@ async function cleanupGlobalRenameDirs(params) {
|
|
|
148
148
|
if (!entry.startsWith(prefix)) continue;
|
|
149
149
|
const target = path.join(root, entry);
|
|
150
150
|
try {
|
|
151
|
-
if (!(await
|
|
152
|
-
await
|
|
151
|
+
if (!(await fsPromises.lstat(target)).isDirectory()) continue;
|
|
152
|
+
await fsPromises.rm(target, {
|
|
153
153
|
recursive: true,
|
|
154
154
|
force: true
|
|
155
155
|
});
|
|
@@ -261,7 +261,7 @@ async function findPackageRoot(candidates) {
|
|
|
261
261
|
for (let i = 0; i < 12; i += 1) {
|
|
262
262
|
const pkgPath = path.join(current, "package.json");
|
|
263
263
|
try {
|
|
264
|
-
const raw = await
|
|
264
|
+
const raw = await fsPromises.readFile(pkgPath, "utf-8");
|
|
265
265
|
const name = JSON.parse(raw)?.name?.trim();
|
|
266
266
|
if (name && CORE_PACKAGE_NAMES.has(name)) return current;
|
|
267
267
|
} catch {}
|
|
@@ -543,7 +543,7 @@ async function runGatewayUpdate(opts = {}) {
|
|
|
543
543
|
durationMs: Date.now() - startedAt
|
|
544
544
|
};
|
|
545
545
|
const manager = await detectPackageManager(gitRoot);
|
|
546
|
-
const preflightRoot = await
|
|
546
|
+
const preflightRoot = await fsPromises.mkdtemp(path.join(os.tmpdir(), "symi-update-preflight-"));
|
|
547
547
|
const worktreeDir = path.join(preflightRoot, "worktree");
|
|
548
548
|
const worktreeStep = await runStep(step("preflight worktree", [
|
|
549
549
|
"git",
|
|
@@ -557,7 +557,7 @@ async function runGatewayUpdate(opts = {}) {
|
|
|
557
557
|
], gitRoot));
|
|
558
558
|
steps.push(worktreeStep);
|
|
559
559
|
if (worktreeStep.exitCode !== 0) {
|
|
560
|
-
await
|
|
560
|
+
await fsPromises.rm(preflightRoot, {
|
|
561
561
|
recursive: true,
|
|
562
562
|
force: true
|
|
563
563
|
}).catch(() => {});
|
|
@@ -621,7 +621,7 @@ async function runGatewayUpdate(opts = {}) {
|
|
|
621
621
|
cwd: gitRoot,
|
|
622
622
|
timeoutMs
|
|
623
623
|
}).catch(() => null);
|
|
624
|
-
await
|
|
624
|
+
await fsPromises.rm(preflightRoot, {
|
|
625
625
|
recursive: true,
|
|
626
626
|
force: true
|
|
627
627
|
}).catch(() => {});
|
|
@@ -769,7 +769,7 @@ async function runGatewayUpdate(opts = {}) {
|
|
|
769
769
|
durationMs: Date.now() - startedAt
|
|
770
770
|
};
|
|
771
771
|
const doctorEntry = path.join(gitRoot, "symi.mjs");
|
|
772
|
-
if (!await
|
|
772
|
+
if (!await fsPromises.stat(doctorEntry).then(() => true).catch(() => false)) {
|
|
773
773
|
steps.push({
|
|
774
774
|
name: "symi doctor entry",
|
|
775
775
|
command: `verify ${doctorEntry}`,
|
|
@@ -936,7 +936,7 @@ async function resolveAgentSessionDirs(stateDir) {
|
|
|
936
936
|
const agentsDir = path.join(stateDir, "agents");
|
|
937
937
|
let entries = [];
|
|
938
938
|
try {
|
|
939
|
-
entries = await
|
|
939
|
+
entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
|
|
940
940
|
} catch (err) {
|
|
941
941
|
if (err.code === "ENOENT") return [];
|
|
942
942
|
throw err;
|
|
@@ -2,23 +2,23 @@ import { j as theme } from "./registry-DKJLAPDB.js";
|
|
|
2
2
|
import { g as resolveStateDir } from "./paths-BSzKwaxE.js";
|
|
3
3
|
import { u as isRecord } from "./utils-BU8jVQFM.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
|
|
5
|
-
import { Et as normalizeSecretInput, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, L as normalizeProviderId, R as parseModelRef, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, b as ensureAuthProfileStore, c as resolveApiKeyForProfile, h as listProfilesForProvider, m as dedupeProfileIds, n as resolveAuthProfileOrder, yt as getCustomProviderApiKey } from "./auth-profiles-
|
|
5
|
+
import { Et as normalizeSecretInput, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, L as normalizeProviderId, R as parseModelRef, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, b as ensureAuthProfileStore, c as resolveApiKeyForProfile, h as listProfilesForProvider, m as dedupeProfileIds, n as resolveAuthProfileOrder, yt as getCustomProviderApiKey } from "./auth-profiles-BDvJK1Bg.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
|
|
7
7
|
import { o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, s as normalizeMainKey, v as isCronRunSessionKey, x as parseAgentSessionKey } from "./session-key-B_ZVH1kE.js";
|
|
8
8
|
import { i as logDebug } from "./exec-DKyLtSjm.js";
|
|
9
|
-
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-
|
|
10
|
-
import { i as loadConfig } from "./config-
|
|
11
|
-
import { B as resolveAgentMainSessionKey, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, H as resolveMainSessionKey, K as buildGroupDisplayName, R as resolveFreshSessionTotalTokens, o as loadSessionStore, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
9
|
+
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CKTVXF_1.js";
|
|
10
|
+
import { i as loadConfig } from "./config-BEaq2Sb6.js";
|
|
11
|
+
import { B as resolveAgentMainSessionKey, D as resolveSessionTranscriptCandidates, E as readSessionTitleFieldsFromTranscript, H as resolveMainSessionKey, K as buildGroupDisplayName, R as resolveFreshSessionTotalTokens, o as loadSessionStore, y as normalizeSessionDeliveryFields, z as canonicalizeMainSessionAlias } from "./sessions-DorP6zY8.js";
|
|
12
12
|
import { n as listChannelPlugins } from "./plugins-DuuHorqi.js";
|
|
13
13
|
import { c as resolveStorePath } from "./paths-CJcw9nbZ.js";
|
|
14
|
-
import { t as ensureSymiModelsJson } from "./models-config-
|
|
14
|
+
import { t as ensureSymiModelsJson } from "./models-config-Dh1tABIl.js";
|
|
15
15
|
import { t as bindAbortRelay } from "./fetch-timeout-CgmRK282.js";
|
|
16
16
|
import { n as formatTimeAgo } from "./format-relative-Vm-Tqk0h.js";
|
|
17
17
|
import crypto from "node:crypto";
|
|
18
18
|
import path from "node:path";
|
|
19
19
|
import fs from "node:fs";
|
|
20
20
|
import os from "node:os";
|
|
21
|
-
import
|
|
21
|
+
import fsPromises from "node:fs/promises";
|
|
22
22
|
|
|
23
23
|
//#region src/logging/redact-identifier.ts
|
|
24
24
|
function sha256HexPrefix(value, len = 12) {
|
|
@@ -1428,27 +1428,27 @@ function resolveRestartSentinelPath(env = process.env) {
|
|
|
1428
1428
|
}
|
|
1429
1429
|
async function writeRestartSentinel(payload, env = process.env) {
|
|
1430
1430
|
const filePath = resolveRestartSentinelPath(env);
|
|
1431
|
-
await
|
|
1431
|
+
await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
|
|
1432
1432
|
const data = {
|
|
1433
1433
|
version: 1,
|
|
1434
1434
|
payload
|
|
1435
1435
|
};
|
|
1436
|
-
await
|
|
1436
|
+
await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
|
|
1437
1437
|
return filePath;
|
|
1438
1438
|
}
|
|
1439
1439
|
async function readRestartSentinel(env = process.env) {
|
|
1440
1440
|
const filePath = resolveRestartSentinelPath(env);
|
|
1441
1441
|
try {
|
|
1442
|
-
const raw = await
|
|
1442
|
+
const raw = await fsPromises.readFile(filePath, "utf-8");
|
|
1443
1443
|
let parsed;
|
|
1444
1444
|
try {
|
|
1445
1445
|
parsed = JSON.parse(raw);
|
|
1446
1446
|
} catch {
|
|
1447
|
-
await
|
|
1447
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
1448
1448
|
return null;
|
|
1449
1449
|
}
|
|
1450
1450
|
if (!parsed || parsed.version !== 1 || !parsed.payload) {
|
|
1451
|
-
await
|
|
1451
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
1452
1452
|
return null;
|
|
1453
1453
|
}
|
|
1454
1454
|
return parsed;
|
|
@@ -1460,7 +1460,7 @@ async function consumeRestartSentinel(env = process.env) {
|
|
|
1460
1460
|
const filePath = resolveRestartSentinelPath(env);
|
|
1461
1461
|
const parsed = await readRestartSentinel(env);
|
|
1462
1462
|
if (!parsed) return null;
|
|
1463
|
-
await
|
|
1463
|
+
await fsPromises.unlink(filePath).catch(() => {});
|
|
1464
1464
|
return parsed;
|
|
1465
1465
|
}
|
|
1466
1466
|
function formatRestartSentinelMessage(payload) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { y as resolveRequiredHomeDir } from "./paths-BSzKwaxE.js";
|
|
2
2
|
import { d as normalizeE164 } from "./utils-BU8jVQFM.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-CtH6J8AV.js";
|
|
4
|
-
import { D as resolveProcessScopedMap, O as isPidAlive } from "./auth-profiles-
|
|
4
|
+
import { D as resolveProcessScopedMap, O as isPidAlive } from "./auth-profiles-BDvJK1Bg.js";
|
|
5
5
|
import { h as normalizeOptionalAccountId, o as normalizeAgentId, r as buildAgentMainSessionKey, s as normalizeMainKey, t as DEFAULT_AGENT_ID } from "./session-key-B_ZVH1kE.js";
|
|
6
|
-
import { f as parseDurationMs, i as loadConfig, p as parseByteSize } from "./config-
|
|
6
|
+
import { f as parseDurationMs, i as loadConfig, p as parseByteSize } from "./config-BEaq2Sb6.js";
|
|
7
7
|
import { s as normalizeHyphenSlug, t as getChannelDock } from "./dock-CnGWTXL4.js";
|
|
8
8
|
import { c as listDeliverableMessageChannels, l as normalizeMessageChannel } from "./message-channel-C_V8IAYx.js";
|
|
9
9
|
import { t as normalizeChatType } from "./chat-type-B7XD_ESN.js";
|
|
@@ -17,7 +17,7 @@ import crypto from "node:crypto";
|
|
|
17
17
|
import path from "node:path";
|
|
18
18
|
import fs from "node:fs";
|
|
19
19
|
import os from "node:os";
|
|
20
|
-
import
|
|
20
|
+
import fsPromises from "node:fs/promises";
|
|
21
21
|
import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
22
22
|
|
|
23
23
|
//#region src/agents/session-write-lock.ts
|
|
@@ -82,7 +82,7 @@ async function releaseHeldLock(normalizedSessionFile, held, opts = {}) {
|
|
|
82
82
|
await held.handle.close();
|
|
83
83
|
} catch {}
|
|
84
84
|
try {
|
|
85
|
-
await
|
|
85
|
+
await fsPromises.rm(held.lockPath, { force: true });
|
|
86
86
|
} catch {}
|
|
87
87
|
})();
|
|
88
88
|
try {
|
|
@@ -161,7 +161,7 @@ function registerCleanupHandlers() {
|
|
|
161
161
|
}
|
|
162
162
|
async function readLockPayload(lockPath) {
|
|
163
163
|
try {
|
|
164
|
-
const raw = await
|
|
164
|
+
const raw = await fsPromises.readFile(lockPath, "utf8");
|
|
165
165
|
const parsed = JSON.parse(raw);
|
|
166
166
|
const payload = {};
|
|
167
167
|
if (typeof parsed.pid === "number") payload.pid = parsed.pid;
|
|
@@ -198,7 +198,7 @@ async function cleanStaleLockFiles(params) {
|
|
|
198
198
|
const nowMs = params.nowMs ?? Date.now();
|
|
199
199
|
let entries = [];
|
|
200
200
|
try {
|
|
201
|
-
entries = await
|
|
201
|
+
entries = await fsPromises.readdir(sessionsDir, { withFileTypes: true });
|
|
202
202
|
} catch (err) {
|
|
203
203
|
if (err.code === "ENOENT") return {
|
|
204
204
|
locks: [],
|
|
@@ -217,7 +217,7 @@ async function cleanStaleLockFiles(params) {
|
|
|
217
217
|
removed: false
|
|
218
218
|
};
|
|
219
219
|
if (lockInfo.stale && removeStale) {
|
|
220
|
-
await
|
|
220
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
221
221
|
lockInfo.removed = true;
|
|
222
222
|
cleaned.push(lockInfo);
|
|
223
223
|
params.log?.warn?.(`removed stale session lock: ${lockPath} (${lockInfo.staleReasons.join(", ") || "unknown"})`);
|
|
@@ -236,10 +236,10 @@ async function acquireSessionWriteLock(params) {
|
|
|
236
236
|
const maxHoldMs = resolvePositiveMs(params.maxHoldMs, DEFAULT_MAX_HOLD_MS);
|
|
237
237
|
const sessionFile = path.resolve(params.sessionFile);
|
|
238
238
|
const sessionDir = path.dirname(sessionFile);
|
|
239
|
-
await
|
|
239
|
+
await fsPromises.mkdir(sessionDir, { recursive: true });
|
|
240
240
|
let normalizedDir = sessionDir;
|
|
241
241
|
try {
|
|
242
|
-
normalizedDir = await
|
|
242
|
+
normalizedDir = await fsPromises.realpath(sessionDir);
|
|
243
243
|
} catch {}
|
|
244
244
|
const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
|
|
245
245
|
const lockPath = `${normalizedSessionFile}.lock`;
|
|
@@ -256,7 +256,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
256
256
|
while (Date.now() - startedAt < timeoutMs) {
|
|
257
257
|
attempt += 1;
|
|
258
258
|
try {
|
|
259
|
-
const handle = await
|
|
259
|
+
const handle = await fsPromises.open(lockPath, "wx");
|
|
260
260
|
const createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
261
261
|
await handle.writeFile(JSON.stringify({
|
|
262
262
|
pid: process.pid,
|
|
@@ -276,7 +276,7 @@ async function acquireSessionWriteLock(params) {
|
|
|
276
276
|
} catch (err) {
|
|
277
277
|
if (err.code !== "EEXIST") throw err;
|
|
278
278
|
if (inspectLockPayload(await readLockPayload(lockPath), staleMs, Date.now()).stale) {
|
|
279
|
-
await
|
|
279
|
+
await fsPromises.rm(lockPath, { force: true });
|
|
280
280
|
continue;
|
|
281
281
|
}
|
|
282
282
|
const delay = Math.min(1e3, 50 * attempt);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { F as modelKey, Ut as DEFAULT_PROVIDER, W as resolveModelRefFromString, j as buildModelAliasIndex } from "./auth-profiles-
|
|
1
|
+
import { F as modelKey, Ut as DEFAULT_PROVIDER, W as resolveModelRefFromString, j as buildModelAliasIndex } from "./auth-profiles-BDvJK1Bg.js";
|
|
2
2
|
import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
|
|
3
3
|
import { o as normalizeAgentId } from "./session-key-B_ZVH1kE.js";
|
|
4
|
-
import { n as listAgentIds } from "./agent-scope-
|
|
5
|
-
import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-
|
|
4
|
+
import { n as listAgentIds } from "./agent-scope-CKTVXF_1.js";
|
|
5
|
+
import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-BEaq2Sb6.js";
|
|
6
6
|
|
|
7
7
|
//#region src/commands/models/shared.ts
|
|
8
8
|
const ensureFlagCompatibility = (opts) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { f as defaultRuntime } from "./subsystem-CtH6J8AV.js";
|
|
2
2
|
import { t as formatCliCommand } from "./command-format-BvAkTjTI.js";
|
|
3
3
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-DsZw7bas.js";
|
|
4
|
-
import { t as resolveGatewayService } from "./service-
|
|
4
|
+
import { t as resolveGatewayService } from "./service-9ItKCWWS.js";
|
|
5
5
|
|
|
6
6
|
//#region src/cli/gateway-cli/shared.ts
|
|
7
7
|
const toOptionString = (value) => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { c as resolveAgentWorkspaceDir, n as listAgentIds } from "./agent-scope-
|
|
3
|
-
import { n as buildWorkspaceSkillCommandSpecs } from "./skills-
|
|
4
|
-
import { n as listChatCommands } from "./commands-registry-
|
|
5
|
-
import { t as getRemoteSkillEligibility } from "./skills-remote-
|
|
2
|
+
import { c as resolveAgentWorkspaceDir, n as listAgentIds } from "./agent-scope-CKTVXF_1.js";
|
|
3
|
+
import { n as buildWorkspaceSkillCommandSpecs } from "./skills-DS1Vdylm.js";
|
|
4
|
+
import { n as listChatCommands } from "./commands-registry-CLePPNDW.js";
|
|
5
|
+
import { t as getRemoteSkillEligibility } from "./skills-remote-BDSyRdyX.js";
|
|
6
6
|
import fs from "node:fs";
|
|
7
7
|
|
|
8
8
|
//#region src/auto-reply/skill-commands.ts
|