@symerian/symi 2.6.18 → 2.6.20

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 (118) hide show
  1. package/dist/{agents-BEWe0DLk.js → agents-p4UQ5QFH.js} +4 -4
  2. package/dist/{agents.config-C76tSodQ.js → agents.config-D7aaLeuW.js} +1 -1
  3. package/dist/{agents.config-DxYp0zoG.js → agents.config-DDFFWWKf.js} +1 -1
  4. package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
  5. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-DHTaS5U1.js} +4 -4
  6. package/dist/{auth-choice-EwOsmB_b.js → auth-choice-BXoSDb_9.js} +1 -1
  7. package/dist/{auth-choice-DrYJKB8t.js → auth-choice-DeYYQOns.js} +1 -1
  8. package/dist/{banner-CJyz7ro7.js → banner-_OS2xmMF.js} +1 -1
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +6 -6
  11. package/dist/bundled/session-memory/handler.js +6 -6
  12. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  13. package/dist/{channel-options-D0NlH6Qb.js → channel-options-CbZIcMGC.js} +1 -1
  14. package/dist/{channel-options-tWyK68mk.js → channel-options-D9UfDD9j.js} +1 -1
  15. package/dist/{channel-web-PvWA2ukO.js → channel-web-L1DDfHzk.js} +1 -1
  16. package/dist/{channels-cli-B50IZ27a.js → channels-cli-4GM5fqNa.js} +4 -4
  17. package/dist/{channels-cli-BAXmmIxX.js → channels-cli-CXa7mgR9.js} +4 -4
  18. package/dist/{chrome-DkaXoP36.js → chrome-CDJYxX5a.js} +5 -5
  19. package/dist/{chrome-D2SKJnR7.js → chrome-DYZwl5Gv.js} +5 -5
  20. package/dist/{cli-CPKEDe6C.js → cli-B-wwaV4Y.js} +1 -1
  21. package/dist/{cli-BW4igUHG.js → cli-C8QNJgG8.js} +1 -1
  22. package/dist/{command-registry-DV-FTDz1.js → command-registry-DXdP9h9E.js} +9 -9
  23. package/dist/{completion-cli-BqzmOZg7.js → completion-cli-BqsjyQ-I.js} +1 -1
  24. package/dist/{completion-cli-Cbr2b-rs.js → completion-cli-hQmnRt3u.js} +2 -2
  25. package/dist/{config-cli-DBjlHFwQ.js → config-cli-DvqG-E-3.js} +1 -1
  26. package/dist/{config-cli-D5QqQi4y.js → config-cli-i08FMBVe.js} +1 -1
  27. package/dist/{configure-DbTH7t_m.js → configure-Cxa5EWql.js} +3 -3
  28. package/dist/{configure-B4VAN-WJ.js → configure-DKc61kbD.js} +3 -3
  29. package/dist/control-ui/js/models.js +2 -2
  30. package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
  31. package/dist/{deliver-C46-vyqg.js → deliver-dODxSv3b.js} +1 -1
  32. package/dist/{doctor-completion-v8uq--hy.js → doctor-completion-C9CcD8pq.js} +1 -1
  33. package/dist/{doctor-completion-Do0e0eZE.js → doctor-completion-Dq3zKXdh.js} +1 -1
  34. package/dist/entry.js +1 -1
  35. package/dist/extensionAPI.js +6 -6
  36. package/dist/{gateway-cli-BkOe3JQ_.js → gateway-cli-CxzaL9HR.js} +9 -9
  37. package/dist/{gateway-cli-BAiFaCGg.js → gateway-cli-D4JEZSb9.js} +9 -9
  38. package/dist/{glass-ui-ws-DFAQWoiK.js → glass-ui-ws-D4Dqbeuw.js} +7 -7
  39. package/dist/{glass-ui-ws-B8V4Slwd.js → glass-ui-ws-KXmUDlRi.js} +7 -7
  40. package/dist/{health-8bTzq722.js → health-8DlAtuas.js} +1 -1
  41. package/dist/{health-B3pwVJ_N.js → health-B8uQe9CP.js} +1 -1
  42. package/dist/{hooks-cli-D1Yhb7y5.js → hooks-cli-B7qROHCQ.js} +2 -2
  43. package/dist/{hooks-cli-Vqz0A84F.js → hooks-cli-BAM_LcfL.js} +2 -2
  44. package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
  45. package/dist/{image-CuzFLQWC.js → image-CXu8W39c.js} +1 -1
  46. package/dist/index.js +6 -6
  47. package/dist/llm-slug-generator.js +6 -6
  48. package/dist/{models-cli-BrDyN5KN.js → models-cli-BFkooNFz.js} +3 -3
  49. package/dist/{models-cli-EP_U-tWq.js → models-cli-DwXzh6z6.js} +2 -2
  50. package/dist/{models-BQOnDzS9.js → models-xTtbDVki.js} +2 -2
  51. package/dist/{onboard-BZNptre7.js → onboard-8nBHoLPU.js} +2 -2
  52. package/dist/{onboard-DM0BChC6.js → onboard-D9GAiRIO.js} +2 -2
  53. package/dist/{onboard-channels-C6dLmiYY.js → onboard-channels-G9yKy7Ui.js} +1 -1
  54. package/dist/{onboard-channels-4jeB30Ty.js → onboard-channels-pSqXeoTx.js} +1 -1
  55. package/dist/{onboarding-DQJQ-k9A.js → onboarding-C8K3ipt8.js} +3 -3
  56. package/dist/{onboarding-CDdiYaCC.js → onboarding-Wha0uWD5.js} +3 -3
  57. package/dist/{onboarding.finalize-Bmd5TpyH.js → onboarding.finalize-CC_hOdGz.js} +5 -5
  58. package/dist/{onboarding.finalize-B82xL12C.js → onboarding.finalize-CPqgV8GM.js} +6 -6
  59. package/dist/{pi-embedded-Dtmwbds4.js → pi-embedded-9mHDXoCz.js} +67 -242
  60. package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
  61. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-pubKo8HQ.js} +4 -4
  62. package/dist/{plugin-registry-D7ylmzDw.js → plugin-registry-8Diq8Bpt.js} +1 -1
  63. package/dist/{plugin-registry-DG_WWCr9.js → plugin-registry-8qRWG0zs.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-_efq-pM9.js → channel-web-CVpBWp5N.js} +1 -1
  65. package/dist/plugin-sdk/index.js +2 -2
  66. package/dist/plugin-sdk/{reply-D2W7XCcz.js → reply-qc0sy-0a.js} +53 -228
  67. package/dist/plugin-sdk/{web-CmT3D7vj.js → web-BRiKjFQe.js} +2 -2
  68. package/dist/{plugins-cli-CMCwFRL9.js → plugins-cli-BsGLF2yJ.js} +2 -2
  69. package/dist/{plugins-cli-BUFrZlyR.js → plugins-cli-DSVlBtQR.js} +2 -2
  70. package/dist/{program-BdVazL5L.js → program-DXDaxm5S.js} +7 -7
  71. package/dist/{program-context-DZNOBe-u.js → program-context-0iUzRT8G.js} +17 -17
  72. package/dist/{prompt-select-styled-XyOMjPBV.js → prompt-select-styled-B9Vx6n4u.js} +4 -4
  73. package/dist/{prompt-select-styled-uLoOKbdZ.js → prompt-select-styled-BTsilnfC.js} +4 -4
  74. package/dist/{provider-auth-helpers-CWf7gdZW.js → provider-auth-helpers-DEqcL4cK.js} +1 -1
  75. package/dist/{provider-auth-helpers-D01YbcHZ.js → provider-auth-helpers-Ta9EaBo3.js} +1 -1
  76. package/dist/{push-apns-B-zVLcnN.js → push-apns-_7NSUBR2.js} +1 -1
  77. package/dist/{push-apns-B2bxLda8.js → push-apns-ivn-KjGr.js} +1 -1
  78. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-B5asscAD.js} +1 -1
  79. package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
  80. package/dist/{register.agent-BYZEiWk1.js → register.agent-BKM1SK6p.js} +6 -6
  81. package/dist/{register.agent-BF6_rPdM.js → register.agent-BR0TqnOO.js} +5 -5
  82. package/dist/{register.configure-4lt1A0NF.js → register.configure-B5vBXQB9.js} +6 -6
  83. package/dist/{register.configure-B0g-yfDR.js → register.configure-BIiuwamc.js} +6 -6
  84. package/dist/{register.maintenance-DXZyjFYw.js → register.maintenance-CQMV0_xM.js} +8 -8
  85. package/dist/{register.maintenance-WBpgdygw.js → register.maintenance-CzpoyDDR.js} +7 -7
  86. package/dist/{register.message-BHRBK4eH.js → register.message-DCx7M65y.js} +2 -2
  87. package/dist/{register.message-CuoXu-_e.js → register.message-Dg0DcwTW.js} +2 -2
  88. package/dist/{register.onboard-D-P9Wc41.js → register.onboard-BG0dlbOM.js} +4 -4
  89. package/dist/{register.onboard-D5-L8JYT.js → register.onboard-BWoUYNe1.js} +4 -4
  90. package/dist/{register.setup-D7NNQwXc.js → register.setup-BlhLiXjH.js} +4 -4
  91. package/dist/{register.setup-BzmkdzSO.js → register.setup-BsA9V9Zh.js} +4 -4
  92. package/dist/{register.status-health-sessions-BIwZhPIZ.js → register.status-health-sessions-DMBqK6OA.js} +3 -3
  93. package/dist/{register.status-health-sessions-DiCr003h.js → register.status-health-sessions-DnPQ6EbH.js} +3 -3
  94. package/dist/{register.subclis-BxbyrMu1.js → register.subclis-nswajsbE.js} +9 -9
  95. package/dist/{reply-BgOOEOPX.js → reply-DU025-Dw.js} +53 -228
  96. package/dist/{run-main-BW5eFi2Y.js → run-main-DjiZHV0H.js} +14 -14
  97. package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
  98. package/dist/{runner-CU9l0uJh.js → runner-WAG0M5s9.js} +1 -1
  99. package/dist/{server-methods-D-Gd1kMo.js → server-methods-BefrlQc3.js} +7 -7
  100. package/dist/{server-methods-Dp8iuEko.js → server-methods-CrPLWtui.js} +7 -7
  101. package/dist/{server-node-events-CnjqDQbZ.js → server-node-events-CKYqZ_QS.js} +2 -2
  102. package/dist/{server-node-events-B2_RCsYi.js → server-node-events-CjsIxKpS.js} +2 -2
  103. package/dist/{status-CrVk9Tz5.js → status-BWaIkbur.js} +1 -1
  104. package/dist/{status-CGhoES6L.js → status-DWpakHjS.js} +1 -1
  105. package/dist/{status-4PSvL6ui.js → status-eergZLRZ.js} +2 -2
  106. package/dist/{status-kFfqsras.js → status-iuYHrvPw.js} +2 -2
  107. package/dist/{subagent-registry-M6DQwhYN.js → subagent-registry-C-JJ2VmR.js} +53 -228
  108. package/dist/{unified-runner-DckayuEM.js → unified-runner-BEC009tx.js} +67 -242
  109. package/dist/{update-cli-x5YGUm9F.js → update-cli-BEQF9OZ6.js} +7 -7
  110. package/dist/{update-cli-DCYkskZu.js → update-cli-C1B-X-g-.js} +8 -8
  111. package/dist/{update-runner-Dmki2xrH.js → update-runner-Dnq8KGjY.js} +1 -1
  112. package/dist/{update-runner-BIp88-4P.js → update-runner-zv3kaly2.js} +1 -1
  113. package/dist/{web-1JPHv6du.js → web-B5ciapWd.js} +6 -6
  114. package/dist/{web-DWSTD7Gy.js → web-BUXU8aHt.js} +1 -1
  115. package/dist/{web-rShvuTx4.js → web-DLKmJqCG.js} +2 -2
  116. package/dist/{web-C40boK8U.js → web-Dkz9WSaL.js} +6 -6
  117. package/package.json +1 -1
  118. package/skills/self-inspect/SKILL.md +0 -109
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-M6DQwhYN.js";
17
+ import "./subagent-registry-C-JJ2VmR.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,18 +99,18 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
101
  import "./note-DDecZomM.js";
102
- import "./register.subclis-BxbyrMu1.js";
103
- import "./command-registry-DV-FTDz1.js";
102
+ import "./register.subclis-nswajsbE.js";
103
+ import "./command-registry-DXdP9h9E.js";
104
104
  import "./program-context-CqzR_m-7.js";
105
- import { r as installCompletion } from "./completion-cli-Cbr2b-rs.js";
105
+ import { r as installCompletion } from "./completion-cli-hQmnRt3u.js";
106
106
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CfRwa6qh.js";
107
107
  import "./runtime-guard-D7waq_Ho.js";
108
108
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
109
109
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
110
- import { r as healthCommand } from "./health-8bTzq722.js";
110
+ import { r as healthCommand } from "./health-8DlAtuas.js";
111
111
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
112
112
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
113
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-v8uq--hy.js";
113
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-C9CcD8pq.js";
114
114
  import { t as runTui } from "./tui-BJB80muc.js";
115
115
  import os from "node:os";
116
116
  import path from "node:path";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
3
3
  import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-BCzIW1Y2.js";
4
4
  import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, lt as resolvePreferredSymiTmpDir, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, st as normalizeLogLevel, tt as getChildLogger, u as setActivePluginRegistry, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry-BhoUuugi.js";
5
- import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, w as resolveSymiPackageRootSync, x as filterBootstrapFilesForSession } from "./agent-scope-Cbl5pNe1.js";
5
+ import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-Cbl5pNe1.js";
6
6
  import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
7
7
  import { $ as DEFAULT_PROVIDER, A as resolveShellEnvFallbackTimeoutMs, B as dedupeProfileIds, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as getSoonestCooldownExpiry, G as resolveSymiAgentDir, H as markAuthProfileGood, I as isProfileInCooldown, K as withFileLock, L as markAuthProfileFailure, O as getShellPathFromLoginShell, P as resolveAuthProfileOrder, Q as DEFAULT_MODEL, R as markAuthProfileUsed, S as getApiKeyForModel, T as resolveApiKeyForProvider, U as ensureAuthProfileStore, V as listProfilesForProvider, W as resolveAuthStorePathForDisplay, X as resolveAuthProfileDisplayLabel, Y as normalizeSecretInput, Z as DEFAULT_CONTEXT_TOKENS, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveApiKeyForProfile } from "./model-selection-BQCG9ah0.js";
8
8
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-K_J_nfgx.js";
@@ -14,7 +14,7 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
14
14
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
15
15
  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-D-hWrHoH.js";
16
16
  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-C1IYd3g7.js";
17
- 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-C-37cZUe.js";
17
+ 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-BH0l3UKW.js";
18
18
  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-D0xmLpej.js";
19
19
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
20
20
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
@@ -22,10 +22,10 @@ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normali
22
22
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
23
23
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
24
24
  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-BQINJQIT.js";
25
- import { $ as mergeDeliveryContext, 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, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, 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 deliveryContextKey, 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 resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-B8kqLWns.js";
25
+ import { $ as mergeDeliveryContext, 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, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, 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 deliveryContextKey, 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 resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-lgx_U5KS.js";
26
26
  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-BmV60pPT.js";
27
27
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-D-mTF1cj.js";
28
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-D2SKJnR7.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CDJYxX5a.js";
29
29
  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-BNpGMnp-.js";
30
30
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
31
31
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -36,7 +36,7 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
36
36
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
38
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
39
- 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-DcpMiprB.js";
39
+ 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-CHzdaNJ4.js";
40
40
  import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-jpn5vRTY.js";
41
41
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-BNh23mUR.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
@@ -49,7 +49,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-F0moAwIl.js";
49
49
  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-C_aYUwpl.js";
50
50
  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-DklY7Cj7.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
52
- 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-BcQ0sF9T.js";
52
+ 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-DUBExAb5.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtLn7YU3.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
55
55
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D9q-fIPB.js";
@@ -79,7 +79,7 @@ import { EdgeTTS } from "node-edge-tts";
79
79
  import AjvPkg from "ajv";
80
80
  import { createServer } from "node:http";
81
81
  import { ProxyAgent, fetch as fetch$1 } from "undici";
82
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
82
+ import WebSocket$1, { WebSocket } from "ws";
83
83
  import { Buffer as Buffer$1 } from "node:buffer";
84
84
  import { createJiti } from "jiti";
85
85
  import { Type } from "@sinclair/typebox";
@@ -5714,7 +5714,7 @@ var GatewayClient = class {
5714
5714
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5715
5715
  });
5716
5716
  }
5717
- this.ws = new WebSocket$1(url, wsOptions);
5717
+ this.ws = new WebSocket(url, wsOptions);
5718
5718
  this.ws.on("open", () => {
5719
5719
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5720
5720
  const tlsError = this.validateTlsFingerprint();
@@ -5933,7 +5933,7 @@ var GatewayClient = class {
5933
5933
  return null;
5934
5934
  }
5935
5935
  async request(method, params, opts) {
5936
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5936
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5937
5937
  const id = randomUUID();
5938
5938
  const frame = {
5939
5939
  type: "req",
@@ -7199,7 +7199,7 @@ async function routeReply(params) {
7199
7199
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7200
7200
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7201
7201
  try {
7202
- const { deliverOutboundPayloads } = await import("./deliver-C-37cZUe.js").then((n) => n.n);
7202
+ const { deliverOutboundPayloads } = await import("./deliver-BH0l3UKW.js").then((n) => n.n);
7203
7203
  return {
7204
7204
  ok: true,
7205
7205
  messageId: (await deliverOutboundPayloads({
@@ -39027,30 +39027,6 @@ function setCliSessionId(entry, provider, sessionId) {
39027
39027
  //#endregion
39028
39028
  //#region src/config/model-profiles-builtin.ts
39029
39029
  /**
39030
- * Starter pack — always-on context for models with tool arg corruption.
39031
- * ~500 tokens. Prevents the most common failure patterns.
39032
- * For detailed file modification guides, the self-inspect skill cascades from here.
39033
- */
39034
- const STARTER_PACK = [
39035
- "",
39036
- "YOUR FILES (use read tool directly on these paths — NEVER use exec to find or read files):",
39037
- "- Glass UI CSS: <SYMI_ROOT>/dist/control-ui/css/style.css",
39038
- "- Glass UI HTML: <SYMI_ROOT>/dist/control-ui/index.html",
39039
- "- Glass UI JS: <SYMI_ROOT>/dist/control-ui/js/app.js, gateway.js, render.js, models.js, history.js, symipulse.js, debug.js",
39040
- "- Package: <SYMI_ROOT>/package.json",
39041
- "- Config: ~/.symi/symi.json | Sessions: ~/.symi/agents/main/sessions/ | Memory: ~/.symi/state/memory/",
39042
- "- For detailed modification guides, read the self-inspect skill.",
39043
- "",
39044
- "TOOL RULES (mandatory):",
39045
- "- read/write/edit: Always provide the full absolute path directly. NEVER use exec with cat, head, find, grep, or ls to view files.",
39046
- "- exec/bash: Provide only valid shell syntax. No tags, no tokens, no markup. Spell commands exactly.",
39047
- "- web_search: Always include query argument. Example: web_search({ query: \"search terms\" })",
39048
- "- sessions_spawn: Always include task and mode. Example: sessions_spawn({ label: \"name\", mode: \"run\", task: \"description\" })",
39049
- "",
39050
- "KNOWN SHELL COMMANDS (use exact spelling):",
39051
- "awk basename brew cargo cat chmod chown cp curl cut date dd df diff dig dirname docker du echo env find gcc git go grep gunzip gzip head hostname id ifconfig ip java javac journalctl kill killall launchctl less ln locate ls make man mkdir mktemp more mount mv nc netstat nice node nohup npm npx open paste pbcopy pbpaste ping pip pip3 plutil printf ps pwd python python3 readlink realpath rm rmdir rsync ruby scp sed sleep sort ssh stat strings sudo su sw_vers sysctl system_profiler systemctl tail tar tee test top touch tr type uname uniq unzip wc wget which xargs xz yes zip"
39052
- ];
39053
- /**
39054
39030
  * Built-in model profiles. Ordered from most-specific to least-specific so
39055
39031
  * that `resolveModelProfile` can return the first match.
39056
39032
  *
@@ -39093,8 +39069,7 @@ const BUILTIN_PROFILES = [
39093
39069
  "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
39094
39070
  "- If you need to verify your work, do so before writing your response, not after.",
39095
39071
  "- Send brief progress updates on long tasks so the user knows you are active.",
39096
- "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax.",
39097
- ...STARTER_PACK
39072
+ "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
39098
39073
  ],
39099
39074
  ui: {
39100
39075
  badge: "Local",
@@ -39102,6 +39077,52 @@ const BUILTIN_PROFILES = [
39102
39077
  armWatchdogOnSend: true
39103
39078
  }
39104
39079
  },
39080
+ {
39081
+ match: ["nemotron/"],
39082
+ label: "Nemotron",
39083
+ params: {
39084
+ temperature: 1,
39085
+ top_p: .95,
39086
+ top_k: 64,
39087
+ max_tokens: 4096,
39088
+ stop: ["<end_of_turn>", "<eos>"]
39089
+ },
39090
+ streaming: {
39091
+ deltaThrottleMs: 50,
39092
+ flushOnFinal: true,
39093
+ chunkPattern: "burst"
39094
+ },
39095
+ filters: {
39096
+ stripPatterns: [
39097
+ "<\\|channel>\\w*",
39098
+ "<channel\\|>",
39099
+ "<start_of_turn>(?:model|user)?",
39100
+ "<end_of_turn>",
39101
+ "<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
39102
+ "^\\s*<bos>\\s*"
39103
+ ],
39104
+ suppressMonologue: true,
39105
+ hasStructuredThinking: false,
39106
+ validateToolArgs: true
39107
+ },
39108
+ promptAdditions: [
39109
+ "CRITICAL OUTPUT RULES:",
39110
+ "- Your response ends when you have delivered the answer. Do not append anything after.",
39111
+ "- Do not output raw control tokens, channel tags, turn markers, or <|channel>thought syntax.",
39112
+ "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
39113
+ "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
39114
+ "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
39115
+ "- If you need to verify your work, do so before writing your response, not after.",
39116
+ "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
39117
+ "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active.",
39118
+ "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
39119
+ ],
39120
+ ui: {
39121
+ badge: "Local",
39122
+ watchdogMs: 6e5,
39123
+ armWatchdogOnSend: true
39124
+ }
39125
+ },
39105
39126
  {
39106
39127
  match: ["anthropic/", "claude-"],
39107
39128
  label: "Claude",
@@ -39166,8 +39187,7 @@ const BUILTIN_PROFILES = [
39166
39187
  "- If you need to verify your work, do so before writing your response, not after.",
39167
39188
  "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
39168
39189
  "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active.",
39169
- "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax.",
39170
- ...STARTER_PACK
39190
+ "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
39171
39191
  ],
39172
39192
  ui: {
39173
39193
  badge: "CoreWeave",
@@ -42335,175 +42355,6 @@ function toClientToolDefinitions(tools, onClientToolCall, hookContext) {
42335
42355
  * @module
42336
42356
  */
42337
42357
  /**
42338
- * Known shell commands for prefix deduplication.
42339
- * When token boundary corruption doubles a command prefix (grep → grgrep,
42340
- * ls → lsls), we check the first token against this set. If stripping
42341
- * the repeated prefix yields a known command, use it.
42342
- *
42343
- * O(1) lookup. Zero false positives — no valid command is its own prefix doubled.
42344
- */
42345
- const KNOWN_COMMANDS = new Set([
42346
- "ls",
42347
- "cat",
42348
- "cp",
42349
- "mv",
42350
- "rm",
42351
- "mkdir",
42352
- "rmdir",
42353
- "touch",
42354
- "chmod",
42355
- "chown",
42356
- "chgrp",
42357
- "ln",
42358
- "pwd",
42359
- "echo",
42360
- "printf",
42361
- "head",
42362
- "tail",
42363
- "wc",
42364
- "sort",
42365
- "uniq",
42366
- "cut",
42367
- "tr",
42368
- "tee",
42369
- "xargs",
42370
- "env",
42371
- "date",
42372
- "sleep",
42373
- "true",
42374
- "false",
42375
- "yes",
42376
- "test",
42377
- "expr",
42378
- "basename",
42379
- "dirname",
42380
- "readlink",
42381
- "realpath",
42382
- "mktemp",
42383
- "stat",
42384
- "file",
42385
- "dd",
42386
- "df",
42387
- "du",
42388
- "id",
42389
- "whoami",
42390
- "hostname",
42391
- "uname",
42392
- "grep",
42393
- "egrep",
42394
- "fgrep",
42395
- "find",
42396
- "locate",
42397
- "sed",
42398
- "awk",
42399
- "diff",
42400
- "patch",
42401
- "strings",
42402
- "less",
42403
- "more",
42404
- "tar",
42405
- "gzip",
42406
- "gunzip",
42407
- "zip",
42408
- "unzip",
42409
- "bzip2",
42410
- "xz",
42411
- "curl",
42412
- "wget",
42413
- "ssh",
42414
- "scp",
42415
- "rsync",
42416
- "ping",
42417
- "dig",
42418
- "nslookup",
42419
- "netstat",
42420
- "lsof",
42421
- "nc",
42422
- "ifconfig",
42423
- "ip",
42424
- "ps",
42425
- "top",
42426
- "kill",
42427
- "killall",
42428
- "nohup",
42429
- "nice",
42430
- "which",
42431
- "type",
42432
- "where",
42433
- "man",
42434
- "sudo",
42435
- "su",
42436
- "mount",
42437
- "umount",
42438
- "systemctl",
42439
- "journalctl",
42440
- "launchctl",
42441
- "dmesg",
42442
- "sysctl",
42443
- "git",
42444
- "make",
42445
- "gcc",
42446
- "python",
42447
- "python3",
42448
- "pip",
42449
- "pip3",
42450
- "node",
42451
- "npm",
42452
- "npx",
42453
- "pnpm",
42454
- "yarn",
42455
- "cargo",
42456
- "go",
42457
- "ruby",
42458
- "gem",
42459
- "java",
42460
- "javac",
42461
- "docker",
42462
- "brew",
42463
- "open",
42464
- "pbcopy",
42465
- "pbpaste",
42466
- "defaults",
42467
- "diskutil",
42468
- "sw_vers",
42469
- "system_profiler",
42470
- "plutil",
42471
- "mdfind",
42472
- "mdls",
42473
- "softwareupdate",
42474
- "caffeinate",
42475
- "say",
42476
- "osascript",
42477
- "security",
42478
- "codesign",
42479
- "hdiutil",
42480
- "installer",
42481
- "lipo",
42482
- "otool",
42483
- "dscl",
42484
- "scutil"
42485
- ]);
42486
- /**
42487
- * Fix command prefix duplication from token boundary splits.
42488
- * Token corruption can double a multi-char prefix: grep → grgrep, ls → lsls.
42489
- * Check if the first token starts with a repeated prefix that, when removed,
42490
- * yields a known command.
42491
- *
42492
- * Examples: grgrep → grep, lsls → ls, catcat → cat, curlcurl → curl
42493
- */
42494
- function dedupCommandPrefix(command) {
42495
- const match = command.match(/^([a-zA-Z0-9_-]+)/);
42496
- if (!match) return command;
42497
- const firstToken = match[1];
42498
- if (KNOWN_COMMANDS.has(firstToken)) return command;
42499
- for (let prefixLen = 2; prefixLen <= Math.min(10, Math.floor(firstToken.length / 2)); prefixLen++) {
42500
- const prefix = firstToken.slice(0, prefixLen);
42501
- const candidate = firstToken.slice(prefixLen);
42502
- if (candidate.startsWith(prefix.slice(0, Math.min(prefix.length, candidate.length))) && KNOWN_COMMANDS.has(candidate)) return candidate + command.slice(firstToken.length);
42503
- }
42504
- return command;
42505
- }
42506
- /**
42507
42358
  * Validate that a command string contains extractable valid shell syntax.
42508
42359
  * Returns the cleaned command if valid, or an error reason if not.
42509
42360
  *
@@ -42522,7 +42373,6 @@ function validateShellCommand(command) {
42522
42373
  cleaned = cleaned.replace(/<\|[^|>]*(?:\|>)?/g, "").trim();
42523
42374
  cleaned = cleanResidualTokenFragments(cleaned);
42524
42375
  }
42525
- cleaned = dedupCommandPrefix(cleaned);
42526
42376
  if (!cleaned || !cleaned.trim()) return {
42527
42377
  valid: false,
42528
42378
  cleaned: "",
@@ -46576,18 +46426,7 @@ async function runEmbeddedAttempt(params) {
46576
46426
  const profileModelKey = params.modelId ?? "";
46577
46427
  const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
46578
46428
  log$5.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
46579
- const systemPromptText = createSystemPromptOverride(appendPrompt + (() => {
46580
- if (modelProfile.promptAdditions.length === 0) return "";
46581
- let text = "\n\n" + modelProfile.promptAdditions.join("\n");
46582
- if (text.includes("<SYMI_ROOT>")) {
46583
- const symiRoot = resolveSymiPackageRootSync({
46584
- moduleUrl: import.meta.url,
46585
- argv1: process.argv[1]
46586
- });
46587
- if (symiRoot) text = text.replaceAll("<SYMI_ROOT>", symiRoot);
46588
- }
46589
- return text;
46590
- })())();
46429
+ const systemPromptText = createSystemPromptOverride(appendPrompt + (modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : ""))();
46591
46430
  const sessionLock = await acquireSessionWriteLock({
46592
46431
  sessionFile: params.sessionFile,
46593
46432
  maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
@@ -46861,18 +46700,6 @@ async function runEmbeddedAttempt(params) {
46861
46700
  const TOOL_ERROR_ABORT_THRESHOLD = 5;
46862
46701
  const TOOL_ERROR_WARN_THRESHOLD = 3;
46863
46702
  let consecutiveToolErrors = 0;
46864
- /** Detect exec/bash results that indicate a shell error (non-zero exit, command not found, etc.) */
46865
- const isShellErrorResult = (result) => {
46866
- if (!result || typeof result !== "object") return false;
46867
- const content = result.content;
46868
- if (!Array.isArray(content)) return false;
46869
- const text = content.filter((b) => b && typeof b === "object" && b.type === "text").map((b) => {
46870
- const t = b.text;
46871
- return typeof t === "string" ? t : "";
46872
- }).join("\n");
46873
- if (!text) return false;
46874
- return /exit code [1-9]\d*|command not found|No such file or directory|syntax error|parse error|Permission denied|not recognized|cannot execute/i.test(text);
46875
- };
46876
46703
  const subscription = subscribeEmbeddedPiSession({
46877
46704
  session: activeSession,
46878
46705
  runId: params.runId,
@@ -46898,9 +46725,7 @@ async function runEmbeddedAttempt(params) {
46898
46725
  const phase = typeof evt.data?.phase === "string" ? evt.data.phase : "";
46899
46726
  const isError = evt.data?.isError === true;
46900
46727
  if (phase === "result") {
46901
- const toolName = typeof evt.data?.name === "string" ? evt.data.name : "";
46902
- const isExecShellError = !isError && (toolName === "exec" || toolName === "bash") && isShellErrorResult(evt.data?.result);
46903
- if (isError || isExecShellError) consecutiveToolErrors++;
46728
+ if (isError) consecutiveToolErrors++;
46904
46729
  else consecutiveToolErrors = 0;
46905
46730
  if (consecutiveToolErrors >= TOOL_ERROR_ABORT_THRESHOLD) {
46906
46731
  const toolName = typeof evt.data?.name === "string" ? evt.data.name : "unknown";
@@ -50985,7 +50810,7 @@ async function deliverSessionMaintenanceWarning(params) {
50985
50810
  return;
50986
50811
  }
50987
50812
  try {
50988
- const { deliverOutboundPayloads } = await import("./deliver-C-37cZUe.js").then((n) => n.n);
50813
+ const { deliverOutboundPayloads } = await import("./deliver-BH0l3UKW.js").then((n) => n.n);
50989
50814
  await deliverOutboundPayloads({
50990
50815
  cfg: params.cfg,
50991
50816
  channel,
@@ -54431,7 +54256,7 @@ async function describeStickerImage(params) {
54431
54256
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54432
54257
  try {
54433
54258
  const buffer = await fs$1.readFile(imagePath);
54434
- const { describeImageWithModel } = await import("./image-DcpMiprB.js").then((n) => n.n);
54259
+ const { describeImageWithModel } = await import("./image-CHzdaNJ4.js").then((n) => n.n);
54435
54260
  return (await describeImageWithModel({
54436
54261
  buffer,
54437
54262
  fileName: "sticker.webp",
@@ -57093,7 +56918,7 @@ async function preflightDiscordMessage(params) {
57093
56918
  let preflightTranscript;
57094
56919
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
57095
56920
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
57096
- const { transcribeFirstAudio } = await import("./audio-preflight-CPBOQV4I.js");
56921
+ const { transcribeFirstAudio } = await import("./audio-preflight-C40mKAp7.js");
57097
56922
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
57098
56923
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
57099
56924
  ctx: {
@@ -60876,7 +60701,7 @@ function isVoiceChannelType(type) {
60876
60701
  function createDefaultDeps() {
60877
60702
  return {
60878
60703
  sendMessageWhatsApp: async (...args) => {
60879
- const { sendMessageWhatsApp } = await import("./web-C40boK8U.js");
60704
+ const { sendMessageWhatsApp } = await import("./web-Dkz9WSaL.js");
60880
60705
  return await sendMessageWhatsApp(...args);
60881
60706
  },
60882
60707
  sendMessageTelegram: async (...args) => {
@@ -63781,7 +63606,7 @@ function createDiscordGatewayPlugin(params) {
63781
63606
  super(options);
63782
63607
  }
63783
63608
  createWebSocket(url) {
63784
- return new WebSocket(url, { agent });
63609
+ return new WebSocket$1(url, { agent });
63785
63610
  }
63786
63611
  }
63787
63612
  return new ProxyGatewayPlugin();
@@ -73999,7 +73824,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
73999
73824
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
74000
73825
  let preflightTranscript;
74001
73826
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
74002
- const { transcribeFirstAudio } = await import("./audio-preflight-CPBOQV4I.js");
73827
+ const { transcribeFirstAudio } = await import("./audio-preflight-C40mKAp7.js");
74003
73828
  preflightTranscript = await transcribeFirstAudio({
74004
73829
  ctx: {
74005
73830
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -76156,7 +75981,7 @@ function loadWebLoginQr() {
76156
75981
  return webLoginQrPromise;
76157
75982
  }
76158
75983
  function loadWebChannel() {
76159
- webChannelPromise ??= import("./web-C40boK8U.js");
75984
+ webChannelPromise ??= import("./web-Dkz9WSaL.js");
76160
75985
  return webChannelPromise;
76161
75986
  }
76162
75987
  function loadWhatsAppActions() {
@@ -10,7 +10,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
10
10
  import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-ByaQt43P.js";
11
11
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BQINJQIT.js";
12
12
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BmV60pPT.js";
13
- 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-D2SKJnR7.js";
13
+ 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-CDJYxX5a.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BNpGMnp-.js";
15
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
16
16
  import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -931,7 +931,7 @@ function isModuleNotFoundError(err) {
931
931
  }
932
932
  async function loadPwAiModule(mode) {
933
933
  try {
934
- return await import("./pw-ai-1htA-NnS.js");
934
+ return await import("./pw-ai-De-KR9_s.js");
935
935
  } catch (err) {
936
936
  if (mode === "soft") return null;
937
937
  if (isModuleNotFoundError(err)) return null;
@@ -3471,11 +3471,11 @@ function createProfileContext(opts, profile) {
3471
3471
  const userDataDir = resolveSymiUserDataDir(profile.name);
3472
3472
  const profileState = getProfileState();
3473
3473
  if (await isHttpReachable(300) && !profileState.running) try {
3474
- await (await import("./pw-ai-1htA-NnS.js")).closePlaywrightBrowserConnection();
3474
+ await (await import("./pw-ai-De-KR9_s.js")).closePlaywrightBrowserConnection();
3475
3475
  } catch {}
3476
3476
  if (profileState.running) await stopRunningBrowser();
3477
3477
  try {
3478
- await (await import("./pw-ai-1htA-NnS.js")).closePlaywrightBrowserConnection();
3478
+ await (await import("./pw-ai-De-KR9_s.js")).closePlaywrightBrowserConnection();
3479
3479
  } catch {}
3480
3480
  if (!fs.existsSync(userDataDir)) return {
3481
3481
  moved: false,
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-D
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-5SdHIcHU.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DkaXoP36.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DYZwl5Gv.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Bs0AW1g3.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.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-m0mj2KWK.js");
936
+ return await import("./pw-ai-B5asscAD.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-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3476
+ await (await import("./pw-ai-B5asscAD.js")).closePlaywrightBrowserConnection();
3477
3477
  } catch {}
3478
3478
  if (profileState.running) await stopRunningBrowser();
3479
3479
  try {
3480
- await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3480
+ await (await import("./pw-ai-B5asscAD.js")).closePlaywrightBrowserConnection();
3481
3481
  } catch {}
3482
3482
  if (!fs.existsSync(userDataDir)) return {
3483
3483
  moved: false,
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ft as loadSymiPlugins } from "./reply-BgOOEOPX.js";
2
+ import { ft as loadSymiPlugins } from "./reply-DU025-Dw.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";
@@ -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-DHBLS1Hl.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-M6DQwhYN.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-C-JJ2VmR.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });