@symerian/symi 3.0.6 → 3.0.7
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-gbr-1Je_.js → agents-CFKyEJDh.js} +4 -4
- package/dist/{agents.config-CpxstSW7.js → agents.config-DSrQ0TM2.js} +1 -1
- package/dist/{agents.config-BfNlwhop.js → agents.config-JYh7a1x9.js} +1 -1
- package/dist/{auth-choice-54kgymsK.js → auth-choice-BPmdR0Zg.js} +1 -1
- package/dist/{auth-choice-D-6X8Ju1.js → auth-choice-BqParF2V.js} +1 -1
- package/dist/{banner-a-SFB2A_.js → banner-Lq52Hf1m.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-LdOWOuGF.js → channel-options-DbwyNFsd.js} +1 -1
- package/dist/{channel-options-Gr9E4Kzw.js → channel-options-uukUHxrR.js} +1 -1
- package/dist/{channel-web-CegzhXtr.js → channel-web-CBUFAaN-.js} +1 -1
- package/dist/{channels-cli-yEaXg9E8.js → channels-cli-DUwg4n9o.js} +6 -6
- package/dist/{channels-cli-BqxfCcHJ.js → channels-cli-DwWkhoS-.js} +6 -6
- package/dist/{cli-frCx1q0g.js → cli-BK00_StG.js} +3 -3
- package/dist/{cli-CBgbuAgA.js → cli-DZZmysLn.js} +3 -3
- package/dist/{command-registry-BuNPoTgT.js → command-registry-DPjt2ua4.js} +10 -10
- package/dist/{completion-cli-CslG8pRZ.js → completion-cli-DUHXuBGj.js} +2 -2
- package/dist/{completion-cli-CtslzC-3.js → completion-cli-Jc5c91D9.js} +1 -1
- package/dist/{config-cli-DG0Q2opp.js → config-cli-CfqGGDZJ.js} +1 -1
- package/dist/{config-cli-Bne_ToTi.js → config-cli-Chi8-vDl.js} +1 -1
- package/dist/{configure-CrUroh9h.js → configure-CpVWXUGL.js} +3 -3
- package/dist/{configure-DVEumX9d.js → configure-n6QOImwq.js} +3 -3
- package/dist/{doctor-completion-BdPD9NXi.js → doctor-completion-DRSIyjR1.js} +1 -1
- package/dist/{doctor-completion-C7FYoFcz.js → doctor-completion-efxxrdhl.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-C01t6lTD.js → gateway-cli-5x14dzdY.js} +12 -12
- package/dist/{gateway-cli-C3pl_TOb.js → gateway-cli-C9oE1hBq.js} +12 -12
- package/dist/{glass-ui-ws-DdfAZRq2.js → glass-ui-ws-CSvguyD3.js} +10 -10
- package/dist/{glass-ui-ws-D4FpSEkk.js → glass-ui-ws-Dy9BMqps.js} +10 -10
- package/dist/{health-BJOdskDn.js → health-CMNaNxdO.js} +2 -2
- package/dist/{health-Ux1rRtE3.js → health-CcIuOt6-.js} +2 -2
- package/dist/{heartbeat-visibility-BOc3XHJM.js → heartbeat-visibility-C1vHOBwO.js} +1 -1
- package/dist/{heartbeat-visibility-DiKuGlXT.js → heartbeat-visibility-D7nLp3pi.js} +1 -1
- package/dist/{hooks-cli-QOqeVacd.js → hooks-cli-BJBRRQxq.js} +4 -4
- package/dist/{hooks-cli-C4qRn2e6.js → hooks-cli-Lu13tVB5.js} +4 -4
- package/dist/index.js +9 -9
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{manager-H_Xir_av.js → manager-CpueNJtZ.js} +1 -1
- package/dist/{manager-OL6o99xD.js → manager-DrpXfTr8.js} +1 -1
- package/dist/{manager-DdfJ-DW0.js → manager-_IXN4-V8.js} +1 -1
- package/dist/{manager-D7uDkX3d.js → manager-ba9NOjzn.js} +1 -1
- package/dist/{memory-cli-CEvfDody.js → memory-cli-CFc9bXRp.js} +3 -3
- package/dist/{memory-cli-BFgNzW3D.js → memory-cli-LV7-59SK.js} +3 -3
- package/dist/{models-Bf1Qgxcd.js → models-BB9yLhYJ.js} +2 -2
- package/dist/{models-cli-C-yQI9uO.js → models-cli-RtPAmw2C.js} +4 -4
- package/dist/{models-cli-IPj8YpFi.js → models-cli-trgrhp5d.js} +5 -5
- package/dist/{onboard-D3RCwOQV.js → onboard-CQ-O5iJq.js} +2 -2
- package/dist/{onboard-DxD7tZro.js → onboard-DHXKRs-D.js} +2 -2
- package/dist/{onboard-channels-C9yhPSG7.js → onboard-channels-jMIN_VEb.js} +1 -1
- package/dist/{onboard-channels-DjyTcloL.js → onboard-channels-puKAWnzj.js} +1 -1
- package/dist/{onboarding-3Zmxzq_U.js → onboarding-B-gCsRKr.js} +3 -3
- package/dist/{onboarding-BT5x19Ld.js → onboarding-C0pJSLCL.js} +3 -3
- package/dist/{onboarding.finalize-Di8oo0E9.js → onboarding.finalize-CwYMMBek.js} +8 -8
- package/dist/{onboarding.finalize-DYIUxpai.js → onboarding.finalize-TzNrDgVI.js} +9 -9
- package/dist/{pi-embedded-DiktDTAb.js → pi-embedded-D9KmgdGY.js} +99 -5
- package/dist/{plugin-registry-Dv9QEb6z.js → plugin-registry-B33lS3i0.js} +1 -1
- package/dist/{plugin-registry-DSVGT3l_.js → plugin-registry-DzQCMRvf.js} +1 -1
- package/dist/plugin-sdk/agents/model-aware-stream.d.ts +21 -0
- package/dist/plugin-sdk/{channel-web-CQucEpek.js → channel-web-oG-aaS67.js} +1 -1
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/{manager-DMMQnz2r.js → manager-hfHALsDs.js} +1 -1
- package/dist/plugin-sdk/{synthesis-B3oSNA87.js → synthesis-BWBeCBqa.js} +2 -2
- package/dist/plugin-sdk/{unified-runner-DPD66ppH.js → unified-runner-CZE3p9mg.js} +99 -5
- package/dist/plugin-sdk/{web-O8zxjM0h.js → web-CD_2TcPx.js} +3 -3
- package/dist/{plugins-cli-BKE00xaA.js → plugins-cli-BH-dPouA.js} +4 -4
- package/dist/{plugins-cli-Cudgx5xM.js → plugins-cli-D7SeopUy.js} +4 -4
- package/dist/{program-D6GycU7K.js → program-CbKSDUST.js} +9 -9
- package/dist/{program-context-DUf2HkNT.js → program-context-ClWlMpYr.js} +18 -18
- package/dist/{prompt-select-styled-MZgg9luq.js → prompt-select-styled-CM2KCKfA.js} +6 -6
- package/dist/{prompt-select-styled-9fffbtA8.js → prompt-select-styled-CdC8Q0fu.js} +6 -6
- package/dist/{provider-auth-helpers-CbjDDek6.js → provider-auth-helpers-Brx0zsB4.js} +1 -1
- package/dist/{provider-auth-helpers-CH_rD9Ck.js → provider-auth-helpers-Df50nCNL.js} +1 -1
- package/dist/{push-apns-D2xhFnz-.js → push-apns-CXP9q39j.js} +1 -1
- package/dist/{push-apns-zIsKDi4p.js → push-apns-jE3kPG6g.js} +1 -1
- package/dist/{register.agent-BkQdGAxf.js → register.agent-DGwbPjex.js} +7 -7
- package/dist/{register.agent-CR1I0Nxi.js → register.agent-DzQtVgfQ.js} +8 -8
- package/dist/{register.configure-CIbNs3Ys.js → register.configure-B56gsKYf.js} +9 -9
- package/dist/{register.configure-O5fmbHql.js → register.configure-BQ1gQQOO.js} +9 -9
- package/dist/{register.maintenance-B6o6Fdf-.js → register.maintenance-DLsCNL7g.js} +11 -11
- package/dist/{register.maintenance-BjE-lDkf.js → register.maintenance-mKHTp7uq.js} +10 -10
- package/dist/{register.message-DkZC56-E.js → register.message--QXkhXHQ.js} +4 -4
- package/dist/{register.message-CPV6KKj_.js → register.message-xW7Gic5V.js} +4 -4
- package/dist/{register.onboard-DPUx5H9I.js → register.onboard-Cd0kw_oz.js} +7 -7
- package/dist/{register.onboard-DB0X3H1H.js → register.onboard-Cxvbpqqb.js} +7 -7
- package/dist/{register.setup-BdfIHr44.js → register.setup-C63_l0Z_.js} +7 -7
- package/dist/{register.setup-BHGui0h8.js → register.setup-D-WYhPYF.js} +7 -7
- package/dist/{register.status-health-sessions-CAr_-YOR.js → register.status-health-sessions-BGA-7IT8.js} +6 -6
- package/dist/{register.status-health-sessions-Bx_x7PLI.js → register.status-health-sessions-CsjDghzj.js} +6 -6
- package/dist/{register.subclis-Bd9G7Uhk.js → register.subclis-BOf3y4FX.js} +9 -9
- package/dist/{run-main-DINwkweo.js → run-main-CG1sYHQC.js} +17 -17
- package/dist/{server-methods-D_HpHoWo.js → server-methods-C72ajlYe.js} +9 -9
- package/dist/{server-methods-BBiqjTnY.js → server-methods-C_TFp6B4.js} +9 -9
- package/dist/{server-node-events-D33Ivpdb.js → server-node-events-BTuwCzuB.js} +4 -4
- package/dist/{server-node-events-BBcYbve5.js → server-node-events-Cn5abeER.js} +4 -4
- package/dist/{status-CdRoRdX8.js → status-C5RXDLjI.js} +1 -1
- package/dist/{status-Do0t7I6P.js → status-CrxGjZwV.js} +3 -3
- package/dist/{status-B5SAsM15.js → status-CvJZLdWA.js} +1 -1
- package/dist/{status-E8bxgRbF.js → status-DIGJ8-hp.js} +3 -3
- package/dist/{subagent-registry-B4gg8TFc.js → subagent-registry-k0ZBnJuU.js} +98 -4
- package/dist/{synthesis-BzXl3DdN.js → synthesis-C-rsRpDw.js} +2 -2
- package/dist/{synthesis-BuXEOM51.js → synthesis-C3AKD3Nb.js} +2 -2
- package/dist/{synthesis-CmoAF3Ks.js → synthesis-D4qwtCYE.js} +3 -3
- package/dist/{synthesis-Camc_uQg.js → synthesis-cor0WJGI.js} +3 -3
- package/dist/{unified-runner-NjwIEpGt.js → unified-runner-CzxCpDUC.js} +98 -4
- package/dist/{unified-runner-Bvqbwaaa.js → unified-runner-Dv9LPnmm.js} +99 -5
- package/dist/{update-cli-BmxN561H.js → update-cli-D2Ou3_k5.js} +10 -10
- package/dist/{update-cli-DT51XdLt.js → update-cli-DGrOVmGg.js} +11 -11
- package/dist/{update-runner-BSHkPRya.js → update-runner-BSDKsvVP.js} +1 -1
- package/dist/{update-runner-DObjNXP5.js → update-runner-Bcmd0XnZ.js} +1 -1
- package/dist/{web-CWFF4V6q.js → web-CSPcQYqR.js} +2 -2
- package/dist/{web-DMJyGxn3.js → web-D9-D09LS.js} +4 -4
- package/dist/{web-DNwg0ZOA.js → web-DJqpgWuK.js} +5 -5
- package/dist/{web-BPiGXIj5.js → web-gqbdxJga.js} +2 -2
- 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
|
@@ -12,7 +12,7 @@ import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessa
|
|
|
12
12
|
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
|
|
13
13
|
import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
|
|
14
14
|
import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
15
|
-
import { $ as waitForEmbeddedPiRunEnd, C as resolveAgentDeliveryPlan, D as createOutboundSendDeps, Fn as isSystemEventContextChanged, G as buildGlassUiProfile, Hn as normalizeGroupActivation, Jn as formatZonedTimestamp, Mn as resolveAgentTimeoutMs, Mr as onAgentEvent, Mt as normalizeCronJobPatch, Nn as prepareAgentRun, Nr as registerAgentRunContext, Pn as enqueueSystemEvent, Qn as stopSubagentsForRequester, Sn as parseVerboseOverride, U as createReplyDispatcher, Vn as BARE_SESSION_RESET_PROMPT, Xt as persistBrowserProxyFiles, Y as runUnifiedTurn, Yt as applyBrowserProxyPaths, Z as abortEmbeddedPiRun, Zn as isAbortTrigger, a as listSubagentRunsForRequester, an as unbindThreadBindingsBySessionKey, ar as isTtsEnabled, at as buildAgentTurnParams, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, cr as resolveTtsAutoMode, ct as listTasksInWorkdir, dr as resolveTtsProviderOrder, fr as setTtsEnabled, ft as ensureOutboundSessionEntry, gr as OPENAI_TTS_VOICES, gt as resolveOutboundTarget, hn as resolveSendPolicy, hr as OPENAI_TTS_MODELS, i as listDescendantRunsForRequester, ir as getTtsProvider, jt as normalizeCronJobCreate, kt as writeRestartSentinel, lr as resolveTtsConfig, m as loadSymiPlugins, mn as normalizeSendPolicy, mr as textToSpeech, nn as scheduleGatewaySigusr1Restart, on as loadProviderUsageSummary, or as isTtsProviderConfigured, ot as prepareReplyTurn, pr as setTtsProvider, pt as resolveOutboundSessionRoute, rr as resolveUserTimezone, sr as resolveTtsApiKey, ur as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wt as formatDoctorNonInteractiveHint, x as agentCommand, xn as applyVerboseOverride } from "./subagent-registry-
|
|
15
|
+
import { $ as waitForEmbeddedPiRunEnd, C as resolveAgentDeliveryPlan, D as createOutboundSendDeps, Fn as isSystemEventContextChanged, G as buildGlassUiProfile, Hn as normalizeGroupActivation, Jn as formatZonedTimestamp, Mn as resolveAgentTimeoutMs, Mr as onAgentEvent, Mt as normalizeCronJobPatch, Nn as prepareAgentRun, Nr as registerAgentRunContext, Pn as enqueueSystemEvent, Qn as stopSubagentsForRequester, Sn as parseVerboseOverride, U as createReplyDispatcher, Vn as BARE_SESSION_RESET_PROMPT, Xt as persistBrowserProxyFiles, Y as runUnifiedTurn, Yt as applyBrowserProxyPaths, Z as abortEmbeddedPiRun, Zn as isAbortTrigger, a as listSubagentRunsForRequester, an as unbindThreadBindingsBySessionKey, ar as isTtsEnabled, at as buildAgentTurnParams, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, cr as resolveTtsAutoMode, ct as listTasksInWorkdir, dr as resolveTtsProviderOrder, fr as setTtsEnabled, ft as ensureOutboundSessionEntry, gr as OPENAI_TTS_VOICES, gt as resolveOutboundTarget, hn as resolveSendPolicy, hr as OPENAI_TTS_MODELS, i as listDescendantRunsForRequester, ir as getTtsProvider, jt as normalizeCronJobCreate, kt as writeRestartSentinel, lr as resolveTtsConfig, m as loadSymiPlugins, mn as normalizeSendPolicy, mr as textToSpeech, nn as scheduleGatewaySigusr1Restart, on as loadProviderUsageSummary, or as isTtsProviderConfigured, ot as prepareReplyTurn, pr as setTtsProvider, pt as resolveOutboundSessionRoute, rr as resolveUserTimezone, sr as resolveTtsApiKey, ur as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wt as formatDoctorNonInteractiveHint, x as agentCommand, xn as applyVerboseOverride } from "./subagent-registry-k0ZBnJuU.js";
|
|
16
16
|
import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-D94fC0u0.js";
|
|
17
17
|
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DTKQE9kt.js";
|
|
18
18
|
import { n as createBrowserRouteDispatcher } from "./with-timeout-Sf6xNmAk.js";
|
|
@@ -21,7 +21,7 @@ import { t as movePathToTrash } from "./trash-CWQQXWX3.js";
|
|
|
21
21
|
import { c as resolveStorePath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-DNdWAq7b.js";
|
|
22
22
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-8sKPnzpp.js";
|
|
23
23
|
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-Pz-5t5RS.js";
|
|
24
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
24
|
+
import { r as getMemorySearchManager } from "./memory-cli-CFc9bXRp.js";
|
|
25
25
|
import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-BLuiRgmy.js";
|
|
26
26
|
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-CFbo15ku.js";
|
|
27
27
|
import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent } from "./session-utils-BUK1eo6T.js";
|
|
@@ -32,20 +32,20 @@ import { n as normalizePollInput } from "./polls-Cm1-n4jF.js";
|
|
|
32
32
|
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BvbXdY02.js";
|
|
33
33
|
import { i as parseAbsoluteTimeMs } from "./stagger-BDqsqTKI.js";
|
|
34
34
|
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-wWVzXusf.js";
|
|
35
|
-
import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-
|
|
35
|
+
import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-C1vHOBwO.js";
|
|
36
36
|
import { t as buildChannelUiCatalog } from "./catalog-KcLvtTfa.js";
|
|
37
37
|
import { t as WizardCancelledError } from "./prompts-DbHSz44H.js";
|
|
38
38
|
import { t as resolveChannelDefaultAccountId } from "./helpers-gWnZ9zWR.js";
|
|
39
39
|
import { t as buildChannelAccountSnapshot } from "./status-B8TZsG0t.js";
|
|
40
40
|
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-C7_mWfpH.js";
|
|
41
|
-
import { r as getStatusSummary } from "./status-
|
|
42
|
-
import { c as setHeartbeatsEnabled, u as abortHeartbeatRunForSession } from "./health-
|
|
41
|
+
import { r as getStatusSummary } from "./status-CrxGjZwV.js";
|
|
42
|
+
import { c as setHeartbeatsEnabled, u as abortHeartbeatRunForSession } from "./health-CMNaNxdO.js";
|
|
43
43
|
import { m as normalizeUpdateChannel } from "./update-check-BNjupSIM.js";
|
|
44
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
45
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
44
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-jE3kPG6g.js";
|
|
45
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-JYh7a1x9.js";
|
|
46
46
|
import { t as resolveSystemRunCommand } from "./system-run-command-B_qw8CXP.js";
|
|
47
47
|
import { t as installSkill } from "./skills-install-DEq4Ey44.js";
|
|
48
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
48
|
+
import { t as runGatewayUpdate } from "./update-runner-BSDKsvVP.js";
|
|
49
49
|
import { spawnSync } from "node:child_process";
|
|
50
50
|
import * as os$1 from "node:os";
|
|
51
51
|
import os from "node:os";
|
|
@@ -7580,7 +7580,7 @@ const nodeHandlers = {
|
|
|
7580
7580
|
const p = params;
|
|
7581
7581
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
7582
7582
|
await respondUnavailableOnThrow(respond, async () => {
|
|
7583
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
7583
|
+
const { handleNodeEvent } = await import("./server-node-events-Cn5abeER.js");
|
|
7584
7584
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
7585
7585
|
await handleNodeEvent({
|
|
7586
7586
|
deps: context.deps,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
3
|
-
import { $ as loadSessionEntry, Bt as persistBrowserProxyFiles, Cn as prepareAgentRun, H as runUnifiedTurn, Hn as stopSubagentsForRequester, I as createReplyDispatcher, J as canonicalizeSpawnedByForAgent, Jn as listDescendantRunsForRequester, K as listTasksInWorkdir, Kt as scheduleGatewaySigusr1Restart, Mn as normalizeGroupActivation, Mr as onAgentEvent, Nr as registerAgentRunContext, Q as loadCombinedSessionStoreForGateway, R as buildGlassUiProfile, Rn as formatZonedTimestamp, St as normalizeCronJobPatch, Tn as isSystemEventContextChanged, U as buildAgentTurnParams, Vn as isAbortTrigger, W as prepareReplyTurn, X as listAgentsForGateway, Xt as loadProviderUsageSummary, Yn as listSubagentRunsForRequester, Yt as unbindThreadBindingsBySessionKey, Z as listSessionsFromStore, Zn as resolveAgentTimeoutMs, _ as resolveAgentOutboundTarget, _r as setTtsProvider, an as resolveSendPolicy, at as resolveOutboundSessionRoute, b as createOutboundSendDeps, br as OPENAI_TTS_VOICES, cr as getTtsProvider, ct as resolveOutboundTarget, dn as applyModelOverrideToSessionEntry, dr as resolveTtsApiKey, er as clearSessionQueues, et as pruneLegacyStoreKeys, fn as applyVerboseOverride, fr as resolveTtsAutoMode, g as resolveAgentDeliveryPlan, gr as setTtsEnabled, hr as resolveTtsProviderOrder, in as normalizeSendPolicy, it as ensureOutboundSessionEntry, jn as BARE_SESSION_RESET_PROMPT, lr as isTtsEnabled, m as agentCommand, mr as resolveTtsPrefsPath, mt as formatDoctorNonInteractiveHint, nt as resolveSessionModelRef, pn as parseVerboseOverride, pr as resolveTtsConfig, rr as waitForEmbeddedPiRunEnd, s as loadSymiPlugins, sr as resolveUserTimezone, tr as abortEmbeddedPiRun, tt as resolveGatewaySessionStoreTarget, ur as isTtsProviderConfigured, vr as textToSpeech, wn as enqueueSystemEvent, xt as normalizeCronJobCreate, yr as OPENAI_TTS_MODELS, yt as writeRestartSentinel, zt as applyBrowserProxyPaths } from "./unified-runner-
|
|
3
|
+
import { $ as loadSessionEntry, Bt as persistBrowserProxyFiles, Cn as prepareAgentRun, H as runUnifiedTurn, Hn as stopSubagentsForRequester, I as createReplyDispatcher, J as canonicalizeSpawnedByForAgent, Jn as listDescendantRunsForRequester, K as listTasksInWorkdir, Kt as scheduleGatewaySigusr1Restart, Mn as normalizeGroupActivation, Mr as onAgentEvent, Nr as registerAgentRunContext, Q as loadCombinedSessionStoreForGateway, R as buildGlassUiProfile, Rn as formatZonedTimestamp, St as normalizeCronJobPatch, Tn as isSystemEventContextChanged, U as buildAgentTurnParams, Vn as isAbortTrigger, W as prepareReplyTurn, X as listAgentsForGateway, Xt as loadProviderUsageSummary, Yn as listSubagentRunsForRequester, Yt as unbindThreadBindingsBySessionKey, Z as listSessionsFromStore, Zn as resolveAgentTimeoutMs, _ as resolveAgentOutboundTarget, _r as setTtsProvider, an as resolveSendPolicy, at as resolveOutboundSessionRoute, b as createOutboundSendDeps, br as OPENAI_TTS_VOICES, cr as getTtsProvider, ct as resolveOutboundTarget, dn as applyModelOverrideToSessionEntry, dr as resolveTtsApiKey, er as clearSessionQueues, et as pruneLegacyStoreKeys, fn as applyVerboseOverride, fr as resolveTtsAutoMode, g as resolveAgentDeliveryPlan, gr as setTtsEnabled, hr as resolveTtsProviderOrder, in as normalizeSendPolicy, it as ensureOutboundSessionEntry, jn as BARE_SESSION_RESET_PROMPT, lr as isTtsEnabled, m as agentCommand, mr as resolveTtsPrefsPath, mt as formatDoctorNonInteractiveHint, nt as resolveSessionModelRef, pn as parseVerboseOverride, pr as resolveTtsConfig, rr as waitForEmbeddedPiRunEnd, s as loadSymiPlugins, sr as resolveUserTimezone, tr as abortEmbeddedPiRun, tt as resolveGatewaySessionStoreTarget, ur as isTtsProviderConfigured, vr as textToSpeech, wn as enqueueSystemEvent, xt as normalizeCronJobCreate, yr as OPENAI_TTS_MODELS, yt as writeRestartSentinel, zt as applyBrowserProxyPaths } from "./unified-runner-CzxCpDUC.js";
|
|
4
4
|
import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-ClO_zVv-.js";
|
|
5
5
|
import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-zqierDLj.js";
|
|
6
6
|
import { Et as normalizeSecretInput, G as resolveSubagentConfiguredModelSelection, H as resolveDefaultModelForAgent, q as resolveThinkingDefault, z as resolveAllowedModelRef } from "./auth-profiles-HXq6s5EV.js";
|
|
@@ -21,7 +21,7 @@ import { h as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as
|
|
|
21
21
|
import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-CfQCToqp.js";
|
|
22
22
|
import { n as createBrowserRouteDispatcher } from "./with-timeout-DLkDCwhx.js";
|
|
23
23
|
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-DnXliXio.js";
|
|
24
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
24
|
+
import { r as getMemorySearchManager } from "./memory-cli-LV7-59SK.js";
|
|
25
25
|
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWebLoginWaitParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateSkillsUpdateParams, D as validateCronRemoveParams, Dt as validateUpdateRunParams, E as validateCronListParams, Et as validateTasksListParams, F as validateDevicePairRemoveParams, G as validateModelsListParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, I as validateDeviceTokenRevokeParams, It as ErrorCodes, J as validateNodeInvokeParams, Jt as revokeDeviceToken, K as validateNodeDescribeParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as errorShape, M as validateDevicePairApproveParams, Mt as validateWizardNextParams, N as validateDevicePairListParams, Nt as validateWizardStartParams, O as validateCronRunParams, Ot as validateWakeParams, P as validateDevicePairRejectParams, Pt as validateWizardStatusParams, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsStatusParams, T as validateCronAddParams, Tt as validateTalkModeParams, U as validateExecApprovalsSetParams, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeListParams, Xt as summarizeDeviceTokens, Y as validateNodeInvokeResultParams, Yt as rotateDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsBinsParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardCancelParams, k as validateCronRunsParams, kt as validateWebLoginStartParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsSearchParams, wt as validateTalkConfigParams, x as validateConfigPatchParams, xt as validateSkillsInstallParams, y as validateConfigApplyParams, yt as validateSessionsUsageParams, zt as parseSessionLabel } from "./client-CZSkE50e.js";
|
|
26
26
|
import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-CCvj2tKV.js";
|
|
27
27
|
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-CTHqnrDZ.js";
|
|
@@ -33,21 +33,21 @@ import { n as normalizePollInput } from "./polls-C5iuAHi5.js";
|
|
|
33
33
|
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DqxWEvk3.js";
|
|
34
34
|
import { i as parseAbsoluteTimeMs } from "./stagger-BEsczMsw.js";
|
|
35
35
|
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-B-ZzwyS1.js";
|
|
36
|
-
import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-
|
|
36
|
+
import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-D7nLp3pi.js";
|
|
37
37
|
import { t as buildChannelUiCatalog } from "./catalog-pt1jhhyb.js";
|
|
38
38
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-DzvtNke3.js";
|
|
39
39
|
import { t as WizardCancelledError } from "./prompts-NOUgk6FH.js";
|
|
40
40
|
import { t as resolveChannelDefaultAccountId } from "./helpers-CYGbI-uz.js";
|
|
41
41
|
import { t as buildChannelAccountSnapshot } from "./status-TtGsgDjP.js";
|
|
42
42
|
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-SikqG3KB.js";
|
|
43
|
-
import { n as getStatusSummary } from "./status-
|
|
44
|
-
import { l as abortHeartbeatRunForSession, s as setHeartbeatsEnabled } from "./health-
|
|
43
|
+
import { n as getStatusSummary } from "./status-DIGJ8-hp.js";
|
|
44
|
+
import { l as abortHeartbeatRunForSession, s as setHeartbeatsEnabled } from "./health-CcIuOt6-.js";
|
|
45
45
|
import { m as normalizeUpdateChannel } from "./update-check-BIE5FLmi.js";
|
|
46
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
47
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
46
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CXP9q39j.js";
|
|
47
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DSrQ0TM2.js";
|
|
48
48
|
import { t as resolveSystemRunCommand } from "./system-run-command-DKiCEPJc.js";
|
|
49
49
|
import { t as installSkill } from "./skills-install-ClMBHyh2.js";
|
|
50
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
50
|
+
import { t as runGatewayUpdate } from "./update-runner-Bcmd0XnZ.js";
|
|
51
51
|
import crypto, { randomUUID } from "node:crypto";
|
|
52
52
|
import * as fs$2 from "node:fs";
|
|
53
53
|
import fs from "node:fs";
|
|
@@ -7582,7 +7582,7 @@ const nodeHandlers = {
|
|
|
7582
7582
|
const p = params;
|
|
7583
7583
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
7584
7584
|
await respondUnavailableOnThrow(respond, async () => {
|
|
7585
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
7585
|
+
const { handleNodeEvent } = await import("./server-node-events-BTuwCzuB.js");
|
|
7586
7586
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
7587
7587
|
await handleNodeEvent({
|
|
7588
7588
|
deps: context.deps,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./paths-Cqn-zk3M.js";
|
|
2
2
|
import "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./tokens-Cz6cgZ7r.js";
|
|
4
|
-
import { $ as loadSessionEntry, ct as resolveOutboundTarget, et as pruneLegacyStoreKeys, m as agentCommand, tn as requestHeartbeatNow, tt as resolveGatewaySessionStoreTarget, v as createOutboundSendDeps, wn as enqueueSystemEvent } from "./unified-runner-
|
|
4
|
+
import { $ as loadSessionEntry, ct as resolveOutboundTarget, et as pruneLegacyStoreKeys, m as agentCommand, tn as requestHeartbeatNow, tt as resolveGatewaySessionStoreTarget, v as createOutboundSendDeps, wn as enqueueSystemEvent } from "./unified-runner-CzxCpDUC.js";
|
|
5
5
|
import "./registry-ClO_zVv-.js";
|
|
6
6
|
import { f as defaultRuntime } from "./subsystem-zqierDLj.js";
|
|
7
7
|
import "./auth-profiles-HXq6s5EV.js";
|
|
@@ -56,8 +56,8 @@ import "./send-DNJPCiwf.js";
|
|
|
56
56
|
import "./model-DIO3dH08.js";
|
|
57
57
|
import "./pi-model-discovery-CXXH7biP.js";
|
|
58
58
|
import "./reply-prefix-DnXliXio.js";
|
|
59
|
-
import "./memory-cli-
|
|
60
|
-
import "./manager-
|
|
59
|
+
import "./memory-cli-LV7-59SK.js";
|
|
60
|
+
import "./manager-_IXN4-V8.js";
|
|
61
61
|
import "./gemini-auth-D7Wqp9Ma.js";
|
|
62
62
|
import "./retry-DYICeae5.js";
|
|
63
63
|
import "./sqlite-CRogFEk1.js";
|
|
@@ -103,7 +103,7 @@ import "./onboard-helpers-B-ZzwyS1.js";
|
|
|
103
103
|
import "./prompt-style-CSNJI4MG.js";
|
|
104
104
|
import "./pairing-labels-6wdVkxUt.js";
|
|
105
105
|
import "./pi-tools.policy-CQ0NqaBl.js";
|
|
106
|
-
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-
|
|
106
|
+
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CXP9q39j.js";
|
|
107
107
|
import { randomUUID } from "node:crypto";
|
|
108
108
|
|
|
109
109
|
//#region src/gateway/server-node-events.ts
|
|
@@ -15,7 +15,7 @@ import "./client-CJIMV1WD.js";
|
|
|
15
15
|
import "./call-DgBbW7bk.js";
|
|
16
16
|
import "./message-channel-C9dERklz.js";
|
|
17
17
|
import "./pairing-token-Byh6drgn.js";
|
|
18
|
-
import { Pn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, gt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-
|
|
18
|
+
import { Pn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, gt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-k0ZBnJuU.js";
|
|
19
19
|
import { d as updateSessionStore } from "./sessions-D94fC0u0.js";
|
|
20
20
|
import "./tokens-BEvOiQ65.js";
|
|
21
21
|
import { r as normalizeChannelId } from "./plugins-DTKQE9kt.js";
|
|
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
53
53
|
import "./thinking-8sKPnzpp.js";
|
|
54
54
|
import "./models-config-BEX8iiQb.js";
|
|
55
55
|
import "./reply-prefix-Pz-5t5RS.js";
|
|
56
|
-
import "./memory-cli-
|
|
57
|
-
import "./manager-
|
|
56
|
+
import "./memory-cli-CFc9bXRp.js";
|
|
57
|
+
import "./manager-DrpXfTr8.js";
|
|
58
58
|
import "./gemini-auth-48fFOTO4.js";
|
|
59
59
|
import "./retry-C4Q_VPOo.js";
|
|
60
60
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -99,7 +99,7 @@ import "./onboard-helpers-wWVzXusf.js";
|
|
|
99
99
|
import "./prompt-style-BxVdnrLq.js";
|
|
100
100
|
import "./pairing-labels-D5bj-6hr.js";
|
|
101
101
|
import "./pi-tools.policy-Dcon0Kdw.js";
|
|
102
|
-
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-
|
|
102
|
+
import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-jE3kPG6g.js";
|
|
103
103
|
import { randomUUID } from "node:crypto";
|
|
104
104
|
|
|
105
105
|
//#region src/gateway/server-node-events.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as createPluginLoaderLogger, s as loadSymiPlugins } from "./unified-runner-
|
|
1
|
+
import { o as createPluginLoaderLogger, s as loadSymiPlugins } from "./unified-runner-CzxCpDUC.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-zqierDLj.js";
|
|
3
3
|
import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BajBuriF.js";
|
|
4
4
|
import { i as loadConfig } from "./config-B4cq-LO4.js";
|
|
@@ -9,13 +9,13 @@ import { c as resolveAgentWorkspaceDir } from "./agent-scope-xM36I1Em.js";
|
|
|
9
9
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-BNfHkto8.js";
|
|
10
10
|
import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-CE_yCGtB.js";
|
|
11
11
|
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DgBbW7bk.js";
|
|
12
|
-
import { Bn as formatChannelAllowFrom, Dt as summarizeRestartSentinel, Et as readRestartSentinel, Ln as peekSystemEvents, Rn as buildChannelSummary, on as loadProviderUsageSummary, sn as formatUsageReportLines, tt as sha256HexPrefix, zn as buildChannelAccountSnapshot } from "./subagent-registry-
|
|
12
|
+
import { Bn as formatChannelAllowFrom, Dt as summarizeRestartSentinel, Et as readRestartSentinel, Ln as peekSystemEvents, Rn as buildChannelSummary, on as loadProviderUsageSummary, sn as formatUsageReportLines, tt as sha256HexPrefix, zn as buildChannelAccountSnapshot } from "./subagent-registry-k0ZBnJuU.js";
|
|
13
13
|
import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-D94fC0u0.js";
|
|
14
14
|
import { n as listChannelPlugins } from "./plugins-DTKQE9kt.js";
|
|
15
15
|
import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
|
|
16
16
|
import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXbwLq.js";
|
|
17
17
|
import { c as resolveStorePath } from "./paths-DNdWAq7b.js";
|
|
18
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
18
|
+
import { r as getMemorySearchManager } from "./memory-cli-CFc9bXRp.js";
|
|
19
19
|
import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
|
|
20
20
|
import { o as getRemoteSkillEligibility } from "./skill-commands-BLuiRgmy.js";
|
|
21
21
|
import { l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsForGateway, u as lookupContextTokens } from "./session-utils-BUK1eo6T.js";
|
|
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-DJYthOLz.j
|
|
|
29
29
|
import { t as readLastGatewayErrorLine } from "./diagnostics-C6xPE2ln.js";
|
|
30
30
|
import { t as renderTable } from "./table-Bka4fasy.js";
|
|
31
31
|
import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-C7_mWfpH.js";
|
|
32
|
-
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-
|
|
32
|
+
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CMNaNxdO.js";
|
|
33
33
|
import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-BNjupSIM.js";
|
|
34
34
|
import { t as resolveNodeService } from "./node-service-B-qdOCNb.js";
|
|
35
35
|
import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-yQZNwAF2.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as createSubsystemLogger } from "./entry.js";
|
|
2
2
|
import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-xM36I1Em.js";
|
|
3
3
|
import { i as loadConfig } from "./config-CE_yCGtB.js";
|
|
4
|
-
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-
|
|
4
|
+
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-k0ZBnJuU.js";
|
|
5
5
|
|
|
6
6
|
//#region src/plugins/status.ts
|
|
7
7
|
const log = createSubsystemLogger("plugins");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
|
|
3
|
-
import { An as formatChannelAllowFrom, Dn as peekSystemEvents, On as buildChannelSummary, X as listAgentsForGateway, Xt as loadProviderUsageSummary, Y as classifySessionKey, Zt as formatUsageReportLines, _t as summarizeRestartSentinel, gt as readRestartSentinel, kn as buildChannelAccountSnapshot, nt as resolveSessionModelRef, on as lookupContextTokens, xr as sha256HexPrefix } from "./unified-runner-
|
|
3
|
+
import { An as formatChannelAllowFrom, Dn as peekSystemEvents, On as buildChannelSummary, X as listAgentsForGateway, Xt as loadProviderUsageSummary, Y as classifySessionKey, Zt as formatUsageReportLines, _t as summarizeRestartSentinel, gt as readRestartSentinel, kn as buildChannelAccountSnapshot, nt as resolveSessionModelRef, on as lookupContextTokens, xr as sha256HexPrefix } from "./unified-runner-CzxCpDUC.js";
|
|
4
4
|
import { Ht as DEFAULT_MODEL, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS } from "./auth-profiles-HXq6s5EV.js";
|
|
5
5
|
import { t as formatCliCommand } from "./command-format-CyXZlazG.js";
|
|
6
6
|
import { S as parseAgentSessionKey } from "./session-key-oOB32jSB.js";
|
|
@@ -13,7 +13,7 @@ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-VTIa2
|
|
|
13
13
|
import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-CRVLhjOR.js";
|
|
14
14
|
import { n as listChannelPlugins } from "./plugins-BL5D1_sT.js";
|
|
15
15
|
import { c as resolveStorePath } from "./paths-BtFfPm8h.js";
|
|
16
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
16
|
+
import { r as getMemorySearchManager } from "./memory-cli-LV7-59SK.js";
|
|
17
17
|
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CCvj2tKV.js";
|
|
18
18
|
import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
|
|
19
19
|
import { o as getRemoteSkillEligibility } from "./skill-commands-Cph46COl.js";
|
|
@@ -28,7 +28,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D0P5lDGf.j
|
|
|
28
28
|
import { t as readLastGatewayErrorLine } from "./diagnostics-D40jPn_9.js";
|
|
29
29
|
import { t as renderTable } from "./table-Cg6YZXv9.js";
|
|
30
30
|
import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-SikqG3KB.js";
|
|
31
|
-
import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-
|
|
31
|
+
import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CcIuOt6-.js";
|
|
32
32
|
import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-BIE5FLmi.js";
|
|
33
33
|
import { t as resolveNodeService } from "./node-service-DiZDC-T7.js";
|
|
34
34
|
import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DNqZrSx7.js";
|
|
@@ -51,8 +51,8 @@ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as san
|
|
|
51
51
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
|
|
52
52
|
import { t as ensureSymiModelsJson } from "./models-config-BEX8iiQb.js";
|
|
53
53
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-Pz-5t5RS.js";
|
|
54
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
55
|
-
import { i as resolveMemorySearchConfig } from "./manager-
|
|
54
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-CFc9bXRp.js";
|
|
55
|
+
import { i as resolveMemorySearchConfig } from "./manager-DrpXfTr8.js";
|
|
56
56
|
import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
|
|
57
57
|
import { n as retryAsync } from "./retry-C4Q_VPOo.js";
|
|
58
58
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
|
|
@@ -16194,6 +16194,11 @@ function buildAgentSystemPrompt(params) {
|
|
|
16194
16194
|
"- Never narrate or quote tool output you did not actually receive from a real tool result. Writing \"I ran X and got Y\" without a corresponding tool invocation is fabrication and breaks user trust.",
|
|
16195
16195
|
"- For factual local-system lookups (hostname, file contents, process state, env vars, current dir, system info), the answer comes from invoking the appropriate tool — not from priors. Always invoke.",
|
|
16196
16196
|
"",
|
|
16197
|
+
"Example — when the user explicitly names a tool:",
|
|
16198
|
+
" User: \"Use the exec tool to run: echo hi\"",
|
|
16199
|
+
" Correct: call exec with command=\"echo hi\", then summarise the actual stdout you received.",
|
|
16200
|
+
" Wrong: emit \"hi\" as text without calling exec — that's fabrication.",
|
|
16201
|
+
"",
|
|
16197
16202
|
...compactMode ? [] : [
|
|
16198
16203
|
"## Tool Call Style",
|
|
16199
16204
|
"Default: do not narrate routine, low-risk tool calls (just call the tool).",
|
|
@@ -34938,6 +34943,91 @@ function createOutputNormalizer(profile, modelId) {
|
|
|
34938
34943
|
//#endregion
|
|
34939
34944
|
//#region src/agents/model-aware-stream.ts
|
|
34940
34945
|
/**
|
|
34946
|
+
* Match imperative tool requests:
|
|
34947
|
+
* "Use the exec tool to run X"
|
|
34948
|
+
* "use exec to ..."
|
|
34949
|
+
* "Please invoke the read tool"
|
|
34950
|
+
* "call memory_search with ..."
|
|
34951
|
+
*
|
|
34952
|
+
* Anchored to start-of-string, start-of-line, or after a closing-bracket
|
|
34953
|
+
* delimiter `] ` (covers Symi's `[Thu 2026-04-30 20:48 EDT] ` timestamp
|
|
34954
|
+
* envelope, the `[Outlook 365] ` plugin banner, and similar prefixes that
|
|
34955
|
+
* gateway middleware can inject before the user's actual prompt — verified
|
|
34956
|
+
* live: `chat.send` from Glass UI ships content like
|
|
34957
|
+
*
|
|
34958
|
+
* Conversation info (untrusted metadata):
|
|
34959
|
+
* ```json
|
|
34960
|
+
* { "message_id": "...", ... }
|
|
34961
|
+
* ```
|
|
34962
|
+
*
|
|
34963
|
+
* [Thu 2026-04-30 20:48 EDT] Use the exec tool to run: hostname
|
|
34964
|
+
*
|
|
34965
|
+
* so the `Use` is preceded by `] ` not by `\n` or `^`).
|
|
34966
|
+
*
|
|
34967
|
+
* Verb list is conservative (use/invoke/call/please-{use,call}) — pure
|
|
34968
|
+
* imperative verbs that read unambiguously as "do this for me." Tool name
|
|
34969
|
+
* must match EXPLICIT_TOOL_NAMES exactly to keep "use poetic language" /
|
|
34970
|
+
* "use clear writing" / etc. from triggering.
|
|
34971
|
+
*/
|
|
34972
|
+
const EXPLICIT_TOOL_REQUEST_PATTERN = new RegExp(String.raw`(?:^|\n|\]\s)\s*(?:please\s+)?(?:use|invoke|call)\s+(?:the\s+)?(?:` + [
|
|
34973
|
+
"exec",
|
|
34974
|
+
"bash",
|
|
34975
|
+
"read",
|
|
34976
|
+
"write",
|
|
34977
|
+
"edit",
|
|
34978
|
+
"patch",
|
|
34979
|
+
"web_search",
|
|
34980
|
+
"web_fetch",
|
|
34981
|
+
"browser",
|
|
34982
|
+
"browser_navigate",
|
|
34983
|
+
"browser_snapshot",
|
|
34984
|
+
"browser_click",
|
|
34985
|
+
"browser_type",
|
|
34986
|
+
"memory_search",
|
|
34987
|
+
"memory_get",
|
|
34988
|
+
"memory_pin",
|
|
34989
|
+
"memory_unpin",
|
|
34990
|
+
"spawn_agent",
|
|
34991
|
+
"message",
|
|
34992
|
+
"task_list",
|
|
34993
|
+
"task_cancel",
|
|
34994
|
+
"cron",
|
|
34995
|
+
"fetch",
|
|
34996
|
+
"skill_search"
|
|
34997
|
+
].map((n) => n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|") + String.raw`)(?:\s+tool)?\b`, "i");
|
|
34998
|
+
/**
|
|
34999
|
+
* Extract the user-role text ONLY when it's the LAST message in the
|
|
35000
|
+
* conversation (i.e., we're at the start of a fresh turn, not in the
|
|
35001
|
+
* middle of an agent loop). Returns "" when:
|
|
35002
|
+
* - messages isn't an array
|
|
35003
|
+
* - the last message isn't user-role (= we're after a tool_call /
|
|
35004
|
+
* tool_result and the model is continuing — forcing tool_choice
|
|
35005
|
+
* "required" here would loop the agent: model must call a tool →
|
|
35006
|
+
* tool result → model must call ANOTHER tool → tool result → ...)
|
|
35007
|
+
*
|
|
35008
|
+
* Verified live on 3.0.7 dev: with the original "find any prior user
|
|
35009
|
+
* message" implementation, every agent-loop iteration saw the same
|
|
35010
|
+
* matching userText and re-forced tool_choice="required", spinning the
|
|
35011
|
+
* model in an infinite tool-call loop and timing out at 180s.
|
|
35012
|
+
*/
|
|
35013
|
+
function extractLastUserText(messages) {
|
|
35014
|
+
if (!Array.isArray(messages) || messages.length === 0) return "";
|
|
35015
|
+
const last = messages[messages.length - 1];
|
|
35016
|
+
if (!last || typeof last !== "object") return "";
|
|
35017
|
+
const msg = last;
|
|
35018
|
+
if (msg.role !== "user") return "";
|
|
35019
|
+
if (typeof msg.content === "string") return msg.content;
|
|
35020
|
+
if (Array.isArray(msg.content)) {
|
|
35021
|
+
const parts = [];
|
|
35022
|
+
for (const part of msg.content) if (part && typeof part === "object") {
|
|
35023
|
+
const block = part;
|
|
35024
|
+
if (block.type === "text" && typeof block.text === "string") parts.push(block.text);
|
|
35025
|
+
}
|
|
35026
|
+
return parts.join("\n");
|
|
35027
|
+
}
|
|
35028
|
+
return "";
|
|
35029
|
+
}
|
|
35030
|
+
/**
|
|
34941
35031
|
* Create a single stream function wrapper that handles all provider-specific
|
|
34942
35032
|
* param injection via one onPayload hook.
|
|
34943
35033
|
*
|
|
@@ -34985,6 +35075,10 @@ function createModelAwareStreamFn(opts) {
|
|
|
34985
35075
|
delete p.store;
|
|
34986
35076
|
}
|
|
34987
35077
|
if (Array.isArray(p.tools) && p.tools.length > 0 && p.tool_choice === void 0) p.tool_choice = "auto";
|
|
35078
|
+
if (Array.isArray(p.tools) && p.tools.length > 0 && p.tool_choice === "auto") {
|
|
35079
|
+
const userText = extractLastUserText(p.messages);
|
|
35080
|
+
if (userText && EXPLICIT_TOOL_REQUEST_PATTERN.test(userText)) p.tool_choice = "required";
|
|
35081
|
+
}
|
|
34988
35082
|
}
|
|
34989
35083
|
callerOnPayload?.(payload);
|
|
34990
35084
|
};
|
|
@@ -53352,7 +53446,7 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
53352
53446
|
function createDefaultDeps() {
|
|
53353
53447
|
return {
|
|
53354
53448
|
sendMessageWhatsApp: async (...args) => {
|
|
53355
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
53449
|
+
const { sendMessageWhatsApp } = await import("./web-D9-D09LS.js");
|
|
53356
53450
|
return await sendMessageWhatsApp(...args);
|
|
53357
53451
|
},
|
|
53358
53452
|
sendMessageTelegram: async (...args) => {
|
|
@@ -68666,7 +68760,7 @@ function loadWebLoginQr() {
|
|
|
68666
68760
|
return webLoginQrPromise;
|
|
68667
68761
|
}
|
|
68668
68762
|
function loadWebChannel() {
|
|
68669
|
-
webChannelPromise ??= import("./web-
|
|
68763
|
+
webChannelPromise ??= import("./web-D9-D09LS.js");
|
|
68670
68764
|
return webChannelPromise;
|
|
68671
68765
|
}
|
|
68672
68766
|
function loadWhatsAppActions() {
|
|
@@ -7,7 +7,7 @@ import "./reply-prefix-C7ZwCr7X.js";
|
|
|
7
7
|
import "./github-copilot-token-BbsJ0Qbo.js";
|
|
8
8
|
import "./env-CQ_DQOwT.js";
|
|
9
9
|
import "./tokens-DRIIdGfF.js";
|
|
10
|
-
import { f as runAgentTurn } from "./pi-embedded-
|
|
10
|
+
import { f as runAgentTurn } from "./pi-embedded-D9KmgdGY.js";
|
|
11
11
|
import "./plugins-CpxUKuIt.js";
|
|
12
12
|
import "./accounts-DDEyGwby.js";
|
|
13
13
|
import "./bindings-pK-Lzohb.js";
|
|
@@ -35,7 +35,7 @@ import "./accounts-DImOt9jX.js";
|
|
|
35
35
|
import "./paths-DkMamAQ-.js";
|
|
36
36
|
import "./tool-images-CdTyeTEN.js";
|
|
37
37
|
import "./image-BwUdkv5g.js";
|
|
38
|
-
import "./manager-
|
|
38
|
+
import "./manager-ba9NOjzn.js";
|
|
39
39
|
import "./gemini-auth-Drot-Pd7.js";
|
|
40
40
|
import "./retry-QGp0jvVi.js";
|
|
41
41
|
import "./sqlite-Bo4pHfp8.js";
|
|
@@ -4,7 +4,7 @@ import "./agent-scope-Ddr0Ws7u.js";
|
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
5
5
|
import "./workspace-CarmeCYN.js";
|
|
6
6
|
import "./tokens-DLGDtW5r.js";
|
|
7
|
-
import { t as runAgentTurn } from "./unified-runner-
|
|
7
|
+
import { t as runAgentTurn } from "./unified-runner-Dv9LPnmm.js";
|
|
8
8
|
import "./auth-profiles-D4Yfd-KL.js";
|
|
9
9
|
import "./env-BDXYbTKj.js";
|
|
10
10
|
import "./github-copilot-token-cCYzSU9h.js";
|
|
@@ -39,7 +39,7 @@ import "./pi-auth-json-BmjnXR7W.js";
|
|
|
39
39
|
import "./send-DqDuxaGt.js";
|
|
40
40
|
import "./pi-model-discovery-CuZX_Q4t.js";
|
|
41
41
|
import "./reply-prefix-C1Tw2ERK.js";
|
|
42
|
-
import "./manager-
|
|
42
|
+
import "./manager-CpueNJtZ.js";
|
|
43
43
|
import "./gemini-auth-CN9Q-uXv.js";
|
|
44
44
|
import "./retry-B-y5suGA.js";
|
|
45
45
|
import "./sqlite-VBmM_OHS.js";
|
|
@@ -14,7 +14,7 @@ import "./client-CJIMV1WD.js";
|
|
|
14
14
|
import "./call-DgBbW7bk.js";
|
|
15
15
|
import "./message-channel-C9dERklz.js";
|
|
16
16
|
import "./pairing-token-Byh6drgn.js";
|
|
17
|
-
import { X as runAgentTurn } from "./subagent-registry-
|
|
17
|
+
import { X as runAgentTurn } from "./subagent-registry-k0ZBnJuU.js";
|
|
18
18
|
import "./sessions-D94fC0u0.js";
|
|
19
19
|
import "./tokens-BEvOiQ65.js";
|
|
20
20
|
import "./plugins-DTKQE9kt.js";
|
|
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
|
|
|
52
52
|
import "./thinking-8sKPnzpp.js";
|
|
53
53
|
import "./models-config-BEX8iiQb.js";
|
|
54
54
|
import "./reply-prefix-Pz-5t5RS.js";
|
|
55
|
-
import "./memory-cli-
|
|
56
|
-
import "./manager-
|
|
55
|
+
import "./memory-cli-CFc9bXRp.js";
|
|
56
|
+
import "./manager-DrpXfTr8.js";
|
|
57
57
|
import "./gemini-auth-48fFOTO4.js";
|
|
58
58
|
import "./retry-C4Q_VPOo.js";
|
|
59
59
|
import "./sqlite-BP8tiuca.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./paths-Cqn-zk3M.js";
|
|
2
2
|
import "./utils-B-0b9bGM.js";
|
|
3
3
|
import "./tokens-Cz6cgZ7r.js";
|
|
4
|
-
import { t as runAgentTurn } from "./unified-runner-
|
|
4
|
+
import { t as runAgentTurn } from "./unified-runner-CzxCpDUC.js";
|
|
5
5
|
import "./registry-ClO_zVv-.js";
|
|
6
6
|
import { t as createSubsystemLogger } from "./subsystem-zqierDLj.js";
|
|
7
7
|
import "./auth-profiles-HXq6s5EV.js";
|
|
@@ -55,8 +55,8 @@ import "./send-DNJPCiwf.js";
|
|
|
55
55
|
import "./model-DIO3dH08.js";
|
|
56
56
|
import "./pi-model-discovery-CXXH7biP.js";
|
|
57
57
|
import "./reply-prefix-DnXliXio.js";
|
|
58
|
-
import "./memory-cli-
|
|
59
|
-
import "./manager-
|
|
58
|
+
import "./memory-cli-LV7-59SK.js";
|
|
59
|
+
import "./manager-_IXN4-V8.js";
|
|
60
60
|
import "./gemini-auth-D7Wqp9Ma.js";
|
|
61
61
|
import "./retry-DYICeae5.js";
|
|
62
62
|
import "./sqlite-CRogFEk1.js";
|
|
@@ -54,8 +54,8 @@ import { A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as
|
|
|
54
54
|
import { a as buildModelAliasLines, n as resolveModel } from "./model-DIO3dH08.js";
|
|
55
55
|
import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-CXXH7biP.js";
|
|
56
56
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DnXliXio.js";
|
|
57
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
58
|
-
import { i as resolveMemorySearchConfig } from "./manager-
|
|
57
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-LV7-59SK.js";
|
|
58
|
+
import { i as resolveMemorySearchConfig } from "./manager-_IXN4-V8.js";
|
|
59
59
|
import { f as runTasksWithConcurrency } from "./internal-7ow_5D0m.js";
|
|
60
60
|
import { n as retryAsync } from "./retry-DYICeae5.js";
|
|
61
61
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-T0R2wR5q.js";
|
|
@@ -6836,6 +6836,11 @@ function buildAgentSystemPrompt(params) {
|
|
|
6836
6836
|
"- Never narrate or quote tool output you did not actually receive from a real tool result. Writing \"I ran X and got Y\" without a corresponding tool invocation is fabrication and breaks user trust.",
|
|
6837
6837
|
"- For factual local-system lookups (hostname, file contents, process state, env vars, current dir, system info), the answer comes from invoking the appropriate tool — not from priors. Always invoke.",
|
|
6838
6838
|
"",
|
|
6839
|
+
"Example — when the user explicitly names a tool:",
|
|
6840
|
+
" User: \"Use the exec tool to run: echo hi\"",
|
|
6841
|
+
" Correct: call exec with command=\"echo hi\", then summarise the actual stdout you received.",
|
|
6842
|
+
" Wrong: emit \"hi\" as text without calling exec — that's fabrication.",
|
|
6843
|
+
"",
|
|
6839
6844
|
...compactMode ? [] : [
|
|
6840
6845
|
"## Tool Call Style",
|
|
6841
6846
|
"Default: do not narrate routine, low-risk tool calls (just call the tool).",
|
|
@@ -48486,7 +48491,7 @@ function setCliSessionId(entry, provider, sessionId) {
|
|
|
48486
48491
|
function createDefaultDeps() {
|
|
48487
48492
|
return {
|
|
48488
48493
|
sendMessageWhatsApp: async (...args) => {
|
|
48489
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
48494
|
+
const { sendMessageWhatsApp } = await import("./web-DJqpgWuK.js");
|
|
48490
48495
|
return await sendMessageWhatsApp(...args);
|
|
48491
48496
|
},
|
|
48492
48497
|
sendMessageTelegram: async (...args) => {
|
|
@@ -63800,7 +63805,7 @@ function loadWebLoginQr() {
|
|
|
63800
63805
|
return webLoginQrPromise;
|
|
63801
63806
|
}
|
|
63802
63807
|
function loadWebChannel() {
|
|
63803
|
-
webChannelPromise ??= import("./web-
|
|
63808
|
+
webChannelPromise ??= import("./web-DJqpgWuK.js");
|
|
63804
63809
|
return webChannelPromise;
|
|
63805
63810
|
}
|
|
63806
63811
|
function loadWhatsAppActions() {
|
|
@@ -68281,6 +68286,91 @@ function createOutputNormalizer(profile, modelId) {
|
|
|
68281
68286
|
//#endregion
|
|
68282
68287
|
//#region src/agents/model-aware-stream.ts
|
|
68283
68288
|
/**
|
|
68289
|
+
* Match imperative tool requests:
|
|
68290
|
+
* "Use the exec tool to run X"
|
|
68291
|
+
* "use exec to ..."
|
|
68292
|
+
* "Please invoke the read tool"
|
|
68293
|
+
* "call memory_search with ..."
|
|
68294
|
+
*
|
|
68295
|
+
* Anchored to start-of-string, start-of-line, or after a closing-bracket
|
|
68296
|
+
* delimiter `] ` (covers Symi's `[Thu 2026-04-30 20:48 EDT] ` timestamp
|
|
68297
|
+
* envelope, the `[Outlook 365] ` plugin banner, and similar prefixes that
|
|
68298
|
+
* gateway middleware can inject before the user's actual prompt — verified
|
|
68299
|
+
* live: `chat.send` from Glass UI ships content like
|
|
68300
|
+
*
|
|
68301
|
+
* Conversation info (untrusted metadata):
|
|
68302
|
+
* ```json
|
|
68303
|
+
* { "message_id": "...", ... }
|
|
68304
|
+
* ```
|
|
68305
|
+
*
|
|
68306
|
+
* [Thu 2026-04-30 20:48 EDT] Use the exec tool to run: hostname
|
|
68307
|
+
*
|
|
68308
|
+
* so the `Use` is preceded by `] ` not by `\n` or `^`).
|
|
68309
|
+
*
|
|
68310
|
+
* Verb list is conservative (use/invoke/call/please-{use,call}) — pure
|
|
68311
|
+
* imperative verbs that read unambiguously as "do this for me." Tool name
|
|
68312
|
+
* must match EXPLICIT_TOOL_NAMES exactly to keep "use poetic language" /
|
|
68313
|
+
* "use clear writing" / etc. from triggering.
|
|
68314
|
+
*/
|
|
68315
|
+
const EXPLICIT_TOOL_REQUEST_PATTERN = new RegExp(String.raw`(?:^|\n|\]\s)\s*(?:please\s+)?(?:use|invoke|call)\s+(?:the\s+)?(?:` + [
|
|
68316
|
+
"exec",
|
|
68317
|
+
"bash",
|
|
68318
|
+
"read",
|
|
68319
|
+
"write",
|
|
68320
|
+
"edit",
|
|
68321
|
+
"patch",
|
|
68322
|
+
"web_search",
|
|
68323
|
+
"web_fetch",
|
|
68324
|
+
"browser",
|
|
68325
|
+
"browser_navigate",
|
|
68326
|
+
"browser_snapshot",
|
|
68327
|
+
"browser_click",
|
|
68328
|
+
"browser_type",
|
|
68329
|
+
"memory_search",
|
|
68330
|
+
"memory_get",
|
|
68331
|
+
"memory_pin",
|
|
68332
|
+
"memory_unpin",
|
|
68333
|
+
"spawn_agent",
|
|
68334
|
+
"message",
|
|
68335
|
+
"task_list",
|
|
68336
|
+
"task_cancel",
|
|
68337
|
+
"cron",
|
|
68338
|
+
"fetch",
|
|
68339
|
+
"skill_search"
|
|
68340
|
+
].map((n) => n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|") + String.raw`)(?:\s+tool)?\b`, "i");
|
|
68341
|
+
/**
|
|
68342
|
+
* Extract the user-role text ONLY when it's the LAST message in the
|
|
68343
|
+
* conversation (i.e., we're at the start of a fresh turn, not in the
|
|
68344
|
+
* middle of an agent loop). Returns "" when:
|
|
68345
|
+
* - messages isn't an array
|
|
68346
|
+
* - the last message isn't user-role (= we're after a tool_call /
|
|
68347
|
+
* tool_result and the model is continuing — forcing tool_choice
|
|
68348
|
+
* "required" here would loop the agent: model must call a tool →
|
|
68349
|
+
* tool result → model must call ANOTHER tool → tool result → ...)
|
|
68350
|
+
*
|
|
68351
|
+
* Verified live on 3.0.7 dev: with the original "find any prior user
|
|
68352
|
+
* message" implementation, every agent-loop iteration saw the same
|
|
68353
|
+
* matching userText and re-forced tool_choice="required", spinning the
|
|
68354
|
+
* model in an infinite tool-call loop and timing out at 180s.
|
|
68355
|
+
*/
|
|
68356
|
+
function extractLastUserText(messages) {
|
|
68357
|
+
if (!Array.isArray(messages) || messages.length === 0) return "";
|
|
68358
|
+
const last = messages[messages.length - 1];
|
|
68359
|
+
if (!last || typeof last !== "object") return "";
|
|
68360
|
+
const msg = last;
|
|
68361
|
+
if (msg.role !== "user") return "";
|
|
68362
|
+
if (typeof msg.content === "string") return msg.content;
|
|
68363
|
+
if (Array.isArray(msg.content)) {
|
|
68364
|
+
const parts = [];
|
|
68365
|
+
for (const part of msg.content) if (part && typeof part === "object") {
|
|
68366
|
+
const block = part;
|
|
68367
|
+
if (block.type === "text" && typeof block.text === "string") parts.push(block.text);
|
|
68368
|
+
}
|
|
68369
|
+
return parts.join("\n");
|
|
68370
|
+
}
|
|
68371
|
+
return "";
|
|
68372
|
+
}
|
|
68373
|
+
/**
|
|
68284
68374
|
* Create a single stream function wrapper that handles all provider-specific
|
|
68285
68375
|
* param injection via one onPayload hook.
|
|
68286
68376
|
*
|
|
@@ -68328,6 +68418,10 @@ function createModelAwareStreamFn(opts) {
|
|
|
68328
68418
|
delete p.store;
|
|
68329
68419
|
}
|
|
68330
68420
|
if (Array.isArray(p.tools) && p.tools.length > 0 && p.tool_choice === void 0) p.tool_choice = "auto";
|
|
68421
|
+
if (Array.isArray(p.tools) && p.tools.length > 0 && p.tool_choice === "auto") {
|
|
68422
|
+
const userText = extractLastUserText(p.messages);
|
|
68423
|
+
if (userText && EXPLICIT_TOOL_REQUEST_PATTERN.test(userText)) p.tool_choice = "required";
|
|
68424
|
+
}
|
|
68331
68425
|
}
|
|
68332
68426
|
callerOnPayload?.(payload);
|
|
68333
68427
|
};
|