@symerian/symi 2.8.17 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agents-9cAyC5ED.js → agents-CvNeiuSB.js} +4 -4
- package/dist/{agents.config-Cu9zTq04.js → agents.config-BCgY5FjE.js} +1 -1
- package/dist/{agents.config-DuwhYjpi.js → agents.config-Ct64cGQ8.js} +1 -1
- package/dist/{audio-preflight-rjCWpcfE.js → audio-preflight-Cb-T0r6e.js} +4 -4
- package/dist/{auth-choice-CPqyqc93.js → auth-choice-ChFU9OCF.js} +1 -1
- package/dist/{auth-choice-DeNzlUAR.js → auth-choice-DmMyKZX4.js} +1 -1
- package/dist/{banner-S1NGA6-s.js → banner-Bf46tqiY.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +7 -7
- package/dist/bundled/session-memory/handler.js +7 -7
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-C0v4BJgp.js → channel-options-Bqc2VCgt.js} +1 -1
- package/dist/{channel-options-C6y7Khvq.js → channel-options-D4a0ZJ72.js} +1 -1
- package/dist/{channel-web-DirOFV_n.js → channel-web-YNC2xS5K.js} +1 -1
- package/dist/{channels-cli-BhNHckMo.js → channels-cli-BFJcNLbB.js} +6 -6
- package/dist/{channels-cli-By_SbriI.js → channels-cli-h3GnmmM9.js} +6 -6
- package/dist/{chrome-C08Z0XAa.js → chrome-ROtrXlNs.js} +7 -7
- package/dist/{cli-B1QQv1cb.js → cli-BX54CAM7.js} +3 -3
- package/dist/{cli-Bx4RQCuK.js → cli-BpQlSGVs.js} +3 -3
- package/dist/{command-registry-uMOPbrbY.js → command-registry-BiRjJ2Sy.js} +10 -10
- package/dist/{completion-cli-B6s_3rEE.js → completion-cli-BYXofVqv.js} +2 -2
- package/dist/{completion-cli-DVD79pVj.js → completion-cli-C8K5J1ld.js} +1 -1
- package/dist/{config-cli-DzudcNAD.js → config-cli-BPPD3xqE.js} +1 -1
- package/dist/{config-cli-DCGgd-ZL.js → config-cli-Deoo6r2K.js} +1 -1
- package/dist/{configure-BybpK_1N.js → configure-BKHxUAAh.js} +3 -3
- package/dist/{configure-CItWwZwI.js → configure-D4f0P3bH.js} +3 -3
- package/dist/{deliver-qUx-eLKt.js → deliver-B0OUq6RP.js} +1 -1
- package/dist/{doctor-completion-BkwgaO4G.js → doctor-completion-gMWymNcA.js} +1 -1
- package/dist/{doctor-completion-Bf6dN4D-.js → doctor-completion-woDYSVtY.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-eNV6kb1V.js → gateway-cli-Bnh42-56.js} +85 -41
- package/dist/{gateway-cli-7CVmb3cX.js → gateway-cli-DsnkTUOp.js} +85 -41
- package/dist/{glass-ui-ws-i91Ms6ts.js → glass-ui-ws-0Y0KsBvU.js} +9 -9
- package/dist/{glass-ui-ws-B4fsBuHx.js → glass-ui-ws-uj3DRmL8.js} +9 -9
- package/dist/{health-C4tWTDu_.js → health-CcV5nKIK.js} +1 -1
- package/dist/{health-dA8r4WJ4.js → health-Dl2WRoTa.js} +1 -1
- package/dist/{hooks-cli-DYn9nXX0.js → hooks-cli-CTcHtm_0.js} +4 -4
- package/dist/{hooks-cli-uGLWBIcW.js → hooks-cli-DEJe3dUH.js} +4 -4
- package/dist/{image-C6rCON9L.js → image-BuVL0jHI.js} +1 -1
- package/dist/index.js +8 -8
- package/dist/llm-slug-generator.js +7 -7
- package/dist/{manager-DhGfNqfc.js → manager-9Mni2AA9.js} +1 -1
- package/dist/{manager-D6E6EGWa.js → manager-C-H0XXJq.js} +1 -1
- package/dist/{manager-BaSutzfz.js → manager-CjW8kPVc.js} +1 -1
- package/dist/{manager-CgQo1mIM.js → manager-QPF0UtOC.js} +1 -1
- package/dist/{memory-cli-BMb31chU.js → memory-cli-BTByRgM0.js} +3 -3
- package/dist/{memory-cli-lJe72a5i.js → memory-cli-OW9XfyYu.js} +3 -3
- package/dist/{models-BITN17gY.js → models-Q1jV8ArL.js} +2 -2
- package/dist/{models-cli-CHjxevMe.js → models-cli-Cy6H1sFq.js} +5 -5
- package/dist/{models-cli-C6JJWWoI.js → models-cli-pfVmmgpv.js} +4 -4
- package/dist/{onboard-C8Si08MS.js → onboard-CvpyaUQd.js} +2 -2
- package/dist/{onboard-DdJV-Doq.js → onboard-EL8foMiP.js} +2 -2
- package/dist/{onboard-channels-Cb-bemSg.js → onboard-channels-BRoSUijQ.js} +1 -1
- package/dist/{onboard-channels-PQP9wlk8.js → onboard-channels-Bupbm6zh.js} +1 -1
- package/dist/{onboarding-QAtuyHtA.js → onboarding-Ch8WSJ3j.js} +3 -3
- package/dist/{onboarding-CAaoPaVQ.js → onboarding-Dg5ydWSh.js} +3 -3
- package/dist/{onboarding.finalize-MuO2mvHv.js → onboarding.finalize-Bo8-8TtH.js} +7 -7
- package/dist/{onboarding.finalize-BhlQmJlX.js → onboarding.finalize-CCTaCp2s.js} +8 -8
- package/dist/{pi-embedded-BUYKq7Wv.js → pi-embedded-Bl3YkBkI.js} +149 -35
- package/dist/{pi-embedded-helpers-P13adotN.js → pi-embedded-helpers-D1_Sab0M.js} +4 -4
- package/dist/{plugin-registry-tXiHw0vr.js → plugin-registry-BVYZLxmo.js} +1 -1
- package/dist/{plugin-registry-DEhkDNDx.js → plugin-registry-Bn9Mj8mP.js} +1 -1
- package/dist/plugin-sdk/agents/pi-tools.read-edit-guard.d.ts +5 -0
- package/dist/plugin-sdk/agents/pi-tools.read-edit-tracker.d.ts +26 -0
- package/dist/plugin-sdk/{channel-web-C7aP_KKZ.js → channel-web-BhqGIC7q.js} +1 -1
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{manager-CvrDwB1Q.js → manager-DdOb0Em2.js} +1 -1
- package/dist/plugin-sdk/{reply-BI7Rf3_S.js → reply-Cjjf4VYT.js} +149 -35
- package/dist/plugin-sdk/{synthesis-B3z0Jqt1.js → synthesis-CZ8BYNXP.js} +2 -2
- package/dist/plugin-sdk/{web-D2WrY-DI.js → web-B8upqMUo.js} +3 -3
- package/dist/{plugins-cli-ByG6o7D2.js → plugins-cli-3h1N5N8n.js} +4 -4
- package/dist/{plugins-cli-D1vPxTOQ.js → plugins-cli-CYOQh2DM.js} +4 -4
- package/dist/{program-Q44fKoq6.js → program-D3_xE9BL.js} +9 -9
- package/dist/{program-context-C3QEc34t.js → program-context-COwsYCbf.js} +18 -18
- package/dist/{prompt-select-styled-DBVeLysq.js → prompt-select-styled-D88AWCeM.js} +6 -6
- package/dist/{prompt-select-styled-BSZrZcW2.js → prompt-select-styled-rKPBDv7n.js} +6 -6
- package/dist/{provider-auth-helpers-Bm4cf-Ms.js → provider-auth-helpers-CyZyVx-V.js} +1 -1
- package/dist/{provider-auth-helpers-rH91VXG-.js → provider-auth-helpers-rff7s_gC.js} +1 -1
- package/dist/{push-apns-CRD9IH1s.js → push-apns-BNzgqUl3.js} +1 -1
- package/dist/{push-apns-Cj10sUbK.js → push-apns-d9qKGKPe.js} +1 -1
- package/dist/{pw-ai-CeWN4iD9.js → pw-ai-DWkC5eGA.js} +1 -1
- package/dist/{register.agent-DGDnsvVd.js → register.agent-BjaqQA02.js} +7 -7
- package/dist/{register.agent-Dfu85lRL.js → register.agent-D_MON8p-.js} +8 -8
- package/dist/{register.configure-FCTbPCwe.js → register.configure-BWkkQhpH.js} +8 -8
- package/dist/{register.configure-BcdyiQui.js → register.configure-UJi9sfNv.js} +8 -8
- package/dist/{register.maintenance-Y8P9AnLe.js → register.maintenance-ChskcWGz.js} +10 -10
- package/dist/{register.maintenance-DvDwpW6B.js → register.maintenance-DJptz3DR.js} +9 -9
- package/dist/{register.message-mTqwOntI.js → register.message-BDTsiyrW.js} +4 -4
- package/dist/{register.message-C57ubt4f.js → register.message-CiadI_oS.js} +4 -4
- package/dist/{register.onboard-MIChlygg.js → register.onboard-BflOE1jy.js} +6 -6
- package/dist/{register.onboard-YCmMzAW-.js → register.onboard-KR_-4TLY.js} +6 -6
- package/dist/{register.setup-sQeN5xag.js → register.setup-Cl0sD25T.js} +6 -6
- package/dist/{register.setup-DzUZ2x6y.js → register.setup-W-oNfOp0.js} +6 -6
- package/dist/{register.status-health-sessions-DaPK2tow.js → register.status-health-sessions-CCQs235z.js} +5 -5
- package/dist/{register.status-health-sessions-DsptpS7K.js → register.status-health-sessions-CT_SmmOH.js} +5 -5
- package/dist/{register.subclis-17z5d7uO.js → register.subclis-ByZAz4st.js} +9 -9
- package/dist/{reply-2awhibgG.js → reply-CgyjcoxC.js} +148 -34
- package/dist/{run-main-CfVO6DFS.js → run-main-xmWpjZL9.js} +17 -17
- package/dist/{runner-D633VT13.js → runner-ecX1WzDt.js} +1 -1
- package/dist/{server-methods-Bdgs89ve.js → server-methods-CBn954AO.js} +8 -8
- package/dist/{server-methods-D_g3GJhv.js → server-methods-DDpCXuOU.js} +8 -8
- package/dist/{server-node-events-BZN3RZ8H.js → server-node-events-BBEMSKVE.js} +4 -4
- package/dist/{server-node-events-Cvgmf8fS.js → server-node-events-BUEZ3py9.js} +4 -4
- package/dist/{status-CwqBkxi2.js → status-BjMiGq0n.js} +1 -1
- package/dist/{status-Dkr4Celv.js → status-CG5iHUJ6.js} +3 -3
- package/dist/{status-DcxWlds6.js → status-CpvzoCOC.js} +1 -1
- package/dist/{status-Ca_VZkZV.js → status-PfvX-BjO.js} +3 -3
- package/dist/{subagent-registry-CncIZPCd.js → subagent-registry-D0IYimMO.js} +148 -34
- package/dist/{synthesis-CxvpkXBW.js → synthesis-BVZ5RJLg.js} +3 -3
- package/dist/{synthesis-lD0Vb_9q.js → synthesis-CBwKBuLy.js} +7 -7
- package/dist/{synthesis-CTC73eY9.js → synthesis-D55QrjAJ.js} +3 -3
- package/dist/{synthesis-DOmJ2Gay.js → synthesis-itgrzpuj.js} +2 -2
- package/dist/{unified-runner-JQaSdhSg.js → unified-runner-BhnvjB1J.js} +163 -49
- package/dist/{update-cli-BO1uw-SU.js → update-cli-CL1_LPBS.js} +10 -10
- package/dist/{update-cli-CplnPSZ5.js → update-cli-D3K4mhrr.js} +9 -9
- package/dist/{update-runner-Df4mjndq.js → update-runner-Bmq67eos.js} +1 -1
- package/dist/{update-runner-DFp9PDMN.js → update-runner-DMucmRlv.js} +1 -1
- package/dist/{web-CCEVjDcU.js → web-B0lZdBBl.js} +3 -3
- package/dist/{web-CZoQ03ZE.js → web-C1HPdY_D.js} +2 -2
- package/dist/{web-BEDc6iEz.js → web-DCO_YCRw.js} +7 -7
- package/dist/{web-Dn33Cd3-.js → web-DmgQtLx3.js} +4 -4
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +6 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +6 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +6 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +6 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +6 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +6 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -53,7 +53,7 @@ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decod
|
|
|
53
53
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
|
|
54
54
|
import { c as normalizeExtraMemoryPaths, m as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Qi-tyvHh.js";
|
|
55
55
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
|
|
56
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
56
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-DdOb0Em2.js";
|
|
57
57
|
import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BuYpmEx-.js";
|
|
58
58
|
import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-CGhw9mO3.js";
|
|
59
59
|
import { t as makeProxyFetch } from "./proxy-D27OUbrW.js";
|
|
@@ -11638,7 +11638,7 @@ async function getMemorySearchManager(params) {
|
|
|
11638
11638
|
const wrapper = new FallbackMemoryManager({
|
|
11639
11639
|
primary,
|
|
11640
11640
|
fallbackFactory: async () => {
|
|
11641
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11641
|
+
const { MemoryIndexManager } = await import("./manager-DdOb0Em2.js").then((n) => n.n);
|
|
11642
11642
|
return await MemoryIndexManager.get(params);
|
|
11643
11643
|
}
|
|
11644
11644
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -11651,7 +11651,7 @@ async function getMemorySearchManager(params) {
|
|
|
11651
11651
|
}
|
|
11652
11652
|
}
|
|
11653
11653
|
try {
|
|
11654
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
11654
|
+
const { MemoryIndexManager } = await import("./manager-DdOb0Em2.js").then((n) => n.n);
|
|
11655
11655
|
return { manager: await MemoryIndexManager.get(params) };
|
|
11656
11656
|
} catch (err) {
|
|
11657
11657
|
return {
|
|
@@ -14964,16 +14964,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
|
|
|
14964
14964
|
|
|
14965
14965
|
//#endregion
|
|
14966
14966
|
//#region src/channels/sender-label.ts
|
|
14967
|
-
function normalize(value) {
|
|
14967
|
+
function normalize$1(value) {
|
|
14968
14968
|
const trimmed = value?.trim();
|
|
14969
14969
|
return trimmed ? trimmed : void 0;
|
|
14970
14970
|
}
|
|
14971
14971
|
function resolveSenderLabel(params) {
|
|
14972
|
-
const name = normalize(params.name);
|
|
14973
|
-
const username = normalize(params.username);
|
|
14974
|
-
const tag = normalize(params.tag);
|
|
14975
|
-
const e164 = normalize(params.e164);
|
|
14976
|
-
const id = normalize(params.id);
|
|
14972
|
+
const name = normalize$1(params.name);
|
|
14973
|
+
const username = normalize$1(params.username);
|
|
14974
|
+
const tag = normalize$1(params.tag);
|
|
14975
|
+
const e164 = normalize$1(params.e164);
|
|
14976
|
+
const id = normalize$1(params.id);
|
|
14977
14977
|
const display = name ?? username ?? tag ?? "";
|
|
14978
14978
|
const idPart = e164 ?? id ?? "";
|
|
14979
14979
|
if (display && idPart && display !== idPart) return `${display} (${idPart})`;
|
|
@@ -36901,7 +36901,7 @@ async function runAgentTurn(params) {
|
|
|
36901
36901
|
function createDefaultDeps() {
|
|
36902
36902
|
return {
|
|
36903
36903
|
sendMessageWhatsApp: async (...args) => {
|
|
36904
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
36904
|
+
const { sendMessageWhatsApp } = await import("./web-B8upqMUo.js");
|
|
36905
36905
|
return await sendMessageWhatsApp(...args);
|
|
36906
36906
|
},
|
|
36907
36907
|
sendMessageTelegram: async (...args) => {
|
|
@@ -54339,7 +54339,7 @@ function loadWebLoginQr() {
|
|
|
54339
54339
|
return webLoginQrPromise;
|
|
54340
54340
|
}
|
|
54341
54341
|
function loadWebChannel() {
|
|
54342
|
-
webChannelPromise ??= import("./web-
|
|
54342
|
+
webChannelPromise ??= import("./web-B8upqMUo.js");
|
|
54343
54343
|
return webChannelPromise;
|
|
54344
54344
|
}
|
|
54345
54345
|
function loadWhatsAppActions() {
|
|
@@ -59821,6 +59821,91 @@ function isToolAllowedByPolicies(name, policies) {
|
|
|
59821
59821
|
return policies.every((policy) => isToolAllowedByPolicyName(name, policy));
|
|
59822
59822
|
}
|
|
59823
59823
|
|
|
59824
|
+
//#endregion
|
|
59825
|
+
//#region src/agents/pi-tools.read-edit-guard.ts
|
|
59826
|
+
const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
|
|
59827
|
+
function readGuardError(filePath) {
|
|
59828
|
+
return /* @__PURE__ */ new Error(`Edit refused: '${filePath}' has not been read in this session. The edit tool requires the agent to read the file first so oldText can match real content rather than hallucinated content.${RETRY_GUIDANCE_SUFFIX$1}`);
|
|
59829
|
+
}
|
|
59830
|
+
function extractPath(args) {
|
|
59831
|
+
if (!args || typeof args !== "object") return;
|
|
59832
|
+
const record = args;
|
|
59833
|
+
const candidate = record.path ?? record.file_path;
|
|
59834
|
+
if (typeof candidate !== "string") return;
|
|
59835
|
+
const trimmed = candidate.trim();
|
|
59836
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
59837
|
+
}
|
|
59838
|
+
function wrapReadToolWithTracker(tool, tracker) {
|
|
59839
|
+
return {
|
|
59840
|
+
...tool,
|
|
59841
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
59842
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
59843
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
59844
|
+
const filePath = extractPath(args);
|
|
59845
|
+
if (filePath) tracker.recordRead(filePath);
|
|
59846
|
+
}
|
|
59847
|
+
return result;
|
|
59848
|
+
}
|
|
59849
|
+
};
|
|
59850
|
+
}
|
|
59851
|
+
function wrapWriteToolWithTracker(tool, tracker) {
|
|
59852
|
+
return {
|
|
59853
|
+
...tool,
|
|
59854
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
59855
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
59856
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
59857
|
+
const filePath = extractPath(args);
|
|
59858
|
+
if (filePath) tracker.recordWrite(filePath);
|
|
59859
|
+
}
|
|
59860
|
+
return result;
|
|
59861
|
+
}
|
|
59862
|
+
};
|
|
59863
|
+
}
|
|
59864
|
+
function wrapEditToolWithGuard(tool, tracker) {
|
|
59865
|
+
return {
|
|
59866
|
+
...tool,
|
|
59867
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
59868
|
+
const filePath = extractPath(args);
|
|
59869
|
+
if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
|
|
59870
|
+
return tool.execute(toolCallId, args, signal, onUpdate);
|
|
59871
|
+
}
|
|
59872
|
+
};
|
|
59873
|
+
}
|
|
59874
|
+
|
|
59875
|
+
//#endregion
|
|
59876
|
+
//#region src/agents/pi-tools.read-edit-tracker.ts
|
|
59877
|
+
function normalize(filePath, workspaceRoot) {
|
|
59878
|
+
if (!workspaceRoot) return filePath;
|
|
59879
|
+
if (path.isAbsolute(filePath)) return path.normalize(filePath);
|
|
59880
|
+
return path.resolve(workspaceRoot, filePath);
|
|
59881
|
+
}
|
|
59882
|
+
function createReadEditTracker(opts = {}) {
|
|
59883
|
+
const observed = /* @__PURE__ */ new Map();
|
|
59884
|
+
const record = (filePath, kind) => {
|
|
59885
|
+
if (typeof filePath !== "string" || !filePath.trim()) return;
|
|
59886
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
59887
|
+
const prior = observed.get(key);
|
|
59888
|
+
if (kind === "written" || prior !== "written") observed.set(key, kind);
|
|
59889
|
+
};
|
|
59890
|
+
return {
|
|
59891
|
+
recordRead: (filePath) => record(filePath, "read"),
|
|
59892
|
+
recordWrite: (filePath) => record(filePath, "written"),
|
|
59893
|
+
observation: (filePath) => {
|
|
59894
|
+
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
59895
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
59896
|
+
return observed.get(key) ?? null;
|
|
59897
|
+
},
|
|
59898
|
+
hasObserved: (filePath) => {
|
|
59899
|
+
if (typeof filePath !== "string" || !filePath.trim()) return false;
|
|
59900
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
59901
|
+
return observed.has(key);
|
|
59902
|
+
},
|
|
59903
|
+
reset: () => {
|
|
59904
|
+
observed.clear();
|
|
59905
|
+
}
|
|
59906
|
+
};
|
|
59907
|
+
}
|
|
59908
|
+
|
|
59824
59909
|
//#endregion
|
|
59825
59910
|
//#region src/media/sniff-mime-from-base64.ts
|
|
59826
59911
|
async function sniffMimeFromBase64(base64) {
|
|
@@ -62832,8 +62917,39 @@ const GatewayToolSchema = Type.Object({
|
|
|
62832
62917
|
baseHash: Type.Optional(Type.String()),
|
|
62833
62918
|
sessionKey: Type.Optional(Type.String()),
|
|
62834
62919
|
note: Type.Optional(Type.String()),
|
|
62835
|
-
restartDelayMs: Type.Optional(Type.Number())
|
|
62920
|
+
restartDelayMs: Type.Optional(Type.Number()),
|
|
62921
|
+
userRequestAcknowledgment: Type.Optional(Type.String())
|
|
62836
62922
|
});
|
|
62923
|
+
/** Actions that mutate gateway state and require explicit user authorization. */
|
|
62924
|
+
const DESTRUCTIVE_ACTIONS = new Set([
|
|
62925
|
+
"config.apply",
|
|
62926
|
+
"config.patch",
|
|
62927
|
+
"update.run"
|
|
62928
|
+
]);
|
|
62929
|
+
/** Minimum length for a meaningful authorization message. */
|
|
62930
|
+
const MIN_AUTHORIZATION_LENGTH = 10;
|
|
62931
|
+
/**
|
|
62932
|
+
* Asserts the user's request was explicitly acknowledged for destructive
|
|
62933
|
+
* actions. Throws a descriptive error if the acknowledgment is missing,
|
|
62934
|
+
* empty, or trivially short.
|
|
62935
|
+
*
|
|
62936
|
+
* NOTE: This is defense-in-depth, not a hard barrier. A determined model
|
|
62937
|
+
* could still populate the field with fabricated text. The barrier exists
|
|
62938
|
+
* to:
|
|
62939
|
+
* 1. Force the agent to deliberately compose a justification (vs. blind
|
|
62940
|
+
* tool invocation).
|
|
62941
|
+
* 2. Provide an audit trail (the acknowledgment is logged with the tool
|
|
62942
|
+
* call args).
|
|
62943
|
+
* 3. Surface for future tightening (e.g., matching against real session
|
|
62944
|
+
* history).
|
|
62945
|
+
*/
|
|
62946
|
+
function assertUserAuthorization(action, params) {
|
|
62947
|
+
if (!DESTRUCTIVE_ACTIONS.has(action)) return;
|
|
62948
|
+
const ack = params.userRequestAcknowledgment;
|
|
62949
|
+
const trimmed = typeof ack === "string" ? ack.trim() : "";
|
|
62950
|
+
if (!trimmed) throw new Error(`Action '${action}' requires an explicit user authorization. Pass userRequestAcknowledgment with a paraphrase of the user's request (e.g., "user said: please update Symi"). If the user did not explicitly request this action, ask them first instead of invoking it.`);
|
|
62951
|
+
if (trimmed.length < MIN_AUTHORIZATION_LENGTH) throw new Error(`Action '${action}' requires a substantive userRequestAcknowledgment (minimum ${MIN_AUTHORIZATION_LENGTH} characters describing the user's request). Received: ${JSON.stringify(trimmed)}.`);
|
|
62952
|
+
}
|
|
62837
62953
|
function createGatewayTool(opts) {
|
|
62838
62954
|
return {
|
|
62839
62955
|
label: "Gateway",
|
|
@@ -62844,6 +62960,7 @@ function createGatewayTool(opts) {
|
|
|
62844
62960
|
execute: async (_toolCallId, args) => {
|
|
62845
62961
|
const params = args;
|
|
62846
62962
|
const action = readStringParam(params, "action", { required: true });
|
|
62963
|
+
assertUserAuthorization(action, params);
|
|
62847
62964
|
if (action === "restart") {
|
|
62848
62965
|
if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
|
|
62849
62966
|
const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
|
|
@@ -70587,33 +70704,34 @@ function createSymiCodingTools(options) {
|
|
|
70587
70704
|
});
|
|
70588
70705
|
if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
|
|
70589
70706
|
const imageSanitization = resolveImageSanitizationLimits(options?.config);
|
|
70707
|
+
const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
|
|
70590
70708
|
const base = codingTools.flatMap((tool) => {
|
|
70591
70709
|
if (tool.name === readTool.name) {
|
|
70592
70710
|
if (sandboxRoot) {
|
|
70593
|
-
const
|
|
70711
|
+
const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
|
|
70594
70712
|
root: sandboxRoot,
|
|
70595
70713
|
bridge: sandboxFsBridge,
|
|
70596
70714
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
70597
70715
|
imageSanitization
|
|
70598
|
-
});
|
|
70599
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
70716
|
+
}), readEditTracker);
|
|
70717
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
|
|
70600
70718
|
}
|
|
70601
|
-
const
|
|
70719
|
+
const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
|
|
70602
70720
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
70603
70721
|
imageSanitization
|
|
70604
|
-
});
|
|
70605
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
70722
|
+
}), readEditTracker);
|
|
70723
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
70606
70724
|
}
|
|
70607
70725
|
if (tool.name === "bash" || tool.name === execToolName) return [];
|
|
70608
70726
|
if (tool.name === "write") {
|
|
70609
70727
|
if (sandboxRoot) return [];
|
|
70610
|
-
const
|
|
70611
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
70728
|
+
const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
|
|
70729
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
70612
70730
|
}
|
|
70613
70731
|
if (tool.name === "edit") {
|
|
70614
70732
|
if (sandboxRoot) return [];
|
|
70615
|
-
const
|
|
70616
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
70733
|
+
const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
|
|
70734
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
70617
70735
|
}
|
|
70618
70736
|
return [tool];
|
|
70619
70737
|
});
|
|
@@ -70656,22 +70774,18 @@ function createSymiCodingTools(options) {
|
|
|
70656
70774
|
} : void 0,
|
|
70657
70775
|
workspaceOnly: applyPatchWorkspaceOnly
|
|
70658
70776
|
});
|
|
70777
|
+
const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
|
|
70778
|
+
root: sandboxRoot,
|
|
70779
|
+
bridge: sandboxFsBridge
|
|
70780
|
+
}), readEditTracker) : null;
|
|
70781
|
+
const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
|
|
70782
|
+
root: sandboxRoot,
|
|
70783
|
+
bridge: sandboxFsBridge
|
|
70784
|
+
}), readEditTracker) : null;
|
|
70659
70785
|
const withHooks = applyToolPolicyPipeline({
|
|
70660
70786
|
tools: applyOwnerOnlyToolPolicy([
|
|
70661
70787
|
...base,
|
|
70662
|
-
...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
70663
|
-
root: sandboxRoot,
|
|
70664
|
-
bridge: sandboxFsBridge
|
|
70665
|
-
}), sandboxRoot) : createSandboxedEditTool({
|
|
70666
|
-
root: sandboxRoot,
|
|
70667
|
-
bridge: sandboxFsBridge
|
|
70668
|
-
}), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
|
|
70669
|
-
root: sandboxRoot,
|
|
70670
|
-
bridge: sandboxFsBridge
|
|
70671
|
-
}), sandboxRoot) : createSandboxedWriteTool({
|
|
70672
|
-
root: sandboxRoot,
|
|
70673
|
-
bridge: sandboxFsBridge
|
|
70674
|
-
})] : [] : [],
|
|
70788
|
+
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
70675
70789
|
...applyPatchTool ? [applyPatchTool] : [],
|
|
70676
70790
|
execTool,
|
|
70677
70791
|
processTool,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./accounts-D9zGZU5t.js";
|
|
2
|
-
import { u as runAgentTurn } from "./reply-
|
|
2
|
+
import { u as runAgentTurn } from "./reply-Cjjf4VYT.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-BbAvhC25.js";
|
|
@@ -49,7 +49,7 @@ import "./image-DFyINnvE.js";
|
|
|
49
49
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
50
50
|
import "./api-key-rotation-CBsLb_4V.js";
|
|
51
51
|
import "./diagnostic-session-state-Wd5tNeQG.js";
|
|
52
|
-
import "./manager-
|
|
52
|
+
import "./manager-DdOb0Em2.js";
|
|
53
53
|
import "./sqlite-CmVrFEYD.js";
|
|
54
54
|
import "./commands-registry-BuYpmEx-.js";
|
|
55
55
|
import "./send-CGhw9mO3.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
|
|
2
|
-
import "./reply-
|
|
2
|
+
import "./reply-Cjjf4VYT.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-BbAvhC25.js";
|
|
@@ -45,12 +45,12 @@ import "./pi-embedded-helpers-BL7ZRhGv.js";
|
|
|
45
45
|
import "./paths-A0xdf3yk.js";
|
|
46
46
|
import "./diagnostic-_oc91gNi.js";
|
|
47
47
|
import "./store-Do3t33-c.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-
|
|
48
|
+
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-BhqGIC7q.js";
|
|
49
49
|
import "./image-DFyINnvE.js";
|
|
50
50
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
51
51
|
import "./api-key-rotation-CBsLb_4V.js";
|
|
52
52
|
import "./diagnostic-session-state-Wd5tNeQG.js";
|
|
53
|
-
import "./manager-
|
|
53
|
+
import "./manager-DdOb0Em2.js";
|
|
54
54
|
import "./sqlite-CmVrFEYD.js";
|
|
55
55
|
import "./commands-registry-BuYpmEx-.js";
|
|
56
56
|
import "./send-CGhw9mO3.js";
|
|
@@ -14,7 +14,7 @@ import "./client-CJIMV1WD.js";
|
|
|
14
14
|
import "./call-M4YyUnwu.js";
|
|
15
15
|
import "./message-channel-C9dERklz.js";
|
|
16
16
|
import "./pairing-token-Byh6drgn.js";
|
|
17
|
-
import "./subagent-registry-
|
|
17
|
+
import "./subagent-registry-D0IYimMO.js";
|
|
18
18
|
import "./sessions-BPD85pWA.js";
|
|
19
19
|
import "./tokens-Csntmwwn.js";
|
|
20
20
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
52
52
|
import "./thinking-8sKPnzpp.js";
|
|
53
53
|
import "./models-config-J1x_DaPn.js";
|
|
54
54
|
import "./reply-prefix-BUN71nd5.js";
|
|
55
|
-
import "./memory-cli-
|
|
56
|
-
import "./manager-
|
|
55
|
+
import "./memory-cli-OW9XfyYu.js";
|
|
56
|
+
import "./manager-QPF0UtOC.js";
|
|
57
57
|
import "./gemini-auth-DEakvf-D.js";
|
|
58
58
|
import "./retry-C4Q_VPOo.js";
|
|
59
59
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -103,7 +103,7 @@ import "./npm-registry-spec-PuS2I1Em.js";
|
|
|
103
103
|
import "./skill-scanner-BV3QHmsf.js";
|
|
104
104
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-B4sNNRaW.js";
|
|
105
105
|
import { t as renderTable } from "./table-Bka4fasy.js";
|
|
106
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
106
|
+
import { t as buildPluginStatusReport } from "./status-CpvzoCOC.js";
|
|
107
107
|
import { n as updateNpmInstalledPlugins } from "./update-DticqU4-.js";
|
|
108
108
|
import os from "node:os";
|
|
109
109
|
import path from "node:path";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import "./reply-
|
|
4
|
+
import "./reply-CgyjcoxC.js";
|
|
5
5
|
import "./registry-Cja8eT7G.js";
|
|
6
6
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
7
7
|
import "./exec-CWkblSrI.js";
|
|
@@ -60,8 +60,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
|
|
|
60
60
|
import "./send-DpMnSIi5.js";
|
|
61
61
|
import "./model-ECsJuJew.js";
|
|
62
62
|
import "./reply-prefix-CE2YmmsD.js";
|
|
63
|
-
import "./memory-cli-
|
|
64
|
-
import "./manager-
|
|
63
|
+
import "./memory-cli-BTByRgM0.js";
|
|
64
|
+
import "./manager-9Mni2AA9.js";
|
|
65
65
|
import "./retry-BoS4e4X_.js";
|
|
66
66
|
import "./sqlite-D55gRQbH.js";
|
|
67
67
|
import "./target-errors-C9e6dMU_.js";
|
|
@@ -107,7 +107,7 @@ import "./npm-registry-spec-B98RgVZF.js";
|
|
|
107
107
|
import "./skill-scanner-BTgjeQBf.js";
|
|
108
108
|
import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BPZKRjsO.js";
|
|
109
109
|
import { t as renderTable } from "./table-BWuvjnmY.js";
|
|
110
|
-
import { t as buildPluginStatusReport } from "./status-
|
|
110
|
+
import { t as buildPluginStatusReport } from "./status-BjMiGq0n.js";
|
|
111
111
|
import { n as updateNpmInstalledPlugins } from "./update-D4uLu0dv.js";
|
|
112
112
|
import fs from "node:fs";
|
|
113
113
|
import os from "node:os";
|
|
@@ -15,7 +15,7 @@ import "./client-CJIMV1WD.js";
|
|
|
15
15
|
import "./call-M4YyUnwu.js";
|
|
16
16
|
import "./message-channel-C9dERklz.js";
|
|
17
17
|
import "./pairing-token-Byh6drgn.js";
|
|
18
|
-
import "./subagent-registry-
|
|
18
|
+
import "./subagent-registry-D0IYimMO.js";
|
|
19
19
|
import "./sessions-BPD85pWA.js";
|
|
20
20
|
import "./tokens-Csntmwwn.js";
|
|
21
21
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
53
53
|
import "./thinking-8sKPnzpp.js";
|
|
54
54
|
import "./models-config-J1x_DaPn.js";
|
|
55
55
|
import "./reply-prefix-BUN71nd5.js";
|
|
56
|
-
import "./memory-cli-
|
|
57
|
-
import "./manager-
|
|
56
|
+
import "./memory-cli-OW9XfyYu.js";
|
|
57
|
+
import "./manager-QPF0UtOC.js";
|
|
58
58
|
import "./gemini-auth-DEakvf-D.js";
|
|
59
59
|
import "./retry-C4Q_VPOo.js";
|
|
60
60
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -100,13 +100,13 @@ import "./prompt-style-BxVdnrLq.js";
|
|
|
100
100
|
import "./pairing-labels-BHx_CdbP.js";
|
|
101
101
|
import "./pi-tools.policy-o0ytjRqu.js";
|
|
102
102
|
import "./catalog-KcLvtTfa.js";
|
|
103
|
-
import "./plugin-registry-
|
|
104
|
-
import { n as resolveCliChannelOptions } from "./channel-options-
|
|
105
|
-
import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-
|
|
106
|
-
import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-
|
|
103
|
+
import "./plugin-registry-Bn9Mj8mP.js";
|
|
104
|
+
import { n as resolveCliChannelOptions } from "./channel-options-Bqc2VCgt.js";
|
|
105
|
+
import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-ByZAz4st.js";
|
|
106
|
+
import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-BiRjJ2Sy.js";
|
|
107
107
|
import { r as setProgramContext } from "./program-context-DeZ44oQ9.js";
|
|
108
108
|
import { t as forceFreePort } from "./ports-DQg7kV5s.js";
|
|
109
|
-
import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-
|
|
109
|
+
import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-Bf46tqiY.js";
|
|
110
110
|
import { Command } from "commander";
|
|
111
111
|
|
|
112
112
|
//#region src/cli/program/context.ts
|
|
@@ -214,7 +214,7 @@ function registerPreActionHooks(program, programVersion) {
|
|
|
214
214
|
commandPath
|
|
215
215
|
});
|
|
216
216
|
if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
|
|
217
|
-
const { ensurePluginRegistryLoaded } = await import("./plugin-registry-
|
|
217
|
+
const { ensurePluginRegistryLoaded } = await import("./plugin-registry-Bn9Mj8mP.js").then((n) => n.n);
|
|
218
218
|
ensurePluginRegistryLoaded();
|
|
219
219
|
}
|
|
220
220
|
});
|
|
@@ -43,7 +43,7 @@ const entries = [
|
|
|
43
43
|
description: "Run, inspect, and query the WebSocket Gateway",
|
|
44
44
|
hasSubcommands: true,
|
|
45
45
|
register: async (program) => {
|
|
46
|
-
(await import("./gateway-cli-
|
|
46
|
+
(await import("./gateway-cli-DsnkTUOp.js")).registerGatewayCli(program);
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
{
|
|
@@ -75,7 +75,7 @@ const entries = [
|
|
|
75
75
|
description: "Discover, scan, and configure models",
|
|
76
76
|
hasSubcommands: true,
|
|
77
77
|
register: async (program) => {
|
|
78
|
-
(await import("./models-cli-
|
|
78
|
+
(await import("./models-cli-pfVmmgpv.js")).registerModelsCli(program);
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
{
|
|
@@ -155,7 +155,7 @@ const entries = [
|
|
|
155
155
|
description: "Manage internal agent hooks",
|
|
156
156
|
hasSubcommands: true,
|
|
157
157
|
register: async (program) => {
|
|
158
|
-
(await import("./hooks-cli-
|
|
158
|
+
(await import("./hooks-cli-DEJe3dUH.js")).registerHooksCli(program);
|
|
159
159
|
}
|
|
160
160
|
},
|
|
161
161
|
{
|
|
@@ -179,7 +179,7 @@ const entries = [
|
|
|
179
179
|
description: "Secure DM pairing (approve inbound requests)",
|
|
180
180
|
hasSubcommands: true,
|
|
181
181
|
register: async (program) => {
|
|
182
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
182
|
+
const { registerPluginCliCommands } = await import("./cli-BpQlSGVs.js");
|
|
183
183
|
registerPluginCliCommands(program, await loadConfig());
|
|
184
184
|
(await import("./pairing-cli-Cl4t3cDV.js")).registerPairingCli(program);
|
|
185
185
|
}
|
|
@@ -189,8 +189,8 @@ const entries = [
|
|
|
189
189
|
description: "Manage Symi plugins and extensions",
|
|
190
190
|
hasSubcommands: true,
|
|
191
191
|
register: async (program) => {
|
|
192
|
-
(await import("./plugins-cli-
|
|
193
|
-
const { registerPluginCliCommands } = await import("./cli-
|
|
192
|
+
(await import("./plugins-cli-CYOQh2DM.js")).registerPluginsCli(program);
|
|
193
|
+
const { registerPluginCliCommands } = await import("./cli-BpQlSGVs.js");
|
|
194
194
|
registerPluginCliCommands(program, await loadConfig());
|
|
195
195
|
}
|
|
196
196
|
},
|
|
@@ -199,7 +199,7 @@ const entries = [
|
|
|
199
199
|
description: "Manage connected chat channels (Telegram, Discord, etc.)",
|
|
200
200
|
hasSubcommands: true,
|
|
201
201
|
register: async (program) => {
|
|
202
|
-
(await import("./channels-cli-
|
|
202
|
+
(await import("./channels-cli-BFJcNLbB.js")).registerChannelsCli(program);
|
|
203
203
|
}
|
|
204
204
|
},
|
|
205
205
|
{
|
|
@@ -231,7 +231,7 @@ const entries = [
|
|
|
231
231
|
description: "Update Symi and inspect update channel status",
|
|
232
232
|
hasSubcommands: true,
|
|
233
233
|
register: async (program) => {
|
|
234
|
-
(await import("./update-cli-
|
|
234
|
+
(await import("./update-cli-D3K4mhrr.js")).registerUpdateCli(program);
|
|
235
235
|
}
|
|
236
236
|
},
|
|
237
237
|
{
|
|
@@ -239,7 +239,7 @@ const entries = [
|
|
|
239
239
|
description: "Generate shell completion script",
|
|
240
240
|
hasSubcommands: false,
|
|
241
241
|
register: async (program) => {
|
|
242
|
-
(await import("./completion-cli-
|
|
242
|
+
(await import("./completion-cli-C8K5J1ld.js").then((n) => n.n)).registerCompletionCli(program);
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
];
|
|
@@ -302,7 +302,7 @@ const coreEntries = [
|
|
|
302
302
|
hasSubcommands: false
|
|
303
303
|
}],
|
|
304
304
|
register: async ({ program }) => {
|
|
305
|
-
(await import("./register.setup-
|
|
305
|
+
(await import("./register.setup-W-oNfOp0.js")).registerSetupCommand(program);
|
|
306
306
|
}
|
|
307
307
|
},
|
|
308
308
|
{
|
|
@@ -312,7 +312,7 @@ const coreEntries = [
|
|
|
312
312
|
hasSubcommands: false
|
|
313
313
|
}],
|
|
314
314
|
register: async ({ program }) => {
|
|
315
|
-
(await import("./register.onboard-
|
|
315
|
+
(await import("./register.onboard-KR_-4TLY.js")).registerOnboardCommand(program);
|
|
316
316
|
}
|
|
317
317
|
},
|
|
318
318
|
{
|
|
@@ -322,7 +322,7 @@ const coreEntries = [
|
|
|
322
322
|
hasSubcommands: false
|
|
323
323
|
}],
|
|
324
324
|
register: async ({ program }) => {
|
|
325
|
-
(await import("./register.configure-
|
|
325
|
+
(await import("./register.configure-BWkkQhpH.js")).registerConfigureCommand(program);
|
|
326
326
|
}
|
|
327
327
|
},
|
|
328
328
|
{
|
|
@@ -332,7 +332,7 @@ const coreEntries = [
|
|
|
332
332
|
hasSubcommands: true
|
|
333
333
|
}],
|
|
334
334
|
register: async ({ program }) => {
|
|
335
|
-
(await import("./config-cli-
|
|
335
|
+
(await import("./config-cli-BPPD3xqE.js")).registerConfigCli(program);
|
|
336
336
|
}
|
|
337
337
|
},
|
|
338
338
|
{
|
|
@@ -359,7 +359,7 @@ const coreEntries = [
|
|
|
359
359
|
}
|
|
360
360
|
],
|
|
361
361
|
register: async ({ program }) => {
|
|
362
|
-
(await import("./register.maintenance-
|
|
362
|
+
(await import("./register.maintenance-DJptz3DR.js")).registerMaintenanceCommands(program);
|
|
363
363
|
}
|
|
364
364
|
},
|
|
365
365
|
{
|
|
@@ -369,7 +369,7 @@ const coreEntries = [
|
|
|
369
369
|
hasSubcommands: true
|
|
370
370
|
}],
|
|
371
371
|
register: async ({ program, ctx }) => {
|
|
372
|
-
(await import("./register.message-
|
|
372
|
+
(await import("./register.message-BDTsiyrW.js")).registerMessageCommands(program, ctx);
|
|
373
373
|
}
|
|
374
374
|
},
|
|
375
375
|
{
|
|
@@ -379,7 +379,7 @@ const coreEntries = [
|
|
|
379
379
|
hasSubcommands: true
|
|
380
380
|
}],
|
|
381
381
|
register: async ({ program }) => {
|
|
382
|
-
(await import("./memory-cli-
|
|
382
|
+
(await import("./memory-cli-BTByRgM0.js").then((n) => n.t)).registerMemoryCli(program);
|
|
383
383
|
}
|
|
384
384
|
},
|
|
385
385
|
{
|
|
@@ -393,7 +393,7 @@ const coreEntries = [
|
|
|
393
393
|
hasSubcommands: true
|
|
394
394
|
}],
|
|
395
395
|
register: async ({ program, ctx }) => {
|
|
396
|
-
(await import("./register.agent-
|
|
396
|
+
(await import("./register.agent-BjaqQA02.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
|
|
397
397
|
}
|
|
398
398
|
},
|
|
399
399
|
{
|
|
@@ -415,7 +415,7 @@ const coreEntries = [
|
|
|
415
415
|
}
|
|
416
416
|
],
|
|
417
417
|
register: async ({ program }) => {
|
|
418
|
-
(await import("./register.status-health-sessions-
|
|
418
|
+
(await import("./register.status-health-sessions-CT_SmmOH.js")).registerStatusHealthSessionsCommands(program);
|
|
419
419
|
}
|
|
420
420
|
},
|
|
421
421
|
{
|
|
@@ -8,15 +8,15 @@ import { t as buildWorkspaceSkillStatus } from "./skills-status-DODCG6UU.js";
|
|
|
8
8
|
import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
|
|
9
9
|
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-M4YyUnwu.js";
|
|
10
10
|
import { l as resolveGatewayBindHost, n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
|
|
11
|
-
import { bn as formatRemainingShort, m as loadSymiPlugins, vn as DEFAULT_OAUTH_WARN_MS, yn as buildAuthHealthSummary } from "./subagent-registry-
|
|
11
|
+
import { bn as formatRemainingShort, m as loadSymiPlugins, vn as DEFAULT_OAUTH_WARN_MS, yn as buildAuthHealthSummary } from "./subagent-registry-D0IYimMO.js";
|
|
12
12
|
import { F as resolveMainSessionKey, H as cleanStaleLockFiles, o as loadSessionStore } from "./sessions-BPD85pWA.js";
|
|
13
13
|
import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
|
|
14
14
|
import { D as DEFAULT_SANDBOX_COMMON_IMAGE, E as DEFAULT_SANDBOX_BROWSER_IMAGE, O as DEFAULT_SANDBOX_IMAGE, p as resolveSandboxScope } from "./sandbox-WWVXeHlA.js";
|
|
15
15
|
import { a as resolveGatewayAuth } from "./auth-BfDMhFAj.js";
|
|
16
16
|
import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXbwLq.js";
|
|
17
17
|
import { c as resolveStorePath, n as resolveSessionFilePath, s as resolveSessionTranscriptsDirForAgent } from "./paths-DNdWAq7b.js";
|
|
18
|
-
import { i as resolveMemoryBackendConfig } from "./memory-cli-
|
|
19
|
-
import { a as resolveMemorySearchConfig } from "./manager-
|
|
18
|
+
import { i as resolveMemoryBackendConfig } from "./memory-cli-OW9XfyYu.js";
|
|
19
|
+
import { a as resolveMemorySearchConfig } from "./manager-QPF0UtOC.js";
|
|
20
20
|
import { n as loadModelCatalog } from "./model-catalog-BuYrTTBn.js";
|
|
21
21
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, m as resolveNodeLaunchAgentLabel } from "./constants-l9TQg-aP.js";
|
|
22
22
|
import { h as randomToken, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel } from "./onboard-helpers-DWDNKmkJ.js";
|
|
@@ -31,16 +31,16 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
|
|
|
31
31
|
import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, o as needsNodeRuntimeMigration, r as SERVICE_AUDIT_CODES, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-Ct8ebNeC.js";
|
|
32
32
|
import { t as readLastGatewayErrorLine } from "./diagnostics-C6xPE2ln.js";
|
|
33
33
|
import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-ClE25QpT.js";
|
|
34
|
-
import { r as healthCommand } from "./health-
|
|
34
|
+
import { r as healthCommand } from "./health-CcV5nKIK.js";
|
|
35
35
|
import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Clf7H-Sm.js";
|
|
36
36
|
import { t as resolveDmAllowState } from "./dm-policy-shared-JiSNSaKz.js";
|
|
37
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
37
|
+
import { t as runGatewayUpdate } from "./update-runner-Bmq67eos.js";
|
|
38
38
|
import { t as resolveAgentSessionDirs } from "./session-dirs-Dgz7kkUM.js";
|
|
39
39
|
import { n as logConfigUpdated } from "./logging-PVQxLC6I.js";
|
|
40
40
|
import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-B2dVxbL7.js";
|
|
41
41
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-ipoPa7o0.js";
|
|
42
42
|
import { t as formatHealthCheckFailure } from "./health-format-DkjSgkDx.js";
|
|
43
|
-
import { n as doctorShellCompletion } from "./doctor-completion-
|
|
43
|
+
import { n as doctorShellCompletion } from "./doctor-completion-woDYSVtY.js";
|
|
44
44
|
import { execFile } from "node:child_process";
|
|
45
45
|
import os from "node:os";
|
|
46
46
|
import path from "node:path";
|