@symerian/symi 2.8.16 → 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/{acp-cli-BgR7mxTS.js → acp-cli-BTu3_kZ1.js} +2 -2
- package/dist/{acp-cli-D1JYg9c1.js → acp-cli-Bav1bRj2.js} +2 -2
- package/dist/{agents-D6V12K_e.js → agents-CvNeiuSB.js} +5 -5
- package/dist/{agents.config-C0iGGY9q.js → agents.config-BCgY5FjE.js} +1 -1
- package/dist/{agents.config-BIIkG8rN.js → agents.config-Ct64cGQ8.js} +1 -1
- package/dist/{audio-preflight-rjCWpcfE.js → audio-preflight-Cb-T0r6e.js} +4 -4
- package/dist/{audit-xiwEIT96.js → audit-C9nq99IR.js} +2 -2
- package/dist/{audit-Dr_8rC6G.js → audit-CuKP86d_.js} +2 -2
- package/dist/{auth-choice-BcCUgEa4.js → auth-choice-ChFU9OCF.js} +2 -2
- package/dist/{auth-choice-jyLLyEpy.js → auth-choice-DmMyKZX4.js} +2 -2
- package/dist/{banner-DSRsscTp.js → banner-Bf46tqiY.js} +1 -1
- package/dist/{browser-cli-IXepRCZR.js → browser-cli-ClgQ-C8E.js} +3 -3
- package/dist/{browser-cli-BQeCPbES.js → browser-cli-DuPPIcuV.js} +3 -3
- 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/{call-BkJK3eYP.js → call-DYfKEdwh.js} +2 -1
- package/dist/{call-CAGvQYXj.js → call-M4YyUnwu.js} +2 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-Cr_if7it.js → channel-options-Bqc2VCgt.js} +1 -1
- package/dist/{channel-options-BSdsxwj0.js → channel-options-D4a0ZJ72.js} +1 -1
- package/dist/{channel-web-C3gcPe4C.js → channel-web-YNC2xS5K.js} +1 -1
- package/dist/{channels-cli-O7MxdB1l.js → channels-cli-BFJcNLbB.js} +9 -9
- package/dist/{channels-cli-Bn6mTlYq.js → channels-cli-h3GnmmM9.js} +9 -9
- package/dist/{chrome-C08Z0XAa.js → chrome-ROtrXlNs.js} +7 -7
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-RIwsXnB-.js → cli-BX54CAM7.js} +6 -6
- package/dist/{cli-CLOf6U-k.js → cli-BpQlSGVs.js} +6 -6
- package/dist/{client-Cmq13-uF.js → client-CJIMV1WD.js} +36 -1
- package/dist/{client-CYsBIR3j.js → client-pd8kwOFJ.js} +36 -1
- package/dist/{command-registry-BiznuVYK.js → command-registry-BiRjJ2Sy.js} +11 -11
- package/dist/{completion-cli-BVG9ZtBG.js → completion-cli-BYXofVqv.js} +2 -2
- package/dist/{completion-cli-D-xVtDhj.js → completion-cli-C8K5J1ld.js} +1 -1
- package/dist/{config-cli-CDTQQFyj.js → config-cli-BPPD3xqE.js} +1 -1
- package/dist/{config-cli-zd2upqe_.js → config-cli-Deoo6r2K.js} +1 -1
- package/dist/{configure-Cu4CiLWY.js → configure-BKHxUAAh.js} +6 -6
- package/dist/{configure-BHdczngQ.js → configure-D4f0P3bH.js} +6 -6
- package/dist/control-ui/css/style.css +130 -0
- package/dist/control-ui/index.html +11 -0
- package/dist/control-ui/js/history.js +288 -8
- package/dist/{cron-cli-Dq2FEfK1.js → cron-cli-BEdmHCWZ.js} +3 -3
- package/dist/{cron-cli-CZCm3aLt.js → cron-cli-C8-Gv5dd.js} +3 -3
- package/dist/{daemon-cli-CweMes2K.js → daemon-cli-BFoJGCHZ.js} +2 -2
- package/dist/{daemon-cli-B2_uIgDM.js → daemon-cli-D6wyb9bo.js} +2 -2
- package/dist/daemon-cli.js +36 -0
- package/dist/{deliver-qUx-eLKt.js → deliver-B0OUq6RP.js} +1 -1
- package/dist/{devices-cli-DeoPyzAd.js → devices-cli-BXc6DPkC.js} +2 -2
- package/dist/{devices-cli-3ui-Wcaj.js → devices-cli-CHt4I-7e.js} +2 -2
- package/dist/{doctor-completion-ClveVbW_.js → doctor-completion-gMWymNcA.js} +1 -1
- package/dist/{doctor-completion-e-Ke-FnA.js → doctor-completion-woDYSVtY.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Bx9loYnQ.js → exec-approvals-cli-BBKVrFTj.js} +4 -4
- package/dist/{exec-approvals-cli-CTEn_Eu_.js → exec-approvals-cli-CKRDAo17.js} +4 -4
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-DGMuMxMT.js → gateway-cli-Bnh42-56.js} +91 -46
- package/dist/{gateway-cli-CBseg7zA.js → gateway-cli-DsnkTUOp.js} +91 -46
- package/dist/{gateway-rpc-DbSbyIcL.js → gateway-rpc-BEfosIsg.js} +1 -1
- package/dist/{gateway-rpc-QsFn5Zr1.js → gateway-rpc-DZrB7Sl_.js} +1 -1
- package/dist/{glass-ui-ws-B0WonpHP.js → glass-ui-ws-0Y0KsBvU.js} +13 -13
- package/dist/{glass-ui-ws-BU6qyCvM.js → glass-ui-ws-uj3DRmL8.js} +13 -13
- package/dist/{health-BrpUi4qW.js → health-CcV5nKIK.js} +2 -2
- package/dist/{health-d4gqJJCY.js → health-Dl2WRoTa.js} +2 -2
- package/dist/{hooks-cli-Dm2SU8AY.js → hooks-cli-CTcHtm_0.js} +7 -7
- package/dist/{hooks-cli-CBStbWME.js → hooks-cli-DEJe3dUH.js} +7 -7
- package/dist/{image-C6rCON9L.js → image-BuVL0jHI.js} +1 -1
- package/dist/index.js +11 -11
- package/dist/llm-slug-generator.js +7 -7
- package/dist/{logs-cli-R4WwQvR2.js → logs-cli-CsHpYc2M.js} +3 -3
- package/dist/{logs-cli-1hn28HCu.js → logs-cli-N5jQvJTm.js} +3 -3
- package/dist/{manager-BOvfAdfG.js → manager-9Mni2AA9.js} +1 -1
- package/dist/{manager-CtwApSQo.js → manager-C-H0XXJq.js} +1 -1
- package/dist/{manager-B-5p7UGu.js → manager-CjW8kPVc.js} +1 -1
- package/dist/{manager-DDboJTtn.js → manager-QPF0UtOC.js} +1 -1
- package/dist/{memory-cli-BOxWccJu.js → memory-cli-BTByRgM0.js} +3 -3
- package/dist/{memory-cli-D2QHGsxh.js → memory-cli-OW9XfyYu.js} +3 -3
- package/dist/{models-Cn1cbmce.js → models-Q1jV8ArL.js} +3 -3
- package/dist/{models-cli-CXW-3Zot.js → models-cli-Cy6H1sFq.js} +8 -8
- package/dist/{models-cli-Cdkkr4--.js → models-cli-pfVmmgpv.js} +7 -7
- package/dist/{node-cli-BBN6PoOG.js → node-cli-BD4E-Y8a.js} +1 -1
- package/dist/{node-cli-BsAzTrAx.js → node-cli-CwnTjFkG.js} +1 -1
- package/dist/{nodes-cli-t3azniiS.js → nodes-cli-DUD8_q_Q.js} +3 -3
- package/dist/{nodes-cli-DE60dv81.js → nodes-cli-Dv0NXhCO.js} +3 -3
- package/dist/{onboard-UB4D1vwP.js → onboard-CvpyaUQd.js} +3 -3
- package/dist/{onboard-BJ9vVhFw.js → onboard-EL8foMiP.js} +3 -3
- package/dist/{onboard-channels-Cfc9EhLj.js → onboard-channels-BRoSUijQ.js} +1 -1
- package/dist/{onboard-channels-Gfgyvx9N.js → onboard-channels-Bupbm6zh.js} +1 -1
- package/dist/{onboard-helpers-B7jBYbCU.js → onboard-helpers-CBxazphs.js} +1 -1
- package/dist/{onboard-helpers-DjlGq6iG.js → onboard-helpers-DWDNKmkJ.js} +1 -1
- package/dist/{onboard-remote-D7wGqONm.js → onboard-remote-DoIKLWXA.js} +1 -1
- package/dist/{onboard-remote-CXuHbtrT.js → onboard-remote-cZrkePlK.js} +1 -1
- package/dist/{onboard-skills-ChQnpMi-.js → onboard-skills-BjGYTueQ.js} +1 -1
- package/dist/{onboard-skills-BDhqz3te.js → onboard-skills-zauvnEui.js} +1 -1
- package/dist/{onboarding-BfSg5GnT.js → onboarding-Ch8WSJ3j.js} +7 -7
- package/dist/{onboarding-Bv89FLSZ.js → onboarding-Dg5ydWSh.js} +7 -7
- package/dist/{onboarding.finalize-DMJTZPb_.js → onboarding.finalize-Bo8-8TtH.js} +11 -11
- package/dist/{onboarding.finalize-B8MFYp8E.js → onboarding.finalize-CCTaCp2s.js} +12 -12
- package/dist/{onboarding.gateway-config-Cm5jIfRz.js → onboarding.gateway-config-Dg12RcXA.js} +3 -3
- package/dist/{onboarding.gateway-config-wAyLcGRu.js → onboarding.gateway-config-uIRsaxMy.js} +3 -3
- package/dist/{pi-embedded-CzKPTG9K.js → pi-embedded-Bl3YkBkI.js} +185 -35
- package/dist/{pi-embedded-helpers-P13adotN.js → pi-embedded-helpers-D1_Sab0M.js} +4 -4
- package/dist/{plugin-registry-CQAtbgft.js → plugin-registry-BVYZLxmo.js} +1 -1
- package/dist/{plugin-registry-R7nyNT_4.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-D1qaoERA.js → channel-web-BhqGIC7q.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +9 -3
- package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +39 -0
- package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -1
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{manager-CVuMChKq.js → manager-DdOb0Em2.js} +1 -1
- package/dist/plugin-sdk/{reply-LZax-i7K.js → reply-Cjjf4VYT.js} +185 -35
- package/dist/plugin-sdk/{synthesis-DnknLqQP.js → synthesis-CZ8BYNXP.js} +2 -2
- package/dist/plugin-sdk/{web-DGGSyBgc.js → web-B8upqMUo.js} +3 -3
- package/dist/{plugins-cli-DGWVBlc8.js → plugins-cli-3h1N5N8n.js} +7 -7
- package/dist/{plugins-cli-CyaM2yPX.js → plugins-cli-CYOQh2DM.js} +7 -7
- package/dist/{program-2jsiC85C.js → program-D3_xE9BL.js} +12 -12
- package/dist/{program-context-DQg-ZH6A.js → program-context-COwsYCbf.js} +30 -30
- package/dist/{prompt-select-styled-CQJkA--o.js → prompt-select-styled-D88AWCeM.js} +8 -8
- package/dist/{prompt-select-styled-Csj7D4id.js → prompt-select-styled-rKPBDv7n.js} +8 -8
- package/dist/{provider-auth-helpers-DSq3qfws.js → provider-auth-helpers-CyZyVx-V.js} +1 -1
- package/dist/{provider-auth-helpers-C1rUolDI.js → provider-auth-helpers-rff7s_gC.js} +1 -1
- package/dist/{push-apns-Dv3XQClG.js → push-apns-BNzgqUl3.js} +1 -1
- package/dist/{push-apns-FvyXV3Um.js → push-apns-d9qKGKPe.js} +1 -1
- package/dist/{pw-ai-CeWN4iD9.js → pw-ai-DWkC5eGA.js} +1 -1
- package/dist/{register.agent-DCIdzwFG.js → register.agent-BjaqQA02.js} +10 -10
- package/dist/{register.agent-Cs5QU2Cd.js → register.agent-D_MON8p-.js} +11 -11
- package/dist/{register.configure-C64fHXoT.js → register.configure-BWkkQhpH.js} +13 -13
- package/dist/{register.configure-BBKyd--9.js → register.configure-UJi9sfNv.js} +13 -13
- package/dist/{register.maintenance-D99fy4mM.js → register.maintenance-ChskcWGz.js} +13 -13
- package/dist/{register.maintenance-DRUMeCun.js → register.maintenance-DJptz3DR.js} +12 -12
- package/dist/{register.message-CelO3y3f.js → register.message-BDTsiyrW.js} +7 -7
- package/dist/{register.message-BL30Nofx.js → register.message-CiadI_oS.js} +7 -7
- package/dist/{register.onboard-Cb9K2U81.js → register.onboard-BflOE1jy.js} +9 -9
- package/dist/{register.onboard-j6fg7rSF.js → register.onboard-KR_-4TLY.js} +9 -9
- package/dist/{register.setup-BfbJZE5C.js → register.setup-Cl0sD25T.js} +9 -9
- package/dist/{register.setup-xyGsh3Fi.js → register.setup-W-oNfOp0.js} +9 -9
- package/dist/{register.status-health-sessions-CpnBFwbx.js → register.status-health-sessions-CCQs235z.js} +9 -9
- package/dist/{register.status-health-sessions-BE4TcJ1J.js → register.status-health-sessions-CT_SmmOH.js} +9 -9
- package/dist/{register.subclis-8cGjLTmN.js → register.subclis-ByZAz4st.js} +20 -20
- package/dist/{reply-CaGCmutq.js → reply-CgyjcoxC.js} +151 -37
- package/dist/{rpc-St4eAsjR.js → rpc-BKlQ97aZ.js} +1 -1
- package/dist/{rpc-C3ZUAjXK.js → rpc-DC4ol5Xa.js} +1 -1
- package/dist/{run-main-BzZuJeMa.js → run-main-xmWpjZL9.js} +20 -20
- package/dist/{runner-D633VT13.js → runner-ecX1WzDt.js} +1 -1
- package/dist/{security-cli-BSvxNP9m.js → security-cli-BfiJ3e0Y.js} +3 -3
- package/dist/{security-cli-B8gavsuQ.js → security-cli-CIB7kqEk.js} +3 -3
- package/dist/{server-methods-DEV38b_O.js → server-methods-CBn954AO.js} +73 -12
- package/dist/{server-methods-BKlZejQC.js → server-methods-DDpCXuOU.js} +73 -12
- package/dist/{server-node-events-3FL5gBKp.js → server-node-events-BBEMSKVE.js} +7 -7
- package/dist/{server-node-events-BX5JLPyV.js → server-node-events-BUEZ3py9.js} +7 -7
- package/dist/{status-h7VP4Vpq.js → status-BjMiGq0n.js} +1 -1
- package/dist/{status-zNfi0s3F.js → status-CG5iHUJ6.js} +6 -6
- package/dist/{status-uBCH1pzQ.js → status-CpvzoCOC.js} +1 -1
- package/dist/{status-L76LBY6B.js → status-PfvX-BjO.js} +6 -6
- package/dist/{subagent-registry-DlIPWOrx.js → subagent-registry-D0IYimMO.js} +151 -37
- package/dist/{synthesis-1XabTYcd.js → synthesis-BVZ5RJLg.js} +6 -6
- package/dist/{synthesis-D1xCmGZi.js → synthesis-CBwKBuLy.js} +7 -7
- package/dist/{synthesis-BfB-Lbjy.js → synthesis-D55QrjAJ.js} +6 -6
- package/dist/{synthesis-D3EObLPS.js → synthesis-itgrzpuj.js} +2 -2
- package/dist/{system-cli-BN9MXNk7.js → system-cli-BERSpUjO.js} +3 -3
- package/dist/{system-cli-CD5latLh.js → system-cli-C61hzNPk.js} +3 -3
- package/dist/{tui-DLkE0D7e.js → tui-CI_zqapL.js} +2 -2
- package/dist/{tui-Cu4TZK3I.js → tui-Dg_cvgVP.js} +2 -2
- package/dist/{tui-cli-DC9Bq-N_.js → tui-cli-BD1cbShC.js} +3 -3
- package/dist/{tui-cli-BfuEq3Q-.js → tui-cli-DtBW_VCL.js} +3 -3
- package/dist/{unified-runner-KFxqPxWe.js → unified-runner-BhnvjB1J.js} +199 -49
- package/dist/{update-cli-CwtAWyeY.js → update-cli-CL1_LPBS.js} +14 -14
- package/dist/{update-cli-bTfRfI4b.js → update-cli-D3K4mhrr.js} +13 -13
- package/dist/{update-runner-DeT8NIX6.js → update-runner-Bmq67eos.js} +1 -1
- package/dist/{update-runner-BixvbAbN.js → update-runner-DMucmRlv.js} +1 -1
- package/dist/{web-CO0AUYgu.js → web-B0lZdBBl.js} +6 -6
- package/dist/{web-Bwrtjkmy.js → web-C1HPdY_D.js} +2 -2
- package/dist/{web-YSRcfzpP.js → web-DCO_YCRw.js} +7 -7
- package/dist/{web-N4FG6nyF.js → web-DmgQtLx3.js} +7 -7
- 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 +12 -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 +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -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 +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
|
@@ -10,10 +10,10 @@ import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C a
|
|
|
10
10
|
import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
|
|
11
11
|
import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
|
|
12
12
|
import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
|
|
13
|
-
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-
|
|
13
|
+
import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-D1_Sab0M.js";
|
|
14
14
|
import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BkZ9HOKT.js";
|
|
15
15
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-CBCGTsIb.js";
|
|
16
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
16
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-ROtrXlNs.js";
|
|
17
17
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-CXxrn_e2.js";
|
|
18
18
|
import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
|
|
19
19
|
import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
|
|
@@ -31,16 +31,16 @@ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i
|
|
|
31
31
|
import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-C0QjmPaf.js";
|
|
32
32
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
|
|
33
33
|
import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
|
|
34
|
-
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-
|
|
34
|
+
import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-B0OUq6RP.js";
|
|
35
35
|
import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BUcR3Meg.js";
|
|
36
36
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
|
|
37
|
-
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-
|
|
37
|
+
import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BuVL0jHI.js";
|
|
38
38
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-RXOlh8ar.js";
|
|
39
39
|
import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
|
|
40
40
|
import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-Bb4it0te.js";
|
|
41
41
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CuZX_Q4t.js";
|
|
42
42
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CvEIl6_d.js";
|
|
43
|
-
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-
|
|
43
|
+
import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CjW8kPVc.js";
|
|
44
44
|
import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DjnxpF_K.js";
|
|
45
45
|
import { n as retryAsync } from "./retry-B-y5suGA.js";
|
|
46
46
|
import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-DeJTztcq.js";
|
|
@@ -50,7 +50,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CVCB
|
|
|
50
50
|
import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-ClipCZ9s.js";
|
|
51
51
|
import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-7tMVY7D_.js";
|
|
52
52
|
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-DxbSTLNQ.js";
|
|
53
|
-
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-
|
|
53
|
+
import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-ecX1WzDt.js";
|
|
54
54
|
import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-DG2lcozb.js";
|
|
55
55
|
import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZQU0r3y.js";
|
|
56
56
|
import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-ClslA6GS.js";
|
|
@@ -81,7 +81,7 @@ import AjvPkg from "ajv";
|
|
|
81
81
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
82
82
|
import { createServer } from "node:http";
|
|
83
83
|
import { ProxyAgent, fetch as fetch$1 } from "undici";
|
|
84
|
-
import WebSocket
|
|
84
|
+
import WebSocket, { WebSocket as WebSocket$1 } from "ws";
|
|
85
85
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
86
86
|
import { EdgeTTS } from "node-edge-tts";
|
|
87
87
|
import { createJiti } from "jiti";
|
|
@@ -4340,7 +4340,7 @@ async function getMemorySearchManager(params) {
|
|
|
4340
4340
|
const wrapper = new FallbackMemoryManager({
|
|
4341
4341
|
primary,
|
|
4342
4342
|
fallbackFactory: async () => {
|
|
4343
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4343
|
+
const { MemoryIndexManager } = await import("./manager-CjW8kPVc.js").then((n) => n.n);
|
|
4344
4344
|
return await MemoryIndexManager.get(params);
|
|
4345
4345
|
}
|
|
4346
4346
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4353,7 +4353,7 @@ async function getMemorySearchManager(params) {
|
|
|
4353
4353
|
}
|
|
4354
4354
|
}
|
|
4355
4355
|
try {
|
|
4356
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4356
|
+
const { MemoryIndexManager } = await import("./manager-CjW8kPVc.js").then((n) => n.n);
|
|
4357
4357
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4358
4358
|
} catch (err) {
|
|
4359
4359
|
return {
|
|
@@ -8603,6 +8603,40 @@ const SessionsPreviewParamsSchema = Type.Object({
|
|
|
8603
8603
|
limit: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
8604
8604
|
maxChars: Type.Optional(Type.Integer({ minimum: 20 }))
|
|
8605
8605
|
}, { additionalProperties: false });
|
|
8606
|
+
/**
|
|
8607
|
+
* Hybrid (vector + FTS) search across session transcripts. Piggybacks on
|
|
8608
|
+
* the memory-search infrastructure with a `source = "sessions"` filter and
|
|
8609
|
+
* remaps the raw chunk path back to the owning session-key via the agent's
|
|
8610
|
+
* sessions.json index.
|
|
8611
|
+
*/
|
|
8612
|
+
const SessionsSearchParamsSchema = Type.Object({
|
|
8613
|
+
query: Type.String({ minLength: 1 }),
|
|
8614
|
+
limit: Type.Optional(Type.Integer({
|
|
8615
|
+
minimum: 1,
|
|
8616
|
+
maximum: 50
|
|
8617
|
+
})),
|
|
8618
|
+
minScore: Type.Optional(Type.Number({
|
|
8619
|
+
minimum: 0,
|
|
8620
|
+
maximum: 1
|
|
8621
|
+
})),
|
|
8622
|
+
agentId: Type.Optional(NonEmptyString)
|
|
8623
|
+
}, { additionalProperties: false });
|
|
8624
|
+
const SessionsSearchMatchSchema = Type.Object({
|
|
8625
|
+
sessionKey: Type.Union([Type.String(), Type.Null()]),
|
|
8626
|
+
sessionId: Type.String(),
|
|
8627
|
+
file: Type.String(),
|
|
8628
|
+
lineStart: Type.Integer(),
|
|
8629
|
+
lineEnd: Type.Integer(),
|
|
8630
|
+
snippet: Type.String(),
|
|
8631
|
+
score: Type.Number(),
|
|
8632
|
+
label: Type.Optional(Type.String()),
|
|
8633
|
+
displayName: Type.Optional(Type.String()),
|
|
8634
|
+
updatedAt: Type.Optional(Type.Integer())
|
|
8635
|
+
}, { additionalProperties: false });
|
|
8636
|
+
const SessionsSearchResultSchema = Type.Object({
|
|
8637
|
+
matches: Type.Array(SessionsSearchMatchSchema),
|
|
8638
|
+
agentId: Type.String()
|
|
8639
|
+
}, { additionalProperties: false });
|
|
8606
8640
|
const SessionsResolveParamsSchema = Type.Object({
|
|
8607
8641
|
key: Type.Optional(NonEmptyString),
|
|
8608
8642
|
sessionId: Type.Optional(NonEmptyString),
|
|
@@ -8815,6 +8849,7 @@ const validateNodeEventParams = ajv.compile(NodeEventParamsSchema);
|
|
|
8815
8849
|
const validatePushTestParams = ajv.compile(PushTestParamsSchema);
|
|
8816
8850
|
const validateSessionsListParams = ajv.compile(SessionsListParamsSchema);
|
|
8817
8851
|
const validateSessionsPreviewParams = ajv.compile(SessionsPreviewParamsSchema);
|
|
8852
|
+
const validateSessionsSearchParams = ajv.compile(SessionsSearchParamsSchema);
|
|
8818
8853
|
const validateSessionsResolveParams = ajv.compile(SessionsResolveParamsSchema);
|
|
8819
8854
|
const validateSessionsPatchParams = ajv.compile(SessionsPatchParamsSchema);
|
|
8820
8855
|
const validateSessionsResetParams = ajv.compile(SessionsResetParamsSchema);
|
|
@@ -8920,7 +8955,7 @@ var GatewayClient = class {
|
|
|
8920
8955
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
8921
8956
|
});
|
|
8922
8957
|
}
|
|
8923
|
-
this.ws = new WebSocket(url, wsOptions);
|
|
8958
|
+
this.ws = new WebSocket$1(url, wsOptions);
|
|
8924
8959
|
this.ws.on("open", () => {
|
|
8925
8960
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
8926
8961
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -9139,7 +9174,7 @@ var GatewayClient = class {
|
|
|
9139
9174
|
return null;
|
|
9140
9175
|
}
|
|
9141
9176
|
async request(method, params, opts) {
|
|
9142
|
-
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
9177
|
+
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
9143
9178
|
const id = randomUUID();
|
|
9144
9179
|
const frame = {
|
|
9145
9180
|
type: "req",
|
|
@@ -9210,6 +9245,7 @@ const METHOD_SCOPE_GROUPS = {
|
|
|
9210
9245
|
"voicewake.get",
|
|
9211
9246
|
"sessions.list",
|
|
9212
9247
|
"sessions.preview",
|
|
9248
|
+
"sessions.search",
|
|
9213
9249
|
"sessions.resolve",
|
|
9214
9250
|
"sessions.usage",
|
|
9215
9251
|
"sessions.usage.timeseries",
|
|
@@ -10407,7 +10443,7 @@ async function routeReply(params) {
|
|
|
10407
10443
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10408
10444
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10409
10445
|
try {
|
|
10410
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10446
|
+
const { deliverOutboundPayloads } = await import("./deliver-B0OUq6RP.js").then((n) => n.n);
|
|
10411
10447
|
return {
|
|
10412
10448
|
ok: true,
|
|
10413
10449
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -13292,16 +13328,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
|
|
|
13292
13328
|
|
|
13293
13329
|
//#endregion
|
|
13294
13330
|
//#region src/channels/sender-label.ts
|
|
13295
|
-
function normalize(value) {
|
|
13331
|
+
function normalize$1(value) {
|
|
13296
13332
|
const trimmed = value?.trim();
|
|
13297
13333
|
return trimmed ? trimmed : void 0;
|
|
13298
13334
|
}
|
|
13299
13335
|
function resolveSenderLabel(params) {
|
|
13300
|
-
const name = normalize(params.name);
|
|
13301
|
-
const username = normalize(params.username);
|
|
13302
|
-
const tag = normalize(params.tag);
|
|
13303
|
-
const e164 = normalize(params.e164);
|
|
13304
|
-
const id = normalize(params.id);
|
|
13336
|
+
const name = normalize$1(params.name);
|
|
13337
|
+
const username = normalize$1(params.username);
|
|
13338
|
+
const tag = normalize$1(params.tag);
|
|
13339
|
+
const e164 = normalize$1(params.e164);
|
|
13340
|
+
const id = normalize$1(params.id);
|
|
13305
13341
|
const display = name ?? username ?? tag ?? "";
|
|
13306
13342
|
const idPart = e164 ?? id ?? "";
|
|
13307
13343
|
if (display && idPart && display !== idPart) return `${display} (${idPart})`;
|
|
@@ -32959,8 +32995,39 @@ const GatewayToolSchema = Type.Object({
|
|
|
32959
32995
|
baseHash: Type.Optional(Type.String()),
|
|
32960
32996
|
sessionKey: Type.Optional(Type.String()),
|
|
32961
32997
|
note: Type.Optional(Type.String()),
|
|
32962
|
-
restartDelayMs: Type.Optional(Type.Number())
|
|
32998
|
+
restartDelayMs: Type.Optional(Type.Number()),
|
|
32999
|
+
userRequestAcknowledgment: Type.Optional(Type.String())
|
|
32963
33000
|
});
|
|
33001
|
+
/** Actions that mutate gateway state and require explicit user authorization. */
|
|
33002
|
+
const DESTRUCTIVE_ACTIONS = new Set([
|
|
33003
|
+
"config.apply",
|
|
33004
|
+
"config.patch",
|
|
33005
|
+
"update.run"
|
|
33006
|
+
]);
|
|
33007
|
+
/** Minimum length for a meaningful authorization message. */
|
|
33008
|
+
const MIN_AUTHORIZATION_LENGTH = 10;
|
|
33009
|
+
/**
|
|
33010
|
+
* Asserts the user's request was explicitly acknowledged for destructive
|
|
33011
|
+
* actions. Throws a descriptive error if the acknowledgment is missing,
|
|
33012
|
+
* empty, or trivially short.
|
|
33013
|
+
*
|
|
33014
|
+
* NOTE: This is defense-in-depth, not a hard barrier. A determined model
|
|
33015
|
+
* could still populate the field with fabricated text. The barrier exists
|
|
33016
|
+
* to:
|
|
33017
|
+
* 1. Force the agent to deliberately compose a justification (vs. blind
|
|
33018
|
+
* tool invocation).
|
|
33019
|
+
* 2. Provide an audit trail (the acknowledgment is logged with the tool
|
|
33020
|
+
* call args).
|
|
33021
|
+
* 3. Surface for future tightening (e.g., matching against real session
|
|
33022
|
+
* history).
|
|
33023
|
+
*/
|
|
33024
|
+
function assertUserAuthorization(action, params) {
|
|
33025
|
+
if (!DESTRUCTIVE_ACTIONS.has(action)) return;
|
|
33026
|
+
const ack = params.userRequestAcknowledgment;
|
|
33027
|
+
const trimmed = typeof ack === "string" ? ack.trim() : "";
|
|
33028
|
+
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.`);
|
|
33029
|
+
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)}.`);
|
|
33030
|
+
}
|
|
32964
33031
|
function createGatewayTool(opts) {
|
|
32965
33032
|
return {
|
|
32966
33033
|
label: "Gateway",
|
|
@@ -32971,6 +33038,7 @@ function createGatewayTool(opts) {
|
|
|
32971
33038
|
execute: async (_toolCallId, args) => {
|
|
32972
33039
|
const params = args;
|
|
32973
33040
|
const action = readStringParam(params, "action", { required: true });
|
|
33041
|
+
assertUserAuthorization(action, params);
|
|
32974
33042
|
if (action === "restart") {
|
|
32975
33043
|
if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
|
|
32976
33044
|
const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
|
|
@@ -44168,7 +44236,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44168
44236
|
return;
|
|
44169
44237
|
}
|
|
44170
44238
|
try {
|
|
44171
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44239
|
+
const { deliverOutboundPayloads } = await import("./deliver-B0OUq6RP.js").then((n) => n.n);
|
|
44172
44240
|
await deliverOutboundPayloads({
|
|
44173
44241
|
cfg: params.cfg,
|
|
44174
44242
|
channel,
|
|
@@ -47614,7 +47682,7 @@ async function describeStickerImage(params) {
|
|
|
47614
47682
|
logVerbose(`telegram: describing sticker with ${provider}/${model}`);
|
|
47615
47683
|
try {
|
|
47616
47684
|
const buffer = await fs$1.readFile(imagePath);
|
|
47617
|
-
const { describeImageWithModel } = await import("./image-
|
|
47685
|
+
const { describeImageWithModel } = await import("./image-BuVL0jHI.js").then((n) => n.n);
|
|
47618
47686
|
return (await describeImageWithModel({
|
|
47619
47687
|
buffer,
|
|
47620
47688
|
fileName: "sticker.webp",
|
|
@@ -50363,7 +50431,7 @@ async function preflightDiscordMessage(params) {
|
|
|
50363
50431
|
let preflightTranscript;
|
|
50364
50432
|
const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
|
|
50365
50433
|
if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
|
|
50366
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
50434
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-Cb-T0r6e.js");
|
|
50367
50435
|
const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
|
|
50368
50436
|
if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
|
|
50369
50437
|
ctx: {
|
|
@@ -54369,7 +54437,7 @@ function isVoiceChannelType(type) {
|
|
|
54369
54437
|
function createDefaultDeps() {
|
|
54370
54438
|
return {
|
|
54371
54439
|
sendMessageWhatsApp: async (...args) => {
|
|
54372
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
54440
|
+
const { sendMessageWhatsApp } = await import("./web-DCO_YCRw.js");
|
|
54373
54441
|
return await sendMessageWhatsApp(...args);
|
|
54374
54442
|
},
|
|
54375
54443
|
sendMessageTelegram: async (...args) => {
|
|
@@ -57274,7 +57342,7 @@ function createDiscordGatewayPlugin(params) {
|
|
|
57274
57342
|
super(options);
|
|
57275
57343
|
}
|
|
57276
57344
|
createWebSocket(url) {
|
|
57277
|
-
return new WebSocket
|
|
57345
|
+
return new WebSocket(url, { agent });
|
|
57278
57346
|
}
|
|
57279
57347
|
}
|
|
57280
57348
|
return new ProxyGatewayPlugin();
|
|
@@ -67492,7 +67560,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
|
|
|
67492
67560
|
const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
|
|
67493
67561
|
let preflightTranscript;
|
|
67494
67562
|
if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
|
|
67495
|
-
const { transcribeFirstAudio } = await import("./audio-preflight-
|
|
67563
|
+
const { transcribeFirstAudio } = await import("./audio-preflight-Cb-T0r6e.js");
|
|
67496
67564
|
preflightTranscript = await transcribeFirstAudio({
|
|
67497
67565
|
ctx: {
|
|
67498
67566
|
MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
|
|
@@ -69649,7 +69717,7 @@ function loadWebLoginQr() {
|
|
|
69649
69717
|
return webLoginQrPromise;
|
|
69650
69718
|
}
|
|
69651
69719
|
function loadWebChannel() {
|
|
69652
|
-
webChannelPromise ??= import("./web-
|
|
69720
|
+
webChannelPromise ??= import("./web-DCO_YCRw.js");
|
|
69653
69721
|
return webChannelPromise;
|
|
69654
69722
|
}
|
|
69655
69723
|
function loadWhatsAppActions() {
|
|
@@ -71118,6 +71186,91 @@ function isToolAllowedByPolicies(name, policies) {
|
|
|
71118
71186
|
return policies.every((policy) => isToolAllowedByPolicyName(name, policy));
|
|
71119
71187
|
}
|
|
71120
71188
|
|
|
71189
|
+
//#endregion
|
|
71190
|
+
//#region src/agents/pi-tools.read-edit-guard.ts
|
|
71191
|
+
const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
|
|
71192
|
+
function readGuardError(filePath) {
|
|
71193
|
+
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}`);
|
|
71194
|
+
}
|
|
71195
|
+
function extractPath(args) {
|
|
71196
|
+
if (!args || typeof args !== "object") return;
|
|
71197
|
+
const record = args;
|
|
71198
|
+
const candidate = record.path ?? record.file_path;
|
|
71199
|
+
if (typeof candidate !== "string") return;
|
|
71200
|
+
const trimmed = candidate.trim();
|
|
71201
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
71202
|
+
}
|
|
71203
|
+
function wrapReadToolWithTracker(tool, tracker) {
|
|
71204
|
+
return {
|
|
71205
|
+
...tool,
|
|
71206
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
71207
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
71208
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
71209
|
+
const filePath = extractPath(args);
|
|
71210
|
+
if (filePath) tracker.recordRead(filePath);
|
|
71211
|
+
}
|
|
71212
|
+
return result;
|
|
71213
|
+
}
|
|
71214
|
+
};
|
|
71215
|
+
}
|
|
71216
|
+
function wrapWriteToolWithTracker(tool, tracker) {
|
|
71217
|
+
return {
|
|
71218
|
+
...tool,
|
|
71219
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
71220
|
+
const result = await tool.execute(toolCallId, args, signal, onUpdate);
|
|
71221
|
+
if (!(!!result && typeof result === "object" && result.isError === true)) {
|
|
71222
|
+
const filePath = extractPath(args);
|
|
71223
|
+
if (filePath) tracker.recordWrite(filePath);
|
|
71224
|
+
}
|
|
71225
|
+
return result;
|
|
71226
|
+
}
|
|
71227
|
+
};
|
|
71228
|
+
}
|
|
71229
|
+
function wrapEditToolWithGuard(tool, tracker) {
|
|
71230
|
+
return {
|
|
71231
|
+
...tool,
|
|
71232
|
+
execute: async (toolCallId, args, signal, onUpdate) => {
|
|
71233
|
+
const filePath = extractPath(args);
|
|
71234
|
+
if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
|
|
71235
|
+
return tool.execute(toolCallId, args, signal, onUpdate);
|
|
71236
|
+
}
|
|
71237
|
+
};
|
|
71238
|
+
}
|
|
71239
|
+
|
|
71240
|
+
//#endregion
|
|
71241
|
+
//#region src/agents/pi-tools.read-edit-tracker.ts
|
|
71242
|
+
function normalize(filePath, workspaceRoot) {
|
|
71243
|
+
if (!workspaceRoot) return filePath;
|
|
71244
|
+
if (path.isAbsolute(filePath)) return path.normalize(filePath);
|
|
71245
|
+
return path.resolve(workspaceRoot, filePath);
|
|
71246
|
+
}
|
|
71247
|
+
function createReadEditTracker(opts = {}) {
|
|
71248
|
+
const observed = /* @__PURE__ */ new Map();
|
|
71249
|
+
const record = (filePath, kind) => {
|
|
71250
|
+
if (typeof filePath !== "string" || !filePath.trim()) return;
|
|
71251
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
71252
|
+
const prior = observed.get(key);
|
|
71253
|
+
if (kind === "written" || prior !== "written") observed.set(key, kind);
|
|
71254
|
+
};
|
|
71255
|
+
return {
|
|
71256
|
+
recordRead: (filePath) => record(filePath, "read"),
|
|
71257
|
+
recordWrite: (filePath) => record(filePath, "written"),
|
|
71258
|
+
observation: (filePath) => {
|
|
71259
|
+
if (typeof filePath !== "string" || !filePath.trim()) return null;
|
|
71260
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
71261
|
+
return observed.get(key) ?? null;
|
|
71262
|
+
},
|
|
71263
|
+
hasObserved: (filePath) => {
|
|
71264
|
+
if (typeof filePath !== "string" || !filePath.trim()) return false;
|
|
71265
|
+
const key = normalize(filePath.trim(), opts.workspaceRoot);
|
|
71266
|
+
return observed.has(key);
|
|
71267
|
+
},
|
|
71268
|
+
reset: () => {
|
|
71269
|
+
observed.clear();
|
|
71270
|
+
}
|
|
71271
|
+
};
|
|
71272
|
+
}
|
|
71273
|
+
|
|
71121
71274
|
//#endregion
|
|
71122
71275
|
//#region src/media/sniff-mime-from-base64.ts
|
|
71123
71276
|
async function sniffMimeFromBase64(base64) {
|
|
@@ -71745,33 +71898,34 @@ function createSymiCodingTools(options) {
|
|
|
71745
71898
|
});
|
|
71746
71899
|
if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
|
|
71747
71900
|
const imageSanitization = resolveImageSanitizationLimits(options?.config);
|
|
71901
|
+
const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
|
|
71748
71902
|
const base = codingTools.flatMap((tool) => {
|
|
71749
71903
|
if (tool.name === readTool.name) {
|
|
71750
71904
|
if (sandboxRoot) {
|
|
71751
|
-
const
|
|
71905
|
+
const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
|
|
71752
71906
|
root: sandboxRoot,
|
|
71753
71907
|
bridge: sandboxFsBridge,
|
|
71754
71908
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
71755
71909
|
imageSanitization
|
|
71756
|
-
});
|
|
71757
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71910
|
+
}), readEditTracker);
|
|
71911
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
|
|
71758
71912
|
}
|
|
71759
|
-
const
|
|
71913
|
+
const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
|
|
71760
71914
|
modelContextWindowTokens: options?.modelContextWindowTokens,
|
|
71761
71915
|
imageSanitization
|
|
71762
|
-
});
|
|
71763
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71916
|
+
}), readEditTracker);
|
|
71917
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
71764
71918
|
}
|
|
71765
71919
|
if (tool.name === "bash" || tool.name === execToolName) return [];
|
|
71766
71920
|
if (tool.name === "write") {
|
|
71767
71921
|
if (sandboxRoot) return [];
|
|
71768
|
-
const
|
|
71769
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71922
|
+
const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
|
|
71923
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
|
|
71770
71924
|
}
|
|
71771
71925
|
if (tool.name === "edit") {
|
|
71772
71926
|
if (sandboxRoot) return [];
|
|
71773
|
-
const
|
|
71774
|
-
return [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71927
|
+
const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
|
|
71928
|
+
return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
|
|
71775
71929
|
}
|
|
71776
71930
|
return [tool];
|
|
71777
71931
|
});
|
|
@@ -71814,22 +71968,18 @@ function createSymiCodingTools(options) {
|
|
|
71814
71968
|
} : void 0,
|
|
71815
71969
|
workspaceOnly: applyPatchWorkspaceOnly
|
|
71816
71970
|
});
|
|
71971
|
+
const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
|
|
71972
|
+
root: sandboxRoot,
|
|
71973
|
+
bridge: sandboxFsBridge
|
|
71974
|
+
}), readEditTracker) : null;
|
|
71975
|
+
const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
|
|
71976
|
+
root: sandboxRoot,
|
|
71977
|
+
bridge: sandboxFsBridge
|
|
71978
|
+
}), readEditTracker) : null;
|
|
71817
71979
|
const withHooks = applyToolPolicyPipeline({
|
|
71818
71980
|
tools: applyOwnerOnlyToolPolicy([
|
|
71819
71981
|
...base,
|
|
71820
|
-
...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(
|
|
71821
|
-
root: sandboxRoot,
|
|
71822
|
-
bridge: sandboxFsBridge
|
|
71823
|
-
}), sandboxRoot) : createSandboxedEditTool({
|
|
71824
|
-
root: sandboxRoot,
|
|
71825
|
-
bridge: sandboxFsBridge
|
|
71826
|
-
}), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
|
|
71827
|
-
root: sandboxRoot,
|
|
71828
|
-
bridge: sandboxFsBridge
|
|
71829
|
-
}), sandboxRoot) : createSandboxedWriteTool({
|
|
71830
|
-
root: sandboxRoot,
|
|
71831
|
-
bridge: sandboxFsBridge
|
|
71832
|
-
})] : [] : [],
|
|
71982
|
+
...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
|
|
71833
71983
|
...applyPatchTool ? [applyPatchTool] : [],
|
|
71834
71984
|
execTool,
|
|
71835
71985
|
processTool,
|
|
@@ -13,11 +13,11 @@ import "./skills-D_oCiaQn.js";
|
|
|
13
13
|
import "./manifest-registry-D5bnO5uA.js";
|
|
14
14
|
import "./skills-status-DODCG6UU.js";
|
|
15
15
|
import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
|
|
16
|
-
import "./client-
|
|
17
|
-
import "./call-
|
|
16
|
+
import "./client-CJIMV1WD.js";
|
|
17
|
+
import "./call-M4YyUnwu.js";
|
|
18
18
|
import "./message-channel-C9dERklz.js";
|
|
19
19
|
import "./pairing-token-Byh6drgn.js";
|
|
20
|
-
import { wt as trimLogTail } from "./subagent-registry-
|
|
20
|
+
import { wt as trimLogTail } from "./subagent-registry-D0IYimMO.js";
|
|
21
21
|
import "./sessions-BPD85pWA.js";
|
|
22
22
|
import "./tokens-Csntmwwn.js";
|
|
23
23
|
import "./plugins-CwSlLxM8.js";
|
|
@@ -55,8 +55,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
55
55
|
import "./thinking-8sKPnzpp.js";
|
|
56
56
|
import "./models-config-J1x_DaPn.js";
|
|
57
57
|
import "./reply-prefix-BUN71nd5.js";
|
|
58
|
-
import "./memory-cli-
|
|
59
|
-
import "./manager-
|
|
58
|
+
import "./memory-cli-OW9XfyYu.js";
|
|
59
|
+
import "./manager-QPF0UtOC.js";
|
|
60
60
|
import "./gemini-auth-DEakvf-D.js";
|
|
61
61
|
import "./retry-C4Q_VPOo.js";
|
|
62
62
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -99,7 +99,7 @@ import "./cli-utils-CI_KkT8q.js";
|
|
|
99
99
|
import { t as formatHelpExamples } from "./help-format-nY42tGMB.js";
|
|
100
100
|
import "./progress-HK2tT7Yf.js";
|
|
101
101
|
import "./replies-Sxbew659.js";
|
|
102
|
-
import "./onboard-helpers-
|
|
102
|
+
import "./onboard-helpers-DWDNKmkJ.js";
|
|
103
103
|
import { n as stylePromptMessage } from "./prompt-style-BxVdnrLq.js";
|
|
104
104
|
import "./pairing-labels-BHx_CdbP.js";
|
|
105
105
|
import "./pi-tools.policy-o0ytjRqu.js";
|
|
@@ -112,32 +112,32 @@ import "./npm-registry-spec-PuS2I1Em.js";
|
|
|
112
112
|
import "./skill-scanner-BV3QHmsf.js";
|
|
113
113
|
import "./installs-B4sNNRaW.js";
|
|
114
114
|
import "./channels-status-issues-B-ssmZ8E.js";
|
|
115
|
-
import "./register.subclis-
|
|
116
|
-
import "./command-registry-
|
|
115
|
+
import "./register.subclis-ByZAz4st.js";
|
|
116
|
+
import "./command-registry-BiRjJ2Sy.js";
|
|
117
117
|
import "./program-context-DeZ44oQ9.js";
|
|
118
|
-
import { r as installCompletion } from "./completion-cli-
|
|
118
|
+
import { r as installCompletion } from "./completion-cli-BYXofVqv.js";
|
|
119
119
|
import "./daemon-runtime-D_elkkFW.js";
|
|
120
120
|
import { r as parseSemver } from "./runtime-guard-BofkqBu7.js";
|
|
121
121
|
import "./systemd-CJ5L2ee4.js";
|
|
122
122
|
import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
|
|
123
123
|
import "./lifecycle-core-v3lT0Ymo.js";
|
|
124
124
|
import "./systemd-hints-Ct8ebNeC.js";
|
|
125
|
-
import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-
|
|
125
|
+
import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-BFoJGCHZ.js";
|
|
126
126
|
import "./diagnostics-C6xPE2ln.js";
|
|
127
127
|
import { t as renderTable } from "./table-Bka4fasy.js";
|
|
128
|
-
import "./health-
|
|
128
|
+
import "./health-CcV5nKIK.js";
|
|
129
129
|
import "./control-ui-assets-Clf7H-Sm.js";
|
|
130
130
|
import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-BNjupSIM.js";
|
|
131
131
|
import "./dm-policy-shared-JiSNSaKz.js";
|
|
132
132
|
import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-B5zI1_Id.js";
|
|
133
|
-
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-
|
|
133
|
+
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-Bmq67eos.js";
|
|
134
134
|
import "./logging-PVQxLC6I.js";
|
|
135
135
|
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DticqU4-.js";
|
|
136
136
|
import "./doctor-config-flow-B2dVxbL7.js";
|
|
137
137
|
import "./systemd-linger-ipoPa7o0.js";
|
|
138
138
|
import "./health-format-DkjSgkDx.js";
|
|
139
|
-
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-
|
|
140
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
139
|
+
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-D88AWCeM.js";
|
|
140
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-woDYSVtY.js";
|
|
141
141
|
import { spawn, spawnSync } from "node:child_process";
|
|
142
142
|
import os from "node:os";
|
|
143
143
|
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, h as pathExists } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./thinking-EAliFiVK.js";
|
|
4
|
-
import { H as trimLogTail } from "./reply-
|
|
4
|
+
import { H as trimLogTail } from "./reply-CgyjcoxC.js";
|
|
5
5
|
import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
6
6
|
import "./registry-Cja8eT7G.js";
|
|
7
7
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
@@ -62,8 +62,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
|
|
|
62
62
|
import "./send-DpMnSIi5.js";
|
|
63
63
|
import "./model-ECsJuJew.js";
|
|
64
64
|
import "./reply-prefix-CE2YmmsD.js";
|
|
65
|
-
import "./memory-cli-
|
|
66
|
-
import "./manager-
|
|
65
|
+
import "./memory-cli-BTByRgM0.js";
|
|
66
|
+
import "./manager-9Mni2AA9.js";
|
|
67
67
|
import "./retry-BoS4e4X_.js";
|
|
68
68
|
import "./sqlite-D55gRQbH.js";
|
|
69
69
|
import "./target-errors-C9e6dMU_.js";
|
|
@@ -73,8 +73,8 @@ import "./ir-jTXFdH5R.js";
|
|
|
73
73
|
import "./render-Bwu_WxwA.js";
|
|
74
74
|
import "./commands-vWB85AXk.js";
|
|
75
75
|
import "./commands-registry-D_uByLpw.js";
|
|
76
|
-
import "./client-
|
|
77
|
-
import "./call-
|
|
76
|
+
import "./client-pd8kwOFJ.js";
|
|
77
|
+
import "./call-DYfKEdwh.js";
|
|
78
78
|
import "./pairing-token-pooyuU2J.js";
|
|
79
79
|
import "./channel-activity-CoTZV03i.js";
|
|
80
80
|
import "./fetch-BECUf3wn.js";
|
|
@@ -96,7 +96,7 @@ import "./session-cost-usage-RPrhIvZF.js";
|
|
|
96
96
|
import "./outbound-attachment-FbHNOB0s.js";
|
|
97
97
|
import "./delivery-queue-D9i0qjI_.js";
|
|
98
98
|
import "./send-SF7x1UHb.js";
|
|
99
|
-
import "./onboard-helpers-
|
|
99
|
+
import "./onboard-helpers-CBxazphs.js";
|
|
100
100
|
import { n as stylePromptMessage } from "./prompt-style-Y2J72w6p.js";
|
|
101
101
|
import "./pairing-labels-CTL1gXZb.js";
|
|
102
102
|
import "./exec-approvals-DEigTi7M.js";
|
|
@@ -107,7 +107,7 @@ import "./stagger-CZ1Rrj7O.js";
|
|
|
107
107
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-DF8wPn-_.js";
|
|
108
108
|
import "./channel-selection-9fIQGtZy.js";
|
|
109
109
|
import { r as parseSemver } from "./runtime-guard-BKFbNplo.js";
|
|
110
|
-
import "./program-context-
|
|
110
|
+
import "./program-context-COwsYCbf.js";
|
|
111
111
|
import "./catalog-KW3oyt3k.js";
|
|
112
112
|
import "./skills-status-D1IW8MhS.js";
|
|
113
113
|
import { n as inheritOptionFromParent } from "./command-options-DOOvAdsg.js";
|
|
@@ -118,28 +118,28 @@ import "./npm-registry-spec-B98RgVZF.js";
|
|
|
118
118
|
import "./skill-scanner-BTgjeQBf.js";
|
|
119
119
|
import "./installs-BPZKRjsO.js";
|
|
120
120
|
import "./channels-status-issues-BVpj6wWd.js";
|
|
121
|
-
import { r as installCompletion } from "./completion-cli-
|
|
121
|
+
import { r as installCompletion } from "./completion-cli-C8K5J1ld.js";
|
|
122
122
|
import "./daemon-runtime-Cp7obV7Q.js";
|
|
123
123
|
import "./systemd-Xs16roN5.js";
|
|
124
124
|
import { t as resolveGatewayService } from "./service-DzLem5vL.js";
|
|
125
125
|
import "./lifecycle-core-Uucs6Wz6.js";
|
|
126
126
|
import "./systemd-hints-vhJS1sOh.js";
|
|
127
|
-
import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-
|
|
127
|
+
import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-D6wyb9bo.js";
|
|
128
128
|
import "./diagnostics-1uBuB9IE.js";
|
|
129
129
|
import { t as renderTable } from "./table-BWuvjnmY.js";
|
|
130
|
-
import "./health-
|
|
130
|
+
import "./health-Dl2WRoTa.js";
|
|
131
131
|
import "./control-ui-assets-BrP31IQR.js";
|
|
132
132
|
import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-Bbvpax6u.js";
|
|
133
133
|
import "./dm-policy-shared-KlzpDeT_.js";
|
|
134
134
|
import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-8HXdAdwz.js";
|
|
135
|
-
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-
|
|
135
|
+
import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-DMucmRlv.js";
|
|
136
136
|
import "./logging-CZuxhCZR.js";
|
|
137
137
|
import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-D4uLu0dv.js";
|
|
138
138
|
import "./doctor-config-flow-BCMxS2lf.js";
|
|
139
139
|
import "./systemd-linger-0C265XKH.js";
|
|
140
140
|
import "./health-format-Ct4VWeSk.js";
|
|
141
|
-
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-
|
|
142
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
141
|
+
import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-rKPBDv7n.js";
|
|
142
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-gMWymNcA.js";
|
|
143
143
|
import os from "node:os";
|
|
144
144
|
import path from "node:path";
|
|
145
145
|
import fs from "node:fs/promises";
|