@symerian/symi 2.0.21 → 2.0.22

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.
Files changed (109) hide show
  1. package/dist/{agents-BSeFiBRj.js → agents-DPqxmSTh.js} +4 -4
  2. package/dist/{agents.config-HV2CtcLr.js → agents.config-D546KT_g.js} +1 -1
  3. package/dist/{agents.config-_hO_QR2M.js → agents.config-ah2sfVuh.js} +1 -1
  4. package/dist/{audio-preflight-xXPdllT2.js → audio-preflight-CHWYpvI7.js} +4 -4
  5. package/dist/{auth-choice-Dvi3b00E.js → auth-choice-CnkugX5j.js} +1 -1
  6. package/dist/{auth-choice-CMn1icch.js → auth-choice-DF-shD8r.js} +1 -1
  7. package/dist/{banner-DJ43fuRA.js → banner-bvMTkZEs.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +6 -6
  10. package/dist/bundled/session-memory/handler.js +6 -6
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-OhTp1gp0.js → channel-options-B1CU1OhV.js} +1 -1
  13. package/dist/{channel-options-BIqTdeyS.js → channel-options-WQIYmA0R.js} +1 -1
  14. package/dist/{channel-web-DwTSnmX3.js → channel-web-CJj8XofR.js} +1 -1
  15. package/dist/{channels-cli-BZVAXuw6.js → channels-cli-BQHwMH-9.js} +4 -4
  16. package/dist/{channels-cli-CEdBXvqG.js → channels-cli-DKpgiqZM.js} +4 -4
  17. package/dist/{chrome-0jst3oxa.js → chrome-CkWGSMS5.js} +7 -7
  18. package/dist/{cli-BhX7v0Gc.js → cli-B6wgV4te.js} +1 -1
  19. package/dist/{cli-DpH_bL5y.js → cli-rFD0PhFT.js} +1 -1
  20. package/dist/{command-registry-BGBpeVI4.js → command-registry-Dg8tEZn7.js} +9 -9
  21. package/dist/{completion-cli-Cn7LdRdM.js → completion-cli-B2KjRA9F.js} +1 -1
  22. package/dist/{completion-cli-C_c6mPUj.js → completion-cli-FRiFEavP.js} +2 -2
  23. package/dist/{config-cli-ANninpk5.js → config-cli-L94gSwVv.js} +1 -1
  24. package/dist/{config-cli-Dhao17cx.js → config-cli-YG0NXWaD.js} +1 -1
  25. package/dist/{configure-Bk5y106m.js → configure-DjW5XA-i.js} +3 -3
  26. package/dist/{configure-CW1bGvDg.js → configure-DpmVGU5C.js} +3 -3
  27. package/dist/{deliver-CyuL3391.js → deliver-BpcMy6AD.js} +1 -1
  28. package/dist/{doctor-completion-BrxVe5Vw.js → doctor-completion-CSwxOlhu.js} +1 -1
  29. package/dist/{doctor-completion-rUiI3KDq.js → doctor-completion-D6bevOPA.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +1 -1
  32. package/dist/{gateway-cli-BH1WWnP0.js → gateway-cli-C1nuI3Ec.js} +9 -9
  33. package/dist/{gateway-cli-D9cvWV3T.js → gateway-cli-D4VSgdJh.js} +9 -9
  34. package/dist/{glass-ui-ws-C_39oBWc.js → glass-ui-ws-BIEY-Hp0.js} +7 -7
  35. package/dist/{glass-ui-ws-Cr62sdzu.js → glass-ui-ws-D-rChRuX.js} +7 -7
  36. package/dist/{health-Dxc7OaYZ.js → health-DDZwUqwB.js} +1 -1
  37. package/dist/{health-BqG74n1V.js → health-DiRth-TA.js} +1 -1
  38. package/dist/{hooks-cli-CDIAvBdY.js → hooks-cli-DNCFaCrN.js} +2 -2
  39. package/dist/{hooks-cli-CXTnYD_D.js → hooks-cli-HNtzwpSV.js} +2 -2
  40. package/dist/{image-OBAjrX26.js → image-Cvu0YSjj.js} +1 -1
  41. package/dist/index.js +6 -6
  42. package/dist/llm-slug-generator.js +6 -6
  43. package/dist/{models-CBvEOwwi.js → models-DeOa-Kw8.js} +2 -2
  44. package/dist/{models-cli-DbzhkuY-.js → models-cli-DmhxB26a.js} +3 -3
  45. package/dist/{models-cli-Sqm4aZYq.js → models-cli-Dti8CQ4l.js} +2 -2
  46. package/dist/{onboard-MFfVDMXe.js → onboard-CeBeu3P1.js} +2 -2
  47. package/dist/{onboard-CnEPCQ_Y.js → onboard-DtVK6rjL.js} +2 -2
  48. package/dist/{onboard-channels-BirbY8dc.js → onboard-channels-DaVmoOm_.js} +1 -1
  49. package/dist/{onboard-channels-EMKZoWGR.js → onboard-channels-W-oni7gS.js} +1 -1
  50. package/dist/{onboarding-hfFlm7As.js → onboarding-Cg9XTkBd.js} +3 -3
  51. package/dist/{onboarding-BRpvel6F.js → onboarding-D8eDFwa2.js} +3 -3
  52. package/dist/{onboarding.finalize-C0tcGPgk.js → onboarding.finalize-7WP463T8.js} +5 -5
  53. package/dist/{onboarding.finalize-BeXc3cym.js → onboarding.finalize-B1bb1wRw.js} +6 -6
  54. package/dist/{pi-embedded-CalvdkmO.js → pi-embedded-Dt55w8cV.js} +10 -2
  55. package/dist/{pi-embedded-B4VJG-rX.js → pi-embedded-MQyUl4Vd.js} +24 -16
  56. package/dist/{pi-embedded-helpers-CutNlIBA.js → pi-embedded-helpers-yCss7Bdi.js} +4 -4
  57. package/dist/{plugin-registry-D5j8ZtiH.js → plugin-registry-CzCch-YI.js} +1 -1
  58. package/dist/{plugin-registry-DRar5JRY.js → plugin-registry-qkOLPlY-.js} +1 -1
  59. package/dist/plugin-sdk/{channel-web-cqGoGTML.js → channel-web-C9N79DF5.js} +1 -1
  60. package/dist/plugin-sdk/index.js +2 -2
  61. package/dist/plugin-sdk/{reply-CJH6lKpT.js → reply-DHEk1mbh.js} +10 -2
  62. package/dist/plugin-sdk/{web-7IkbVCs1.js → web-i-1y7OqN.js} +2 -2
  63. package/dist/{plugins-cli-rfFi_-nC.js → plugins-cli-CuWdlZUL.js} +2 -2
  64. package/dist/{plugins-cli-OWA6KtRo.js → plugins-cli-gfyaL-JG.js} +2 -2
  65. package/dist/{program--ISVLHCM.js → program-BjfVIsbe.js} +7 -7
  66. package/dist/{program-context-15UFZ3WW.js → program-context-BzaWpuOp.js} +17 -17
  67. package/dist/{prompt-select-styled-CpIcsq_7.js → prompt-select-styled-DX2M5ooT.js} +4 -4
  68. package/dist/{prompt-select-styled-uh5icFLb.js → prompt-select-styled-DpDi0x9k.js} +4 -4
  69. package/dist/{provider-auth-helpers-BOnXYr4j.js → provider-auth-helpers-Bs6lQx_x.js} +1 -1
  70. package/dist/{provider-auth-helpers-DA6ol80S.js → provider-auth-helpers-DdsVPRuX.js} +1 -1
  71. package/dist/{push-apns-CdOkanm5.js → push-apns-BhIc_b87.js} +1 -1
  72. package/dist/{push-apns-DtbiRKMR.js → push-apns-ZauuwP2K.js} +1 -1
  73. package/dist/{pw-ai-DzztKcJ4.js → pw-ai-CzGGXy9V.js} +1 -1
  74. package/dist/{register.agent-DYitjjp3.js → register.agent-B1sFFJFg.js} +5 -5
  75. package/dist/{register.agent-DPnUGOPM.js → register.agent-CTrXGVfd.js} +6 -6
  76. package/dist/{register.configure-CvnnWujI.js → register.configure-CcyX3Lc8.js} +6 -6
  77. package/dist/{register.configure-CxRxqsPa.js → register.configure-DDVmT6NY.js} +6 -6
  78. package/dist/{register.maintenance-D1h2Sa3O.js → register.maintenance-CdoXyGzf.js} +7 -7
  79. package/dist/{register.maintenance-B9b4xpdf.js → register.maintenance-LsWciVuT.js} +8 -8
  80. package/dist/{register.message-MT4k5ttC.js → register.message-CEhrWjQV.js} +2 -2
  81. package/dist/{register.message-CYnWS6qP.js → register.message-iAimOwns.js} +2 -2
  82. package/dist/{register.onboard-md1AE8om.js → register.onboard-B905_rz1.js} +4 -4
  83. package/dist/{register.onboard-BPWslrzo.js → register.onboard-BdspAIMb.js} +4 -4
  84. package/dist/{register.setup-D152L7kN.js → register.setup-3aRCKJ36.js} +4 -4
  85. package/dist/{register.setup-B8vTae2l.js → register.setup-DtBE_3fr.js} +4 -4
  86. package/dist/{register.status-health-sessions-CM1dceKY.js → register.status-health-sessions-BWr1hDot.js} +3 -3
  87. package/dist/{register.status-health-sessions-DbODHMBJ.js → register.status-health-sessions-DVGmTBQO.js} +3 -3
  88. package/dist/{register.subclis-BUqhtoys.js → register.subclis-BZ3i4kMS.js} +9 -9
  89. package/dist/{reply-HW7ujuKi.js → reply-DBq43zxh.js} +10 -2
  90. package/dist/{run-main-BrQbiyBV.js → run-main-DHhJ9JFs.js} +14 -14
  91. package/dist/{runner-CJu9Gl_X.js → runner-C-hs6BOd.js} +1 -1
  92. package/dist/{server-methods-1pwguAUr.js → server-methods-BfVpF3_j.js} +7 -7
  93. package/dist/{server-methods-CIiK2q84.js → server-methods-CBz9kx2s.js} +7 -7
  94. package/dist/{server-node-events-e-EkrMFA.js → server-node-events-BBMB3HWj.js} +2 -2
  95. package/dist/{server-node-events-BuOc53ED.js → server-node-events-DHlmMG_C.js} +2 -2
  96. package/dist/{status-D7lG_rKr.js → status--f4zX1DS.js} +2 -2
  97. package/dist/{status-CEb4wj9d.js → status-BcNi9OjQ.js} +2 -2
  98. package/dist/{status-CY5OXF3d.js → status-C-GM0R2c.js} +1 -1
  99. package/dist/{status-CNsOWE6W.js → status-CCTReric.js} +1 -1
  100. package/dist/{subagent-registry-BKhraI9X.js → subagent-registry-CiBbcgit.js} +10 -2
  101. package/dist/{update-cli-Di3jY1P2.js → update-cli-Cj1AmFgn.js} +7 -7
  102. package/dist/{update-cli-DB3oEF5D.js → update-cli-DAzmC_i2.js} +8 -8
  103. package/dist/{update-runner-CeFIRC25.js → update-runner-CQCzp1FG.js} +1 -1
  104. package/dist/{update-runner-CjK47aX2.js → update-runner-CVh1ixYm.js} +1 -1
  105. package/dist/{web-CV7it9N3.js → web-BxUguUwU.js} +6 -6
  106. package/dist/{web-BoxjWHKk.js → web-Dan0YPuK.js} +1 -1
  107. package/dist/{web-DvRmeW25.js → web-svB71EDx.js} +1 -1
  108. package/dist/{web-DhH58pge.js → web-u_T-25Fh.js} +2 -2
  109. package/package.json +1 -1
@@ -21783,6 +21783,14 @@ function buildAgentSystemPrompt(params) {
21783
21783
  "Keep narration brief and value-dense; avoid repeating obvious steps.",
21784
21784
  "Use plain human language for narration unless in a technical context.",
21785
21785
  "",
21786
+ "## Edit Tool Best Practices",
21787
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
21788
+ "To avoid match failures:",
21789
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
21790
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
21791
+ "- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT move on or fix a different issue.",
21792
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
21793
+ "",
21786
21794
  ...safetySection,
21787
21795
  "## Symi CLI Quick Reference",
21788
21796
  "Symi is controlled via subcommands. Do not invent commands.",
@@ -51761,7 +51769,7 @@ function isVoiceChannelType(type) {
51761
51769
  function createDefaultDeps() {
51762
51770
  return {
51763
51771
  sendMessageWhatsApp: async (...args) => {
51764
- const { sendMessageWhatsApp } = await import("./web-BoxjWHKk.js");
51772
+ const { sendMessageWhatsApp } = await import("./web-Dan0YPuK.js");
51765
51773
  return await sendMessageWhatsApp(...args);
51766
51774
  },
51767
51775
  sendMessageTelegram: async (...args) => {
@@ -67043,7 +67051,7 @@ function loadWebLoginQr() {
67043
67051
  return webLoginQrPromise;
67044
67052
  }
67045
67053
  function loadWebChannel() {
67046
- webChannelPromise ??= import("./web-BoxjWHKk.js");
67054
+ webChannelPromise ??= import("./web-Dan0YPuK.js");
67047
67055
  return webChannelPromise;
67048
67056
  }
67049
67057
  function loadWhatsAppActions() {
@@ -13,7 +13,7 @@ import { t as parseBooleanValue$1 } from "./boolean-B8-BqKGQ.js";
13
13
  import { n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-BaxDnULz.js";
14
14
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-Dq3yh0n_.js";
15
15
  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-B-uN5xRM.js";
16
- 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-CyuL3391.js";
16
+ 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-BpcMy6AD.js";
17
17
  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-CI0kRQkt.js";
18
18
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Bxo4UHOL.js";
19
19
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-CWktKM8a.js";
@@ -23,10 +23,10 @@ import { A as normalizeProviderId, C as buildAllowedModelSet, D as isCliProvider
23
23
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-C_qUP7p5.js";
24
24
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
25
25
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-Dz5lr5b0.js";
26
- 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-CutNlIBA.js";
26
+ 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-yCss7Bdi.js";
27
27
  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-oz6yMs1r.js";
28
28
  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-D0IQ3WuX.js";
29
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-0jst3oxa.js";
29
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CkWGSMS5.js";
30
30
  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-BFekKL7i.js";
31
31
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-BoQgnc8X.js";
32
32
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
@@ -37,7 +37,7 @@ import { t as resolveIMessageAccount } from "./accounts-qtxJ-6em.js";
37
37
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DLyHUt31.js";
38
38
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
39
39
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-DXB7tqWi.js";
40
- 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-OBAjrX26.js";
40
+ 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-Cvu0YSjj.js";
41
41
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-XlyuyChD.js";
42
42
  import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-WMCMBAXk.js";
43
43
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-DRbx2dhW.js";
@@ -51,7 +51,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DccrnjsE.js";
51
51
  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-DhT2Skgp.js";
52
52
  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-Depo8UbH.js";
53
53
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-BlHX0H3E.js";
54
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-CJu9Gl_X.js";
54
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-C-hs6BOd.js";
55
55
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Bso4i15F.js";
56
56
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
57
57
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CsM_hJ_s.js";
@@ -81,7 +81,7 @@ import { EdgeTTS } from "node-edge-tts";
81
81
  import AjvPkg from "ajv";
82
82
  import { createServer } from "node:http";
83
83
  import { ProxyAgent, fetch as fetch$1 } from "undici";
84
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
84
+ import WebSocket$1, { WebSocket } from "ws";
85
85
  import { Buffer as Buffer$1 } from "node:buffer";
86
86
  import { createJiti } from "jiti";
87
87
  import { Type } from "@sinclair/typebox";
@@ -5716,7 +5716,7 @@ var GatewayClient = class {
5716
5716
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5717
5717
  });
5718
5718
  }
5719
- this.ws = new WebSocket$1(url, wsOptions);
5719
+ this.ws = new WebSocket(url, wsOptions);
5720
5720
  this.ws.on("open", () => {
5721
5721
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5722
5722
  const tlsError = this.validateTlsFingerprint();
@@ -5935,7 +5935,7 @@ var GatewayClient = class {
5935
5935
  return null;
5936
5936
  }
5937
5937
  async request(method, params, opts) {
5938
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5938
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5939
5939
  const id = randomUUID();
5940
5940
  const frame = {
5941
5941
  type: "req",
@@ -7201,7 +7201,7 @@ async function routeReply(params) {
7201
7201
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7202
7202
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7203
7203
  try {
7204
- const { deliverOutboundPayloads } = await import("./deliver-CyuL3391.js").then((n) => n.n);
7204
+ const { deliverOutboundPayloads } = await import("./deliver-BpcMy6AD.js").then((n) => n.n);
7205
7205
  return {
7206
7206
  ok: true,
7207
7207
  messageId: (await deliverOutboundPayloads({
@@ -21785,6 +21785,14 @@ function buildAgentSystemPrompt(params) {
21785
21785
  "Keep narration brief and value-dense; avoid repeating obvious steps.",
21786
21786
  "Use plain human language for narration unless in a technical context.",
21787
21787
  "",
21788
+ "## Edit Tool Best Practices",
21789
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
21790
+ "To avoid match failures:",
21791
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
21792
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
21793
+ "- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT move on or fix a different issue.",
21794
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
21795
+ "",
21788
21796
  ...safetySection,
21789
21797
  "## Symi CLI Quick Reference",
21790
21798
  "Symi is controlled via subcommands. Do not invent commands.",
@@ -41649,7 +41657,7 @@ async function deliverSessionMaintenanceWarning(params) {
41649
41657
  return;
41650
41658
  }
41651
41659
  try {
41652
- const { deliverOutboundPayloads } = await import("./deliver-CyuL3391.js").then((n) => n.n);
41660
+ const { deliverOutboundPayloads } = await import("./deliver-BpcMy6AD.js").then((n) => n.n);
41653
41661
  await deliverOutboundPayloads({
41654
41662
  cfg: params.cfg,
41655
41663
  channel,
@@ -45095,7 +45103,7 @@ async function describeStickerImage(params) {
45095
45103
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
45096
45104
  try {
45097
45105
  const buffer = await fs.readFile(imagePath);
45098
- const { describeImageWithModel } = await import("./image-OBAjrX26.js").then((n) => n.n);
45106
+ const { describeImageWithModel } = await import("./image-Cvu0YSjj.js").then((n) => n.n);
45099
45107
  return (await describeImageWithModel({
45100
45108
  buffer,
45101
45109
  fileName: "sticker.webp",
@@ -47757,7 +47765,7 @@ async function preflightDiscordMessage(params) {
47757
47765
  let preflightTranscript;
47758
47766
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
47759
47767
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
47760
- const { transcribeFirstAudio } = await import("./audio-preflight-xXPdllT2.js");
47768
+ const { transcribeFirstAudio } = await import("./audio-preflight-CHWYpvI7.js");
47761
47769
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
47762
47770
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
47763
47771
  ctx: {
@@ -51763,7 +51771,7 @@ function isVoiceChannelType(type) {
51763
51771
  function createDefaultDeps() {
51764
51772
  return {
51765
51773
  sendMessageWhatsApp: async (...args) => {
51766
- const { sendMessageWhatsApp } = await import("./web-CV7it9N3.js");
51774
+ const { sendMessageWhatsApp } = await import("./web-BxUguUwU.js");
51767
51775
  return await sendMessageWhatsApp(...args);
51768
51776
  },
51769
51777
  sendMessageTelegram: async (...args) => {
@@ -54670,7 +54678,7 @@ function createDiscordGatewayPlugin(params) {
54670
54678
  super(options);
54671
54679
  }
54672
54680
  createWebSocket(url) {
54673
- return new WebSocket(url, { agent });
54681
+ return new WebSocket$1(url, { agent });
54674
54682
  }
54675
54683
  }
54676
54684
  return new ProxyGatewayPlugin();
@@ -64888,7 +64896,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
64888
64896
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
64889
64897
  let preflightTranscript;
64890
64898
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
64891
- const { transcribeFirstAudio } = await import("./audio-preflight-xXPdllT2.js");
64899
+ const { transcribeFirstAudio } = await import("./audio-preflight-CHWYpvI7.js");
64892
64900
  preflightTranscript = await transcribeFirstAudio({
64893
64901
  ctx: {
64894
64902
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -67045,7 +67053,7 @@ function loadWebLoginQr() {
67045
67053
  return webLoginQrPromise;
67046
67054
  }
67047
67055
  function loadWebChannel() {
67048
- webChannelPromise ??= import("./web-CV7it9N3.js");
67056
+ webChannelPromise ??= import("./web-BxUguUwU.js");
67049
67057
  return webChannelPromise;
67050
67058
  }
67051
67059
  function loadWhatsAppActions() {
@@ -12,7 +12,7 @@ import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n a
12
12
  import { S as isPidAlive, x as resolveProcessScopedMap } from "./model-auth-ueipoWgv.js";
13
13
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-Dz5lr5b0.js";
14
14
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-oz6yMs1r.js";
15
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-0jst3oxa.js";
15
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CkWGSMS5.js";
16
16
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BFekKL7i.js";
17
17
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BoQgnc8X.js";
18
18
  import { t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
933
933
  }
934
934
  async function loadPwAiModule(mode) {
935
935
  try {
936
- return await import("./pw-ai-DzztKcJ4.js");
936
+ return await import("./pw-ai-CzGGXy9V.js");
937
937
  } catch (err) {
938
938
  if (mode === "soft") return null;
939
939
  if (isModuleNotFoundError(err)) return null;
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
3473
3473
  const userDataDir = resolveSymiUserDataDir(profile.name);
3474
3474
  const profileState = getProfileState();
3475
3475
  if (await isHttpReachable(300) && !profileState.running) try {
3476
- await (await import("./pw-ai-DzztKcJ4.js")).closePlaywrightBrowserConnection();
3476
+ await (await import("./pw-ai-CzGGXy9V.js")).closePlaywrightBrowserConnection();
3477
3477
  } catch {}
3478
3478
  if (profileState.running) await stopRunningBrowser();
3479
3479
  try {
3480
- await (await import("./pw-ai-DzztKcJ4.js")).closePlaywrightBrowserConnection();
3480
+ await (await import("./pw-ai-CzGGXy9V.js")).closePlaywrightBrowserConnection();
3481
3481
  } catch {}
3482
3482
  if (!fs$1.existsSync(userDataDir)) return {
3483
3483
  moved: false,
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { i as loadConfig } from "./config-CGJ96S46.js";
5
- import { _ as loadSymiPlugins } from "./subagent-registry-BKhraI9X.js";
5
+ import { _ as loadSymiPlugins } from "./subagent-registry-CiBbcgit.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { gt as loadSymiPlugins } from "./reply-HW7ujuKi.js";
2
+ import { gt as loadSymiPlugins } from "./reply-DBq43zxh.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
2
  import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
3
- import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-CJH6lKpT.js";
3
+ import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-DHEk1mbh.js";
4
4
  import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
5
5
  import { n as loadConfig } from "./config-BvR2BWLO.js";
6
6
  import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
@@ -1,6 +1,6 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
3
- import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-CJH6lKpT.js";
3
+ import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-DHEk1mbh.js";
4
4
  import "./paths-DR2yt_mP.js";
5
5
  import "./github-copilot-token-D9X2phUj.js";
6
6
  import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-BbAvhC25.js";
@@ -47,7 +47,7 @@ import "./paths-A0xdf3yk.js";
47
47
  import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-mFf4i4G9.js";
48
48
  import { n as extractOriginalFilename } from "./store-Do3t33-c.js";
49
49
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkCUbYGV.js";
50
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-cqGoGTML.js";
50
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-C9N79DF5.js";
51
51
  import "./image-DKyNtsLH.js";
52
52
  import "./pi-model-discovery-LbcEa65a.js";
53
53
  import "./api-key-rotation-2bCcXL6t.js";
@@ -25972,6 +25972,14 @@ function buildAgentSystemPrompt(params) {
25972
25972
  "Keep narration brief and value-dense; avoid repeating obvious steps.",
25973
25973
  "Use plain human language for narration unless in a technical context.",
25974
25974
  "",
25975
+ "## Edit Tool Best Practices",
25976
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
25977
+ "To avoid match failures:",
25978
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
25979
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
25980
+ "- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT move on or fix a different issue.",
25981
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
25982
+ "",
25975
25983
  ...safetySection,
25976
25984
  "## Symi CLI Quick Reference",
25977
25985
  "Symi is controlled via subcommands. Do not invent commands.",
@@ -27111,7 +27119,7 @@ async function runWithImageModelFallback(params) {
27111
27119
  function createDefaultDeps() {
27112
27120
  return {
27113
27121
  sendMessageWhatsApp: async (...args) => {
27114
- const { sendMessageWhatsApp } = await import("./web-7IkbVCs1.js");
27122
+ const { sendMessageWhatsApp } = await import("./web-i-1y7OqN.js");
27115
27123
  return await sendMessageWhatsApp(...args);
27116
27124
  },
27117
27125
  sendMessageTelegram: async (...args) => {
@@ -44737,7 +44745,7 @@ function loadWebLoginQr() {
44737
44745
  return webLoginQrPromise;
44738
44746
  }
44739
44747
  function loadWebChannel() {
44740
- webChannelPromise ??= import("./web-7IkbVCs1.js");
44748
+ webChannelPromise ??= import("./web-i-1y7OqN.js");
44741
44749
  return webChannelPromise;
44742
44750
  }
44743
44751
  function loadWhatsAppActions() {
@@ -1,5 +1,5 @@
1
1
  import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
2
- import "./reply-CJH6lKpT.js";
2
+ import "./reply-DHEk1mbh.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -45,7 +45,7 @@ import "./pi-embedded-helpers-Dd5EG8iK.js";
45
45
  import "./paths-A0xdf3yk.js";
46
46
  import "./diagnostic-mFf4i4G9.js";
47
47
  import "./store-Do3t33-c.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-cqGoGTML.js";
48
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-C9N79DF5.js";
49
49
  import "./image-DKyNtsLH.js";
50
50
  import "./pi-model-discovery-LbcEa65a.js";
51
51
  import "./api-key-rotation-2bCcXL6t.js";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-HW7ujuKi.js";
4
+ import "./reply-DBq43zxh.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -106,7 +106,7 @@ import "./npm-registry-spec-C2JDdSZS.js";
106
106
  import "./skill-scanner-CLs8u6vQ.js";
107
107
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-C1Cebk97.js";
108
108
  import { t as renderTable } from "./table-BTgkRafz.js";
109
- import { t as buildPluginStatusReport } from "./status-CNsOWE6W.js";
109
+ import { t as buildPluginStatusReport } from "./status-CCTReric.js";
110
110
  import { n as updateNpmInstalledPlugins } from "./update-rw7wJwHd.js";
111
111
  import fs from "node:fs";
112
112
  import os from "node:os";
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
13
13
  import "./call-CvHdkyUu.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-BKhraI9X.js";
16
+ import "./subagent-registry-CiBbcgit.js";
17
17
  import "./sessions-D_sYAXox.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -102,7 +102,7 @@ import "./npm-registry-spec-DkaZNHAW.js";
102
102
  import "./skill-scanner-BGWOBqLY.js";
103
103
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-CgQpVncj.js";
104
104
  import { t as renderTable } from "./table-D01d2GuY.js";
105
- import { t as buildPluginStatusReport } from "./status-CY5OXF3d.js";
105
+ import { t as buildPluginStatusReport } from "./status-C-GM0R2c.js";
106
106
  import { n as updateNpmInstalledPlugins } from "./update-DEMKx4eC.js";
107
107
  import os from "node:os";
108
108
  import path from "node:path";
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-CvHdkyUu.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-BKhraI9X.js";
17
+ import "./subagent-registry-CiBbcgit.js";
18
18
  import "./sessions-D_sYAXox.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,13 +99,13 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-BzrUs0Sz.js";
100
100
  import "./pi-tools.policy-Df7vqwql.js";
101
101
  import "./catalog-DLQFKucJ.js";
102
- import "./plugin-registry-D5j8ZtiH.js";
103
- import { n as resolveCliChannelOptions } from "./channel-options-OhTp1gp0.js";
104
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-BUqhtoys.js";
105
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-BGBpeVI4.js";
102
+ import "./plugin-registry-CzCch-YI.js";
103
+ import { n as resolveCliChannelOptions } from "./channel-options-B1CU1OhV.js";
104
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-BZ3i4kMS.js";
105
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-Dg8tEZn7.js";
106
106
  import { r as setProgramContext } from "./program-context-CqzR_m-7.js";
107
107
  import { t as forceFreePort } from "./ports-Dn122MUd.js";
108
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-DJ43fuRA.js";
108
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-bvMTkZEs.js";
109
109
  import { Command } from "commander";
110
110
 
111
111
  //#region src/cli/program/context.ts
@@ -213,7 +213,7 @@ function registerPreActionHooks(program, programVersion) {
213
213
  commandPath
214
214
  });
215
215
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
216
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-D5j8ZtiH.js").then((n) => n.n);
216
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-CzCch-YI.js").then((n) => n.n);
217
217
  ensurePluginRegistryLoaded();
218
218
  }
219
219
  });
@@ -43,7 +43,7 @@ const entries = [
43
43
  description: "Run, inspect, and query the WebSocket Gateway",
44
44
  hasSubcommands: true,
45
45
  register: async (program) => {
46
- (await import("./gateway-cli-D9cvWV3T.js")).registerGatewayCli(program);
46
+ (await import("./gateway-cli-D4VSgdJh.js")).registerGatewayCli(program);
47
47
  }
48
48
  },
49
49
  {
@@ -75,7 +75,7 @@ const entries = [
75
75
  description: "Discover, scan, and configure models",
76
76
  hasSubcommands: true,
77
77
  register: async (program) => {
78
- (await import("./models-cli-Sqm4aZYq.js")).registerModelsCli(program);
78
+ (await import("./models-cli-Dti8CQ4l.js")).registerModelsCli(program);
79
79
  }
80
80
  },
81
81
  {
@@ -155,7 +155,7 @@ const entries = [
155
155
  description: "Manage internal agent hooks",
156
156
  hasSubcommands: true,
157
157
  register: async (program) => {
158
- (await import("./hooks-cli-CDIAvBdY.js")).registerHooksCli(program);
158
+ (await import("./hooks-cli-DNCFaCrN.js")).registerHooksCli(program);
159
159
  }
160
160
  },
161
161
  {
@@ -179,7 +179,7 @@ const entries = [
179
179
  description: "Secure DM pairing (approve inbound requests)",
180
180
  hasSubcommands: true,
181
181
  register: async (program) => {
182
- const { registerPluginCliCommands } = await import("./cli-DpH_bL5y.js");
182
+ const { registerPluginCliCommands } = await import("./cli-rFD0PhFT.js");
183
183
  registerPluginCliCommands(program, await loadConfig());
184
184
  (await import("./pairing-cli-Bd0PbASt.js")).registerPairingCli(program);
185
185
  }
@@ -189,8 +189,8 @@ const entries = [
189
189
  description: "Manage Symi plugins and extensions",
190
190
  hasSubcommands: true,
191
191
  register: async (program) => {
192
- (await import("./plugins-cli-rfFi_-nC.js")).registerPluginsCli(program);
193
- const { registerPluginCliCommands } = await import("./cli-DpH_bL5y.js");
192
+ (await import("./plugins-cli-CuWdlZUL.js")).registerPluginsCli(program);
193
+ const { registerPluginCliCommands } = await import("./cli-rFD0PhFT.js");
194
194
  registerPluginCliCommands(program, await loadConfig());
195
195
  }
196
196
  },
@@ -199,7 +199,7 @@ const entries = [
199
199
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
200
200
  hasSubcommands: true,
201
201
  register: async (program) => {
202
- (await import("./channels-cli-BZVAXuw6.js")).registerChannelsCli(program);
202
+ (await import("./channels-cli-BQHwMH-9.js")).registerChannelsCli(program);
203
203
  }
204
204
  },
205
205
  {
@@ -231,7 +231,7 @@ const entries = [
231
231
  description: "Update Symi and inspect update channel status",
232
232
  hasSubcommands: true,
233
233
  register: async (program) => {
234
- (await import("./update-cli-Di3jY1P2.js")).registerUpdateCli(program);
234
+ (await import("./update-cli-Cj1AmFgn.js")).registerUpdateCli(program);
235
235
  }
236
236
  },
237
237
  {
@@ -239,7 +239,7 @@ const entries = [
239
239
  description: "Generate shell completion script",
240
240
  hasSubcommands: false,
241
241
  register: async (program) => {
242
- (await import("./completion-cli-Cn7LdRdM.js").then((n) => n.n)).registerCompletionCli(program);
242
+ (await import("./completion-cli-B2KjRA9F.js").then((n) => n.n)).registerCompletionCli(program);
243
243
  }
244
244
  }
245
245
  ];
@@ -302,7 +302,7 @@ const coreEntries = [
302
302
  hasSubcommands: false
303
303
  }],
304
304
  register: async ({ program }) => {
305
- (await import("./register.setup-B8vTae2l.js")).registerSetupCommand(program);
305
+ (await import("./register.setup-DtBE_3fr.js")).registerSetupCommand(program);
306
306
  }
307
307
  },
308
308
  {
@@ -312,7 +312,7 @@ const coreEntries = [
312
312
  hasSubcommands: false
313
313
  }],
314
314
  register: async ({ program }) => {
315
- (await import("./register.onboard-BPWslrzo.js")).registerOnboardCommand(program);
315
+ (await import("./register.onboard-BdspAIMb.js")).registerOnboardCommand(program);
316
316
  }
317
317
  },
318
318
  {
@@ -322,7 +322,7 @@ const coreEntries = [
322
322
  hasSubcommands: false
323
323
  }],
324
324
  register: async ({ program }) => {
325
- (await import("./register.configure-CxRxqsPa.js")).registerConfigureCommand(program);
325
+ (await import("./register.configure-DDVmT6NY.js")).registerConfigureCommand(program);
326
326
  }
327
327
  },
328
328
  {
@@ -332,7 +332,7 @@ const coreEntries = [
332
332
  hasSubcommands: true
333
333
  }],
334
334
  register: async ({ program }) => {
335
- (await import("./config-cli-ANninpk5.js")).registerConfigCli(program);
335
+ (await import("./config-cli-L94gSwVv.js")).registerConfigCli(program);
336
336
  }
337
337
  },
338
338
  {
@@ -359,7 +359,7 @@ const coreEntries = [
359
359
  }
360
360
  ],
361
361
  register: async ({ program }) => {
362
- (await import("./register.maintenance-D1h2Sa3O.js")).registerMaintenanceCommands(program);
362
+ (await import("./register.maintenance-CdoXyGzf.js")).registerMaintenanceCommands(program);
363
363
  }
364
364
  },
365
365
  {
@@ -369,7 +369,7 @@ const coreEntries = [
369
369
  hasSubcommands: true
370
370
  }],
371
371
  register: async ({ program, ctx }) => {
372
- (await import("./register.message-CYnWS6qP.js")).registerMessageCommands(program, ctx);
372
+ (await import("./register.message-iAimOwns.js")).registerMessageCommands(program, ctx);
373
373
  }
374
374
  },
375
375
  {
@@ -393,7 +393,7 @@ const coreEntries = [
393
393
  hasSubcommands: true
394
394
  }],
395
395
  register: async ({ program, ctx }) => {
396
- (await import("./register.agent-DYitjjp3.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
396
+ (await import("./register.agent-B1sFFJFg.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
397
397
  }
398
398
  },
399
399
  {
@@ -415,7 +415,7 @@ const coreEntries = [
415
415
  }
416
416
  ],
417
417
  register: async ({ program }) => {
418
- (await import("./register.status-health-sessions-CM1dceKY.js")).registerStatusHealthSessionsCommands(program);
418
+ (await import("./register.status-health-sessions-BWr1hDot.js")).registerStatusHealthSessionsCommands(program);
419
419
  }
420
420
  },
421
421
  {
@@ -1,6 +1,6 @@
1
1
  import { d as resolveIsNixMode, g as resolveStateDir, m as resolveOAuthDir, t as CONFIG_PATH, u as resolveGatewayPort, y as resolveRequiredHomeDir } from "./paths-Cqn-zk3M.js";
2
2
  import { C as sleep, S as shortenHomePath, U as getResolvedLoggerSettings, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
- import { gt as loadSymiPlugins, hr as formatRemainingShort, mr as buildAuthHealthSummary, pr as DEFAULT_OAUTH_WARN_MS } from "./reply-HW7ujuKi.js";
3
+ import { gt as loadSymiPlugins, hr as formatRemainingShort, mr as buildAuthHealthSummary, pr as DEFAULT_OAUTH_WARN_MS } from "./reply-DBq43zxh.js";
4
4
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
5
5
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
6
6
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -34,16 +34,16 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
34
34
  import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, o as needsNodeRuntimeMigration, r as SERVICE_AUDIT_CODES, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-BwLHbZwk.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
36
36
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CllGjsWo.js";
37
- import { r as healthCommand } from "./health-Dxc7OaYZ.js";
37
+ import { r as healthCommand } from "./health-DDZwUqwB.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Z947tKLt.js";
39
39
  import { t as resolveDmAllowState } from "./dm-policy-shared-Ctb5IkNa.js";
40
- import { t as runGatewayUpdate } from "./update-runner-CeFIRC25.js";
40
+ import { t as runGatewayUpdate } from "./update-runner-CQCzp1FG.js";
41
41
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
42
42
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
43
43
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-CVPHaevC.js";
44
44
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-aQ75ZlXY.js";
45
45
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
46
- import { n as doctorShellCompletion } from "./doctor-completion-rUiI3KDq.js";
46
+ import { n as doctorShellCompletion } from "./doctor-completion-D6bevOPA.js";
47
47
  import fs from "node:fs";
48
48
  import os from "node:os";
49
49
  import path from "node:path";