@symerian/symi 3.5.26 → 3.5.27
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-CoHzNs_e.js → agent-DxRVDqSg.js} +18 -18
- package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
- package/dist/{agents.config-DA0ISLi7.js → agents.config-B7sNDvhz.js} +1 -1
- package/dist/{audit-CuwXq_EA.js → audit-C_3fAFeS.js} +20 -20
- package/dist/{auth-choice-DKRHawfp.js → auth-choice-DQplW60s.js} +11 -11
- package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
- package/dist/{auth-token-fgnCQEHT.js → auth-token-Cr28IDKY.js} +3 -3
- package/dist/{browser-cli-BI81RlI8.js → browser-cli-D6xFqw9w.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-xUpyZDH4.js → call-AZ9vNhST.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-vjcKi2yl.js → channel-options-DnWkDAWi.js} +1 -1
- package/dist/{channels-cli-CfBFa-VO.js → channels-cli-CGCyzahW.js} +57 -57
- package/dist/{chrome-38OnGyuN.js → chrome-DJChpTwP.js} +2 -2
- package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
- package/dist/{cli-qf0qK7oi.js → cli-DZAtyHzb.js} +45 -45
- package/dist/{client-DiPa71im.js → client-DH75FlQF.js} +1 -1
- package/dist/{commands-registry-CwXsDVuO.js → commands-registry-Ca5hh7nh.js} +1 -1
- package/dist/{completion-cli-Ddfrnilx.js → completion-cli-Cbf0-8ob.js} +12 -12
- package/dist/{config-BngIfn5l.js → config-B4jkreCN.js} +2 -2
- package/dist/{config-cli-JVGYyfYA.js → config-cli-D4RmoOxe.js} +4 -4
- package/dist/{config-guard-DStz4_V2.js → config-guard-BRm3RiOi.js} +6 -6
- package/dist/{config-validation-Dxj9LRzr.js → config-validation-Cdyg1BZB.js} +1 -1
- package/dist/{configure-Bqz2Hvnf.js → configure-kaf3aurx.js} +14 -14
- package/dist/{consolidate-CO32_TEx.js → consolidate-DymnvvYm.js} +6 -6
- package/dist/{control-service-CUreKVeY.js → control-service-D8kKOts5.js} +4 -4
- package/dist/control-ui/css/style.css +159 -0
- package/dist/{control-ui-assets-B8B9z_Ll.js → control-ui-assets-CJQ97d4u.js} +1 -1
- package/dist/{cost-cli-D-ssjcRF.js → cost-cli-DWiVCOCx.js} +3 -3
- package/dist/{cron-cli-pZ_7Wzhj.js → cron-cli-VH_t2D1o.js} +7 -7
- package/dist/{daemon-cli-BDzcfcu_.js → daemon-cli-3PFXkheJ.js} +11 -11
- package/dist/{daemon-runtime-CKn0wmCk.js → daemon-runtime-DlQla_dA.js} +10 -10
- package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
- package/dist/{deliver-CWMFmMCv.js → deliver-lTZLIQqf.js} +2 -2
- package/dist/{deps-CdibsPMx.js → deps-Bf9dt2UO.js} +1 -1
- package/dist/{devices-cli-BIZbo_Pt.js → devices-cli-Bhi1rWnT.js} +6 -6
- package/dist/{diagnostics-CYkqD5lP.js → diagnostics-DlZODdRf.js} +5 -5
- package/dist/{directory-cli-giqTe8Yg.js → directory-cli-Bm5QYEo-.js} +3 -3
- package/dist/{dm-policy-shared-B61_yf6G.js → dm-policy-shared-CeFt0nch.js} +1 -1
- package/dist/{dns-cli-Dssz4RqF.js → dns-cli-CubLq4j9.js} +3 -3
- package/dist/{docs-cli-Ct1STieY.js → docs-cli-PS8m1er7.js} +1 -1
- package/dist/{doctor-completion-eh7aImCx.js → doctor-completion--j-3qqz6.js} +2 -2
- package/dist/{doctor-config-flow-ljVnQJjo.js → doctor-config-flow-C52W1uUK.js} +9 -9
- package/dist/{exec-approvals-cli-B2UY9dZC.js → exec-approvals-cli-xTOKcyZh.js} +13 -13
- package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
- package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
- package/dist/{gateway-cli-BwPy7u0B.js → gateway-cli-B3FuQctH.js} +98 -98
- package/dist/{gateway-rpc-DmFOiGIJ.js → gateway-rpc-C6lKFbor.js} +1 -1
- package/dist/{glass-ui-ws-CwOiILiY.js → glass-ui-ws-BJcI_IdV.js} +67 -67
- package/dist/{health-Bc1wmAO5.js → health-7UqIGG8U.js} +4 -4
- package/dist/{hooks-cli-DOjHV2fF.js → hooks-cli-D43GEG-W.js} +59 -59
- package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
- package/dist/index.js +52 -52
- package/dist/{inspect-DzYUb_Dl.js → inspect-CGKsaVZ4.js} +4 -4
- package/dist/{install-safe-path-BrpA09f2.js → install-safe-path-B2JrFspY.js} +11 -11
- package/dist/{installs-bnDlOSq2.js → installs-D890uIIW.js} +10 -10
- package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
- package/dist/{lifecycle-core-cSR_xiIO.js → lifecycle-core-wFwnK_mD.js} +5 -5
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
- package/dist/{logs-cli-CYFlhj51.js → logs-cli-BTU7zrkU.js} +7 -7
- package/dist/{manager-DuWp0CTD.js → manager-Cw7IJGbB.js} +15 -15
- package/dist/{manager-F0-SHT1B.js → manager-DbVMwpDc.js} +1 -1
- package/dist/{memory-fFc7GGPZ.js → memory-BZ24UkLW.js} +5 -5
- package/dist/{memory-cli-BnBKckEk.js → memory-cli-0HHYm-B8.js} +12 -12
- package/dist/{model-Cwbcw-km.js → model-MUMSB_7d.js} +1 -1
- package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
- package/dist/{model-catalog-BWurV7gl.js → model-catalog-IWi6-nY9.js} +3 -3
- package/dist/{model-picker-Dpkr5xBW.js → model-picker-Cf6UgQEh.js} +5 -5
- package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
- package/dist/{models-cli-DVdb_TUS.js → models-cli-C2EXmrYH.js} +55 -55
- package/dist/{models-config-DlXge3Sd.js → models-config-B5Xxy-c-.js} +8 -8
- package/dist/{node-cli-B0ePfMUr.js → node-cli-CWbA6YCw.js} +27 -27
- package/dist/{node-service-Cc18m-uk.js → node-service-BH08wY5j.js} +1 -1
- package/dist/{nodes-cli-L0gy-26E.js → nodes-cli-BfHcv62i.js} +10 -10
- package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
- package/dist/{npm-registry-spec-C-muP97-.js → npm-registry-spec-DTqn-NXZ.js} +9 -9
- package/dist/{onboard-D6GZ2t-L.js → onboard-DnwWawQO.js} +15 -15
- package/dist/{onboard-channels-DVS9vciR.js → onboard-channels-qDThNkyj.js} +4 -4
- package/dist/{onboard-custom-DnDrvxSg.js → onboard-custom-BcRYreNG.js} +3 -3
- package/dist/{onboard-helpers-CJlheOSJ.js → onboard-helpers-7IGQ8nAM.js} +8 -8
- package/dist/{onboard-hooks-D9jHwImb.js → onboard-hooks-2SCajRKc.js} +1 -1
- package/dist/{onboard-remote-CVZ8l58S.js → onboard-remote-Dr75eqOQ.js} +1 -1
- package/dist/{onboard-skills-MgcaLiE6.js → onboard-skills-uO7HZwjc.js} +3 -3
- package/dist/{onboarding-D-mzwQ_f.js → onboarding-DxZAGVkD.js} +12 -12
- package/dist/{onboarding.finalize-DBFL76p0.js → onboarding.finalize-Dt-rcgpk.js} +31 -31
- package/dist/{onboarding.gateway-config-BCDgsFl8.js → onboarding.gateway-config-CkP7K4EN.js} +8 -8
- package/dist/{openai-model-default-De-UAjwg.js → openai-model-default-BkuuK-Di.js} +2 -2
- package/dist/{pairing-cli-CBMMCNnx.js → pairing-cli-Rsae0KnN.js} +5 -5
- package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
- package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
- package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
- package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
- package/dist/{pi-embedded-helpers-j1JrlsI0.js → pi-embedded-helpers-D-OFjhdI.js} +6 -6
- package/dist/{pi-tools.policy-CvAqjEH9.js → pi-tools.policy-H2t-Xkfc.js} +3 -3
- package/dist/{plugin-auto-enable-BXSJTxI7.js → plugin-auto-enable-DJBhDIMq.js} +1 -1
- package/dist/{plugin-registry-KP94aK4z.js → plugin-registry-D2_TLnOr.js} +3 -3
- package/dist/{plugins-cli-B4ljapU5.js → plugins-cli-CqV1Q7ao.js} +54 -54
- package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
- package/dist/{ports-Bi3V_3n9.js → ports-r7LBic2V.js} +1 -1
- package/dist/{program-context-BzqGUxMS.js → program-context-B0ovpbFU.js} +40 -40
- package/dist/{prompt-select-styled-BVkRteee.js → prompt-select-styled-B5GrNfqR.js} +38 -38
- package/dist/{provider-auth-helpers-C6GjAO-s.js → provider-auth-helpers-DU8RlQz7.js} +6 -6
- package/dist/{push-apns-CbbWM63o.js → push-apns-CyAPMMJC.js} +4 -4
- package/dist/{pw-ai-CP5pn3eU.js → pw-ai-BiBvIJzd.js} +7 -7
- package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
- package/dist/{qmd-manager-Dxyue7B1.js → qmd-manager-C8-M4Pru.js} +19 -19
- package/dist/{qr-cli-DHw6muwK.js → qr-cli-1sCVaPcF.js} +3 -3
- package/dist/{register.agent-DhS2lmWo.js → register.agent-BKbQhrre.js} +67 -67
- package/dist/{register.configure-ChjzXxh8.js → register.configure-C4_ShaQV.js} +70 -70
- package/dist/{register.maintenance-frHWf6Xs.js → register.maintenance-BOYWTu9C.js} +67 -67
- package/dist/{register.message-DWB4eVII.js → register.message-BtCthbpo.js} +47 -47
- package/dist/{register.onboard-4P8ud4Sw.js → register.onboard-D5GmuX8K.js} +25 -25
- package/dist/{register.setup-D0I7sEGc.js → register.setup-DzospfSf.js} +28 -28
- package/dist/{register.status-health-sessions-69Gigo_H.js → register.status-health-sessions-NVbWTQpZ.js} +41 -41
- package/dist/{replies-B_3j7R_Q.js → replies-CbXXjn9X.js} +1 -1
- package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
- package/dist/{resolve-route-Du0VftVs.js → resolve-route-C1IIA6kH.js} +1 -1
- package/dist/{routes-BwTUoI5h.js → routes-ivqbutvM.js} +10 -10
- package/dist/{rpc-DTqyJZKO.js → rpc-B1czfnym.js} +1 -1
- package/dist/{sandbox-CZGTCone.js → sandbox-BkznAPKO.js} +18 -18
- package/dist/{sandbox-cli-DEtGT_4y.js → sandbox-cli-Bb9cBtBH.js} +13 -13
- package/dist/{security-cli-iJpHPABF.js → security-cli-l59T6lAJ.js} +29 -29
- package/dist/{send-CxjvucMO.js → send-B0jHSNMF.js} +7 -7
- package/dist/{server-context-DXdk410X.js → server-context-ChcbJgNo.js} +5 -5
- package/dist/{server-methods-DHWxmfIu.js → server-methods-Bl41VzMu.js} +60 -60
- package/dist/{server-node-events-DHSiqnRS.js → server-node-events-CxYKzrbU.js} +48 -48
- package/dist/{service-CRZoXO_n.js → service-e6MzlLCd.js} +15 -15
- package/dist/{session-dirs-a00Ad2SO.js → session-dirs-C9E2G0yZ.js} +2 -2
- package/dist/{session-utils-CJhcRx3E.js → session-utils-Cs1jlD-q.js} +14 -14
- package/dist/{sessions-BCc3THTm.js → sessions-Dxf5Kjig.js} +10 -10
- package/dist/{shared-C39SiDDJ.js → shared-1xPo9ygd.js} +1 -1
- package/dist/{shared-Dh-O8nRd.js → shared-COtpr3Ad.js} +3 -3
- package/dist/{skill-commands-DWvXs3lz.js → skill-commands-DDGGlq68.js} +4 -4
- package/dist/{skill-scanner-CIlHPszT.js → skill-scanner-BCgVcIwi.js} +5 -5
- package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
- package/dist/{skills-cli-CD9s3cgm.js → skills-cli-B-7TY-vS.js} +7 -7
- package/dist/{skills-install-BTa9IuQ6.js → skills-install-Dwzsjoc8.js} +3 -3
- package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
- package/dist/{skills-status-DLnCHUZ2.js → skills-status-BKX1PjCc.js} +1 -1
- package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
- package/dist/{status-ISN-LC9F.js → status-D7QX7VDk.js} +23 -23
- package/dist/{status-DUbs9rVu.js → status-DrWy5OkC.js} +3 -3
- package/dist/{status.update-CKfyV6zw.js → status.update-DGJi0OLl.js} +3 -3
- package/dist/{symframe-cli-CPE5nxuJ.js → symframe-cli-BVmRLRid.js} +9 -9
- package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
- package/dist/{synthesis-CDPVZw2P.js → synthesis-CO5pr92g.js} +4 -4
- package/dist/{synthesis-DkHCk0El.js → synthesis-ts2nG0tK.js} +45 -45
- package/dist/{system-cli-nWJwLo85.js → system-cli-Du1GEeoO.js} +7 -7
- package/dist/{systemd-CsoVnIbM.js → systemd-CUIM0n5P.js} +5 -5
- package/dist/{systemd-hints-QISwLlFU.js → systemd-hints-CsrzMCTD.js} +6 -6
- package/dist/{systemd-linger-BnhuRdbt.js → systemd-linger-BzYk7A6M.js} +1 -1
- package/dist/{tui-ZL7IGA7l.js → tui-B2MY6Mj2.js} +7 -7
- package/dist/{tui-cli-CEpMtmhP.js → tui-cli-BMEnosW9.js} +19 -19
- package/dist/{unified-runner-CsadjpQa.js → unified-runner-4O0ifBsI.js} +101 -101
- package/dist/{unified-runner-Cppo8O8z.js → unified-runner-O3qR5Iie.js} +10 -10
- package/dist/{update-check-u6Jgr1cz.js → update-check-BCL_K7kx.js} +5 -5
- package/dist/{update-cli-48-Nah-Y.js → update-cli-BMURsYJU.js} +77 -77
- package/dist/{update-runner-G2YgEATs.js → update-runner-BLV8SI96.js} +15 -15
- package/dist/{update-Cb0Fmxic.js → update-yYduAjKd.js} +3 -3
- package/dist/{webhooks-cli-DjUITimx.js → webhooks-cli-D5k-Y2A8.js} +4 -4
- package/dist/{with-timeout-CLrF-Yr_.js → with-timeout-DPR4A2dx.js} +1 -1
- package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
- package/dist/{wsl-DTi7eX-V.js → wsl-CglTdtlb.js} +2 -2
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/package.json +1 -1
|
@@ -2,10 +2,10 @@ import "./registry-Sbac4a4z.js";
|
|
|
2
2
|
import "./paths-By0XjHBk.js";
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
5
|
-
import { l as parseEmbedding, r as cosineSimilarity } from "./internal-
|
|
5
|
+
import { l as parseEmbedding, r as cosineSimilarity } from "./internal-DVCddhhN.js";
|
|
6
6
|
import crypto from "node:crypto";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
9
|
|
|
10
10
|
//#region src/memory/consolidate.ts
|
|
11
11
|
const log = createSubsystemLogger("memory/consolidate");
|
|
@@ -346,7 +346,7 @@ async function stagePromote(params) {
|
|
|
346
346
|
};
|
|
347
347
|
const now = params.now ?? Date.now();
|
|
348
348
|
const memoryDir = path.join(params.workspaceDir, "memory");
|
|
349
|
-
await
|
|
349
|
+
await fs.mkdir(memoryDir, { recursive: true }).catch(() => {});
|
|
350
350
|
const corePath = path.join(memoryDir, "symi-core.md");
|
|
351
351
|
const beliefsPath = path.join(memoryDir, "symi-beliefs.md");
|
|
352
352
|
params.db.prepare(`UPDATE chunks SET promoted_to = NULL WHERE promoted_to = ?`).run(SYMI_CORE_PATH);
|
|
@@ -386,7 +386,7 @@ async function stagePromote(params) {
|
|
|
386
386
|
sections: sectionLines,
|
|
387
387
|
now
|
|
388
388
|
});
|
|
389
|
-
await
|
|
389
|
+
await fs.writeFile(corePath, symiCoreContent, "utf-8");
|
|
390
390
|
const merged = mergeBeliefs({
|
|
391
391
|
existing: await readExistingBeliefs(beliefsPath),
|
|
392
392
|
fresh: params.synthesizedBeliefs ?? [],
|
|
@@ -396,7 +396,7 @@ async function stagePromote(params) {
|
|
|
396
396
|
beliefs: merged,
|
|
397
397
|
now
|
|
398
398
|
});
|
|
399
|
-
await
|
|
399
|
+
await fs.writeFile(beliefsPath, symiBeliefsContent, "utf-8");
|
|
400
400
|
log.debug("consolidate.promote", {
|
|
401
401
|
promoted,
|
|
402
402
|
sections: CORE_SECTIONS.length,
|
|
@@ -596,7 +596,7 @@ function mergeBeliefs(params) {
|
|
|
596
596
|
return [...byHash.values()].toSorted((a, b) => b.confidence - a.confidence).slice(0, params.cap);
|
|
597
597
|
}
|
|
598
598
|
async function readExistingBeliefs(filePath) {
|
|
599
|
-
const content = await
|
|
599
|
+
const content = await fs.readFile(filePath, "utf-8").catch(() => "");
|
|
600
600
|
if (!content) return [];
|
|
601
601
|
const out = [];
|
|
602
602
|
for (const rawLine of content.split("\n")) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
3
|
-
import { i as loadConfig } from "./config-
|
|
4
|
-
import { x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
5
|
-
import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-
|
|
3
|
+
import { i as loadConfig } from "./config-B4jkreCN.js";
|
|
4
|
+
import { x as ensureChromeExtensionRelayServer } from "./chrome-DJChpTwP.js";
|
|
5
|
+
import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-ChcbJgNo.js";
|
|
6
6
|
|
|
7
7
|
//#region src/browser/server-lifecycle.ts
|
|
8
8
|
async function ensureExtensionRelayForProfiles(params) {
|
|
@@ -80,7 +80,7 @@ async function stopBrowserControlService() {
|
|
|
80
80
|
});
|
|
81
81
|
state = null;
|
|
82
82
|
try {
|
|
83
|
-
await (await import("./pw-ai-
|
|
83
|
+
await (await import("./pw-ai-BiBvIJzd.js")).closePlaywrightBrowserConnection();
|
|
84
84
|
} catch {}
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -1656,6 +1656,165 @@ body {
|
|
|
1656
1656
|
box-shadow: 0 0 8px rgba(0, 212, 255, 0.18);
|
|
1657
1657
|
}
|
|
1658
1658
|
|
|
1659
|
+
/* ── Stage D.1 (3.5.27): intent-aware visual treatment ──────────── */
|
|
1660
|
+
/* The data-intent attribute has been on every card since Stage A but
|
|
1661
|
+
was metadata only. Stage D.1 makes the agent's mental categorization
|
|
1662
|
+
visible: each intent gets a distinct color stripe running down the
|
|
1663
|
+
left edge of the card + a small corner ribbon at the top-left with
|
|
1664
|
+
the intent label. Some intents add subtle behavior (producing
|
|
1665
|
+
pulses; drafted emphasizes action buttons; reference desaturates).
|
|
1666
|
+
|
|
1667
|
+
No JS changes — purely a CSS layer on top of the existing
|
|
1668
|
+
.symframe-card-dynamic[data-intent="..."] hook. */
|
|
1669
|
+
|
|
1670
|
+
/* Base treatment shared across all intents: the left stripe is via
|
|
1671
|
+
inset box-shadow so it doesn't disturb the card's border-radius.
|
|
1672
|
+
The ribbon is via ::before pseudo-element at the top-left corner.
|
|
1673
|
+
Cards without data-intent (legacy / pre-Stage-A pushes) get neither. */
|
|
1674
|
+
|
|
1675
|
+
.symframe-card-dynamic[data-intent]::before {
|
|
1676
|
+
content: attr(data-intent);
|
|
1677
|
+
position: absolute;
|
|
1678
|
+
top: 0;
|
|
1679
|
+
left: 0;
|
|
1680
|
+
padding: 2px 8px 2px 6px;
|
|
1681
|
+
font-family: var(--font-mono);
|
|
1682
|
+
font-size: 8px;
|
|
1683
|
+
font-weight: 700;
|
|
1684
|
+
letter-spacing: 0.14em;
|
|
1685
|
+
text-transform: uppercase;
|
|
1686
|
+
background: rgba(0, 0, 0, 0.55);
|
|
1687
|
+
border-radius: 10px 0 6px 0;
|
|
1688
|
+
border-right: 1px solid currentColor;
|
|
1689
|
+
border-bottom: 1px solid currentColor;
|
|
1690
|
+
pointer-events: none;
|
|
1691
|
+
z-index: 2;
|
|
1692
|
+
opacity: 0.85;
|
|
1693
|
+
}
|
|
1694
|
+
/* Reset the base card-padding so the ribbon hugs the corner */
|
|
1695
|
+
.symframe-card-dynamic[data-intent] {
|
|
1696
|
+
/* Slight top padding so the ribbon doesn't crowd the title */
|
|
1697
|
+
padding-top: 22px;
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
/* holding — cyan; working memory */
|
|
1701
|
+
.symframe-card-dynamic[data-intent="holding"] {
|
|
1702
|
+
box-shadow:
|
|
1703
|
+
inset 3px 0 0 0 rgba(0, 212, 255, 0.65),
|
|
1704
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1705
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1706
|
+
}
|
|
1707
|
+
.symframe-card-dynamic[data-intent="holding"]::before {
|
|
1708
|
+
color: var(--accent-cyan);
|
|
1709
|
+
}
|
|
1710
|
+
|
|
1711
|
+
/* weighing — amber; an option under consideration */
|
|
1712
|
+
.symframe-card-dynamic[data-intent="weighing"] {
|
|
1713
|
+
box-shadow:
|
|
1714
|
+
inset 3px 0 0 0 #f5b73a,
|
|
1715
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1716
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1717
|
+
}
|
|
1718
|
+
.symframe-card-dynamic[data-intent="weighing"]::before {
|
|
1719
|
+
color: #f5b73a;
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
/* producing — green; actively drafting, slow pulse on the stripe */
|
|
1723
|
+
.symframe-card-dynamic[data-intent="producing"] {
|
|
1724
|
+
animation: intent-producing-pulse 2.6s ease-in-out infinite;
|
|
1725
|
+
}
|
|
1726
|
+
@keyframes intent-producing-pulse {
|
|
1727
|
+
0%,
|
|
1728
|
+
100% {
|
|
1729
|
+
box-shadow:
|
|
1730
|
+
inset 3px 0 0 0 rgba(52, 211, 153, 0.55),
|
|
1731
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1732
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1733
|
+
}
|
|
1734
|
+
50% {
|
|
1735
|
+
box-shadow:
|
|
1736
|
+
inset 3px 0 0 0 rgba(52, 211, 153, 1),
|
|
1737
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1738
|
+
0 4px 12px rgba(0, 0, 0, 0.25),
|
|
1739
|
+
0 0 14px rgba(52, 211, 153, 0.2);
|
|
1740
|
+
}
|
|
1741
|
+
}
|
|
1742
|
+
.symframe-card-dynamic[data-intent="producing"]::before {
|
|
1743
|
+
content: "● producing";
|
|
1744
|
+
color: #34d399;
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
/* drafted — violet; finished artifact ready for user review */
|
|
1748
|
+
.symframe-card-dynamic[data-intent="drafted"] {
|
|
1749
|
+
box-shadow:
|
|
1750
|
+
inset 3px 0 0 0 #8b5cf6,
|
|
1751
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1752
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1753
|
+
}
|
|
1754
|
+
.symframe-card-dynamic[data-intent="drafted"]::before {
|
|
1755
|
+
color: #8b5cf6;
|
|
1756
|
+
}
|
|
1757
|
+
/* Emphasize action buttons on drafted cards — these cards exist to
|
|
1758
|
+
be acted on (Send / Copy / Open). Make the buttons more clickable. */
|
|
1759
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action {
|
|
1760
|
+
border-color: rgba(139, 92, 246, 0.55);
|
|
1761
|
+
color: var(--text);
|
|
1762
|
+
font-weight: 600;
|
|
1763
|
+
}
|
|
1764
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action:hover {
|
|
1765
|
+
background: rgba(139, 92, 246, 0.12);
|
|
1766
|
+
border-color: #8b5cf6;
|
|
1767
|
+
}
|
|
1768
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action-primary {
|
|
1769
|
+
background: rgba(139, 92, 246, 0.22);
|
|
1770
|
+
border-color: #8b5cf6;
|
|
1771
|
+
color: var(--text);
|
|
1772
|
+
}
|
|
1773
|
+
.symframe-card-dynamic[data-intent="drafted"] .symframe-card-action-primary:hover {
|
|
1774
|
+
background: rgba(139, 92, 246, 0.32);
|
|
1775
|
+
box-shadow: 0 0 10px rgba(139, 92, 246, 0.25);
|
|
1776
|
+
}
|
|
1777
|
+
|
|
1778
|
+
/* reference — muted gray; passive read-only context */
|
|
1779
|
+
.symframe-card-dynamic[data-intent="reference"] {
|
|
1780
|
+
box-shadow:
|
|
1781
|
+
inset 3px 0 0 0 rgba(255, 255, 255, 0.22),
|
|
1782
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1783
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1784
|
+
opacity: 0.88;
|
|
1785
|
+
filter: saturate(0.75);
|
|
1786
|
+
}
|
|
1787
|
+
.symframe-card-dynamic[data-intent="reference"]::before {
|
|
1788
|
+
color: var(--text-dim);
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
/* awaiting — if a card is mistakenly pushed with this intent (it
|
|
1792
|
+
belongs in the AWAITING footer, not the foreground), flag with a
|
|
1793
|
+
pink stripe and a "→ footer" hint so the user/agent notices the
|
|
1794
|
+
miscategorization. */
|
|
1795
|
+
.symframe-card-dynamic[data-intent="awaiting"] {
|
|
1796
|
+
box-shadow:
|
|
1797
|
+
inset 3px 0 0 0 rgba(244, 114, 182, 0.55),
|
|
1798
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1799
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1800
|
+
}
|
|
1801
|
+
.symframe-card-dynamic[data-intent="awaiting"]::before {
|
|
1802
|
+
content: "awaiting → footer";
|
|
1803
|
+
color: rgba(244, 114, 182, 0.85);
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
/* Reduced-motion: skip the producing pulse but keep the static
|
|
1807
|
+
green stripe so the intent is still visible. */
|
|
1808
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1809
|
+
.symframe-card-dynamic[data-intent="producing"] {
|
|
1810
|
+
animation: none;
|
|
1811
|
+
box-shadow:
|
|
1812
|
+
inset 3px 0 0 0 rgba(52, 211, 153, 0.75),
|
|
1813
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04),
|
|
1814
|
+
0 4px 12px rgba(0, 0, 0, 0.25);
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1659
1818
|
/* ── Phase 4: type-specific body renderers ───────────────────────── */
|
|
1660
1819
|
|
|
1661
1820
|
/* Text + markdown: inherit from .symframe-card-body. Add minimal
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
2
|
-
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-
|
|
2
|
+
import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
|
|
3
3
|
import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import path from "node:path";
|
|
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
|
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import "./exec-DuYbft0z.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./model-selection-
|
|
8
|
-
import { i as loadConfig } from "./config-
|
|
6
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
7
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
8
|
+
import { i as loadConfig } from "./config-B4jkreCN.js";
|
|
9
9
|
import "./boolean-CbZoNRMn.js";
|
|
10
10
|
import "./env-BRnPI9sO.js";
|
|
11
11
|
import "./shell-env-Dc3iU7HK.js";
|
|
@@ -4,24 +4,24 @@ import "./utils-CTPsqyE_.js";
|
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import { u as sanitizeAgentId } from "./session-key-DUSb7CCb.js";
|
|
6
6
|
import "./exec-DuYbft0z.js";
|
|
7
|
-
import "./agent-scope-
|
|
8
|
-
import "./model-selection-
|
|
9
|
-
import "./config-
|
|
7
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
8
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
9
|
+
import "./config-B4jkreCN.js";
|
|
10
10
|
import "./boolean-CbZoNRMn.js";
|
|
11
11
|
import "./env-BRnPI9sO.js";
|
|
12
12
|
import "./shell-env-Dc3iU7HK.js";
|
|
13
13
|
import "./manifest-registry-D1MLZEjS.js";
|
|
14
14
|
import "./message-channel-DgjXWzf-.js";
|
|
15
15
|
import { n as listChannelPlugins } from "./plugins-CF5skkHh.js";
|
|
16
|
-
import "./client-
|
|
17
|
-
import "./call-
|
|
18
|
-
import "./pairing-token-
|
|
16
|
+
import "./client-DH75FlQF.js";
|
|
17
|
+
import "./call-AZ9vNhST.js";
|
|
18
|
+
import "./pairing-token-Dcy37-4s.js";
|
|
19
19
|
import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
|
|
20
20
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DQs772BN.js";
|
|
21
21
|
import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
22
22
|
import "./progress-swt2y17x.js";
|
|
23
23
|
import { n as parsePositiveIntOrUndefined } from "./helpers-B_p8ul9t.js";
|
|
24
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
24
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-C6lKFbor.js";
|
|
25
25
|
|
|
26
26
|
//#region src/cli/cron-cli/shared.ts
|
|
27
27
|
const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
|
|
@@ -4,26 +4,26 @@ import { _ as resolveStateDir, d as resolveIsNixMode, o as resolveConfigPath, u
|
|
|
4
4
|
import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
|
|
5
5
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
6
6
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
7
|
-
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-
|
|
7
|
+
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-B4jkreCN.js";
|
|
8
8
|
import { n as pickPrimaryTailnetIPv4 } from "./tailnet-XKACsamF.js";
|
|
9
9
|
import { u as resolveGatewayBindHost } from "./ws-C7Ktmt-R.js";
|
|
10
10
|
import { a as resolveGatewayAuth } from "./auth-Bkx-QuRN.js";
|
|
11
|
-
import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-
|
|
11
|
+
import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-gxLM5ahL.js";
|
|
12
12
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
|
|
13
|
-
import { n as callGateway } from "./call-
|
|
13
|
+
import { n as callGateway } from "./call-AZ9vNhST.js";
|
|
14
14
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
|
|
15
15
|
import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
16
16
|
import { n as withProgress } from "./progress-swt2y17x.js";
|
|
17
17
|
import { n as inheritOptionFromParent } from "./command-options-DDDwkB9t.js";
|
|
18
|
-
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-
|
|
19
|
-
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-
|
|
20
|
-
import { n as isWSLEnv } from "./wsl-
|
|
21
|
-
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-
|
|
22
|
-
import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-
|
|
23
|
-
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-
|
|
18
|
+
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DlQla_dA.js";
|
|
19
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-7IGQ8nAM.js";
|
|
20
|
+
import { n as isWSLEnv } from "./wsl-CglTdtlb.js";
|
|
21
|
+
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-e6MzlLCd.js";
|
|
22
|
+
import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-wFwnK_mD.js";
|
|
23
|
+
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-CsrzMCTD.js";
|
|
24
24
|
import { t as parsePort } from "./parse-port-CMRD6fhd.js";
|
|
25
|
-
import { t as readLastGatewayErrorLine } from "./diagnostics-
|
|
26
|
-
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-
|
|
25
|
+
import { t as readLastGatewayErrorLine } from "./diagnostics-DlZODdRf.js";
|
|
26
|
+
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CGKsaVZ4.js";
|
|
27
27
|
|
|
28
28
|
//#region src/cli/daemon-cli/install.ts
|
|
29
29
|
async function runDaemonInstall(opts) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
2
|
-
import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-
|
|
2
|
+
import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-B4jkreCN.js";
|
|
3
3
|
import { a as NODE_SERVICE_MARKER, c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, g as resolveNodeWindowsTaskName, h as resolveNodeSystemdServiceName, i as NODE_SERVICE_KIND, m as resolveNodeLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, o as NODE_WINDOWS_TASK_SCRIPT_NAME, r as GATEWAY_SERVICE_MARKER } from "./constants-BLIhifCJ.js";
|
|
4
4
|
import { n as isSupportedNodeVersion } from "./runtime-guard-CWA00ZXa.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import { promisify } from "node:util";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs/promises";
|
|
9
9
|
import { execFile } from "node:child_process";
|
|
10
10
|
|
|
11
11
|
//#region src/daemon/program-args.ts
|
|
@@ -23,23 +23,23 @@ async function resolveCliEntrypointPathForService() {
|
|
|
23
23
|
const normalized = path.resolve(argv1);
|
|
24
24
|
const resolvedPath = await resolveRealpathSafe(normalized);
|
|
25
25
|
if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(resolvedPath)) {
|
|
26
|
-
await
|
|
26
|
+
await fs.access(resolvedPath);
|
|
27
27
|
if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(normalized) && normalized !== resolvedPath) try {
|
|
28
|
-
await
|
|
28
|
+
await fs.access(normalized);
|
|
29
29
|
return normalized;
|
|
30
30
|
} catch {}
|
|
31
31
|
return resolvedPath;
|
|
32
32
|
}
|
|
33
33
|
const distCandidates = buildDistCandidates(resolvedPath, normalized);
|
|
34
34
|
for (const candidate of distCandidates) try {
|
|
35
|
-
await
|
|
35
|
+
await fs.access(candidate);
|
|
36
36
|
return candidate;
|
|
37
37
|
} catch {}
|
|
38
38
|
throw new Error(`Cannot find built CLI at ${distCandidates.join(" or ")}. Run "pnpm build" first, or use dev mode.`);
|
|
39
39
|
}
|
|
40
40
|
async function resolveRealpathSafe(inputPath) {
|
|
41
41
|
try {
|
|
42
|
-
return await
|
|
42
|
+
return await fs.realpath(inputPath);
|
|
43
43
|
} catch {
|
|
44
44
|
return inputPath;
|
|
45
45
|
}
|
|
@@ -99,7 +99,7 @@ async function resolveBinaryPath(binary) {
|
|
|
99
99
|
try {
|
|
100
100
|
const resolved = execFileSync(cmd, [binary], { encoding: "utf8" }).trim().split(/\r?\n/)[0]?.trim();
|
|
101
101
|
if (!resolved) throw new Error("empty");
|
|
102
|
-
await
|
|
102
|
+
await fs.access(resolved);
|
|
103
103
|
return resolved;
|
|
104
104
|
} catch {
|
|
105
105
|
if (binary === "bun") throw new Error("Bun not found in PATH. Install bun: https://bun.sh");
|
|
@@ -118,7 +118,7 @@ async function resolveCliProgramArguments(params) {
|
|
|
118
118
|
if (params.dev) {
|
|
119
119
|
const repoRoot = resolveRepoRootForDev();
|
|
120
120
|
const devCliPath = path.join(repoRoot, "src", "index.ts");
|
|
121
|
-
await
|
|
121
|
+
await fs.access(devCliPath);
|
|
122
122
|
return {
|
|
123
123
|
programArguments: [
|
|
124
124
|
isBunRuntime(execPath) ? execPath : await resolveBunPath(),
|
|
@@ -146,7 +146,7 @@ async function resolveCliProgramArguments(params) {
|
|
|
146
146
|
}
|
|
147
147
|
const repoRoot = resolveRepoRootForDev();
|
|
148
148
|
const devCliPath = path.join(repoRoot, "src", "index.ts");
|
|
149
|
-
await
|
|
149
|
+
await fs.access(devCliPath);
|
|
150
150
|
if (isBunRuntime(execPath)) return {
|
|
151
151
|
programArguments: [
|
|
152
152
|
execPath,
|
|
@@ -259,7 +259,7 @@ function isSystemNodePath(nodePath, env = process.env, platform = process.platfo
|
|
|
259
259
|
async function resolveSystemNodePath(env = process.env, platform = process.platform) {
|
|
260
260
|
const candidates = buildSystemNodeCandidates(env, platform);
|
|
261
261
|
for (const candidate of candidates) try {
|
|
262
|
-
await
|
|
262
|
+
await fs.access(candidate);
|
|
263
263
|
return candidate;
|
|
264
264
|
} catch {}
|
|
265
265
|
return null;
|
|
@@ -9,7 +9,7 @@ import { t as formatCliCommand } from "./command-format-BrrHNE8r.js";
|
|
|
9
9
|
import { n as isPidAlive, t as resolveProcessScopedMap } from "./process-scoped-map-B-dHc_9I.js";
|
|
10
10
|
import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-DNhyFMRW.js";
|
|
11
11
|
import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
|
|
12
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
12
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-OTJg3QKn.js";
|
|
13
13
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Dm4gX4Tl.js";
|
|
14
14
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C89ppfp9.js";
|
|
15
15
|
import { b as SafeOpenError, d as extensionForMime, i as buildImageResizeSideGrid, l as resizeToJpeg, o as getImageMetadata, r as IMAGE_REDUCE_QUALITY_STEPS, t as getAgentScopedMediaLocalRoots, u as detectMime, x as openFileWithinRoot } from "./local-roots-C7fBKoOI.js";
|
|
@@ -939,7 +939,7 @@ function isModuleNotFoundError(err) {
|
|
|
939
939
|
}
|
|
940
940
|
async function loadPwAiModule(mode) {
|
|
941
941
|
try {
|
|
942
|
-
return await import("./pw-ai-
|
|
942
|
+
return await import("./pw-ai-DY_6l11g.js");
|
|
943
943
|
} catch (err) {
|
|
944
944
|
if (mode === "soft") return null;
|
|
945
945
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3536,11 +3536,11 @@ function createProfileContext(opts, profile) {
|
|
|
3536
3536
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3537
3537
|
const profileState = getProfileState();
|
|
3538
3538
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3539
|
-
await (await import("./pw-ai-
|
|
3539
|
+
await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
|
|
3540
3540
|
} catch {}
|
|
3541
3541
|
if (profileState.running) await stopRunningBrowser();
|
|
3542
3542
|
try {
|
|
3543
|
-
await (await import("./pw-ai-
|
|
3543
|
+
await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
|
|
3544
3544
|
} catch {}
|
|
3545
3545
|
if (!fs.existsSync(userDataDir)) return {
|
|
3546
3546
|
moved: false,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { H as createInternalHookEvent, W as triggerInternalHook, d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
|
|
4
|
-
import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-
|
|
4
|
+
import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-Dxf5Kjig.js";
|
|
5
5
|
import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
|
|
6
6
|
import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-0yh2UnJq.js";
|
|
7
7
|
import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BxfKjCUx.js";
|
|
8
|
-
import { t as getAgentScopedMediaLocalRoots } from "./local-roots-
|
|
8
|
+
import { t as getAgentScopedMediaLocalRoots } from "./local-roots-CgDCgCuM.js";
|
|
9
9
|
import { i as failDelivery, r as enqueueDelivery, t as ackDelivery } from "./delivery-queue-OAc7hsIs.js";
|
|
10
10
|
|
|
11
11
|
//#region src/plugins/hooks.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/cli/deps.ts
|
|
2
2
|
function createDefaultDeps() {
|
|
3
3
|
return { sendMessageSlack: async (...args) => {
|
|
4
|
-
const { sendMessageSlack } = await import("./send-
|
|
4
|
+
const { sendMessageSlack } = await import("./send-B0jHSNMF.js").then((n) => n.n);
|
|
5
5
|
return await sendMessageSlack(...args);
|
|
6
6
|
} };
|
|
7
7
|
}
|
|
@@ -3,18 +3,18 @@ import "./paths-By0XjHBk.js";
|
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import "./exec-DuYbft0z.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./model-selection-
|
|
8
|
-
import "./config-
|
|
6
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
7
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
8
|
+
import "./config-B4jkreCN.js";
|
|
9
9
|
import "./boolean-CbZoNRMn.js";
|
|
10
10
|
import "./env-BRnPI9sO.js";
|
|
11
11
|
import "./shell-env-Dc3iU7HK.js";
|
|
12
12
|
import "./manifest-registry-D1MLZEjS.js";
|
|
13
13
|
import { r as isLoopbackHost } from "./ws-C7Ktmt-R.js";
|
|
14
14
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
|
|
15
|
-
import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-
|
|
16
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
17
|
-
import "./pairing-token-
|
|
15
|
+
import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-DH75FlQF.js";
|
|
16
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-AZ9vNhST.js";
|
|
17
|
+
import "./pairing-token-Dcy37-4s.js";
|
|
18
18
|
import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
|
|
19
19
|
import { n as withProgress } from "./progress-swt2y17x.js";
|
|
20
20
|
import { t as renderTable } from "./table-0A3xKJVC.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { s as resolveGatewayLogPaths } from "./service-
|
|
2
|
-
import
|
|
1
|
+
import { s as resolveGatewayLogPaths } from "./service-e6MzlLCd.js";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
3
|
|
|
4
4
|
//#region src/daemon/diagnostics.ts
|
|
5
5
|
const GATEWAY_LOG_ERROR_PATTERNS = [
|
|
@@ -11,7 +11,7 @@ const GATEWAY_LOG_ERROR_PATTERNS = [
|
|
|
11
11
|
];
|
|
12
12
|
async function readLastLogLine(filePath) {
|
|
13
13
|
try {
|
|
14
|
-
const lines = (await
|
|
14
|
+
const lines = (await fs.readFile(filePath, "utf8")).split(/\r?\n/).map((line) => line.trim());
|
|
15
15
|
for (let i = lines.length - 1; i >= 0; i -= 1) if (lines[i]) return lines[i];
|
|
16
16
|
return null;
|
|
17
17
|
} catch {
|
|
@@ -20,8 +20,8 @@ async function readLastLogLine(filePath) {
|
|
|
20
20
|
}
|
|
21
21
|
async function readLastGatewayErrorLine(env) {
|
|
22
22
|
const { stdoutPath, stderrPath } = resolveGatewayLogPaths(env);
|
|
23
|
-
const stderrRaw = await
|
|
24
|
-
const stdoutRaw = await
|
|
23
|
+
const stderrRaw = await fs.readFile(stderrPath, "utf8").catch(() => "");
|
|
24
|
+
const stdoutRaw = await fs.readFile(stdoutPath, "utf8").catch(() => "");
|
|
25
25
|
const lines = [...stderrRaw.split(/\r?\n/), ...stdoutRaw.split(/\r?\n/)].map((line) => line.trim());
|
|
26
26
|
for (let i = lines.length - 1; i >= 0; i -= 1) {
|
|
27
27
|
const line = lines[i];
|
|
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
|
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import "./exec-DuYbft0z.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./model-selection-
|
|
8
|
-
import { i as loadConfig } from "./config-
|
|
6
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
7
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
8
|
+
import { i as loadConfig } from "./config-B4jkreCN.js";
|
|
9
9
|
import "./boolean-CbZoNRMn.js";
|
|
10
10
|
import "./env-BRnPI9sO.js";
|
|
11
11
|
import "./shell-env-Dc3iU7HK.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as normalizeStringEntries } from "./dock-hF45sewN.js";
|
|
2
|
-
import { i as readChannelAllowFromStore } from "./pairing-store-
|
|
2
|
+
import { i as readChannelAllowFromStore } from "./pairing-store-BNhJOnWn.js";
|
|
3
3
|
|
|
4
4
|
//#region src/security/dm-policy-shared.ts
|
|
5
5
|
async function resolveDmAllowState(params) {
|
|
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
|
|
|
3
3
|
import "./utils-CTPsqyE_.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
5
5
|
import "./exec-DuYbft0z.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./model-selection-
|
|
8
|
-
import { i as loadConfig } from "./config-
|
|
6
|
+
import "./agent-scope-DOrZjOnW.js";
|
|
7
|
+
import "./model-selection-7wdmO-Iw.js";
|
|
8
|
+
import { i as loadConfig } from "./config-B4jkreCN.js";
|
|
9
9
|
import "./boolean-CbZoNRMn.js";
|
|
10
10
|
import "./env-BRnPI9sO.js";
|
|
11
11
|
import "./shell-env-Dc3iU7HK.js";
|
|
@@ -7,7 +7,7 @@ import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
|
|
|
7
7
|
import "./boolean-CbZoNRMn.js";
|
|
8
8
|
import "./manifest-registry-D1MLZEjS.js";
|
|
9
9
|
import { d as hasBinary } from "./frontmatter-B_jqcova.js";
|
|
10
|
-
import "./skills-
|
|
10
|
+
import "./skills-BwDmcZdt.js";
|
|
11
11
|
import "./redact-B3O-RBO1.js";
|
|
12
12
|
import "./errors-bI7Tdx75.js";
|
|
13
13
|
import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as resolveCliName } from "./cli-name-CzMV-gJF.js";
|
|
2
|
-
import { t as resolveSymiPackageRoot } from "./symi-root-
|
|
2
|
+
import { t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
|
|
3
3
|
import { t as note } from "./note-D9FXI2qW.js";
|
|
4
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
4
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cbf0-8ob.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
7
7
|
|
|
@@ -2,17 +2,17 @@ import { _ as resolveStateDir, h as resolveOAuthDir, m as resolveNewStateDir, p
|
|
|
2
2
|
import { m as resolveHomeDir, u as isRecord } from "./utils-CTPsqyE_.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
|
|
4
4
|
import { n as DEFAULT_MAIN_KEY, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey } from "./session-key-DUSb7CCb.js";
|
|
5
|
-
import { l as resolveDefaultAgentId } from "./agent-scope-
|
|
6
|
-
import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-
|
|
7
|
-
import { l as saveSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-
|
|
5
|
+
import { l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
|
|
6
|
+
import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
|
|
7
|
+
import { l as saveSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-Dxf5Kjig.js";
|
|
8
8
|
import { t as note } from "./note-D9FXI2qW.js";
|
|
9
|
-
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-
|
|
9
|
+
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DJBhDIMq.js";
|
|
10
10
|
import { t as isWithinDir } from "./path-safety-CkXjT453.js";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import fs from "node:fs";
|
|
13
13
|
import os from "node:os";
|
|
14
14
|
import JSON5 from "json5";
|
|
15
|
-
import
|
|
15
|
+
import fs$1 from "node:fs/promises";
|
|
16
16
|
|
|
17
17
|
//#region src/commands/doctor-legacy-config.ts
|
|
18
18
|
function normalizeLegacyConfigValues(cfg) {
|
|
@@ -1063,7 +1063,7 @@ async function maybeMigrateLegacyConfig() {
|
|
|
1063
1063
|
const targetDir = path.join(home, ".symi");
|
|
1064
1064
|
const targetPath = path.join(targetDir, "symi.json");
|
|
1065
1065
|
try {
|
|
1066
|
-
await
|
|
1066
|
+
await fs$1.access(targetPath);
|
|
1067
1067
|
return changes;
|
|
1068
1068
|
} catch {}
|
|
1069
1069
|
const legacyCandidates = [
|
|
@@ -1073,14 +1073,14 @@ async function maybeMigrateLegacyConfig() {
|
|
|
1073
1073
|
];
|
|
1074
1074
|
let legacyPath = null;
|
|
1075
1075
|
for (const candidate of legacyCandidates) try {
|
|
1076
|
-
await
|
|
1076
|
+
await fs$1.access(candidate);
|
|
1077
1077
|
legacyPath = candidate;
|
|
1078
1078
|
break;
|
|
1079
1079
|
} catch {}
|
|
1080
1080
|
if (!legacyPath) return changes;
|
|
1081
|
-
await
|
|
1081
|
+
await fs$1.mkdir(targetDir, { recursive: true });
|
|
1082
1082
|
try {
|
|
1083
|
-
await
|
|
1083
|
+
await fs$1.copyFile(legacyPath, targetPath, fs$1.constants.COPYFILE_EXCL);
|
|
1084
1084
|
changes.push(`Migrated legacy config: ${legacyPath} -> ${targetPath}`);
|
|
1085
1085
|
} catch {}
|
|
1086
1086
|
return changes;
|